<?php
namespace App\Entity;
use App\Repository\StockRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=StockRepository::class)
*/
class Stock
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="integer", options={"default": 0, "comment": "Quantité physique en stock. La quantité disponible à la vente est qt_stock - qt_reserved"})
*/
private $qtStock;
/**
* @ORM\Column(type="integer")
*/
private $qtReserved;
/**
* @ORM\ManyToOne(targetEntity=Produit::class, inversedBy="stocks")
*/
private $produit;
/**
* @ORM\ManyToOne(targetEntity=ProduitDeclinationValue::class, inversedBy="stocks")
*/
private $declinationProduit;
/**
* @ORM\Column(type="string", length=255)
*/
private $storehouse;
/**
* @ORM\OneToMany(targetEntity=Activity::class, mappedBy="stock")
*/
private $activities;
public function __construct()
{
$this->activities = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getQtStock(): ?int
{
return $this->qtStock;
}
public function setQtStock(int $qtStock): self
{
$this->qtStock = $qtStock;
return $this;
}
public function getQtReserved(): ?int
{
return $this->qtReserved;
}
public function setQtReserved(int $qtReserved): self
{
$this->qtReserved = $qtReserved;
return $this;
}
public function getProduit(): ?Produit
{
return $this->produit;
}
public function setProduit(?Produit $produit): self
{
$this->produit = $produit;
return $this;
}
public function getDeclinationProduit(): ?ProduitDeclinationValue
{
return $this->declinationProduit;
}
public function setDeclinationProduit(?ProduitDeclinationValue $declinationProduit): self
{
$this->declinationProduit = $declinationProduit;
return $this;
}
public function getStorehouse(): ?string
{
return $this->storehouse;
}
public function setStorehouse(string $storehouse): self
{
$this->storehouse = $storehouse;
return $this;
}
/**
* @return Collection|Activity[]
*/
public function getActivities(): Collection
{
return $this->activities;
}
public function addActivity(Activity $activity): self
{
if( !$this->activities->contains($activity)) {
$this->activities[] = $activity;
$activity->setStock($this);
}
return $this;
}
public function removeActivity(Activity $activity): self
{
if( $this->activities->removeElement($activity)) {
// set the owning side to null (unless already changed)
if( $activity->getStock() === $this) {
$activity->setStock(null);
}
}
return $this;
}
public function __toString() {
return $this->id;
}
}