<?php
namespace App\Entity;
use App\Repository\ProduitRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\ProduitRepository")
*/
class Produit
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $nomproduit;
/**
* @ORM\Column(type="text")
*/
private $journalproduit;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $datesuppressionproduit;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $datecreationproduit;
/**
* Flag actif/inactif. Par défaut 1 (actif).
* Un produit inactif reste référencé par les transactions historiques
* mais n'apparaît plus dans les listes de saisie.
*
* @ORM\Column(type="boolean", options={"default":1})
*/
private $actif = true;
/**
* @ORM\ManyToMany(targetEntity=Entite::class, mappedBy="produits")
*/
private Collection $entites;
public function __construct()
{
$this->entites = new ArrayCollection();
}
public function getEntites(): Collection { return $this->entites; }
public function getId(): ?int
{
return $this->id;
}
public function getNomproduit(): ?string
{
return $this->nomproduit;
}
public function setNomproduit(string $nomproduit): static
{
$this->nomproduit = $nomproduit;
return $this;
}
public function getJournalproduit(): ?string
{
return $this->journalproduit;
}
public function setJournalproduit(string $journalproduit): static
{
$this->journalproduit = $journalproduit;
return $this;
}
public function getDatesuppressionproduit(): ?\DateTimeInterface
{
return $this->datesuppressionproduit;
}
public function setDatesuppressionproduit(?\DateTimeInterface $datesuppressionproduit): static
{
$this->datesuppressionproduit = $datesuppressionproduit;
return $this;
}
public function getDatecreationproduit(): ?\DateTimeInterface
{
return $this->datecreationproduit;
}
public function setDatecreationproduit(?\DateTimeInterface $datecreationproduit): static
{
$this->datecreationproduit = $datecreationproduit;
return $this;
}
public function isActif(): bool
{
return (bool) $this->actif;
}
public function setActif(bool $actif): static
{
$this->actif = $actif;
return $this;
}
public function toArray(): array
{
return [
'id' => $this->id,
'nomproduit' => $this->nomproduit,
'actif' => (bool) $this->actif,
'datecreationproduit' => $this->datecreationproduit?->format(\DateTimeInterface::ATOM),
'datesuppressionproduit' => $this->datesuppressionproduit?->format(\DateTimeInterface::ATOM),
];
}
}