src/Entity/Articles/ConditionAchat.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Articles;
  3. use App\Entity\Fournisseurs\Fournisseur;
  4. use App\Entity\Fournisseurs\Remise;
  5. use App\Entity\GestionComerciale\ArticleCommande;
  6. use App\Entity\Utilisateur\Utilisateur;
  7. use DateTime;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Gedmo\Mapping\Annotation as Gedmo;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. use Doctrine\ORM\Mapping\Index;
  14. use App\Annotations\SecuredEntity;
  15. /**
  16.  * ConditionAchat
  17.  *
  18.  * @ORM\Table("article__condition_achat",indexes={
  19.  *  @ORM\Index(name="import", columns={"id_import"}),
  20.  *  @ORM\Index(name="referenceFournisseur", columns={"reference_fournisseur"}),
  21.  *  @ORM\Index(name="recherche", columns={"reference_fournisseur", "reference_fournisseur_appel"},flags={"fulltext"}),
  22.  * })
  23.  * @ORM\Entity(repositoryClass="App\Repository\Articles\ConditionAchatRepository")
  24.  * @Gedmo\SoftDeleteable(fieldName="dateSuppression",timeAware=false)
  25.  * @SecuredEntity (name="Condition d'achat", group="Articles")
  26.  */
  27. class ConditionAchat
  28. {
  29.     /**
  30.      * @ORM\Column(name="id", type="integer")
  31.      * @ORM\Id
  32.      * @ORM\GeneratedValue(strategy="AUTO")
  33.      */
  34.     private $id;
  35.     /**
  36.      * @ORM\ManyToOne(targetEntity="App\Entity\Utilisateur\Utilisateur", inversedBy="conditionsAchat")
  37.      * @ORM\JoinColumn(nullable=true)
  38.      */
  39.     private $utilisateur;
  40.     /**
  41.      * @ORM\ManyToOne(targetEntity="App\Entity\Articles\Article", inversedBy="conditionsAchat")
  42.      * @ORM\JoinColumn(nullable=true)
  43.      * @Assert\Valid
  44.      */
  45.     private $article;
  46.     /**
  47.      * @ORM\ManyToOne(targetEntity="App\Entity\Fournisseurs\Remise")
  48.      * @ORM\JoinColumn(nullable=true)
  49.      * @Assert\Valid
  50.      */
  51.     private $remiseFournisseur;
  52.     /**
  53.      * @ORM\ManyToOne(targetEntity="App\Entity\Fournisseurs\Fournisseur", inversedBy="conditionsAchat", cascade={"persist"})
  54.      * @ORM\JoinColumn(nullable=true)
  55.      * @Assert\NotBlank(message="Fournisseur obligatoire")
  56.      */
  57.     private $fournisseur;
  58.     /**
  59.      * @ORM\Column(name="delai", type="integer", nullable=true)
  60.      */
  61.     private $delai;
  62.     /**
  63.      * @ORM\Column(name="quantite", type="integer", nullable=true, options={"default" : 1})
  64.      * @Assert\NotBlank(message="Quantité mini obligatoire")
  65.      */
  66.     private $quantite;
  67.     /**
  68.      * @ORM\Column(name="prix_achat_brut", type="float", nullable=true)
  69.      * @Assert\NotBlank(message="Prix achat brut obligatoire")
  70.      */
  71.     private $prixAchatBrut;
  72.     /**
  73.      * @ORM\Column(name="taux_remise", type="float", nullable=true)
  74.      * @Assert\NotBlank(message="Taux de remise obligatoire", groups={"articleDivers"})
  75.      */
  76.     private $tauxRemise;
  77.     /**
  78.      * @ORM\Column(name="taux_remise_supplementaire", type="float", nullable=true)
  79.      * @Assert\NotBlank(message="Taux de remise supplémentaire obligatoire", groups={"articleDivers"})
  80.      */
  81.     private $tauxRemiseSupplementaire;
  82.     /**
  83.      * @ORM\Column(name="coefficient", type="float", nullable=true)
  84.      */
  85.     private $coefficient;
  86.     /**
  87.      * @ORM\Column(name="prix_achat_net", type="float", nullable=true)
  88.      */
  89.     private $prixAchatNet;
  90.     /**
  91.      * @ORM\Column(name="conditionnement", type="float", nullable=true)
  92.      */
  93.     private $conditionnement;
  94.     /**
  95.      * @ORM\Column(name="statut", type="boolean", nullable=true)
  96.      */
  97.     private $defaut;
  98.     /**
  99.      * @ORM\Column(name="prixNet", type="boolean", nullable=true, options={"default" : 0})
  100.      */
  101.     private $prixNet;
  102.     /**
  103.      * @ORM\Column(name="typeReduction", type="string", length=255, nullable=true)
  104.      */
  105.     private $typeReduction;
  106.     /**
  107.      * @ORM\Column(name="date", type="datetime", nullable=true)
  108.      */
  109.     private $date;
  110.      /**
  111.      * @ORM\Column(name="date_supression", type="datetime", nullable=true)
  112.      */
  113.     private $dateSuppression;
  114.      /**
  115.      * @ORM\Column(name="date_maj", type="datetime", nullable=true)
  116.      * @Gedmo\Timestampable(on="update")
  117.      */
  118.     private $dateMaj;
  119.     /**
  120.      * @ORM\Column(name="date_maj_prix", type="datetime", nullable=true)
  121.      *
  122.      */
  123.     private $dateMajPrix;
  124.     /**
  125.      * @ORM\Column(name="donnees_import", type="text", nullable=true)
  126.      */
  127.     private $donnesImport;
  128.     /**
  129.      * @ORM\Column(name="id_import", type="string",length=255, nullable=true)
  130.      */
  131.     private $idImport;
  132.     /**
  133.      * @var string
  134.      * @Assert\NotBlank(message="Reférence fournisseur obligatoire")
  135.      * @Assert\NotBlank(message="Reférence fournisseur obligatoire", groups={"articleDivers"})
  136.      * @ORM\Column(name="reference_fournisseur", type="string", length=255, nullable=true)
  137.      */
  138.     private $referenceFournisseur;
  139.     /**
  140.      * @var string
  141.      * @ORM\Column(name="reference_fournisseur_appel", type="string", length=255, nullable=true)
  142.      */
  143.     private $referenceFournisseurAppel;
  144.     /**
  145.     * @ORM\OneToMany(targetEntity="App\Entity\GestionComerciale\ArticleCommande", mappedBy="conditionAchat")
  146.     */
  147.     private $articlesCommande;
  148.     /**
  149.     * @ORM\OneToMany(targetEntity="App\Entity\Articles\MouvementStock", mappedBy="conditionAchat")
  150.     */
  151.     private $mouvementsStock;
  152.     /**
  153.      * @var string
  154.      * @Assert\NotBlank(message="Libellé obligatoire", groups={"articleDivers"})
  155.      * @ORM\Column(name="libelle", type="text", nullable=true)
  156.      */
  157.     private $libelle;
  158.     /**
  159.      * @var string
  160.      * @ORM\Column(name="est_erreur", type="text", nullable=true)
  161.      */
  162.     private $estErreur;
  163.     /**
  164.      * @ORM\Column(name="coefficient_conditionnement", type="float", nullable=true)
  165.      */
  166.     private $coefficientConditionnement;
  167.     /**
  168.      * @ORM\Column(name="frais_annexes", type="float", nullable=true)
  169.      */
  170.     private $fraisAnnexes;
  171.     /**
  172.      * @ORM\ManyToOne(targetEntity="App\Entity\Articles\UniteMesure", cascade={"persist"})
  173.      */
  174.     private $uniteMesure;
  175.     /**
  176.      * @ORM\Column(name="commentaire", type="text", nullable=true)
  177.     */
  178.     private $commentaire;
  179.     public function __construct()
  180.     {
  181.         $this->date = new Datetime();
  182.             $this->conditionnement           1;
  183.             $this->quantite                  1;
  184.             $this->tauxRemise                0;
  185.             $this->tauxRemiseSupplementaire  0;
  186.             $this->prixAchatNet              0;
  187.             $this->coefficientConditionnement 1;
  188.             $this->fraisAnnexes              0;
  189.             $this->coefficient                1;
  190.             $this->mouvementsStock           = new ArrayCollection();
  191.             $this->articlesCommande          = new ArrayCollection();
  192.     }
  193.     public function getId(): int
  194.     {
  195.         return $this->id;
  196.     }
  197.     public function setQuantite(?int $quantite): ConditionAchat
  198.     {
  199.         $this->quantite $quantite;
  200.         return $this;
  201.     }
  202.     public function getQuantite(): ?int
  203.     {
  204.         return $this->quantite;
  205.     }
  206.     public function setRemise(?float $remise): ConditionAchat
  207.     {
  208.         $this->tauxRemise $remise;
  209.         return $this;
  210.     }
  211.     public function getRemise(): ?float
  212.     {
  213.         return $this->tauxRemise;
  214.     }
  215.     public function setDate(?DateTime $date): ConditionAchat
  216.     {
  217.         $this->date $date;
  218.         return $this;
  219.     }
  220.     public function getDate(): ?DateTime
  221.     {
  222.         return $this->date;
  223.     }
  224.     public function setDateSuppression(?DateTime $dateSuppression): ConditionAchat
  225.     {
  226.         $this->dateSuppression $dateSuppression;
  227.         return $this;
  228.     }
  229.     public function getDateSuppression(): ?DateTime
  230.     {
  231.         return $this->dateSuppression;
  232.     }
  233.     public function setDateMaj(?DateTime $dateMaj): ConditionAchat
  234.     {
  235.         $this->dateMaj $dateMaj;
  236.         return $this;
  237.     }
  238.     public function getDateMaj(): ?DateTime
  239.     {
  240.         return $this->dateMaj;
  241.     }
  242.     public function setUtilisateur(?Utilisateur $utilisateur): ConditionAchat
  243.     {
  244.         $this->utilisateur $utilisateur;
  245.         return $this;
  246.     }
  247.     public function getUtilisateur(): ?Utilisateur
  248.     {
  249.         return $this->utilisateur;
  250.     }
  251.     public function setArticle(?Article $article): ConditionAchat
  252.     {
  253.         $this->article $article;
  254.         return $this;
  255.     }
  256.     public function getArticle(): ?Article
  257.     {
  258.         return $this->article;
  259.     }
  260.     public function setFournisseur(?Fournisseur $fournisseur): ConditionAchat
  261.     {
  262.         $this->fournisseur $fournisseur;
  263.         //$this->fournisseurPlus = $fournisseur;
  264.         $this->setFournisseurPlus($fournisseur);
  265.         return $this;
  266.     }
  267.     public function getFournisseur(): ?Fournisseur
  268.     {
  269.         return $this->fournisseur;
  270.     }
  271.     public function setFournisseurPlus(?Fournisseur $fournisseur): ConditionAchat
  272.     {
  273.         $this->fournisseur $fournisseur;
  274.         return $this;
  275.     }
  276.     public function getFournisseurPlus(): ?Fournisseur
  277.     {
  278.         return $this->fournisseur;
  279.     }
  280.     public function setConditionnement(?float $conditionnement): ConditionAchat
  281.     {
  282.         $this->conditionnement $conditionnement;
  283.         return $this;
  284.     }
  285.     public function getConditionnement(): ?float
  286.     {
  287.         return $this->conditionnement;
  288.     }
  289.     public function setDefaut(?bool $defaut): ConditionAchat
  290.     {
  291.         $this->defaut $defaut;
  292.         return $this;
  293.     }
  294.     public function getDefaut(): ?bool
  295.     {
  296.         return $this->defaut;
  297.     }
  298.     public function setTypeReduction(?string $typeReduction): ConditionAchat
  299.     {
  300.         $this->typeReduction $typeReduction;
  301.         return $this;
  302.     }
  303.     public function getTypeReduction(): ?string
  304.     {
  305.         return $this->typeReduction;
  306.     }
  307.     public function setRemiseSupplementaire(?float $remiseSupplementaire): ConditionAchat
  308.     {
  309.         $this->tauxRemiseSupplementaire $remiseSupplementaire;
  310.         return $this;
  311.     }
  312.     public function getRemiseSupplementaire(): ?float
  313.     {
  314.         return $this->tauxRemiseSupplementaire;
  315.     }
  316.     public function setDonnesImport(?string $donnesImport): ConditionAchat
  317.     {
  318.         $this->donnesImport $donnesImport;
  319.         return $this;
  320.     }
  321.     public function getDonnesImport(): ?string
  322.     {
  323.         return $this->donnesImport;
  324.     }
  325.     public function setIdImport(?string $idImport): ConditionAchat
  326.     {
  327.         $this->idImport $idImport;
  328.         return $this;
  329.     }
  330.     public function getIdImport(): ?string
  331.     {
  332.         return $this->idImport;
  333.     }
  334.     public function setReferenceFournisseur(?string $referenceFournisseur): ConditionAchat
  335.     {
  336.         $this->referenceFournisseur $referenceFournisseur;
  337.         $delimiteur= ["-"," ","_"];
  338.         $refFournisseurAppel str_replace($delimiteur,"",$referenceFournisseur);
  339.         $this->setReferenceFournisseurAppel($refFournisseurAppel);
  340.         return $this;
  341.     }
  342.     public function getReferenceFournisseur(): ?string
  343.     {
  344.         return $this->referenceFournisseur;
  345.     }
  346.     public function setPrixAchatBrut(?float $prixAchatBrut): ConditionAchat
  347.     {
  348.         $this->prixAchatBrut round($prixAchatBrut3);
  349.         return $this;
  350.     }
  351.     public function getPrixAchatBrut(): ?float
  352.     {
  353.         return $this->prixAchatBrut;
  354.     }
  355.     public function setTauxRemise(?float $tauxRemise): ConditionAchat
  356.     {
  357.         $this->tauxRemise $tauxRemise;
  358.         return $this;
  359.     }
  360.     public function getTauxRemise(): ?float
  361.     {
  362.         return $this->tauxRemise;
  363.     }
  364.     public function setTauxRemiseSupplementaire(?float $tauxRemiseSupplementaire): ConditionAchat
  365.     {
  366.         $this->tauxRemiseSupplementaire $tauxRemiseSupplementaire;
  367.         return $this;
  368.     }
  369.     public function getTauxRemiseSupplementaire(): ?float
  370.     {
  371.         return $this->tauxRemiseSupplementaire;
  372.     }
  373.     public function setCoefficient(?float $coefficient): ConditionAchat
  374.     {
  375.         $this->coefficient $coefficient;
  376.         return $this;
  377.     }
  378.     public function getCoefficient(): ?float
  379.     {
  380.         return $this->coefficient;
  381.     }
  382.     public function setPrixAchatNet(?float $prixAchatNet): ConditionAchat
  383.     {
  384.         if($this->getPrixAchatNet() != $prixAchatNet)
  385.             $this->dateMajPrix = new Datetime();
  386.             $this->prixAchatNet round($prixAchatNet3);
  387.             return $this;
  388.     }
  389.     public function getPrixAchatNet(): ?float
  390.     {
  391.         return $this->prixAchatNet;
  392.     }
  393.     public function setLibelle(?string $libelle): ConditionAchat
  394.     {
  395.         $this->libelle $libelle;
  396.         return $this;
  397.     }
  398.     public function getLibelle(): ?string
  399.     {
  400.         return $this->libelle;
  401.     }
  402.     public function addArticlesCommande(ArticleCommande $articlesCommande): ConditionAchat
  403.     {
  404.         $this->articlesCommande[] = $articlesCommande;
  405.         return $this;
  406.     }
  407.     public function removeArticlesCommande(ArticleCommande $articlesCommande)
  408.     {
  409.         $this->articlesCommande->removeElement($articlesCommande);
  410.     }
  411.     public function getArticlesCommande(): ArrayCollection
  412.     {
  413.         return $this->articlesCommande;
  414.     }
  415.     public function setCoefficientConditionnement(?float $coefficientConditionnement): ConditionAchat
  416.     {
  417.         if($coefficientConditionnement == '' || $coefficientConditionnement == 0$coefficientConditionnement 1;
  418.         $this->coefficientConditionnement $coefficientConditionnement;
  419.         return $this;
  420.     }
  421.     public function getCoefficientConditionnement(): ?float
  422.     {
  423.         return $this->coefficientConditionnement;
  424.     }
  425.     public function addMouvementsStock(MouvementStock $mouvementsStock): ConditionAchat
  426.     {
  427.         $this->mouvementsStock[] = $mouvementsStock;
  428.         return $this;
  429.     }
  430.     public function removeMouvementsStock(MouvementStock $mouvementsStock)
  431.     {
  432.         $this->mouvementsStock->removeElement($mouvementsStock);
  433.     }
  434.     public function getMouvementsStock(): ArrayCollection
  435.     {
  436.         return $this->mouvementsStock;
  437.     }
  438.     public function setFraisAnnexes(?float $fraisAnnexes): ConditionAchat
  439.     {
  440.         $this->fraisAnnexes $fraisAnnexes;
  441.         return $this;
  442.     }
  443.     public function getFraisAnnexes(): ?float
  444.     {
  445.         return $this->fraisAnnexes;
  446.     }
  447.     public function setUniteMesure(?UniteMesure $uniteMesure): ConditionAchat
  448.     {
  449.         $this->uniteMesure $uniteMesure;
  450.         return $this;
  451.     }
  452.     public function getUniteMesure(): ?UniteMesure
  453.     {
  454.         return $this->uniteMesure;
  455.     }
  456.     public function setCommentaire(?string $commentaire): ConditionAchat
  457.     {
  458.         $this->commentaire $commentaire;
  459.         return $this;
  460.     }
  461.     public function getCommentaire(): ?string
  462.     {
  463.         return $this->commentaire;
  464.     }
  465.     public function setDateMajPrix(?DateTime $dateMajPrix): ConditionAchat
  466.     {
  467.         $this->dateMajPrix $dateMajPrix;
  468.         return $this;
  469.     }
  470.     public function getDateMajPrix(): ?DateTime
  471.     {
  472.         return $this->dateMajPrix;
  473.     }
  474.     public function setEstErreur(?string $estErreur): ConditionAchat
  475.     {
  476.         $this->estErreur $estErreur;
  477.         return $this;
  478.     }
  479.     public function getEstErreur(): ?string
  480.     {
  481.         return $this->estErreur;
  482.     }
  483.     public function setReferenceFournisseurAppel(?string $referenceFournisseurAppel): ConditionAchat
  484.     {
  485.         $this->referenceFournisseurAppel $referenceFournisseurAppel;
  486.         return $this;
  487.     }
  488.     public function getReferenceFournisseurAppel(): ?string
  489.     {
  490.         return $this->referenceFournisseurAppel;
  491.     }
  492.     public function setDelai(?int $delai): ConditionAchat
  493.     {
  494.         $this->delai $delai;
  495.         return $this;
  496.     }
  497.     public function getDelai(): ?int
  498.     {
  499.         return $this->delai;
  500.     }
  501.     public function setRemiseFournisseur(?Remise $remiseFournisseur): ConditionAchat
  502.     {
  503.         $this->remiseFournisseur $remiseFournisseur;
  504.         return $this;
  505.     }
  506.     public function getRemiseFournisseur(): ?Remise
  507.     {
  508.         return $this->remiseFournisseur;
  509.     }
  510.     public function setPrixNet(?bool $prixNet): ConditionAchat
  511.     {
  512.         $this->prixNet $prixNet;
  513.         return $this;
  514.     }
  515.     public function getPrixNet(): ?bool
  516.     {
  517.         return $this->prixNet;
  518.     }
  519. }