src/Entity/Iva.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\IvaRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Blameable\Traits\BlameableEntity;
  8. use Gedmo\Timestampable\Traits\TimestampableEntity;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. use Symfony\Component\Serializer\Annotation\Groups;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. #[ORM\Entity(repositoryClassIvaRepository::class)]
  13. #[UniqueEntity('percentage')]
  14. class Iva
  15. {
  16.     use BlameableEntity//Hook blameable behaviour. Updates createdBy, updatedBy fields
  17.     use TimestampableEntity//Hook timestampable behaviour. Updates createdAt, updatedAt fields 
  18.     
  19.     #[ORM\Id]
  20.     #[ORM\GeneratedValue(strategy"IDENTITY")]
  21.     #[ORM\Column]
  22.     #[Groups("serial")]
  23.     private ?int $id null;
  24.     #[ORM\Column]
  25.     #[Assert\NotNull()]
  26.     #[Groups("serial")]
  27.     private ?float $percentage null;
  28.     #[ORM\Column(length255nullabletrue)]
  29.     #[Assert\Length(max255)]
  30.     private ?string $description null;
  31.     #[ORM\OneToMany(mappedBy'iva'targetEntityProduct::class)]
  32.     private Collection $products;
  33.     #[ORM\OneToMany(mappedBy'iva'targetEntityProduct::class)]
  34.     private Collection $productUniques;
  35.     public function __toString()
  36.     {
  37.         return $this->percentage;
  38.     }
  39.     public function __construct()
  40.     {
  41.         $this->products = new ArrayCollection();
  42.         $this->productUniques = new ArrayCollection();
  43.     }
  44.     public function getId(): ?int
  45.     {
  46.         return $this->id;
  47.     }
  48.     public function getPercentage(): ?float
  49.     {
  50.         return $this->percentage;
  51.     }
  52.     public function setPercentage(float $percentage): self
  53.     {
  54.         $this->percentage $percentage;
  55.         return $this;
  56.     }
  57.     public function getDescription(): ?string
  58.     {
  59.         return $this->description;
  60.     }
  61.     public function setDescription(?string $description): self
  62.     {
  63.         $this->description $description;
  64.         return $this;
  65.     }
  66.     /**
  67.      * @return Collection<int, Product>
  68.      */
  69.     public function getProducts(): Collection
  70.     {
  71.         return $this->products;
  72.     }
  73.     public function addProduct(Product $product): self
  74.     {
  75.         if (!$this->products->contains($product)) {
  76.             $this->products->add($product);
  77.             $product->setIva($this);
  78.         }
  79.         return $this;
  80.     }
  81.     public function removeProduct(Product $product): self
  82.     {
  83.         if ($this->products->removeElement($product)) {
  84.             // set the owning side to null (unless already changed)
  85.             if ($product->getIva() === $this) {
  86.                 $product->setIva(null);
  87.             }
  88.         }
  89.         return $this;
  90.     }
  91.     /**
  92.      * @return Collection<int, Product>
  93.      */
  94.     public function getProductUniques(): Collection
  95.     {
  96.         return $this->productUniques;
  97.     }
  98.     public function addProductUnique(ProductUnique $productUnique): self
  99.     {
  100.         if (!$this->productUniques->contains($productUnique)) {
  101.             $this->productUniques->add($productUnique);
  102.             $productUnique->setIva($this);
  103.         }
  104.         return $this;
  105.     }
  106.     public function removeProductUnique(ProductUnique $productUnique): self
  107.     {
  108.         if ($this->productUniques->removeElement($productUnique)) {
  109.             // set the owning side to null (unless already changed)
  110.             if ($productUnique->getIva() === $this) {
  111.                 $productUnique->setIva(null);
  112.             }
  113.         }
  114.         return $this;
  115.     }
  116. }