<?php
namespace App\Entity\Almacen;
use App\Repository\Almacen\ArticuloDepositoRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=ArticuloDepositoRepository::class)
* @ORM\Table(name="config_art_deposito", uniqueConstraints={@ORM\UniqueConstraint(name="unique_art_dep", fields={"articulo", "deposito"})})
* @ORM\HasLifecycleCallbacks()
*/
class ArticuloDeposito
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $stock = 0;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $stockMinimo = 0;
/**
* @ORM\Column(type="float", nullable=true)
*/
private $stockMaximo = 100000;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $ultimaActualizacion = null;
/**
* @ORM\ManyToOne(targetEntity=Articulo::class)
* @ORM\JoinColumn(name="id_articulo", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $articulo;
/**
* @ORM\ManyToOne(targetEntity=Deposito::class)
* @ORM\JoinColumn(name="id_deposito", referencedColumnName="id", nullable=true)
* @Assert\NotNull(message="El campo es requerido")
*/
private $deposito;
/**
* @ORM\PrePersist
*/
public function setCreatedAtValue()
{
$this->ultimaActualizacion = new \DateTimeImmutable();
}
public function updateStock($val)
{
$this->stock = $this->stock + $val;
}
/**
* @ORM\PreUpdate
*/
public function setUpdatedAtValue()
{
$this->ultimaActualizacion = new \DateTimeImmutable();
}
public function getId(): ?int
{
return $this->id;
}
public function getStock(): ?float
{
return $this->stock;
}
public function setStock(?float $stock): self
{
$this->stock = $stock;
return $this;
}
public function getStockMinimo(): ?float
{
return $this->stockMinimo;
}
public function setStockMinimo(?float $stockMinimo): self
{
$this->stockMinimo = $stockMinimo;
return $this;
}
public function getStockMaximo(): ?float
{
return $this->stockMaximo;
}
public function setStockMaximo(?float $stockMaximo): self
{
$this->stockMaximo = $stockMaximo;
return $this;
}
public function getArticulo(): ?Articulo
{
return $this->articulo;
}
public function setArticulo(?Articulo $articulo): self
{
$this->articulo = $articulo;
return $this;
}
public function getDeposito(): ?Deposito
{
return $this->deposito;
}
public function setDeposito(?Deposito $deposito): self
{
$this->deposito = $deposito;
return $this;
}
public function getUltimaActualizacion(): ?\DateTimeInterface
{
return $this->ultimaActualizacion;
}
public function setUltimaActualizacion(?\DateTimeInterface $ultimaActualizacion): self
{
$this->ultimaActualizacion = $ultimaActualizacion;
return $this;
}
}