src/Entity/CRM/Product.php line 12

  1. <?php
  2. namespace App\Entity\CRM;
  3. use App\Repository\ProductRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Finder\Finder;
  8. #[ORM\Entity(repositoryClassProductRepository::class)]
  9. class Product
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\GeneratedValue]
  13.     #[ORM\Column]
  14.     private ?int $id null;
  15.     #[ORM\Column(length255)]
  16.     private ?string $name null;
  17.     #[ORM\Column]
  18.     private ?float $priceSubtotal null;
  19.     #[ORM\Column]
  20.     private float $minimalSellPrice 0;
  21.     #[ORM\Column]
  22.     private int $priority 0;
  23.     #[ORM\Column]
  24.     private bool $implementation false;
  25.     #[ORM\Column]
  26.     private bool $parent false;
  27.     #[ORM\Column]
  28.     private bool $eumowa false;
  29.     #[ORM\Column]
  30.     private bool $umowa false;
  31.     #[ORM\Column]
  32.     private bool $eumowabiuro false;
  33.     #[ORM\Column]
  34.     private bool $eumowarodobhp false;
  35.     #[ORM\Column]
  36.     private bool $eumowaiod false;
  37.     #[ORM\Column]
  38.     private bool $eumowabdo false;
  39.     #[ORM\Column]
  40.     private bool $eumowabhpstacjonarna false;
  41.     #[ORM\Column]
  42.     private bool $audytbezpieczenstwa false;
  43.     #[ORM\Column]
  44.     private bool $sprawozdanie false;
  45.     #[ORM\Column]
  46.     private bool $doSprawozdania false;
  47.     #[ORM\Column(nullabletrue)]
  48.     private ?int $platformProductId null;
  49.     #[ORM\Column(nullabletrue)]
  50.     private ?int $optimaCodeId null;
  51.     #[ORM\Column(nullabletrue)]
  52.     private int $tax;
  53.     #[ORM\ManyToMany(targetEntityProductCategory::class, inversedBy'products')]
  54.     private Collection $category;
  55.     #[ORM\Column]
  56.     private bool $isActive true;
  57.     #[ORM\OneToMany(mappedBy'product'targetEntityOrderProduct::class)]
  58.     private Collection $orderProducts;
  59.     #[ORM\ManyToMany(targetEntityProductServices::class, inversedBy'products')]
  60.     #[ORM\JoinTable(name'product_product_services')]
  61.     #[ORM\JoinColumn(name'product_id'referencedColumnName'id'onDelete'CASCADE')]
  62.     #[ORM\InverseJoinColumn(name'product_service_id'referencedColumnName'id'onDelete'CASCADE')]
  63.     private Collection $productServices;
  64.     #[ORM\ManyToOne(inversedBy'products')]
  65.     private ?ContractTemplate $contractTemplate null;
  66.     #[ORM\Column(length1500nullabletrue)]
  67.     private ?string $paragraphOfContract null;
  68.     #[ORM\Column]
  69.     private bool $forBhp false;
  70.   
  71.     #[ORM\ManyToMany(targetEntityself::class, inversedBy'childProducts')]
  72.     private Collection $parentProducts;
  73.     #[ORM\ManyToMany(targetEntityself::class, mappedBy'parentProducts')]
  74.     private Collection $childProducts;
  75.     #[ORM\OneToMany(mappedBy'product'targetEntityImplementerOrderProduct::class)]
  76.     private Collection $implementerOrderProducts;
  77.     #[ORM\Column]
  78.     private bool $forBR false;
  79.     #[ORM\Column]
  80.     private bool $haveMailAttachments false;
  81.     private array $files = [];
  82.     #[ORM\Column]
  83.     private bool $autoMail false;
  84.     #[ORM\OneToMany(mappedBy'product'targetEntityConsultantReward::class)]
  85.     private Collection $consultantRewards;
  86.     #[ORM\OneToMany(mappedBy'product'targetEntityDepartmentTypeProductReward::class, orphanRemovaltrue)]
  87.     private Collection $departmentTypeProductRewards;
  88.     #[ORM\Column]
  89.     private ?bool $additionalCourses null;
  90.     #[ORM\ManyToOne(inversedBy'products')]
  91.     private ?Agreement $agreement null;
  92.     #[ORM\Column]
  93.     private ?bool $eumowaamlrodo null;
  94.     #[ORM\Column]
  95.     private ?bool $eumowaaml null;
  96.     #[ORM\Column]
  97.     private ?bool $transport null;
  98.     #[ORM\Column]
  99.     private bool $automaticallyDoBeforePayment false;
  100.     #[ORM\Column]
  101.     private bool $endWithoutAudit false;
  102.     #[ORM\ManyToMany(targetEntityAdmin::class, inversedBy'products')]
  103.     private Collection $adminToInfo;
  104.     #[ORM\Column]
  105.     private ?bool $auditRemote null;
  106.     #[ORM\Column]
  107.     private bool $eumowalicencyjnawebaml false;
  108.     #[ORM\Column]
  109.     private bool $eumowalicencyjnawebamlpartnerska false;
  110.     #[ORM\Column]
  111.     private ?bool $freeWebinar null;
  112.     #[ORM\Column]
  113.     private bool $eumowalicencyjnawebamlnieruchomosci false;
  114.     #[ORM\Column]
  115.     private bool $eumowakontrolazarzadczajst false;
  116.     #[ORM\Column(length255nullabletrue)]
  117.     private ?string $licenseType null;
  118.     #[ORM\Column]
  119.     private int $administrationFee 0;
  120.     #[ORM\ManyToMany(targetEntityself::class)]
  121.     #[ORM\JoinTable(name'product_similar_products')]
  122.     private Collection $similarProducts;
  123.     #[ORM\Column]
  124.     private ?bool $protocol null;
  125.     #[ORM\Column]
  126.     private ?bool $zoom null;
  127.     #[ORM\Column]
  128.     private bool $withoutPriceChange false;
  129.     #[ORM\Column]
  130.     private bool $aneks false;
  131.     #[ORM\Column(type'text'nullabletrue)]
  132.     private ?string $salesPill null;
  133.     public function __construct()
  134.     {
  135.         $this->category = new ArrayCollection();
  136.         $this->orderProducts = new ArrayCollection();
  137.         $this->productServices = new ArrayCollection();
  138.         $this->contracts = new ArrayCollection();
  139.         $this->parentProducts = new ArrayCollection();
  140.         $this->childProducts = new ArrayCollection();
  141.         $this->implementerOrderProducts = new ArrayCollection();
  142.         $this->consultantRewards = new ArrayCollection();
  143.         $this->departmentTypeProductRewards = new ArrayCollection();
  144.         $this->adminToInfo = new ArrayCollection();
  145.         $this->similarProducts = new ArrayCollection();
  146.         $this->optimaCodeId NULL;
  147.         $this->protocol false;
  148.         $this->zoom false;
  149.         $this->withoutPriceChange false;
  150.         $this->aneks false;
  151.     }
  152.     public function __toString(): string
  153.     {
  154.         return $this->id ' ' $this->name;
  155.     }
  156.     public function getId(): ?int
  157.     {
  158.         return $this->id;
  159.     }
  160.     public function getName(): ?string
  161.     {
  162.         return $this->name;
  163.     }
  164.     public function setName(string $name): self
  165.     {
  166.         $this->name $name;
  167.         return $this;
  168.     }
  169.     public function getPriceSubtotal(): ?float
  170.     {
  171.         return $this->priceSubtotal;
  172.     }
  173.     public function setPriceSubtotal(float $priceSubtotal): self
  174.     {
  175.         $this->priceSubtotal $priceSubtotal;
  176.         return $this;
  177.     }
  178.     public function getMinimalSellPrice(): float
  179.     {
  180.         return $this->minimalSellPrice;
  181.     }
  182.     public function setMinimalSellPrice(float $minimalSellPrice): void
  183.     {
  184.         $this->minimalSellPrice $minimalSellPrice;
  185.     }
  186.     public function getPriority(): int
  187.     {
  188.         return $this->priority;
  189.     }
  190.     public function setPriority(int $priority): void
  191.     {
  192.         $this->priority $priority;
  193.     }
  194.     public function getPriceTotal(): ?float
  195.     {
  196.         return $this->priceSubtotal + ($this->priceSubtotal * ($this->tax 100));
  197.     }
  198.     public function isImplementation(): ?bool
  199.     {
  200.         return $this->implementation;
  201.     }
  202.     public function setImplementation(bool $implementation): self
  203.     {
  204.         $this->implementation $implementation;
  205.         return $this;
  206.     }
  207.     public function isParent(): ?bool
  208.     {
  209.         return $this->parent;
  210.     }
  211.     public function setParent(bool $parent): self
  212.     {
  213.         $this->parent $parent;
  214.         return $this;
  215.     }
  216.     public function isEumowa(): ?bool
  217.     {
  218.         return $this->eumowa;
  219.     }
  220.     public function setEumowa(bool $eumowa): self
  221.     {
  222.         $this->eumowa $eumowa;
  223.         return $this;
  224.     }
  225.     public function isUmowa(): ?bool
  226.     {
  227.         return $this->umowa;
  228.     }
  229.     public function setUmowa(bool $umowa): self
  230.     {
  231.         $this->umowa $umowa;
  232.         return $this;
  233.     }
  234.     public function isEumowabiuro(): ?bool
  235.     {
  236.         return $this->eumowabiuro;
  237.     }
  238.     public function setEumowabiuro(bool $eumowabiuro): self
  239.     {
  240.         $this->eumowabiuro $eumowabiuro;
  241.         return $this;
  242.     }
  243.     public function isEumowarodobhp(): ?bool
  244.     {
  245.         return $this->eumowarodobhp;
  246.     }
  247.     public function setEumowarodobhp(bool $eumowarodobhp): self
  248.     {
  249.         $this->eumowarodobhp $eumowarodobhp;
  250.         return $this;
  251.     }
  252.     public function isEumowaiod(): ?bool
  253.     {
  254.         return $this->eumowaiod;
  255.     }
  256.     public function setEumowaiod(bool $eumowaiod): self
  257.     {
  258.         $this->eumowaiod $eumowaiod;
  259.         return $this;
  260.     }
  261.     public function isEumowabdo(): ?bool
  262.     {
  263.         return $this->eumowabdo;
  264.     }
  265.     public function setEumowabdo(bool $eumowabdo): self
  266.     {
  267.         $this->eumowabdo $eumowabdo;
  268.         return $this;
  269.     }
  270.     public function isEumowabhpstacjonarna(): ?bool
  271.     {
  272.         return $this->eumowabhpstacjonarna;
  273.     }
  274.     public function setEumowabhpstacjonarna(bool $eumowabhpstacjonarna): self
  275.     {
  276.         $this->eumowabhpstacjonarna $eumowabhpstacjonarna;
  277.         return $this;
  278.     }
  279.     public function isAudytbezpieczenstwa(): ?bool
  280.     {
  281.         return $this->audytbezpieczenstwa;
  282.     }
  283.     public function setAudytbezpieczenstwa(bool $audytbezpieczenstwa): self
  284.     {
  285.         $this->audytbezpieczenstwa $audytbezpieczenstwa;
  286.         return $this;
  287.     }
  288.     public function isSprawozdanie(): ?bool
  289.     {
  290.         return $this->sprawozdanie;
  291.     }
  292.     public function setSprawozdanie(bool $sprawozdanie): self
  293.     {
  294.         $this->sprawozdanie $sprawozdanie;
  295.         return $this;
  296.     }
  297.     public function isDoSprawozdania(): ?bool
  298.     {
  299.         return $this->doSprawozdania;
  300.     }
  301.     public function setDoSprawozdania(bool $doSprawozdania): self
  302.     {
  303.         $this->doSprawozdania $doSprawozdania;
  304.         return $this;
  305.     }
  306.     public function getTax(): int
  307.     {
  308.         return $this->tax;
  309.     }
  310.     public function setTax(int $tax): void
  311.     {
  312.         $this->tax $tax;
  313.     }
  314.     public function getPlatformProductId(): ?int
  315.     {
  316.         return $this->platformProductId;
  317.     }
  318.     public function setPlatformProductId(?int $platformProductId): self
  319.     {
  320.         $this->platformProductId $platformProductId;
  321.         return $this;
  322.     }
  323.     public function getOptimaCodeId(): ?int
  324.     {
  325.         return $this->optimaCodeId;
  326.     }
  327.     public function setOptimaCodeId(?int $optimaCodeId): self
  328.     {
  329.         $this->optimaCodeId $optimaCodeId;
  330.         return $this;
  331.     }
  332.     public function getCategory(): Collection
  333.     {
  334.         return $this->category;
  335.     }
  336.     public function addCategory(ProductCategory $category): self
  337.     {
  338.         if (!$this->category->contains($category)) {
  339.             $this->category->add($category);
  340.         }
  341.         return $this;
  342.     }
  343.     public function removeCategory(ProductCategory $category): self
  344.     {
  345.         $this->category->removeElement($category);
  346.         return $this;
  347.     }
  348.     public function isIsActive(): ?bool
  349.     {
  350.         return $this->isActive;
  351.     }
  352.     public function setIsActive(bool $isActive): self
  353.     {
  354.         $this->isActive $isActive;
  355.         return $this;
  356.     }
  357.     public function getOrderProducts(): Collection
  358.     {
  359.         return $this->orderProducts;
  360.     }
  361.     public function addOrderProduct(OrderProduct $orderProduct): self
  362.     {
  363.         if (!$this->orderProducts->contains($orderProduct)) {
  364.             $this->orderProducts->add($orderProduct);
  365.             $orderProduct->setProduct($this);
  366.         }
  367.         return $this;
  368.     }
  369.     public function removeOrderProduct(OrderProduct $orderProduct): self
  370.     {
  371.         if ($this->orderProducts->removeElement($orderProduct)) {
  372.             if ($orderProduct->getProduct() === $this) {
  373.                 $orderProduct->setProduct(null);
  374.             }
  375.         }
  376.         return $this;
  377.     }
  378.     /**
  379.      * @return Collection<int, ProductServices>
  380.      */
  381.     public function getProductServices(): Collection
  382.     {
  383.         return $this->productServices;
  384.     }
  385.     public function addProductService(ProductServices $productService): static
  386.     {
  387.         if (!$this->productServices->contains($productService)) {
  388.             $this->productServices->add($productService);
  389.             $productService->addProduct($this);
  390.         }
  391.         return $this;
  392.     }
  393.     public function removeProductService(ProductServices $productService): static
  394.     {
  395.         if ($this->productServices->removeElement($productService)) {
  396.             $productService->removeProduct($this);
  397.         }
  398.         return $this;
  399.     }
  400.     public function getContractTemplate(): ?ContractTemplate
  401.     {
  402.         return $this->contractTemplate;
  403.     }
  404.     public function setContractTemplate(?ContractTemplate $contractTemplate): static
  405.     {
  406.         $this->contractTemplate $contractTemplate;
  407.         return $this;
  408.     }
  409.     /**
  410.      * @param int|null $id
  411.      */
  412.     public function setId(?int $id): void
  413.     {
  414.         $this->id $id;
  415.     }
  416.     public function getParagraphOfContract(): ?string
  417.     {
  418.         return $this->paragraphOfContract;
  419.     }
  420.     public function setParagraphOfContract(?string $paragraphOfContract): static
  421.     {
  422.         $this->paragraphOfContract $paragraphOfContract;
  423.         return $this;
  424.     }
  425.     /**
  426.      * @return Collection<int, self>
  427.      */
  428.     public function getParentProducts(): Collection
  429.     {
  430.         return $this->parentProducts;
  431.     }
  432.     public function addParentProduct(self $parentProduct): static
  433.     {
  434.         if (!$this->parentProducts->contains($parentProduct)) {
  435.             $this->parentProducts->add($parentProduct);
  436.         }
  437.         return $this;
  438.     }
  439.     public function removeParentProduct(self $parentProduct): static
  440.     {
  441.         $this->parentProducts->removeElement($parentProduct);
  442.         return $this;
  443.     }
  444.     /**
  445.      * @return Collection<int, self>
  446.      */
  447.     public function getChildProducts(): Collection
  448.     {
  449.         return $this->childProducts;
  450.     }
  451.     public function addChildProduct(self $childProduct): static
  452.     {
  453.         if (!$this->childProducts->contains($childProduct)) {
  454.             $this->childProducts->add($childProduct);
  455.             $childProduct->addParentProduct($this);
  456.         }
  457.         return $this;
  458.     }
  459.     public function removeChildProduct(self $childProduct): static
  460.     {
  461.         if ($this->childProducts->removeElement($childProduct)) {
  462.             $childProduct->removeParentProduct($this);
  463.         }
  464.         return $this;
  465.     }
  466.     /**
  467.      * @return Collection<int, ImplementerOrderProduct>
  468.      */
  469.     public function getImplementerOrderProducts(): Collection
  470.     {
  471.         return $this->implementerOrderProducts;
  472.     }
  473.     public function addImplementerOrderProduct(ImplementerOrderProduct $implementerOrderProduct): static
  474.     {
  475.         if (!$this->implementerOrderProducts->contains($implementerOrderProduct)) {
  476.             $this->implementerOrderProducts->add($implementerOrderProduct);
  477.             $implementerOrderProduct->setProduct($this);
  478.         }
  479.         return $this;
  480.     }
  481.     public function removeImplementerOrderProduct(ImplementerOrderProduct $implementerOrderProduct): static
  482.     {
  483.         if ($this->implementerOrderProducts->removeElement($implementerOrderProduct)) {
  484.             // set the owning side to null (unless already changed)
  485.             if ($implementerOrderProduct->getProduct() === $this) {
  486.                 $implementerOrderProduct->setProduct(null);
  487.             }
  488.         }
  489.         return $this;
  490.     }
  491.  
  492.     public function isForBhp(): bool
  493.     {
  494.         return $this->forBhp;
  495.     }
  496.     public function setForBhp(?bool $forBhp): self
  497.     {
  498.         if($forBhp===null){
  499.             $this->forBhp false;
  500.         }else{
  501.             $this->forBhp $forBhp;
  502.         }
  503.         return $this;
  504.     }
  505.     public function isForBR(): ?bool
  506.     {
  507.         return $this->forBR;
  508.     }
  509.     public function setForBR(?bool $forBR): static
  510.     {
  511.         if($forBR===null){
  512.             $this->forBR false;
  513.         }else{
  514.             $this->forBR $forBR;
  515.         }
  516.         return $this;
  517.     }
  518.     public function isHaveMailAttachments(): ?bool
  519.     {
  520.         return $this->haveMailAttachments;
  521.     }
  522.     public function setHaveMailAttachments(?bool $haveMailAttachments): static
  523.     {
  524.         if($haveMailAttachments===null){
  525.             $this->haveMailAttachments false;
  526.         }else{
  527.             $this->haveMailAttachments $haveMailAttachments;
  528.         }
  529.         return $this;
  530.     }
  531.     public function getFiles(): array
  532.     {
  533.         $finder = new Finder();
  534.         $files = [];
  535.         $ds          DIRECTORY_SEPARATOR;
  536.         $projectDir getenv('PROJECT_DIR');
  537.         $targetPath 'products' $ds $this->getId() . $ds;
  538.         if (!file_exists($targetPath)) {
  539.             $targetPath $projectDir $ds 'public' $ds $targetPath;
  540.             if (!file_exists($targetPath)) {
  541.                 $targetPath 'public' $ds 'products' $ds $this->getId() . $ds;
  542.             }
  543.         }
  544.         if (file_exists($targetPath)) {
  545.             $finder->in($targetPath);
  546.             $productDir $finder->files();
  547.             foreach ($productDir as $file) {
  548.                 $files[$file->getFilename()] = [
  549.                     'name' => $file->getFilename(),
  550.                     'time' => $file->getMTime(),
  551.                     'path' => $file->getPath(),
  552.                     'pathAll' => $file->getPathname(),
  553.                 ];
  554.             }
  555.         }
  556.         return $files;
  557.     }
  558.     public function isAutoMail(): ?bool
  559.     {
  560.         return $this->autoMail;
  561.     }
  562.     public function setAutoMail(bool $autoMail): static
  563.     {
  564.         $this->autoMail $autoMail;
  565.         return $this;
  566.     }
  567.     /**
  568.      * @return Collection<int, ConsultantReward>
  569.      */
  570.     public function getConsultantRewards(): Collection
  571.     {
  572.         return $this->consultantRewards;
  573.     }
  574.     public function addConsultantReward(ConsultantReward $consultantReward): static
  575.     {
  576.         if (!$this->consultantRewards->contains($consultantReward)) {
  577.             $this->consultantRewards->add($consultantReward);
  578.             $consultantReward->setProduct($this);
  579.         }
  580.         return $this;
  581.     }
  582.     public function removeConsultantReward(ConsultantReward $consultantReward): static
  583.     {
  584.         if ($this->consultantRewards->removeElement($consultantReward)) {
  585.             // set the owning side to null (unless already changed)
  586.             if ($consultantReward->getProduct() === $this) {
  587.                 $consultantReward->setProduct(null);
  588.             }
  589.         }
  590.         return $this;
  591.     }
  592.     /**
  593.      * @return Collection<int, DepartmentTypeProductReward>
  594.      */
  595.     public function getDepartmentTypeProductRewards(): Collection
  596.     {
  597.         return $this->departmentTypeProductRewards;
  598.     }
  599.     public function addDepartmentTypeProductReward(DepartmentTypeProductReward $departmentTypeProductReward): static
  600.     {
  601.         if (!$this->departmentTypeProductRewards->contains($departmentTypeProductReward)) {
  602.             $this->departmentTypeProductRewards->add($departmentTypeProductReward);
  603.             $departmentTypeProductReward->setProduct($this);
  604.         }
  605.         return $this;
  606.     }
  607.     public function removeDepartmentTypeProductReward(DepartmentTypeProductReward $departmentTypeProductReward): static
  608.     {
  609.         if ($this->departmentTypeProductRewards->removeElement($departmentTypeProductReward)) {
  610.             // set the owning side to null (unless already changed)
  611.             if ($departmentTypeProductReward->getProduct() === $this) {
  612.                 $departmentTypeProductReward->setProduct(null);
  613.             }
  614.         }
  615.         return $this;
  616.     }
  617.     public function isAdditionalCourses(): ?bool
  618.     {
  619.         return $this->additionalCourses;
  620.     }
  621.     public function setAdditionalCourses(bool $additionalCourses): static
  622.     {
  623.         $this->additionalCourses $additionalCourses;
  624.         return $this;
  625.     }
  626.     public function getAgreement(): ?Agreement
  627.     {
  628.         return $this->agreement;
  629.     }
  630.     public function setAgreement(?Agreement $agreement): static
  631.     {
  632.         $this->agreement $agreement;
  633.         return $this;
  634.     }
  635.     public function isEumowaamlrodo(): ?bool
  636.     {
  637.         return $this->eumowaamlrodo;
  638.     }
  639.     public function setEumowaamlrodo(bool $eumowaamlrodo): static
  640.     {
  641.         $this->eumowaamlrodo $eumowaamlrodo;
  642.         return $this;
  643.     }
  644.     public function isEumowaaml(): ?bool
  645.     {
  646.         return $this->eumowaaml;
  647.     }
  648.     public function setEumowaaml(bool $eumowaaml): static
  649.     {
  650.         $this->eumowaaml $eumowaaml;
  651.         return $this;
  652.     }
  653.     public function isTransport(): ?bool
  654.     {
  655.         return $this->transport;
  656.     }
  657.     public function setTransport(?bool $transport): static
  658.     {
  659.         if($transport === null) {
  660.             $this->transport false;
  661.         } else {
  662.             $this->transport $transport;
  663.         }
  664.         return $this;
  665.     }
  666.     public function isAutomaticallyDoBeforePayment(): ?bool
  667.     {
  668.         return $this->automaticallyDoBeforePayment;
  669.     }
  670.     public function setAutomaticallyDoBeforePayment(bool $automaticallyDoBeforePayment): static
  671.     {
  672.         $this->automaticallyDoBeforePayment $automaticallyDoBeforePayment;
  673.         return $this;
  674.     }
  675.     public function isEndWithoutAudit(): ?bool
  676.     {
  677.         return $this->endWithoutAudit;
  678.     }
  679.     public function setEndWithoutAudit(bool $endWithoutAudit): static
  680.     {
  681.         $this->endWithoutAudit $endWithoutAudit;
  682.         return $this;
  683.     }
  684.     /**
  685.      * @return Collection<int, Admin>
  686.      */
  687.     public function getAdminToInfo(): Collection
  688.     {
  689.         return $this->adminToInfo;
  690.     }
  691.     public function addAdminToInfo(Admin $adminToInfo): static
  692.     {
  693.         if (!$this->adminToInfo->contains($adminToInfo)) {
  694.             $this->adminToInfo->add($adminToInfo);
  695.         }
  696.         return $this;
  697.     }
  698.     public function removeAdminToInfo(Admin $adminToInfo): static
  699.     {
  700.         $this->adminToInfo->removeElement($adminToInfo);
  701.         return $this;
  702.     }
  703.     public function isAuditRemote(): ?bool
  704.     {
  705.         return $this->auditRemote;
  706.     }
  707.     public function setAuditRemote(bool $auditRemote): static
  708.     {
  709.         $this->auditRemote $auditRemote;
  710.         return $this;
  711.     }
  712.     public function isEumowalicencyjnawebaml(): ?bool
  713.     {
  714.         return $this->eumowalicencyjnawebaml;
  715.     }
  716.     public function setEumowalicencyjnawebaml(bool $eumowalicencyjnawebaml): static
  717.     {
  718.         $this->eumowalicencyjnawebaml $eumowalicencyjnawebaml;
  719.         return $this;
  720.     }
  721.     public function isEumowalicencyjnawebamlpartnerska(): ?bool
  722.     {
  723.         return $this->eumowalicencyjnawebamlpartnerska;
  724.     }
  725.     public function setEumowalicencyjnawebamlpartnerska(bool $eumowalicencyjnawebamlpartnerska): static
  726.     {
  727.         $this->eumowalicencyjnawebamlpartnerska $eumowalicencyjnawebamlpartnerska;
  728.         return $this;
  729.     }
  730.     public function isFreeWebinar(): ?bool
  731.     {
  732.         return $this->freeWebinar;
  733.     }
  734.     public function setFreeWebinar(bool $freeWebinar): static
  735.     {
  736.         $this->freeWebinar $freeWebinar;
  737.         return $this;
  738.     }
  739.     public function isEumowalicencyjnawebamlnieruchomosci(): ?bool
  740.     {
  741.         return $this->eumowalicencyjnawebamlnieruchomosci;
  742.     }
  743.     public function setEumowalicencyjnawebamlnieruchomosci(bool $eumowalicencyjnawebamlnieruchomosci): static
  744.     {
  745.         $this->eumowalicencyjnawebamlnieruchomosci $eumowalicencyjnawebamlnieruchomosci;
  746.         return $this;
  747.     }
  748.     public function isEumowakontrolazarzadczajst(): bool
  749.     {
  750.         return $this->eumowakontrolazarzadczajst;
  751.     }
  752.     public function setEumowakontrolazarzadczajst(bool $eumowakontrolazarzadczajst): void
  753.     {
  754.         $this->eumowakontrolazarzadczajst $eumowakontrolazarzadczajst;
  755.     }
  756.     public function getLicenseType(): ?string
  757.     {
  758.         return $this->licenseType;
  759.     }
  760.     public function setLicenseType(?string $licenseType): static
  761.     {
  762.         $this->licenseType $licenseType;
  763.         return $this;
  764.     }
  765.     public function getAdministrationFee(): int
  766.     {
  767.         return $this->administrationFee;
  768.     }
  769.     public function setAdministrationFee(int $administrationFee): void
  770.     {
  771.         $this->administrationFee $administrationFee;
  772.     }
  773.     /**
  774.      * @return Collection<int, self>
  775.      */
  776.     public function getSimilarProducts(): Collection
  777.     {
  778.         return $this->similarProducts;
  779.     }
  780.     public function addSimilarProduct(self $similarProduct): static
  781.     {
  782.         if (!$this->similarProducts->contains($similarProduct)) {
  783.             $this->similarProducts->add($similarProduct);
  784.         }
  785.         return $this;
  786.     }
  787.     public function removeSimilarProduct(self $similarProduct): static
  788.     {
  789.         $this->similarProducts->removeElement($similarProduct);
  790.         return $this;
  791.     }
  792.     public function isProtocol(): ?bool
  793.     {
  794.         return $this->protocol;
  795.     }
  796.     public function setProtocol(bool $protocol): static
  797.     {
  798.         $this->protocol $protocol;
  799.         return $this;
  800.     }
  801.     public function isZoom(): ?bool
  802.     {
  803.         return $this->zoom;
  804.     }
  805.     public function setZoom(bool $zoom): static
  806.     {
  807.         $this->zoom $zoom;
  808.         return $this;
  809.     }
  810.     public function isWithoutPriceChange(): bool
  811.     {
  812.         return $this->withoutPriceChange;
  813.     }
  814.     public function setWithoutPriceChange(bool $withoutPriceChange): static
  815.     {
  816.         $this->withoutPriceChange $withoutPriceChange;
  817.         return $this;
  818.     }
  819.     public function isAneks(): bool
  820.     {
  821.         return $this->aneks;
  822.     }
  823.     public function setAneks(bool $aneks): static
  824.     {
  825.         $this->aneks $aneks;
  826.         return $this;
  827.     }
  828.     public function getSalesPill(): ?string
  829.     {
  830.         return $this->salesPill;
  831.     }
  832.     public function setSalesPill(?string $salesPill): void
  833.     {
  834.         $this->salesPill $salesPill;
  835.     }
  836. }