src/Entity/Tiers.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\TiersRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Entity(repositoryClass=TiersRepository::class)
  9.  */
  10. class Tiers
  11. {
  12.     /**
  13.      * @ORM\Id
  14.      * @ORM\GeneratedValue
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="string", length=255)
  20.      */
  21.     private $nom_tiers;
  22.     /**
  23.      * @ORM\Column(type="string", length=255)
  24.      */
  25.     private $prenom_tiers;
  26.     /**
  27.      * @ORM\Column(type="string", length=255, nullable=true)
  28.      */
  29.     private $tel_fixe_tiers;
  30.     /**
  31.      * @ORM\Column(type="string", length=255, nullable=true)
  32.      */
  33.     private $tel_portable_tiers;
  34.     /**
  35.      * @ORM\Column(type="string", length=255, nullable=true)
  36.      */
  37.     private $email_tiers;
  38.     /**
  39.      * @ORM\Column(type="text", nullable=true)
  40.      */
  41.     private $commentaire_tiers;
  42.     /**
  43.      * @ORM\Column(type="datetime", options={"default": "CURRENT_TIMESTAMP"})
  44.      */
  45.     private $date_crea;
  46.     /**
  47.      * @ORM\Column(type="integer")
  48.      */
  49.     private $user_crea;
  50.     /**
  51.      * @ORM\Column(type="datetime", nullable=true)
  52.      */
  53.     private $date_modif;
  54.     /**
  55.      * @ORM\Column(type="integer", nullable=true)
  56.      */
  57.     private $user_modif;
  58.     /**
  59.      * @ORM\Column(type="boolean", options={"default": 1})
  60.      */
  61.     private $is_active;
  62.     /**
  63.      * 0=dev, 1=salarié, 2=société
  64.      * @ORM\Column(type="integer")
  65.      */
  66.     private $id_type_tiers;
  67.     /**
  68.      * @ORM\OneToOne(targetEntity=User::class, mappedBy="tiers", cascade={"persist", "remove"})
  69.      */
  70.     private $user;
  71.     /**
  72.      * @ORM\OneToMany(targetEntity=Adresse::class, mappedBy="tiers")
  73.      */
  74.     private $adresses;
  75.     /**
  76.      * @ORM\OneToOne(targetEntity=InfoSalarie::class, inversedBy="tiers", cascade={"persist", "remove"})
  77.      */
  78.     private $info_salarie;
  79.     /**
  80.      * @ORM\ManyToMany(targetEntity=Societe::class, mappedBy="tiers")
  81.      */
  82.     private $societes;
  83.     /**
  84.      * @ORM\OneToMany(targetEntity=Projet::class, mappedBy="producteur")
  85.      */
  86.     private $projet_producteur;
  87.     /**
  88.      * @ORM\OneToMany(targetEntity=Projet::class, mappedBy="tiers")
  89.      */
  90.     private $projet_tiers;
  91.     /**
  92.      * @ORM\OneToMany(targetEntity=Contrat::class, mappedBy="salarie")
  93.      */
  94.     private $contrats;
  95.     /**
  96.      * @ORM\ManyToMany(targetEntity=Projet::class, mappedBy="salaries")
  97.      */
  98.     private $projet_salarie;
  99.     /**
  100.      * @ORM\ManyToMany(targetEntity=Projet::class, mappedBy="prestataires")
  101.      */
  102.     private $projet_presta;
  103.     /**
  104.      * @ORM\OneToMany(targetEntity=Document::class, mappedBy="salarie")
  105.      */
  106.     private $ndf;
  107.     public function __construct()
  108.     {
  109.         $this->adresses = new ArrayCollection();
  110.         $this->societes = new ArrayCollection();
  111.         $this->projet_producteur = new ArrayCollection();
  112.         $this->projet_tiers = new ArrayCollection();
  113.         $this->contrats = new ArrayCollection();
  114.         $this->projet_salarie = new ArrayCollection();
  115.         $this->projet_presta = new ArrayCollection();
  116.         $this->ndf = new ArrayCollection();
  117.     }
  118.     public function clearForJsonResp(){
  119. //        $this->adresses = new ArrayCollection();
  120.         $this->societes = new ArrayCollection();
  121.         $this->projet_producteur = new ArrayCollection();
  122.         $this->projet_tiers = new ArrayCollection();
  123.         $this->contrats = new ArrayCollection();
  124.         $this->projet_salarie = new ArrayCollection();
  125.         $this->projet_presta = new ArrayCollection();
  126.         $this->ndf = new ArrayCollection();
  127.     }
  128.     public function getId(): ?int
  129.     {
  130.         return $this->id;
  131.     }
  132.     public function getNomTiers(): ?string
  133.     {
  134.         return $this->nom_tiers;
  135.     }
  136.     public function setNomTiers(string $nom_tiers): self
  137.     {
  138.         $this->nom_tiers $nom_tiers;
  139.         return $this;
  140.     }
  141.     public function getPrenomTiers(): ?string
  142.     {
  143.         return $this->prenom_tiers;
  144.     }
  145.     public function setPrenomTiers(string $prenom_tiers): self
  146.     {
  147.         $this->prenom_tiers $prenom_tiers;
  148.         return $this;
  149.     }
  150.     public function getTelFixeTiers(): ?string
  151.     {
  152.         return $this->tel_fixe_tiers;
  153.     }
  154.     public function setTelFixeTiers(?string $tel_fixe_tiers): self
  155.     {
  156.         $this->tel_fixe_tiers $tel_fixe_tiers;
  157.         return $this;
  158.     }
  159.     public function getTelPortableTiers(): ?string
  160.     {
  161.         return $this->tel_portable_tiers;
  162.     }
  163.     public function setTelPortableTiers(?string $tel_portable_tiers): self
  164.     {
  165.         $this->tel_portable_tiers $tel_portable_tiers;
  166.         return $this;
  167.     }
  168.     public function getEmailTiers(): ?string
  169.     {
  170.         return $this->email_tiers;
  171.     }
  172.     public function setEmailTiers(?string $email_tiers): self
  173.     {
  174.         $this->email_tiers $email_tiers;
  175.         return $this;
  176.     }
  177.     public function getCommentaireTiers(): ?string
  178.     {
  179.         return $this->commentaire_tiers;
  180.     }
  181.     public function setCommentaireTiers(?string $commentaire_tiers): self
  182.     {
  183.         $this->commentaire_tiers $commentaire_tiers;
  184.         return $this;
  185.     }
  186.     public function getDateCrea(): ?\DateTimeInterface
  187.     {
  188.         return $this->date_crea;
  189.     }
  190.     public function setDateCrea(\DateTimeInterface $date_crea): self
  191.     {
  192.         $this->date_crea $date_crea;
  193.         return $this;
  194.     }
  195.     public function getUserCrea(): ?int
  196.     {
  197.         return $this->user_crea;
  198.     }
  199.     public function setUserCrea(int $user_crea): self
  200.     {
  201.         $this->user_crea $user_crea;
  202.         return $this;
  203.     }
  204.     public function getDateModif(): ?\DateTimeInterface
  205.     {
  206.         return $this->date_modif;
  207.     }
  208.     public function setDateModif(?\DateTimeInterface $date_modif): self
  209.     {
  210.         $this->date_modif $date_modif;
  211.         return $this;
  212.     }
  213.     public function getUserModif(): ?int
  214.     {
  215.         return $this->user_modif;
  216.     }
  217.     public function setUserModif(?int $user_modif): self
  218.     {
  219.         $this->user_modif $user_modif;
  220.         return $this;
  221.     }
  222.     public function getIsActive(): ?bool
  223.     {
  224.         return $this->is_active;
  225.     }
  226.     public function setIsActive(bool $is_active): self
  227.     {
  228.         $this->is_active $is_active;
  229.         return $this;
  230.     }
  231.     /**
  232.      * @return int|null
  233.      * 0=dev, 1=salarié, 2=société
  234.      */
  235.     public function getIdTypeTiers(): ?int
  236.     {
  237.         return $this->id_type_tiers;
  238.     }
  239.     /**
  240.      * 0=dev, 1=salarié, 2=société
  241.      * @param int $id_type_tiers
  242.      * @return $this
  243.      */
  244.     public function setIdTypeTiers(int $id_type_tiers): self
  245.     {
  246.         $this->id_type_tiers $id_type_tiers;
  247.         return $this;
  248.     }
  249.     public function getUser(): ?User
  250.     {
  251.         return $this->user;
  252.     }
  253.     public function setUser(?User $user): self
  254.     {
  255.         // unset the owning side of the relation if necessary
  256.         if ($user === null && $this->user !== null) {
  257.             $this->user->setTiers(null);
  258.         }
  259.         // set the owning side of the relation if necessary
  260.         if ($user !== null && $user->getTiers() !== $this) {
  261.             $user->setTiers($this);
  262.         }
  263.         $this->user $user;
  264.         return $this;
  265.     }
  266.     /**
  267.      * @return Collection<int, Adresse>
  268.      */
  269.     public function getAdresses(): Collection
  270.     {
  271.         return $this->adresses;
  272.     }
  273.     public function addAdress(Adresse $adress): self
  274.     {
  275.         if (!$this->adresses->contains($adress)) {
  276.             $this->adresses[] = $adress;
  277.             $adress->setTiers($this);
  278.         }
  279.         return $this;
  280.     }
  281.     public function removeAdress(Adresse $adress): self
  282.     {
  283.         if ($this->adresses->removeElement($adress)) {
  284.             // set the owning side to null (unless already changed)
  285.             if ($adress->getTiers() === $this) {
  286.                 $adress->setTiers(null);
  287.             }
  288.         }
  289.         return $this;
  290.     }
  291.     public function serializeAdresse()
  292.     {
  293.         if(empty($this->adresses)) return array();
  294.         $adresseList = array();
  295.         foreach ($this->adresses->toArray() as $adresse){
  296.             $adresseList[] = array(
  297.                 'id_adresse' => $adresse->getId(),
  298.                 'lib_adresse' => $adresse->getLibAdresse(),
  299.                 'ligne_1' => $adresse->getLigne1(),
  300.                 'ligne_2' => $adresse->getLigne2(),
  301.                 'code_postal' => $adresse->getCodePostal(),
  302.                 'ville' => $adresse->getVille(),
  303.                 'pays' => $adresse->getPays(),
  304.             );
  305.         }
  306.         return $adresseList;
  307.     }
  308.     public function getInfoSalarie(): ?InfoSalarie
  309.     {
  310.         return $this->info_salarie;
  311.     }
  312.     public function setInfoSalarie(?InfoSalarie $info_salarie): self
  313.     {
  314.         $this->info_salarie $info_salarie;
  315.         return $this;
  316.     }
  317.     /**
  318.      * @return Collection<int, Societe>
  319.      */
  320.     public function getSocietes(): Collection
  321.     {
  322.         return $this->societes;
  323.     }
  324.     public function addSociete(Societe $societe): self
  325.     {
  326.         if (!$this->societes->contains($societe)) {
  327.             $this->societes[] = $societe;
  328.             $societe->addTier($this);
  329.         }
  330.         return $this;
  331.     }
  332.     public function removeSociete(Societe $societe): self
  333.     {
  334.         if ($this->societes->removeElement($societe)) {
  335.             $societe->removeTier($this);
  336.         }
  337.         return $this;
  338.     }
  339.     /**
  340.      * @return Collection<int, Projet>
  341.      */
  342.     public function getProjetProducteur(): Collection
  343.     {
  344.         return $this->projet_producteur;
  345.     }
  346.     public function addProjetProducteur(Projet $projetProducteur): self
  347.     {
  348.         if (!$this->projet_producteur->contains($projetProducteur)) {
  349.             $this->projet_producteur[] = $projetProducteur;
  350.             $projetProducteur->setProducteur($this);
  351.         }
  352.         return $this;
  353.     }
  354.     public function removeProjetProducteur(Projet $projetProducteur): self
  355.     {
  356.         if ($this->projet_producteur->removeElement($projetProducteur)) {
  357.             // set the owning side to null (unless already changed)
  358.             if ($projetProducteur->getProducteur() === $this) {
  359.                 $projetProducteur->setProducteur(null);
  360.             }
  361.         }
  362.         return $this;
  363.     }
  364.     /**
  365.      * @return Collection<int, Projet>
  366.      */
  367.     public function getProjetTiers(): Collection
  368.     {
  369.         return $this->projet_tiers;
  370.     }
  371.     public function addProjetTier(Projet $projetTier): self
  372.     {
  373.         if (!$this->projet_tiers->contains($projetTier)) {
  374.             $this->projet_tiers[] = $projetTier;
  375.             $projetTier->setTiers($this);
  376.         }
  377.         return $this;
  378.     }
  379.     public function removeProjetTier(Projet $projetTier): self
  380.     {
  381.         if ($this->projet_tiers->removeElement($projetTier)) {
  382.             // set the owning side to null (unless already changed)
  383.             if ($projetTier->getTiers() === $this) {
  384.                 $projetTier->setTiers(null);
  385.             }
  386.         }
  387.         return $this;
  388.     }
  389.     /**
  390.      * @return Collection<int, Contrat>
  391.      */
  392.     public function getContratByIdProjet(int $idProjet): Collection
  393.     {
  394.         $contratList = new ArrayCollection();
  395.         /** @var Contrat $contrat */
  396.         foreach ($this->contrats as $contrat){
  397.             if($contrat->getIdProjet() === $idProjet$contratList[] = $contrat;
  398.         }
  399.         return $contratList;
  400.     }
  401.     /**
  402.      * @return Collection<int, Contrat>
  403.      */
  404.     public function getContratTiers(): Collection
  405.     {
  406.         return $this->contrats;
  407.     }
  408.     public function addContratTiers(Contrat $contratTiers): self
  409.     {
  410.         if (!$this->contrats->contains($contratTiers)) {
  411.             $this->contrats[] = $contratTiers;
  412.             $contratTiers->setSalarie($this);
  413.         }
  414.         return $this;
  415.     }
  416.     public function removeContratTiers(Contrat $contratTiers): self
  417.     {
  418.         if ($this->contrats->removeElement($contratTiers)) {
  419.             // set the owning side to null (unless already changed)
  420.             if ($contratTiers->getSalarie() === $this) {
  421.                 $contratTiers->setSalarie(null);
  422.             }
  423.         }
  424.         return $this;
  425.     }
  426.     /**
  427.      * @return Collection<int, Projet>
  428.      */
  429.     public function getProjetEmploi(): Collection
  430.     {
  431.         return $this->projet_salarie;
  432.     }
  433.     public function addProjetEmploi(Projet $projet): self
  434.     {
  435.         if (!$this->projet_salarie->contains($projet)) {
  436.             $this->projet_salarie[] = $projet;
  437.             $projet->addSalary($this);
  438.         }
  439.         return $this;
  440.     }
  441.     public function removeProjetEmploi(Projet $projet): self
  442.     {
  443.         if ($this->projet_salarie->removeElement($projet)) {
  444.             $projet->removeSalary($this);
  445.         }
  446.         return $this;
  447.     }
  448.     /**
  449.      * @return Collection<int, Projet>
  450.      */
  451.     public function getProjetPrestataire(): Collection
  452.     {
  453.         return $this->projet_presta;
  454.     }
  455.     public function addProjetPrestataire(Projet $projet): self
  456.     {
  457.         if (!$this->projet_presta->contains($projet)) {
  458.             $this->projet_presta[] = $projet;
  459.             $projet->addPrestataire($this);
  460.         }
  461.         return $this;
  462.     }
  463.     public function removeProjetPrestataire(Projet $projet): self
  464.     {
  465.         if ($this->projet_presta->removeElement($projet)) {
  466.             $projet->removePrestataire($this);
  467.         }
  468.         return $this;
  469.     }
  470.     /**
  471.      * @return Collection<int, Document>
  472.      */
  473.     public function getNdf(): Collection
  474.     {
  475.         return $this->ndf;
  476.     }
  477.     public function addNdf(Document $ndf): self
  478.     {
  479.         if (!$this->ndf->contains($ndf)) {
  480.             $this->ndf[] = $ndf;
  481.             $ndf->setSalarie($this);
  482.         }
  483.         return $this;
  484.     }
  485.     public function removeNdf(Document $ndf): self
  486.     {
  487.         if ($this->ndf->removeElement($ndf)) {
  488.             // set the owning side to null (unless already changed)
  489.             if ($ndf->getSalarie() === $this) {
  490.                 $ndf->setSalarie(null);
  491.             }
  492.         }
  493.         return $this;
  494.     }
  495. }