<?php
namespace App\Entity\Inventaires;
use App\Entity\Articles\Marque;
use App\Entity\Articles\MouvementStock;
use App\Entity\Rangements\Emplacement;
use App\Entity\Utilisateur\Utilisateur;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Symfony\Component\Validator\Constraints as Assert;
use App\Annotations\SecuredEntity;
/**
* Inventaire
*
* @ORM\Table("inventaire__inventaire")
* @ORM\Entity(repositoryClass="App\Repository\Inventaires\InventaireRepository")
* @Gedmo\SoftDeleteable(fieldName="dateSuppression",timeAware=false)
* @SecuredEntity(name="Inventaire", group="INVENTAIRES")
*/
class Inventaire
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Inventaires\ArticleInventaire", mappedBy="inventaire")
*/
private $articleInventaire;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Articles\Marque", cascade={"persist"})
*/
private $marque;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Inventaires\Type", inversedBy="inventaires")
* @ORM\JoinColumn(nullable=false)
*/
private $type;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Utilisateur\Utilisateur", inversedBy="inventaires")
* @ORM\JoinColumn(nullable=true)
*/
private $utilisateur;
/**
* @ORM\Column(name="dateCloture", type="datetime", nullable=true)
*/
private $dateCloture;
/**
* @ORM\Column(name="date", type="datetime", nullable=true)
*/
private $date;
/**
* @ORM\Column(name="date_inventaire", type="datetime", nullable=true)
*/
private $dateInventaire;
/**
* @ORM\Column(name="libelle", type="string", length=255, nullable=true)
*/
private $libelle;
/**
* @ORM\Column(name="dateSuppression", type="datetime", nullable=true)
*/
private $dateSuppression;
/**
* @ORM\Column(name="statut", type="boolean", nullable=true)
*/
private $statut;
/**
* @ORM\Column(name="inclure_article_different_zero", options={"default":false}, type="boolean", nullable=true)
*/
private $inclureArticleDifferentZero;
/**
* @ORM\Column(name="inclure_article_date_mouvement", options={"default":false}, type="boolean", nullable=true)
*/
private $inclureArticleDateMouvement;
/**
* @ORM\Column(name="a_basculer", type="boolean", nullable=true)
*/
private $aBasculer;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Rangements\Emplacement", cascade={"persist"}, inversedBy="inventaires")
* @ORM\JoinColumn(nullable=true)
*/
private $emplacement;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Articles\MouvementStock", cascade={"persist"}, mappedBy="inventaire")
*/
private $mouvementsStock;
/**
* @ORM\Column(name="date_mouvement", type="datetime", nullable=true)
*/
private $dateMouvement;
/**
* @ORM\Column(name="en_cours_traitement", type="boolean", nullable=true)
*/
private $enCoursTraitement;
/**
* @ORM\Column(name="nbArticles", type="integer", nullable=true)
*/
private $nbArticles;
public function __construct()
{
$this->date = new Datetime();
$this->dateInventaire = new Datetime();
$date = new Datetime();
$date->sub(new \DateInterval('P3Y'));
$this->dateMouvement = $date;
$this->aBasculer = false;
$this->mouvementsStock = new ArrayCollection();
$this->articleInventaire = new ArrayCollection();
}
public function getId(): int
{
return $this->id;
}
public function setDate(?DateTime $date): Inventaire
{
$this->date = $date;
return $this;
}
public function getDate(): ?DateTime
{
return $this->date;
}
public function setLibelle(?string $libelle): Inventaire
{
$this->libelle = $libelle;
return $this;
}
public function getLibelle(): ?string
{
return $this->libelle;
}
public function setDateSuppression(?DateTime $dateSuppression): Inventaire
{
$this->dateSuppression = $dateSuppression;
return $this;
}
public function getDateSuppression(): ?DateTime
{
return $this->dateSuppression;
}
public function setStatut(?bool $statut): Inventaire
{
$this->statut = $statut;
return $this;
}
public function getStatut(): ?bool
{
return $this->statut;
}
public function setUtilisateur(?Utilisateur $utilisateur): Inventaire
{
$this->utilisateur = $utilisateur;
return $this;
}
public function getUtilisateur(): ?Utilisateur
{
return $this->utilisateur;
}
public function addArticleInventaire(ArticleInventaire $articleInventaire): Inventaire
{
$this->articleInventaire[] = $articleInventaire;
$articleInventaire->setInventaire($this);
return $this;
}
public function removeArticleInventaire(ArticleInventaire $articleInventaire)
{
$this->articleInventaire->removeElement($articleInventaire);
}
public function getArticleInventaire(): Collection
{
return $this->articleInventaire;
}
public function setMarque(?Marque $marque): Inventaire
{
$this->marque = $marque;
return $this;
}
public function getMarque(): ?Marque
{
return $this->marque;
}
public function setDateCloture(?DateTime $dateCloture): Inventaire
{
$this->dateCloture = $dateCloture;
return $this;
}
public function getDateCloture(): ?DateTime
{
return $this->dateCloture;
}
public function setType(?Type $type): Inventaire
{
$this->type = $type;
return $this;
}
public function getType(): ?Type
{
return $this->type;
}
public function setEmplacement(?Emplacement $emplacement): Inventaire
{
$this->emplacement = $emplacement;
return $this;
}
public function getEmplacement(): ?Emplacement
{
return $this->emplacement;
}
public function addMouvementsStock(MouvementStock $mouvementsStock): Inventaire
{
$this->mouvementsStock[] = $mouvementsStock;
return $this;
}
public function removeMouvementsStock(MouvementStock $mouvementsStock)
{
$this->mouvementsStock->removeElement($mouvementsStock);
}
public function getMouvementsStock(): Collection
{
return $this->mouvementsStock;
}
public function setDateMouvement(?DateTime $dateMouvement): Inventaire
{
$this->dateMouvement = $dateMouvement;
return $this;
}
public function getDateMouvement(): ?DateTime
{
return $this->dateMouvement;
}
public function setEnCoursTraitement(?bool $enCoursTraitement): Inventaire
{
$this->enCoursTraitement = $enCoursTraitement;
return $this;
}
public function getEnCoursTraitement(): ?bool
{
return $this->enCoursTraitement;
}
public function setNbArticles(?int $nbArticles): Inventaire
{
$this->nbArticles = $nbArticles;
return $this;
}
public function getNbArticles(): ?int
{
return $this->nbArticles;
}
public function setDateInventaire(?DateTime $dateInventaire): Inventaire
{
$this->dateInventaire = $dateInventaire;
return $this;
}
public function getDateInventaire(): ?DateTime
{
return $this->dateInventaire;
}
public function setABasculer(?bool $aBasculer): Inventaire
{
$this->aBasculer = $aBasculer;
return $this;
}
public function getABasculer(): ?bool
{
return $this->aBasculer;
}
public function setInclureArticleDifferentZero(?bool $inclureArticleDifferentZero): Inventaire
{
$this->inclureArticleDifferentZero = $inclureArticleDifferentZero;
return $this;
}
public function getInclureArticleDifferentZero(): ?bool
{
return $this->inclureArticleDifferentZero;
}
public function setInclureArticleDateMouvement(?bool $inclureArticleDateMouvement): Inventaire
{
$this->inclureArticleDateMouvement = $inclureArticleDateMouvement;
return $this;
}
public function getInclureArticleDateMouvement(): ?bool
{
return $this->inclureArticleDateMouvement;
}
}