src/Infrastructure/Doctrine/Entity/DoctrineIzOrderProduct.php line 22

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Infrastructure\Doctrine\Entity;
  4. use App\Domain\Common\Entity\IzOrderColor;
  5. use App\Domain\Common\Entity\IzOrderProduct;
  6. use App\Domain\Common\Entity\IzOrderProductDivision;
  7. use App\Domain\Common\Entity\IzOrderProductRange;
  8. use App\Domain\Common\Entity\IzOrderTvaParameter;
  9. use App\Infrastructure\Doctrine\Entity\Traits\DeletableTrait;
  10. use App\Infrastructure\Resolver\ProductPictureResolver;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Gedmo\Mapping\Annotation as Gedmo;
  13. /**
  14.  * @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineIzOrderProductRepository")
  15.  *
  16.  * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false, hardDelete=false)
  17.  */
  18. class DoctrineIzOrderProduct implements IzOrderProduct
  19. {
  20.     use DeletableTrait;
  21.     /**
  22.      * @ORM\Id
  23.      * @ORM\Column(type="string", length=32, unique=true)
  24.      */
  25.     private string $codeArticle1 '';
  26.     /**
  27.      * @ORM\Column(type="string", length=32, nullable=true)
  28.      */
  29.     private ?string $cleDeRecherche null;
  30.     /**
  31.      * @ORM\Column(type="string", length=191, nullable=true)
  32.      */
  33.     private ?string $descriptionCourte null;
  34.     /**
  35.      * @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderProductDivision", inversedBy="products")
  36.      * @ORM\JoinColumn(name="code_division", referencedColumnName="code_division")
  37.      */
  38.     private ?IzOrderProductDivision $divisionProduit null;
  39.     /**
  40.      * @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderProductRange", inversedBy="products")
  41.      * @ORM\JoinColumn(name="code_gamme", referencedColumnName="code_gamme")
  42.      */
  43.     private ?IzOrderProductRange $codeGamme null;
  44.     /**
  45.      * @ORM\Column(type="string", length=191, nullable=true)
  46.      */
  47.     private ?string $codeBarre null;
  48.     /**
  49.      * @ORM\Column(type="float", nullable=true)
  50.      */
  51.     private ?float $poids null;
  52.     /**
  53.      * @ORM\Column(type="integer")
  54.      */
  55.     private int $stockPhysique 0;
  56.     /**
  57.      * @ORM\Column(type="integer")
  58.      */
  59.     private int $stockDisponible 0;
  60.     /**
  61.      * @ORM\ManyToOne(
  62.      *     targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderColor",
  63.      *     inversedBy="products",
  64.      *     cascade={"PERSIST"},
  65.      * )
  66.      * @ORM\JoinColumn(onDelete="SET NULL")
  67.      */
  68.     private ?IzOrderColor $codeCouleur null;
  69.     /**
  70.      * @ORM\Column(type="float", nullable=true)
  71.      */
  72.     private ?float $hauteur null;
  73.     /**
  74.      * @ORM\Column(type="float", nullable=true)
  75.      */
  76.     private ?float $largeur null;
  77.     /**
  78.      * @ORM\Column(type="float", nullable=true)
  79.      */
  80.     private ?float $profondeur null;
  81.     /**
  82.      * @ORM\Column(type="string", length=191, nullable=true)
  83.      */
  84.     private ?string $designation null;
  85.     /**
  86.      * @ORM\Column(type="text", nullable=true)
  87.      */
  88.     private ?string $caracteristique null;
  89.     /**
  90.      * @ORM\Column(type="string", length=191, nullable=true)
  91.      */
  92.     private ?string $composition null;
  93.     /**
  94.      * @ORM\Column(type="integer", nullable=true)
  95.      */
  96.     private ?int $colisage null;
  97.     /**
  98.      * @ORM\Column(type="integer", nullable=true)
  99.      */
  100.     private ?int $quantiteParCarton null;
  101.     /**
  102.      * @ORM\Column(type="integer", nullable=true)
  103.      */
  104.     private ?int $codeDeGestion null;
  105.     /**
  106.      * @ORM\Column(type="float", nullable=true)
  107.      */
  108.     private ?float $discountPrice null;
  109.     /**
  110.      * @ORM\Column(type="float", nullable=true)
  111.      */
  112.     private ?float $discountPercent null;
  113.     /**
  114.      * @ORM\ManyToOne(targetEntity="App\Infrastructure\Doctrine\Entity\DoctrineIzOrderTvaParameter")
  115.      */
  116.     private ?IzOrderTvaParameter $codeTva null;
  117.     /**
  118.      * @ORM\Column(type="json", nullable=true)
  119.      */
  120.     private ?array $pictures = [];
  121.     public function getCodeArticle1(): string
  122.     {
  123.         return $this->codeArticle1;
  124.     }
  125.     public function setCodeArticle1(string $codeArticle1): void
  126.     {
  127.         $this->codeArticle1 $codeArticle1;
  128.     }
  129.     public function getCleDeRecherche(): ?string
  130.     {
  131.         return $this->cleDeRecherche;
  132.     }
  133.     public function setCleDeRecherche(?string $cleDeRecherche): void
  134.     {
  135.         $this->cleDeRecherche $cleDeRecherche;
  136.     }
  137.     public function getDescriptionCourte(): ?string
  138.     {
  139.         return $this->descriptionCourte;
  140.     }
  141.     public function setDescriptionCourte(?string $descriptionCourte): void
  142.     {
  143.         $this->descriptionCourte $descriptionCourte;
  144.     }
  145.     public function getDivisionProduit(): ?IzOrderProductDivision
  146.     {
  147.         return $this->divisionProduit;
  148.     }
  149.     public function setDivisionProduit(?IzOrderProductDivision $divisionProduit): void
  150.     {
  151.         $this->divisionProduit $divisionProduit;
  152.     }
  153.     public function getCodeGamme(): ?IzOrderProductRange
  154.     {
  155.         return $this->codeGamme;
  156.     }
  157.     public function setCodeGamme(?IzOrderProductRange $codeGamme): void
  158.     {
  159.         $this->codeGamme $codeGamme;
  160.     }
  161.     public function getCodeBarre(): ?string
  162.     {
  163.         return $this->codeBarre;
  164.     }
  165.     public function setCodeBarre(?string $codeBarre): void
  166.     {
  167.         $this->codeBarre $codeBarre;
  168.     }
  169.     public function getPoids(): ?float
  170.     {
  171.         return $this->poids;
  172.     }
  173.     public function setPoids(?float $poids): void
  174.     {
  175.         $this->poids $poids;
  176.     }
  177.     public function getStockPhysique(): int
  178.     {
  179.         return $this->stockPhysique;
  180.     }
  181.     public function setStockPhysique(int $stockPhysique): void
  182.     {
  183.         $this->stockPhysique $stockPhysique;
  184.     }
  185.     public function getStockDisponible(): int
  186.     {
  187.         return $this->stockDisponible;
  188.     }
  189.     public function setStockDisponible(int $stockDisponible): void
  190.     {
  191.         $this->stockDisponible $stockDisponible;
  192.     }
  193.     public function getCodeCouleur(): ?IzOrderColor
  194.     {
  195.         return $this->codeCouleur;
  196.     }
  197.     public function setCodeCouleur(?IzOrderColor $codeCouleur): void
  198.     {
  199.         $this->codeCouleur $codeCouleur;
  200.     }
  201.     public function getHauteur(): ?float
  202.     {
  203.         return $this->hauteur;
  204.     }
  205.     public function setHauteur(?float $hauteur): void
  206.     {
  207.         $this->hauteur $hauteur;
  208.     }
  209.     public function getLargeur(): ?float
  210.     {
  211.         return $this->largeur;
  212.     }
  213.     public function setLargeur(?float $largeur): void
  214.     {
  215.         $this->largeur $largeur;
  216.     }
  217.     public function getProfondeur(): ?float
  218.     {
  219.         return $this->profondeur;
  220.     }
  221.     public function setProfondeur(?float $profondeur): void
  222.     {
  223.         $this->profondeur $profondeur;
  224.     }
  225.     public function getDesignation(): ?string
  226.     {
  227.         return $this->designation;
  228.     }
  229.     public function setDesignation(?string $designation): void
  230.     {
  231.         $this->designation $designation;
  232.     }
  233.     public function getCaracteristique(): ?string
  234.     {
  235.         return $this->caracteristique;
  236.     }
  237.     public function setCaracteristique(?string $caracteristique): void
  238.     {
  239.         $this->caracteristique $caracteristique;
  240.     }
  241.     public function getComposition(): ?string
  242.     {
  243.         return $this->composition;
  244.     }
  245.     public function setComposition(?string $composition): void
  246.     {
  247.         $this->composition $composition;
  248.     }
  249.     public function getColisage(): ?int
  250.     {
  251.         return $this->colisage;
  252.     }
  253.     public function setColisage(?int $colisage): void
  254.     {
  255.         $this->colisage $colisage;
  256.     }
  257.     public function getQuantiteParCarton(): ?int
  258.     {
  259.         return $this->quantiteParCarton;
  260.     }
  261.     public function setQuantiteParCarton(?int $quantiteParCarton): void
  262.     {
  263.         $this->quantiteParCarton $quantiteParCarton;
  264.     }
  265.     public function getCodeDeGestion(): ?int
  266.     {
  267.         return $this->codeDeGestion;
  268.     }
  269.     public function setCodeDeGestion(?int $codeDeGestion): void
  270.     {
  271.         $this->codeDeGestion $codeDeGestion;
  272.     }
  273.     public function getDiscountPrice(): ?float
  274.     {
  275.         return $this->discountPrice;
  276.     }
  277.     public function setDiscountPrice(?float $discountPrice): void
  278.     {
  279.         $this->discountPrice $discountPrice;
  280.     }
  281.     public function getDiscountPercent(): ?float
  282.     {
  283.         return $this->discountPercent;
  284.     }
  285.     public function setDiscountPercent(?float $discountPercent): void
  286.     {
  287.         $this->discountPercent $discountPercent;
  288.     }
  289.     public function getCodeTva(): ?IzOrderTvaParameter
  290.     {
  291.         return $this->codeTva;
  292.     }
  293.     public function setCodeTva(?IzOrderTvaParameter $codeTva): void
  294.     {
  295.         $this->codeTva $codeTva;
  296.     }
  297.     public function getPictures(): array
  298.     {
  299.         if (empty($this->pictures)) {
  300.             return [ProductPictureResolver::PICTURE_PLACEHOLDER => null];
  301.         }
  302.         return $this->pictures;
  303.     }
  304.     public function getFirstPicture(): string
  305.     {
  306.         return array_keys($this->getPictures())[0];
  307.     }
  308.     public function setPictures(array $pictures): void
  309.     {
  310.         $this->pictures $pictures;
  311.     }
  312. }