src/Entity/ProduitDeclinationValue.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\ProduitDeclinationValueRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use JsonSerializable;
  8. use Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface;
  9. /**
  10.  * @ORM\Entity(repositoryClass=ProduitDeclinationValueRepository::class)
  11.  */
  12. class ProduitDeclinationValue implements JsonSerializable
  13. {
  14.     private $appUrl;
  15.     /**
  16.      * @ORM\Id
  17.      * @ORM\GeneratedValue
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\Column(type="string", length=255)
  23.      */
  24.     private $reference;
  25.     /**
  26.      * @ORM\Column(type="string", length=255)
  27.      */
  28.     private $name;
  29.     /**
  30.      * @ORM\Column(type="text", nullable=true)
  31.      */
  32.     private $description;
  33.     /**
  34.      * @ORM\Column(type="float", nullable=true)
  35.      */
  36.     private $buying_price;
  37.     /**
  38.      * @ORM\Column(type="float", nullable=true)
  39.      */
  40.     private $price_ht;
  41.     /**
  42.      * @ORM\Column(type="datetime")
  43.      */
  44.     private $createdAt;
  45.     /**
  46.      * @ORM\ManyToOne(targetEntity=Produit::class, inversedBy="produitDeclinationValues")
  47.      * @ORM\JoinColumn(nullable=false)
  48.      */
  49.     private $produit;
  50.     /**
  51.      * @ORM\OneToMany(targetEntity=GroupDeclinationValue::class, mappedBy="produitDeclination")
  52.      */
  53.     private $groupDeclinationValues;
  54.     /**
  55.      * @ORM\ManyToMany(targetEntity=File::class, cascade={"persist"})
  56.      */
  57.     private $picture;
  58.     /**
  59.      * @ORM\OneToMany(targetEntity=DocumentDeclinationProduit::class, mappedBy="produitDeclinationValue")
  60.      */
  61.     private $documentDeclinationProduits;
  62.     /**
  63.      * @ORM\OneToMany(targetEntity=Stock::class, mappedBy="declinationProduit")
  64.      */
  65.     private $stocks;
  66.     /**
  67.      * @ORM\Column(type="integer", nullable=true)
  68.      */
  69.     private $uuid;
  70.     /**
  71.      * @ORM\OneToMany(targetEntity=Activity::class, mappedBy="produitDeclination")
  72.      */
  73.     private $activities;
  74.     public function __construct(ContainerBagInterface $appUrl=NULL)
  75.     {
  76.         $this->groupDeclinationValues = new ArrayCollection();
  77.         $this->picture = new ArrayCollection();
  78.         $this->documentDeclinationProduits = new ArrayCollection();
  79.         $this->stocks = new ArrayCollection();
  80.         $this->activities = new ArrayCollection();
  81.         $this->appUrl $appUrl;
  82.     }
  83.     public function getId(): ?int
  84.     {
  85.         return $this->id;
  86.     }
  87.     public function getReference(): ?string
  88.     {
  89.         return $this->reference;
  90.     }
  91.     public function setReference(string $reference): self
  92.     {
  93.         $this->reference $reference;
  94.         return $this;
  95.     }
  96.     public function getName(): ?string
  97.     {
  98.         return $this->name;
  99.     }
  100.     public function setName(string $name): self
  101.     {
  102.         $this->name $name;
  103.         return $this;
  104.     }
  105.     public function getDescription(): ?string
  106.     {
  107.         return $this->description;
  108.     }
  109.     public function setDescription(?string $description): self
  110.     {
  111.         $this->description $description;
  112.         return $this;
  113.     }
  114.     public function getBuyingPrice(): ?float
  115.     {
  116.         return $this->buying_price;
  117.     }
  118.     public function setBuyingPrice(?float $buying_price): self
  119.     {
  120.         $this->buying_price $buying_price;
  121.         return $this;
  122.     }
  123.     public function getPriceHt(): ?float
  124.     {
  125.         return $this->price_ht;
  126.     }
  127.     public function setPriceHt(?float $price_ht): self
  128.     {
  129.         $this->price_ht $price_ht;
  130.         return $this;
  131.     }
  132.     public function getCreatedAt(): ?\DateTimeInterface
  133.     {
  134.         return $this->createdAt;
  135.     }
  136.     public function setCreatedAt(\DateTimeInterface $createdAt): self
  137.     {
  138.         $this->createdAt $createdAt;
  139.         return $this;
  140.     }
  141.     public function getProduit(): ?Produit
  142.     {
  143.         return $this->produit;
  144.     }
  145.     public function setProduit(?Produit $produit): self
  146.     {
  147.         $this->produit $produit;
  148.         return $this;
  149.     }
  150.     /**
  151.      * @return Collection|GroupDeclinationValue[]
  152.      */
  153.     public function getGroupDeclinationValues(): Collection
  154.     {
  155.         return $this->groupDeclinationValues;
  156.     }
  157.     public function addGroupDeclinationValue(GroupDeclinationValue $groupDeclinationValue): self
  158.     {
  159.         if (!$this->groupDeclinationValues->contains($groupDeclinationValue)) {
  160.             $this->groupDeclinationValues[] = $groupDeclinationValue;
  161.             $groupDeclinationValue->setProduitDeclination($this);
  162.         }
  163.         return $this;
  164.     }
  165.     public function removeGroupDeclinationValue(GroupDeclinationValue $groupDeclinationValue): self
  166.     {
  167.         if ($this->groupDeclinationValues->removeElement($groupDeclinationValue)) {
  168.             // set the owning side to null (unless already changed)
  169.             if ($groupDeclinationValue->getProduitDeclination() === $this) {
  170.                 $groupDeclinationValue->setProduitDeclination(null);
  171.             }
  172.         }
  173.         return $this;
  174.     }
  175.     /**
  176.      * @return Collection|File[]
  177.      */
  178.     public function getPicture(): Collection
  179.     {
  180.         return $this->picture;
  181.     }
  182.     public function addPicture(File $picture): self
  183.     {
  184.         if (!$this->picture->contains($picture)) {
  185.             $this->picture[] = $picture;
  186.         }
  187.         return $this;
  188.     }
  189.     public function removePicture(File $picture): self
  190.     {
  191.         $this->picture->removeElement($picture);
  192.         return $this;
  193.     }
  194.     /**
  195.      * @return Collection|DocumentDeclinationProduit[]
  196.      */
  197.     public function getDocumentDeclinationProduits(): Collection
  198.     {
  199.         return $this->documentDeclinationProduits;
  200.     }
  201.     public function addDocumentDeclinationProduit(DocumentDeclinationProduit $documentDeclinationProduit): self
  202.     {
  203.         if (!$this->documentDeclinationProduits->contains($documentDeclinationProduit)) {
  204.             $this->documentDeclinationProduits[] = $documentDeclinationProduit;
  205.             $documentDeclinationProduit->setProduitDeclinationValue($this);
  206.         }
  207.         return $this;
  208.     }
  209.     public function removeDocumentDeclinationProduit(DocumentDeclinationProduit $documentDeclinationProduit): self
  210.     {
  211.         if ($this->documentDeclinationProduits->removeElement($documentDeclinationProduit)) {
  212.             // set the owning side to null (unless already changed)
  213.             if ($documentDeclinationProduit->getProduitDeclinationValue() === $this) {
  214.                 $documentDeclinationProduit->setProduitDeclinationValue(null);
  215.             }
  216.         }
  217.         return $this;
  218.     }
  219.     /**
  220.      * @return Collection|Stock[]
  221.      */
  222.     public function getStocks(): Collection
  223.     {
  224.         return $this->stocks;
  225.     }
  226.     public function addStock(Stock $stock): self
  227.     {
  228.         if (!$this->stocks->contains($stock)) {
  229.             $this->stocks[] = $stock;
  230.             $stock->setDeclinationProduit($this);
  231.         }
  232.         return $this;
  233.     }
  234.     public function removeStock(Stock $stock): self
  235.     {
  236.         if ($this->stocks->removeElement($stock)) {
  237.             // set the owning side to null (unless already changed)
  238.             if ($stock->getDeclinationProduit() === $this) {
  239.                 $stock->setDeclinationProduit(null);
  240.             }
  241.         }
  242.         return $this;
  243.     }
  244.     public function getUuid(): ?int
  245.     {
  246.         return $this->uuid;
  247.     }
  248.     public function setUuid(?int $uuid): self
  249.     {
  250.         $this->uuid $uuid;
  251.         return $this;
  252.     }
  253.     /**
  254.      * @return Collection|Activity[]
  255.      */
  256.     public function getActivities(): Collection
  257.     {
  258.         return $this->activities;
  259.     }
  260.     public function addActivity(Activity $activity): self
  261.     {
  262.         if (!$this->activities->contains($activity)) {
  263.             $this->activities[] = $activity;
  264.             $activity->setProduitDeclination($this);
  265.         }
  266.         return $this;
  267.     }
  268.     public function removeActivity(Activity $activity): self
  269.     {
  270.         if ($this->activities->removeElement($activity)) {
  271.             // set the owning side to null (unless already changed)
  272.             if ($activity->getProduitDeclination() === $this) {
  273.                 $activity->setProduitDeclination(null);
  274.             }
  275.         }
  276.         return $this;
  277.     }
  278.     public function jsonSerialize()
  279.     {
  280.         $tabPictures=[];
  281.         foreach ($this->getPicture() as $picture) {
  282.             array_push($tabPictures$picture->getImageName());
  283.         }
  284.         foreach ($tabPictures as $key => $picture_name){
  285.             $tabPictures[$key] =(empty($tabPictures))?'no-image.png':$picture_name;
  286.             if(!empty($tabPictures) && file_exists($_ENV['APP_URL']."/public/images/".$picture_name) && !file_exists($_ENV['APP_URL']."/public/images/thumbs/".$picture_name))
  287.                 $this->resizeImage($picture_name);
  288.             /*if(!empty($tabPictures) && !file_exists($_ENV['APP_URL']."/public/images/".$picture_name) && !file_exists($_ENV['APP_URL']."/public/images/thumbs/".$picture_name)){
  289.                 $tabPictures[$key] = 'no-image.png';
  290.             }*/
  291.         }
  292.         return array(
  293.             'id'=>$this->getId(),
  294.             'picture' => $tabPictures,
  295.             'priceHT' => $this->getPriceHt(),
  296.             'groupDeclinationValues' => $this->getgroupDeclinationValues()->toArray()
  297.         );
  298.     }
  299. }