<?php
declare(strict_types=1);
namespace App\Entity\System;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="ps_stock_venideros",
* uniqueConstraints={
*
* @ORM\UniqueConstraint(name="uk_product__product_attribute__purchase_line", columns={"id_product_attribute", "id_product", "id_purcharse_line"})
* },
* indexes={
*
* @ORM\Index(name="id_product_attribute", columns={"id_product_attribute"}),
* @ORM\Index(name="date_next", columns={"date_next"}),
* @ORM\Index(name="FK_ps_product_id_product", columns={"id_product"}),
* @ORM\Index(name="id_purcharse_line", columns={"id_purcharse_line"}),
* @ORM\Index(name="active_stock", columns={"active_stock"})
* })
*
* @ORM\Entity(repositoryClass="App\Repository\System\IncomingStockRepository")
*/
class IncomingStock
{
public const COURTESY_DAYS = 5;
/**
* @ORM\Column(name="id_stock_venideros", type="integer")
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*/
private int $id;
/**
* @ORM\Column(type="datetime" ,nullable=true)
*/
private ?\DateTime $dateNext;
/**
* @ORM\Column(type="integer", nullable=false, options={"default" : 0})
*/
private int $quantity;
/**
* @ORM\Column(type="integer",name="id_purcharse_line", nullable=true)
*/
private ?int $purchaseLineId;
/**
* @var ProductAttribute|null
*
* @ORM\ManyToOne(targetEntity="ProductAttribute", inversedBy="incommingStocks")
*
* @ORM\JoinColumn(name="id_product_attribute", referencedColumnName="id_product_attribute", nullable=true)
*/
private $productAttribute;
/**
* @var Product
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Product", inversedBy="incommingStocks")
*
* @ORM\JoinColumn(referencedColumnName="id_product", name="id_product", nullable=false)
*/
private $product;
/**
* @ORM\Column(type="string" , length=50)
*/
private string $purchaseOrder;
/**
* @ORM\Column(type="boolean" , nullable=true, options={"default" : 0})
*/
private ?bool $purchaseConfirmed;
/**
* @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
*/
private bool $activeStock;
/**
* @ORM\Column(type="datetime" ,nullable=false, options={"default":"CURRENT_TIMESTAMP"})
*/
private \DateTime $date;
public function getId(): int
{
return $this->id;
}
public function getDateNext(): ?\DateTime
{
return $this->dateNext;
}
public function setDateNext(?\DateTime $dateNext): IncomingStock
{
$this->dateNext = $dateNext;
return $this;
}
public function getQuantity(): int
{
return $this->quantity;
}
public function setQuantity(int $quantity): IncomingStock
{
$this->quantity = $quantity;
return $this;
}
public function getPurchaseLineId(): ?int
{
return $this->purchaseLineId;
}
public function setPurchaseLineId(?int $purchaseLineId): IncomingStock
{
$this->purchaseLineId = $purchaseLineId;
return $this;
}
public function getProduct(): Product
{
return $this->product;
}
public function setProduct(Product $product): IncomingStock
{
$this->product = $product;
return $this;
}
public function getProductAttribute(): ?ProductAttribute
{
return $this->productAttribute;
}
public function setProductAttribute(?ProductAttribute $productAttribute = null): IncomingStock
{
$this->productAttribute = $productAttribute;
return $this;
}
public function getPurchaseOrder(): string
{
return $this->purchaseOrder;
}
public function setPurchaseOrder(string $purchaseOrder): IncomingStock
{
$this->purchaseOrder = $purchaseOrder;
return $this;
}
public function getPurchaseConfirmed(): ?bool
{
return $this->purchaseConfirmed;
}
public function setPurchaseConfirmed(?bool $purchaseConfirmed): IncomingStock
{
$this->purchaseConfirmed = $purchaseConfirmed;
return $this;
}
public function getActiveStock(): ?bool
{
return $this->activeStock;
}
public function setActiveStock(?bool $activeStock): IncomingStock
{
$this->activeStock = $activeStock;
return $this;
}
public function getDate(): \DateTime
{
return $this->date;
}
public function setDate(\DateTime $date): IncomingStock
{
$this->date = $date;
return $this;
}
}