<?php
namespace App\Entity\Movimientos;
use App\Repository\Movimientos\ItemMovimientoRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\Almacen\Articulo;
use Symfony\Component\Validator\Constraints as Assert;
use App\Entity\Mantenimiento\PedidoReparacionDiagramado;
/**
* @ORM\Entity(repositoryClass=ItemMovimientoRepository::class)
*/
class ItemMovimiento
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="float")
* @Assert\NotNull(message="El campo es requerido")
*/
private $cantidad;
/**
* @ORM\Column(name="cantidad_ingresada", type="float")
*/
private $cantidadIngresada = 0;
//Para las ordenes de compra es la cantidad que efecivamente ingreso al stock - Para el caso de las ordenes de reparacion es la cantidad devuelta de producto excedente a la reparacion
/**
* @ORM\Column(name="observaciones", type="text", nullable=true)
*/
private $observaciones;
/**
* @ORM\Column(name="observado", type="boolean", nullable=true)
*/
private $observado = false;
/**
* @ORM\ManyToOne(targetEntity=Articulo::class)
* @ORM\JoinColumn(name="id_articulo", referencedColumnName="id")
* @Assert\NotNull(message="El campo es requerido")
*/
private $articulo;
/**
* @ORM\ManyToOne(targetEntity=MovimientoStock::class, inversedBy="items")
* @ORM\JoinColumn(name="id_movimiento", referencedColumnName="id")
* @Assert\NotNull(message="El campo es requerido")
*/
private $movimiento;
/**
* @ORM\ManyToOne(targetEntity=PedidoReparacionDiagramado::class)
* @ORM\JoinColumn(name="id_tarea_diag", referencedColumnName="id", nullable=true)
*/
private $tareaDiagramada;
/**
* @ORM\PreUpdate
*/
public function setCreatedAtValue()
{
$this->observado = ($this->cantidad != $this->cantidadIngresada);
}
public function getId(): ?int
{
return $this->id;
}
public function getCantidad(): ?float
{
return $this->cantidad;
}
public function setCantidad(float $cantidad): self
{
$this->cantidad = $cantidad;
return $this;
}
public function getArticulo(): ?Articulo
{
return $this->articulo;
}
public function setArticulo(?Articulo $articulo): self
{
$this->articulo = $articulo;
return $this;
}
public function getMovimiento(): ?MovimientoStock
{
return $this->movimiento;
}
public function setMovimiento(?MovimientoStock $movimiento): self
{
$this->movimiento = $movimiento;
return $this;
}
public function getCantidadIngresada(): ?float
{
return $this->cantidadIngresada;
}
public function setCantidadIngresada(float $cantidadIngresada): self
{
$this->cantidadIngresada = $cantidadIngresada;
return $this;
}
public function getObservaciones(): ?string
{
return $this->observaciones;
}
public function setObservaciones(?string $observaciones): self
{
$this->observaciones = $observaciones;
return $this;
}
public function isObservado(): ?bool
{
return $this->observado;
}
public function setObservado(?bool $observado): self
{
$this->observado = $observado;
return $this;
}
public function getTareaDiagramada(): ?PedidoReparacionDiagramado
{
return $this->tareaDiagramada;
}
public function setTareaDiagramada(?PedidoReparacionDiagramado $tareaDiagramada): self
{
$this->tareaDiagramada = $tareaDiagramada;
return $this;
}
}