src/Entity/RevueManagement/Numero2.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Entity\RevueManagement;
  3. use App\Entity\LovManagement\NumeroStatus;
  4. use App\Entity\RapportManagement\Rapport;
  5. use App\Entity\SearchManagement\Indexation;
  6. use App\Repository\RevueManagement\Numero2Repository;
  7. use App\Traits\ActorTrait;
  8. use App\Traits\DateTrait;
  9. use App\Traits\IsDeletedTrait;
  10. use App\Traits\IsValidTrait;
  11. use Datetime;
  12. use DatetimeInterface;
  13. use DH\DoctrineAuditBundle\Annotation as Audit;
  14. use Doctrine\Common\Collections\ArrayCollection;
  15. use Doctrine\Common\Collections\Collection;
  16. use Doctrine\ORM\Mapping as ORM;
  17. use Symfony\Component\HttpFoundation\File\File;
  18. use Symfony\Component\Serializer\Annotation\Groups;
  19. use Symfony\Component\Serializer\Annotation\MaxDepth;
  20. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  21. /**
  22.  * @ORM\Entity(repositoryClass=Numero2Repository::class)
  23.  * @ORM\HasLifecycleCallbacks()
  24.  * @Audit\Auditable
  25.  * @Audit\Security(view={"ROLE_AUDIT"})
  26.  * @Vich\Uploadable
  27.  */
  28. class Numero2
  29. {
  30.     use ActorTrait;
  31.     use DateTrait;
  32.     use IsValidTrait;
  33.     use IsDeletedTrait;
  34.     
  35.     public const SUBMITTED "submitted";
  36.     public const REJECTED "rejected";
  37.     public const REPORTED "reported";
  38.     public const CONTROLLED =  "controlled";
  39.     /**
  40.      * @ORM\Id
  41.      * @ORM\GeneratedValue
  42.      * @ORM\Column(type="integer")
  43.      * @Groups({"detail", "list"})
  44.      */
  45.     private $id;
  46.     /**
  47.      * @ORM\Column(type="string", length=255)
  48.      * @Groups({"detail", "list"})
  49.      */
  50.     private $title;
  51.     /**
  52.      * @ORM\Column(type="string", length=255)
  53.      * @Groups({"detail", "list"})
  54.      */
  55.     private $numero;
  56.     /**
  57.      * @ORM\Column(type="datetime")
  58.      * @Groups({"detail", "list"})
  59.      */
  60.     private $receiptDate;
  61.     /**
  62.      * @ORM\ManyToOne(targetEntity=Revue::class, inversedBy="numeros")
  63.      * @ORM\JoinColumn(nullable=false)
  64.      */
  65.     private $revue;
  66.     /**
  67.      * @Vich\UploadableField(mapping="uploads_file_revue", fileNameProperty="fileUri")
  68.      *
  69.      * @var File
  70.      */
  71.     protected $file;
  72.     
  73.     /**
  74.      * @ORM\Column(type="string", length=255, nullable=true)
  75.      * @Groups({"detail", "list"})
  76.      */
  77.     private $fileUri;
  78.     /**
  79.      * @ORM\Column(type="boolean", nullable=true)
  80.      * @Groups({"detail", "list"})
  81.      */
  82.     private $isImage false;
  83.     /**
  84.      * @ORM\OneToMany(targetEntity=Image::class, mappedBy="numero", fetch="LAZY", cascade={"persist"}, orphanRemoval=true)
  85.      * @ORM\JoinColumn(onDelete="CASCADE")
  86.      * @ORM\OrderBy({"numeroPage" = "ASC"})
  87.      * @Groups({"detail", "list"})
  88.      * @MaxDepth(2)
  89.      */
  90.     private $images;
  91.     protected $imagesZip;
  92.     /**
  93.      * @ORM\Column(type="string", length=255, options={"default": "submitted"})
  94.      */
  95.     private $state 'submitted';
  96.     
  97.     /**
  98.      * @ORM\OneToMany(targetEntity=Rapport::class, mappedBy="numero", fetch="LAZY", cascade={"persist"}, orphanRemoval=true)
  99.      * @ORM\JoinColumn(onDelete="CASCADE")
  100.      */
  101.     private $rapports;
  102.     /**
  103.      * @ORM\Column(type="text", nullable=true)
  104.      */
  105.     private $description;
  106.     /**
  107.      * @ORM\ManyToOne(targetEntity=NumeroStatus::class)
  108.      * @ORM\JoinColumn(nullable=false)
  109.      */
  110.     private $numeroStatus;
  111.     /**
  112.      * @ORM\OneToMany(targetEntity=Numero2History::class, mappedBy="numero2", orphanRemoval=true)
  113.      * @ORM\OrderBy({"createDate" = "ASC"})
  114.      */
  115.     private $numero2Historys;
  116.     public function __construct()
  117.     {
  118.         $this->images = new ArrayCollection();
  119.         $this->rapports = new ArrayCollection();
  120.         $this->numero2Historys = new ArrayCollection();
  121.     }
  122.     public function __toString(): string
  123.     {
  124.         return (string) $this->getTitle();
  125.     }
  126.     public function getId(): ?int
  127.     {
  128.         return $this->id;
  129.     }
  130.     public function getTitle(): ?string
  131.     {
  132.         return $this->title;
  133.     }
  134.     public function setTitle(string $title): self
  135.     {
  136.         $this->title $title;
  137.         return $this;
  138.     }
  139.     public function getNumero(): ?string
  140.     {
  141.         return $this->numero;
  142.     }
  143.     public function setNumero(string $numero): self
  144.     {
  145.         $this->numero $numero;
  146.         return $this;
  147.     }
  148.     
  149.     public function getReceiptDate(): ?DatetimeInterface
  150.     {
  151.         return $this->receiptDate;
  152.     }
  153.     public function setReceiptDate(DatetimeInterface $receiptDate): self
  154.     {
  155.         $this->receiptDate $receiptDate;
  156.         return $this;
  157.     }
  158.     public function getRevue(): ?Revue
  159.     {
  160.         return $this->revue;
  161.     }
  162.     public function setRevue(?Revue $revue): self
  163.     {
  164.         $this->revue $revue;
  165.         return $this;
  166.     }
  167.     public function getFileUri(): ?string
  168.     {
  169.         return $this->fileUri;
  170.     }
  171.     public function setFileUri(?string $fileUri): self
  172.     {
  173.         $this->fileUri $fileUri;
  174.         return $this;
  175.     }
  176.     public function getFile(): ?File
  177.     {
  178.         return $this->file;
  179.     }
  180.     public function setFile(File $file null): self
  181.     {
  182.         $this->file $file;
  183.         return $this;
  184.     }
  185.     public function getIsImage(): ?bool
  186.     {
  187.         return $this->isImage;
  188.     }
  189.     public function setIsImage(?bool $isImage): self
  190.     {
  191.         $this->isImage $isImage;
  192.         return $this;
  193.     }
  194.     public function isImage(): bool
  195.     {
  196.         return $this->getIsImage();
  197.     }
  198.     public function isPdf(): bool
  199.     {
  200.         return !$this->getIsImage();
  201.     }
  202.     public function getIsPdf(): ?bool
  203.     {
  204.         return $this->isPdf();
  205.     }
  206.     /**
  207.      * @return Collection|Image[]
  208.      */
  209.     public function getImages(): Collection
  210.     {
  211.         return $this->images;
  212.     }
  213.     public function addImage(Image $image): self
  214.     {
  215.         if (!$this->images->contains($image)) {
  216.             $this->images[] = $image;
  217.             $image->setNumero($this);
  218.         }
  219.         return $this;
  220.     }
  221.     public function removeImage(Image $image): self
  222.     {
  223.         if ($this->images->removeElement($image)) {
  224.             // set the owning side to null (unless already changed)
  225.             if ($image->getNumero() === $this) {
  226.                 $image->setNumero(null);
  227.             }
  228.         }
  229.         return $this;
  230.     }
  231.     public function getImagesZip()
  232.     {
  233.         return $this->imagesZip;
  234.     }
  235.     public function setImagesZip(File $imagesZip null)
  236.     {
  237.         $this->imagesZip $imagesZip;
  238.     }
  239.     public function getState(): ?string
  240.     {
  241.         return $this->state;
  242.     }
  243.     public function setState(string $state): self
  244.     {
  245.         $this->state $state;
  246.         return $this;
  247.     }
  248.     /**
  249.      * @return Collection|Rapport[]
  250.      */
  251.     public function getRapports(): Collection
  252.     {
  253.         return $this->rapports;
  254.     }
  255.     public function addRapport(Rapport $rapport): self
  256.     {
  257.         if (!$this->rapports->contains($rapport)) {
  258.             $this->rapports[] = $rapport;
  259.             $rapport->setNumero($this);
  260.         }
  261.         return $this;
  262.     }
  263.     public function removeRapport(Rapport $rapport): self
  264.     {
  265.         if ($this->rapports->removeElement($rapport)) {
  266.             // set the owning side to null (unless already changed)
  267.             if ($rapport->getNumero() === $this) {
  268.                 $rapport->setNumero(null);
  269.             }
  270.         }
  271.         return $this;
  272.     }
  273.     public function hasRapport(): ?Rapport
  274.     {
  275.         foreach ($this->rapports as $rapport) {
  276.             return $rapport;
  277.         }
  278.         return null
  279.     }
  280.     public function getDescription(): ?string
  281.     {
  282.         return $this->description;
  283.     }
  284.     public function setDescription(?string $description): self
  285.     {
  286.         $this->description $description;
  287.         return $this;
  288.     }
  289.     public function getNumeroStatus(): ?NumeroStatus
  290.     {
  291.         return $this->numeroStatus;
  292.     }
  293.     public function setNumeroStatus(?NumeroStatus $numeroStatus): self
  294.     {
  295.         $this->numeroStatus $numeroStatus;
  296.         return $this;
  297.     }
  298.     /**
  299.      * @return Collection<int, NumeroHistory>
  300.      */
  301.     public function getNumero2Historys(): Collection
  302.     {
  303.         return $this->numero2Historys;
  304.     }
  305.     public function addNumero2History(Numero2History $numeroHistory): self
  306.     {
  307.         if (!$this->numero2Historys->contains($numeroHistory)) {
  308.             $this->numero2Historys[] = $numeroHistory;
  309.             $numeroHistory->setNumero2($this);
  310.         }
  311.         return $this;
  312.     }
  313.     public function removeNumero2History(Numero2History $numeroHistory): self
  314.     {
  315.         if ($this->numero2Historys->removeElement($numeroHistory)) {
  316.             // set the owning side to null (unless already changed)
  317.             if ($numeroHistory->getNumero2() === $this) {
  318.                 $numeroHistory->setNumero2(null);
  319.             }
  320.         }
  321.         return $this;
  322.     }
  323.     public Numero2History $lastNumero2History;
  324.     // get last NumeroHistory
  325.     public function getLastNumero2History(): ?Numero2History
  326.     {
  327.         if ($this->getNumero2Historys()->count() > 0) {
  328.             return $this->getNumero2Historys()->last();
  329.         }
  330.         return null;
  331.     }
  332.     public function getCreateDate(): ?Datetime
  333.     {
  334.         return $this->createDate;
  335.     }
  336.     public function getCreateUser()
  337.     {
  338.         return $this->createUser;
  339.         }
  340.     public function getPDFpath(): ?string
  341.     {
  342.         return $this->getLastNumero2History()->getId() . ".pdf";
  343.     }
  344. }