src/Entity/Cotisation.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Attributes\ClassNameConverter;
  4. use DateTimeInterface;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Knp\DoctrineBehaviors\Contract\Entity\TimestampableInterface;
  8. use Knp\DoctrineBehaviors\Model\Timestampable\TimestampableTrait;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. use Gedmo\Mapping\Annotation as Gedmo;
  11. use Symfony\Component\HttpFoundation\File\File;
  12. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  13. #[ORM\Entity(repositoryClass'App\Repository\CotisationRepository')]
  14. #[Gedmo\Loggable]
  15. #[ClassNameConverter(name'Cotisation')]
  16. #[Vich\Uploadable]
  17. class Cotisation extends EntityStatus implements TimestampableInterface
  18. {
  19.     use TimestampableTrait;
  20.     #[ORM\Id]
  21.     #[ORM\GeneratedValue]
  22.     #[ORM\Column(type'integer')]
  23.     private ?int $id null;
  24.     #[Gedmo\Versioned]
  25.     #[ORM\Column(type'string'nullabletrue)]
  26.     private ?string $anneeCotisation null;
  27.     #[Gedmo\Versioned]
  28.     #[ORM\Column(type'string'nullabletrue)]
  29.     private ?string $montantCotisation null;
  30.     #[ORM\Column(type'text'nullabletrue)]
  31.     private ?string $commentaire null;
  32.     #[Gedmo\Versioned]
  33.     #[ORM\Column(type'date'nullabletrue)]
  34.     private ?DateTimeInterface $datePaiement null;
  35.     #[Gedmo\Versioned]
  36.     #[ORM\ManyToOne(targetEntity'App\Entity\CotisationStatut'inversedBy'cotisations')]
  37.     private ?CotisationStatut $cotisationStatut null;
  38.     #[Gedmo\Versioned]
  39.     #[ORM\ManyToOne(targetEntity'App\Entity\Entreprise'inversedBy'cotisations')]
  40.     private ?Entreprise $entreprise null;
  41.     #[Gedmo\Versioned]
  42.     #[ORM\ManyToOne(targetEntity'App\Entity\TypeOffre'inversedBy'cotisations')]
  43.     private ?TypeOffre $typeOffre null;
  44.     #[Gedmo\Versioned]
  45.     #[ORM\Column(nullabletrue)]
  46.     private ?float $revenue null;
  47.     #[ORM\ManyToOne]
  48.     private ?ParamCotisation $cotisationType null;
  49.     #[ORM\Column(nullabletrue)]
  50.     private ?int $year null;
  51.     #[ORM\Column(typeTypes::DATE_MUTABLEnullabletrue)]
  52.     private ?\DateTimeInterface $revenueDate null;
  53.     #[ORM\Column]
  54.     private ?bool $optionImportExport false;
  55.     #[ORM\Column]
  56.     private ?bool $optionMapa false;
  57.     #[ORM\Column(nullabletrue)]
  58.     private ?float $priceHt null;
  59.     #[ORM\Column(nullabletrue)]
  60.     private ?float $priceVat null;
  61.     #[ORM\Column(nullabletrue)]
  62.     private ?float $priceTtc null;
  63.     #[ORM\Column(nullabletrue)]
  64.     private ?int $internalLicence null;
  65.     #[ORM\Column(nullabletrue)]
  66.     private ?int $communityLicence null;
  67.     #[ORM\OneToOne(inversedBy'cotisation'cascade: ['persist''remove'])]
  68.     private ?Order $associetedOrder null;
  69.     #[ORM\Column(nullabletrue)]
  70.     private ?float $priceDepartmentPart null;
  71.     #[ORM\Column(nullabletrue)]
  72.     private ?float $priceNationalPart null;
  73.     #[ORM\Column(nullabletrue)]
  74.     private ?float $priceNationalPartCalculated null;
  75.     #[ORM\Column(nullabletrue)]
  76.     private ?float $priceOptionImportExport null;
  77.     #[ORM\Column(nullabletrue)]
  78.     private ?float $priceOptionMapa null;
  79.     #[Vich\UploadableField(mapping'cotisations_ca'fileNameProperty'document'originalName'originalDocumentName')]
  80.     private ?File $documentFile null;
  81.     #[ORM\Column(length255nullabletrue)]
  82.     private ?string $document null;
  83.     #[ORM\Column(length255nullabletrue)]
  84.     private ?string $originalDocumentName null;
  85.     #[Vich\UploadableField(mapping'cotisations_payment'fileNameProperty'proofOfPayment'originalName'originalProofOfPaymentName')]
  86.     private ?File $proofOfPaymentFile null;
  87.     #[ORM\Column(length255nullabletrue)]
  88.     private ?string $proofOfPayment null;
  89.     #[ORM\Column(length255nullabletrue)]
  90.     private ?string $originalProofOfPaymentName null;
  91.     #[ORM\Column(nullabletrue)]
  92.     private ?int $youngMemberYearNumber null;
  93.     public function getId(): ?int
  94.     {
  95.         return $this->id;
  96.     }
  97.     public function getCommentaire(): ?string
  98.     {
  99.         return $this->commentaire;
  100.     }
  101.     public function setCommentaire(?string $commentaire): self
  102.     {
  103.         $this->commentaire $commentaire;
  104.         return $this;
  105.     }
  106.     public function getAnneeCotisation(): ?string
  107.     {
  108.         return $this->anneeCotisation;
  109.     }
  110.     public function setAnneeCotisation(?string $anneeCotisation): self
  111.     {
  112.         $this->anneeCotisation $anneeCotisation;
  113.         return $this;
  114.     }
  115.     public function getMontantCotisation(): ?string
  116.     {
  117.         return $this->montantCotisation;
  118.     }
  119.     public function setMontantCotisation(?string $montantCotisation): self
  120.     {
  121.         $this->montantCotisation $montantCotisation;
  122.         return $this;
  123.     }
  124.     public function getDatePaiement(): ?DateTimeInterface
  125.     {
  126.         return $this->datePaiement;
  127.     }
  128.     public function setDatePaiement(?DateTimeInterface $datePaiement): self
  129.     {
  130.         $this->datePaiement $datePaiement;
  131.         return $this;
  132.     }
  133.     public function getCotisationStatut(): ?CotisationStatut
  134.     {
  135.         return $this->cotisationStatut;
  136.     }
  137.     public function setCotisationStatut(?CotisationStatut $cotisationStatut): self
  138.     {
  139.         $this->cotisationStatut $cotisationStatut;
  140.         return $this;
  141.     }
  142.     public function getEntreprise(): ?Entreprise
  143.     {
  144.         return $this->entreprise;
  145.     }
  146.     public function setEntreprise(?Entreprise $entreprise): self
  147.     {
  148.         $this->entreprise $entreprise;
  149.         return $this;
  150.     }
  151.     public function getTypeOffre(): ?TypeOffre
  152.     {
  153.         return $this->typeOffre;
  154.     }
  155.     public function setTypeOffre(?TypeOffre $typeOffre): self
  156.     {
  157.         $this->typeOffre $typeOffre;
  158.         return $this;
  159.     }
  160.     public function getRevenue(): ?float
  161.     {
  162.         return $this->revenue;
  163.     }
  164.     public function setRevenue(?float $revenue): self
  165.     {
  166.         $this->revenue $revenue;
  167.         return $this;
  168.     }
  169.     public function getCotisationType(): ?ParamCotisation
  170.     {
  171.         return $this->cotisationType;
  172.     }
  173.     public function setCotisationType(?ParamCotisation $cotisationType): self
  174.     {
  175.         $this->cotisationType $cotisationType;
  176.         return $this;
  177.     }
  178.     public function getYear(): ?int
  179.     {
  180.         return $this->year;
  181.     }
  182.     public function setYear(?int $year): self
  183.     {
  184.         $this->year $year;
  185.         return $this;
  186.     }
  187.     public function getRevenueDate(): ?\DateTimeInterface
  188.     {
  189.         return $this->revenueDate;
  190.     }
  191.     public function setRevenueDate(?\DateTimeInterface $revenueDate): self
  192.     {
  193.         $this->revenueDate $revenueDate;
  194.         return $this;
  195.     }
  196.     public function isOptionImportExport(): ?bool
  197.     {
  198.         return $this->optionImportExport;
  199.     }
  200.     public function setOptionImportExport(bool $optionImportExport): self
  201.     {
  202.         $this->optionImportExport $optionImportExport;
  203.         return $this;
  204.     }
  205.     public function isOptionMapa(): ?bool
  206.     {
  207.         return $this->optionMapa;
  208.     }
  209.     public function setOptionMapa(bool $optionMapa): self
  210.     {
  211.         $this->optionMapa $optionMapa;
  212.         return $this;
  213.     }
  214.     public function getPriceHt(): ?float
  215.     {
  216.         $assocOrder $this->getAssocietedOrder();
  217.         if($assocOrder && !$this->isReduced() && $assocOrder->getTotalAmount()){
  218.             $total 0;
  219.             foreach($assocOrder->getOrderLines() as $line){
  220.                 if($line->getProduct()?->getTag() === 'mapa_part') continue;
  221.                 $total += $line->getTotalPrice();
  222.             }
  223.             return $total;
  224.         }
  225.         return $this->priceHt;
  226.     }
  227.     public function setPriceHt(?float $priceHt): self
  228.     {
  229.         $this->priceHt $priceHt;
  230.         return $this;
  231.     }
  232.     public function getPriceVat(): ?float
  233.     {
  234.         return $this->getPriceHt() / 100 20;
  235.     }
  236.     public function setPriceVat(?float $priceVat): self
  237.     {
  238.         $this->priceVat $priceVat;
  239.         return $this;
  240.     }
  241.     public function getPriceTtc(): ?float
  242.     {
  243.         if ($this->optionMapa) {
  244.             return $this->getPriceHt() + $this->getPriceVat() + $this->getPriceOptionMapa();
  245.         }
  246.         return $this->getPriceHt() + $this->getPriceVat();
  247.     }
  248.     public function setPriceTtc(?float $priceTtc): self
  249.     {
  250.         $this->priceTtc $priceTtc;
  251.         return $this;
  252.     }
  253.     public function getInternalLicence(): ?int
  254.     {
  255.         return $this->internalLicence;
  256.     }
  257.     public function setInternalLicence(?int $internalLicence): self
  258.     {
  259.         $this->internalLicence $internalLicence;
  260.         return $this;
  261.     }
  262.     public function getCommunityLicence(): ?int
  263.     {
  264.         return $this->communityLicence;
  265.     }
  266.     public function setCommunityLicence(?int $communityLicence): self
  267.     {
  268.         $this->communityLicence $communityLicence;
  269.         return $this;
  270.     }
  271.     public function getAssocietedOrder(): ?Order
  272.     {
  273.         return $this->associetedOrder;
  274.     }
  275.     public function setAssocietedOrder(?Order $associetedOrder): self
  276.     {
  277.         $this->associetedOrder $associetedOrder;
  278.         return $this;
  279.     }
  280.     public function getPriceDepartmentPart(): ?float
  281.     {
  282.         return $this->priceDepartmentPart;
  283.     }
  284.     public function setPriceDepartmentPart(?float $priceDepartmentPart): self
  285.     {
  286.         $this->priceDepartmentPart $priceDepartmentPart;
  287.         return $this;
  288.     }
  289.     public function getPriceNationalPart(): ?float
  290.     {
  291.         return $this->priceNationalPart;
  292.     }
  293.     public function setPriceNationalPart(?float $priceNationalPart): self
  294.     {
  295.         $this->priceNationalPart $priceNationalPart;
  296.         return $this;
  297.     }
  298.     public function getPriceNationalPartCalculated(): ?float
  299.     {
  300.         return $this->priceNationalPartCalculated;
  301.     }
  302.     public function setPriceNationalPartCalculated(?float $priceNationalPartCalculated): self
  303.     {
  304.         $this->priceNationalPartCalculated $priceNationalPartCalculated;
  305.         return $this;
  306.     }
  307.     public function getPriceOptionImportExport(): ?float
  308.     {
  309.         return $this->priceOptionImportExport;
  310.     }
  311.     public function setPriceOptionImportExport(?float $priceOptionImportExport): self
  312.     {
  313.         $this->priceOptionImportExport $priceOptionImportExport;
  314.         return $this;
  315.     }
  316.     public function getPriceOptionMapa(): ?float
  317.     {
  318.         return $this->priceOptionMapa;
  319.     }
  320.     public function setPriceOptionMapa(?float $priceOptionMapa): self
  321.     {
  322.         $this->priceOptionMapa $priceOptionMapa;
  323.         return $this;
  324.     }
  325.     public function getDocument(): ?string
  326.     {
  327.         return $this->document;
  328.     }
  329.     public function setDocument(?string $document): self
  330.     {
  331.         $this->document $document;
  332.         return $this;
  333.     }
  334.     public function setDocumentFile(?File $documentFile null): void
  335.     {
  336.         $this->documentFile $documentFile;
  337.         if (null !== $documentFile) {
  338.             $this->updatedAt = new \DateTimeImmutable();
  339.         }
  340.     }
  341.     public function getDocumentFile(): ?File
  342.     {
  343.         return $this->documentFile;
  344.     }
  345.     public function getOriginalDocumentName(): ?string
  346.     {
  347.         return $this->originalDocumentName;
  348.     }
  349.     public function setOriginalDocumentName(?string $originalDocumentName): self
  350.     {
  351.         $this->originalDocumentName $originalDocumentName;
  352.         return $this;
  353.     }
  354.     public function setProofOfPaymentFile(?File $proofOfPaymentFile null): void
  355.     {
  356.         $this->proofOfPaymentFile $proofOfPaymentFile;
  357.         if (null !== $proofOfPaymentFile) {
  358.             $this->updatedAt = new \DateTimeImmutable();
  359.         }
  360.     }
  361.     public function getProofOfPaymentFile(): ?File
  362.     {
  363.         return $this->proofOfPaymentFile;
  364.     }
  365.     public function getProofOfPayment(): ?string
  366.     {
  367.         return $this->proofOfPayment;
  368.     }
  369.     public function setProofOfPayment(?string $proofOfPayment): self
  370.     {
  371.         $this->proofOfPayment $proofOfPayment;
  372.         return $this;
  373.     }
  374.     public function getOriginalProofOfPaymentName(): ?string
  375.     {
  376.         return $this->originalProofOfPaymentName;
  377.     }
  378.     public function setOriginalProofOfPaymentName(?string $originalProofOfPaymentName): self
  379.     {
  380.         $this->originalProofOfPaymentName $originalProofOfPaymentName;
  381.         return $this;
  382.     }
  383.     public function getYoungMemberYearNumber(): ?int
  384.     {
  385.         return $this->youngMemberYearNumber;
  386.     }
  387.     public function setYoungMemberYearNumber(?int $youngMemberYearNumber): self
  388.     {
  389.         $this->youngMemberYearNumber $youngMemberYearNumber;
  390.         return $this;
  391.     }
  392.     public function isReduced(): ?bool
  393.     {
  394.         return $this->getCotisationType()?->getTag() === 'integral' && $this->getPriceNationalPartCalculated() > $this->getPriceNationalPart();
  395.     }
  396. }