src/Entity/RecCandidature.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\RecCandidat;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\DBAL\Types\Types;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use APY\DataGridBundle\Grid\Mapping as GRID;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Doctrine\Common\Collections\ArrayCollection;
  10. /**
  11.  * Client
  12.  *
  13.  * @ORM\Table(name="rec_candidature")
  14.  * @ORM\HasLifecycleCallbacks
  15.  * @ORM\Entity(repositoryClass="App\Repository\RecCandidatureRepository")
  16.  * @GRID\Source(columns="id, poste.idInterne, candidat.nom, candidat.prenom, candidat.genre, dateCandidature, dateValidate, init, validate, recevable, candidatureStatut.name,candidatureSuivie.name, candidatureAudition.name,candidatureSituation.name")
  17.  */
  18. class RecCandidature
  19. {
  20.     /**
  21.      * @ORM\Id
  22.      * @ORM\Column(type="integer")
  23.      * @ORM\GeneratedValue(strategy="AUTO")
  24.      * @GRID\Column(title="Id", size="100", type="text",visible=false)
  25.      */
  26.     protected $id;
  27.     /**
  28.      * @ORM\ManyToOne(targetEntity="RecCandidat", inversedBy="candidatures")
  29.      * @ORM\JoinColumn(name="candidat_id", referencedColumnName="id")
  30.      * @ORM\OrderBy({"candidat.nom" = "ASC"})
  31.      * @GRID\Column(field="candidat.nom", title="Nom", type="textpopupcandidature",size="150")
  32.      * @GRID\Column(field="candidat.prenom", title="Prénom",size="150", type="text")
  33.      */
  34.     protected $candidat;
  35.     /**
  36.     *
  37.     * @ORM\ManyToOne(targetEntity="RecPoste", inversedBy="candidatures")
  38.     * @ORM\JoinColumn(name="poste_id", referencedColumnName="id")
  39.     * @GRID\Column(field="poste.idInterne", title="Poste",size="150", type="text")
  40.     **/
  41.     protected $poste;
  42.     /**
  43.      * @var \DateTime
  44.      * @ORM\Column(name="date_candidature", type="datetime", nullable=true))
  45.      * @GRID\Column(title="Date de candidature", size="150", type="date", format="d/m/Y"),
  46.      */
  47.     protected $dateCandidature;
  48.     /**
  49.      * @var \DateTime
  50.      * @ORM\Column(name="date_validate", type="datetime", nullable=true))
  51.      * @GRID\Column(title="Date de validation", size="150", type="date", format="d/m/Y"),
  52.      */
  53.     protected $dateValidate;
  54.     /**
  55.      * @var \DateTime
  56.      * @ORM\Column(name="date_init", type="datetime")
  57.      * @GRID\Column(title="Date de création", size="150", type="date", format="d/m/Y"),
  58.      */
  59.     protected $dateInit;
  60.     /**
  61.      * @ORM\Column(name="popup", type="boolean")
  62.      */
  63.     protected $popup;
  64.     /**
  65.      * @ORM\Column(name="validate", type="boolean")
  66.      * @GRID\Column(title="Candidature finalisée",size="50")
  67.      */
  68.     protected $validate;
  69.     /**
  70.      * @ORM\Column(name="recevable", type="boolean")
  71.      */
  72.     protected $recevable;
  73.     /**
  74.      * @ORM\Column(name="sended", type="boolean", nullable=true)
  75.      */
  76.     protected $sended;
  77.     /**
  78.      * @ORM\Column(name="origine_autres", type="text", nullable=true)
  79.      */
  80.     protected $origineAutres;
  81.     /**
  82.      * @ORM\Column(name="commentaire", type="text", nullable=true)
  83.      */
  84.     protected $commentaire;
  85.     /**
  86.      * @ORM\Column(name="select_comm_json", type="text", nullable=true)
  87.      */
  88.     protected $selectCommisionJSON;
  89.     /**
  90.      * @ORM\Column(name="commentaire_commission", type="text", nullable=true)
  91.      */
  92.     protected $commentaireCommission;
  93.     /**
  94.      * @ORM\Column(name="init", type="boolean")
  95.      * @GRID\Column(title="Candidature en cours",size="50")
  96.      */
  97.     protected $init;
  98.     /**
  99.      *
  100.      * @ORM\ManyToOne(targetEntity="RecCandidatureStatut", inversedBy="candidature")
  101.      * @ORM\JoinColumn(name="candidature_statut_id", referencedColumnName="id")
  102.      * @GRID\Column(field="candidatureStatut.name",  type="statutcandidature", title="Statut", size="150", filter="select",  selectFrom="source", operatorsVisible=false)
  103.      */
  104.     protected $candidatureStatut;
  105.     /**
  106.      *
  107.      * @ORM\ManyToOne(targetEntity="RecCandidatureSuivie", inversedBy="candidature")
  108.      * @ORM\JoinColumn(name="candidature_suivie_id", referencedColumnName="id")
  109.      * @GRID\Column(field="candidatureSuivie.name",  type="suiviecandidature", title="Suivie", size="150", filter="select",  selectFrom="source", operatorsVisible=false)
  110.      */
  111.     protected $candidatureSuivie;
  112.     /**
  113.      *
  114.      * @ORM\ManyToOne(targetEntity="RecCandidatureAudition", inversedBy="candidature")
  115.      * @ORM\JoinColumn(name="candidature_audition_id", referencedColumnName="id")
  116.      * @GRID\Column(field="candidatureAudition.name",  type="auditioncandidature", title="Audition", size="150", filter="select",  selectFrom="source", operatorsVisible=false)
  117.      */
  118.     protected $candidatureAudition;
  119.     /**
  120.      *
  121.      * @ORM\ManyToOne(targetEntity="RecCandidatureSituation", inversedBy="candidature")
  122.      * @ORM\JoinColumn(name="candidature_situation_id", referencedColumnName="id")
  123.      * @GRID\Column(field="candidatureSituation.name",  type="situationcandidature", title="Situation", size="150", filter="select",  selectFrom="source", operatorsVisible=false)
  124.      */
  125.     protected $candidatureSituation;
  126.     /**
  127.      *
  128.      * @ORM\ManyToOne(targetEntity="RecCandidatureOrigine", inversedBy="candidature")
  129.      * @ORM\JoinColumn(name="candidature_origine_id", referencedColumnName="id")
  130.      * @GRID\Column(field="candidatureOrigine.name",  type="originecandidature", title="Origine", size="150", filter="select",  selectFrom="source", operatorsVisible=false)
  131.      */
  132.     protected $candidatureOrigine;
  133.     /**
  134.     * @ORM\OneToMany(targetEntity="RecDocument", mappedBy="candidature", cascade={"remove"})
  135.     */
  136.     private $documents;
  137.     /**
  138.      * @ORM\OneToMany(targetEntity="RecRapport", mappedBy="candidature", cascade={"remove"})
  139.      */
  140.     private $rapports;
  141.     /**
  142.      * @ORM\OneToMany(targetEntity="RecAvisMembre", mappedBy="candidature", cascade={"remove"})
  143.      */
  144.     private $avisMembre;
  145.     /**
  146.      *
  147.      * @ORM\ManyToOne(targetEntity="RecSecteur", inversedBy="candidature")
  148.      * @ORM\JoinColumn(name="secteur_id", referencedColumnName="id")
  149.      */
  150.     protected $secteur;
  151.     protected $rapporteurs;
  152.     public function __construct()
  153.     {
  154.         $this->init false;
  155.         $this->popup true;
  156.         $this->validate false;
  157.         $this->sended false;
  158.         $this->recevable false;
  159.         $this->dateInit = new \DateTime('now');
  160.         $this->documents = new ArrayCollection();
  161.         $this->rapporteurs = new ArrayCollection();
  162.         $this->rapports = new ArrayCollection();
  163.         $this->avisMembre = new ArrayCollection();
  164.     }
  165.     /**
  166.      * Get id
  167.      *
  168.      * @return integer 
  169.      */
  170.     public function getId()
  171.     {
  172.         return $this->id;
  173.     }
  174.     /**
  175.      * Set date_candidature
  176.      *
  177.      * @param \DateTime $dateCandidature
  178.      * @return RecCandidature
  179.      */
  180.     public function setDateCandidature($dateCandidature)
  181.     {
  182.         $this->dateCandidature $dateCandidature;
  183.         return $this;
  184.     }
  185.     /**
  186.      * Get date_candidature
  187.      *
  188.      * @return \DateTime 
  189.      */
  190.     public function getDateCandidature()
  191.     {
  192.         return $this->dateCandidature;
  193.     }
  194.     /**
  195.      * Set validate
  196.      *
  197.      * @param boolean $validate
  198.      * @return RecCandidature
  199.      */
  200.     public function setValidate($validate)
  201.     {
  202.         $this->validate $validate;
  203.         return $this;
  204.     }
  205.     /**
  206.      * Get validate
  207.      *
  208.      * @return boolean 
  209.      */
  210.     public function getValidate()
  211.     {
  212.         return $this->validate;
  213.     }
  214.     /**
  215.      * Set candidat
  216.      *
  217.      * @param \App\Entity\RecCandidat $candidat
  218.      * @return RecCandidature
  219.      */
  220.     public function setCandidat(\App\Entity\RecCandidat $candidat null)
  221.     {
  222.         $this->candidat $candidat;
  223.         return $this;
  224.     }
  225.     /**
  226.      * Get candidat
  227.      *
  228.      * @return \Dosi\RecrutementBundle\Entity\RecCandidat 
  229.      */
  230.     public function getCandidat()
  231.     {
  232.         return $this->candidat;
  233.     }
  234.     /**
  235.      * Set poste
  236.      *
  237.      * @param \App\Entity\RecPoste $poste
  238.      * @return RecCandidature
  239.      */
  240.     public function setPoste(\App\Entity\RecPoste $poste null)
  241.     {
  242.         $this->poste $poste;
  243.         return $this;
  244.     }
  245.     /**
  246.      * Get poste
  247.      *
  248.      * @return \Dosi\RecrutementBundle\Entity\RecPoste 
  249.      */
  250.     public function getPoste()
  251.     {
  252.         return $this->poste;
  253.     }
  254.     /**
  255.      * Set candidature_statut
  256.      *
  257.      * @param \App\Entity\RecCandidatureStatut $candidatureStatut
  258.      * @return RecCandidature
  259.      */
  260.     public function setCandidatureStatut(\App\Entity\RecCandidatureStatut $candidatureStatut null)
  261.     {
  262.         $this->candidatureStatut $candidatureStatut;
  263.         return $this;
  264.     }
  265.     /**
  266.      * Get candidature_statut
  267.      *
  268.      * @return \Dosi\RecrutementBundle\Entity\RecCandidatureStatut 
  269.      */
  270.     public function getCandidatureStatut()
  271.     {
  272.         return $this->candidatureStatut;
  273.     }
  274.     /**
  275.      * Set init
  276.      *
  277.      * @param boolean $init
  278.      * @return RecCandidature
  279.      */
  280.     public function setInit($init)
  281.     {
  282.         $this->init $init;
  283.         return $this;
  284.     }
  285.     /**
  286.      * Get init
  287.      *
  288.      * @return boolean 
  289.      */
  290.     public function getInit()
  291.     {
  292.         return $this->init;
  293.     }
  294.     /**
  295.      * Set dateInit
  296.      *
  297.      * @param \DateTime $dateInit
  298.      * @return RecCandidature
  299.      */
  300.     public function setDateInit($dateInit)
  301.     {
  302.         $this->dateInit $dateInit;
  303.         return $this;
  304.     }
  305.     /**
  306.      * Get dateInit
  307.      *
  308.      * @return \DateTime 
  309.      */
  310.     public function getDateInit()
  311.     {
  312.         return $this->dateInit;
  313.     }
  314.     /**
  315.      * Add documents
  316.      *
  317.      * @param \App\Entity\RecDocument $documents
  318.      * @return RecCandidature
  319.      */
  320.     public function addDocument(\App\Entity\RecDocument $documents)
  321.     {
  322.         $this->documents[] = $documents;
  323.         return $this;
  324.     }
  325.     /**
  326.      * Remove documents
  327.      *
  328.      * @param \App\Entity\RecDocument $documents
  329.      */
  330.     public function removeDocument(\App\Entity\RecDocument $documents)
  331.     {
  332.         $this->documents->removeElement($documents);
  333.     }
  334.     /**
  335.      * Get documents
  336.      *
  337.      * @return \Doctrine\Common\Collections\Collection 
  338.      */
  339.     public function getDocuments()
  340.     {
  341.         return $this->documents;
  342.     }
  343.     /**
  344.      * Set dateValidate
  345.      *
  346.      * @param \DateTime $dateValidate
  347.      * @return RecCandidature
  348.      */
  349.     public function setDateValidate($dateValidate)
  350.     {
  351.         $this->dateValidate $dateValidate;
  352.         return $this;
  353.     }
  354.     /**
  355.      * Get dateValidate
  356.      *
  357.      * @return \DateTime 
  358.      */
  359.     public function getDateValidate()
  360.     {
  361.         return $this->dateValidate;
  362.     }
  363.     /**
  364.      * Set popup
  365.      *
  366.      * @param boolean $popup
  367.      * @return RecCandidature
  368.      */
  369.     public function setPopup($popup)
  370.     {
  371.         $this->popup $popup;
  372.         return $this;
  373.     }
  374.     /**
  375.      * Get popup
  376.      *
  377.      * @return boolean 
  378.      */
  379.     public function getPopup()
  380.     {
  381.         return $this->popup;
  382.     }
  383.     public function isQuotaExcedeed($size)
  384.     {
  385.         $ratio "50";
  386.         $bytes 0;
  387.         $ratioBytes $ratio*1048576;
  388.         foreach($this->documents as $document)
  389.         {
  390.             if(file_exists($document->getAbsolutePath().'/'.$document->getHiddenName()))
  391.                 $bytes+= filesize($document->getAbsolutePath().'/'.$document->getHiddenName());
  392.         }
  393.         if(($bytes+$size)>$ratioBytes)
  394.             return true;
  395.         else
  396.             return false;
  397.     }
  398.     public function getStockageRatio()
  399.     {
  400.         $bytes 0;
  401.         $ratio "50";
  402.         foreach($this->documents as $document)
  403.         {
  404.             if(file_exists($document->getAbsolutePath().'/'.$document->getHiddenName()))
  405.                 $bytes+= filesize($document->getAbsolutePath().'/'.$document->getHiddenName());
  406.         }
  407.         $ratioBytes $ratio*1048576;
  408.         return number_format($bytes $ratioBytes,2);
  409.     }
  410.     public function getStockage()
  411.     {
  412.         $bytes 0;
  413.         foreach($this->documents as $document)
  414.         {
  415.             if(file_exists($document->getAbsolutePath().'/'.$document->getHiddenName()))
  416.                 $bytes+= filesize($document->getAbsolutePath().'/'.$document->getHiddenName());
  417.         }
  418.         if ($bytes >= 1073741824)
  419.         {
  420.             $bytes number_format($bytes 10737418242) . ' GB';
  421.         }
  422.         elseif ($bytes >= 1048576)
  423.         {
  424.             $bytes number_format($bytes 10485762) . ' MB';
  425.         }
  426.         elseif ($bytes >= 1024)
  427.         {
  428.             $bytes number_format($bytes 10242) . ' KB';
  429.         }
  430.         elseif ($bytes 1)
  431.         {
  432.             $bytes $bytes ' bytes';
  433.         }
  434.         elseif ($bytes == 1)
  435.         {
  436.             $bytes $bytes ' byte';
  437.         }
  438.         else
  439.         {
  440.             $bytes '0 bytes';
  441.         }
  442.         return $bytes;
  443.     }
  444.     /**
  445.      * Set secteur
  446.      *
  447.      * @param \App\Entity\RecSecteur $secteur
  448.      * @return RecCandidature
  449.      */
  450.     public function setSecteur(\App\Entity\RecSecteur $secteur null)
  451.     {
  452.         $this->secteur $secteur;
  453.         return $this;
  454.     }
  455.     /**
  456.      * Get secteur
  457.      *
  458.      * @return \Dosi\RecrutementBundle\Entity\RecSecteur 
  459.      */
  460.     public function getSecteur()
  461.     {
  462.         return $this->secteur;
  463.     }
  464.     /**
  465.      * Set recevable
  466.      *
  467.      * @param boolean $recevable
  468.      * @return RecCandidature
  469.      */
  470.     public function setRecevable($recevable)
  471.     {
  472.         $this->recevable $recevable;
  473.         return $this;
  474.     }
  475.     /**
  476.      * Get recevable
  477.      *
  478.      * @return boolean 
  479.      */
  480.     public function getRecevable()
  481.     {
  482.         return $this->recevable;
  483.     }
  484.     /**
  485.      * Set commentaire
  486.      *
  487.      * @param string $commentaire
  488.      * @return RecCandidature
  489.      */
  490.     public function setCommentaire($commentaire)
  491.     {
  492.         $this->commentaire $commentaire;
  493.         return $this;
  494.     }
  495.     /**
  496.      * Get commentaire
  497.      *
  498.      * @return string 
  499.      */
  500.     public function getCommentaire()
  501.     {
  502.         return $this->commentaire;
  503.     }
  504.     /**
  505.      * Set candidatureSuivie
  506.      *
  507.      * @param \App\Entity\RecCandidatureSuivie $candidatureSuivie
  508.      * @return RecCandidature
  509.      */
  510.     public function setCandidatureSuivie(\App\Entity\RecCandidatureSuivie $candidatureSuivie null)
  511.     {
  512.         $this->candidatureSuivie $candidatureSuivie;
  513.         return $this;
  514.     }
  515.     /**
  516.      * Get candidatureSuivie
  517.      *
  518.      * @return \Dosi\RecrutementBundle\Entity\RecCandidatureSuivie 
  519.      */
  520.     public function getCandidatureSuivie()
  521.     {
  522.         return $this->candidatureSuivie;
  523.     }
  524.     public function cleanDocuments()
  525.     {
  526.         $this->documents = new ArrayCollection();
  527.         return $this;
  528.     }
  529.     /**
  530.      * Add rapports
  531.      *
  532.      * @param \App\Entity\RecRapport $rapports
  533.      * @return RecCandidature
  534.      */
  535.     public function addRapport(\App\Entity\RecRapport $rapports)
  536.     {
  537.         $this->rapports[] = $rapports;
  538.         return $this;
  539.     }
  540.     /**
  541.      * Remove rapports
  542.      *
  543.      * @param \App\Entity\RecRapport $rapports
  544.      */
  545.     public function removeRapport(\App\Entity\RecRapport $rapports)
  546.     {
  547.         $this->rapports->removeElement($rapports);
  548.     }
  549.     /**
  550.      * Get rapports
  551.      *
  552.      * @return \Doctrine\Common\Collections\Collection 
  553.      */
  554.     public function getRapports()
  555.     {
  556.         return $this->rapports;
  557.     }
  558.     public function addRapporteur(\App\Entity\RecMembre $membre)
  559.     {
  560.         $this->rapporteurs[] = $membre;
  561.         return $this;
  562.     }
  563.     public function removeRapporteur(\App\Entity\RecMembre $membre)
  564.     {
  565.         $this->rapporteurs->removeElement($membre);
  566.     }
  567.     /**
  568.      * Get documents
  569.      *
  570.      * @return \Doctrine\Common\Collections\Collection
  571.      */
  572.     public function getRapporteurs()
  573.     {
  574.         return $this->rapporteurs;
  575.     }
  576.     /**
  577.      * Set candidatureAudition
  578.      *
  579.      * @param \App\Entity\RecCandidatureAudition $candidatureAudition
  580.      * @return RecCandidature
  581.      */
  582.     public function setCandidatureAudition(\App\Entity\RecCandidatureAudition $candidatureAudition null)
  583.     {
  584.         $this->candidatureAudition $candidatureAudition;
  585.         return $this;
  586.     }
  587.     /**
  588.      * Get candidatureAudition
  589.      *
  590.      * @return \Dosi\RecrutementBundle\Entity\RecCandidatureAudition 
  591.      */
  592.     public function getCandidatureAudition()
  593.     {
  594.         return $this->candidatureAudition;
  595.     }
  596.     /**
  597.      * Set candidatureSituation
  598.      *
  599.      * @param \App\Entity\RecCandidatureSituation $candidatureSituation
  600.      * @return RecCandidature
  601.      */
  602.     public function setCandidatureSituation(\App\Entity\RecCandidatureSituation $candidatureSituation null)
  603.     {
  604.         $this->candidatureSituation $candidatureSituation;
  605.         return $this;
  606.     }
  607.     /**
  608.      * Get candidatureSituation
  609.      *
  610.      * @return \Dosi\RecrutementBundle\Entity\RecCandidatureSituation 
  611.      */
  612.     public function getCandidatureSituation()
  613.     {
  614.         return $this->candidatureSituation;
  615.     }
  616.     /**
  617.      * Set sended
  618.      *
  619.      * @param boolean $sended
  620.      * @return RecCandidature
  621.      */
  622.     public function setSended($sended)
  623.     {
  624.         $this->sended $sended;
  625.         return $this;
  626.     }
  627.     /**
  628.      * Get sended
  629.      *
  630.      * @return boolean 
  631.      */
  632.     public function getSended()
  633.     {
  634.         return $this->sended;
  635.     }
  636.     /**
  637.      * Set commentaireCommission.
  638.      *
  639.      * @param string|null $commentaireCommission
  640.      *
  641.      * @return RecCandidature
  642.      */
  643.     public function setCommentaireCommission($commentaireCommission null)
  644.     {
  645.         $this->commentaireCommission $commentaireCommission;
  646.         return $this;
  647.     }
  648.     /**
  649.      * Get commentaireCommission.
  650.      *
  651.      * @return string|null
  652.      */
  653.     public function getCommentaireCommission()
  654.     {
  655.         return $this->commentaireCommission;
  656.     }
  657.     /**
  658.      * Set origineAutres.
  659.      *
  660.      * @param string|null $origineAutres
  661.      *
  662.      * @return RecCandidature
  663.      */
  664.     public function setOrigineAutres($origineAutres null)
  665.     {
  666.         $this->origineAutres $origineAutres;
  667.         return $this;
  668.     }
  669.     /**
  670.      * Get origineAutres.
  671.      *
  672.      * @return string|null
  673.      */
  674.     public function getOrigineAutres()
  675.     {
  676.         return $this->origineAutres;
  677.     }
  678.     /**
  679.      * Set candidatureOrigine.
  680.      *
  681.      * @param \App\Entity\RecCandidatureOrigine|null $candidatureOrigine
  682.      *
  683.      * @return RecCandidature
  684.      */
  685.     public function setCandidatureOrigine(\App\Entity\RecCandidatureOrigine $candidatureOrigine null)
  686.     {
  687.         $this->candidatureOrigine $candidatureOrigine;
  688.         return $this;
  689.     }
  690.     /**
  691.      * Get candidatureOrigine.
  692.      *
  693.      * @return \Dosi\RecrutementBundle\Entity\RecCandidatureOrigine|null
  694.      */
  695.     public function getCandidatureOrigine()
  696.     {
  697.         return $this->candidatureOrigine;
  698.     }
  699.     /**
  700.      * Set selectCommisionJSON.
  701.      *
  702.      * @param string|null $selectCommisionJSON
  703.      *
  704.      * @return RecCandidature
  705.      */
  706.     public function setSelectCommisionJSON($selectCommisionJSON null)
  707.     {
  708.         $this->selectCommisionJSON $selectCommisionJSON;
  709.         return $this;
  710.     }
  711.     /**
  712.      * Get selectCommisionJSON.
  713.      *
  714.      * @return string|null
  715.      */
  716.     public function getSelectCommisionJSON()
  717.     {
  718.         return $this->selectCommisionJSON;
  719.     }
  720.     public function getStateAudition($id)
  721.     {
  722.         $states json_decode($this->selectCommisionJSON,true);
  723.         if(is_array($states))
  724.         {
  725.             if(isset($states[$id]))
  726.                 return $states[$id];
  727.             else
  728.                 return 0;
  729.         }
  730.         else
  731.             return 0;
  732.     }
  733.     public function isPopup(): ?bool
  734.     {
  735.         return $this->popup;
  736.     }
  737.     public function isValidate(): ?bool
  738.     {
  739.         return $this->validate;
  740.     }
  741.     public function isRecevable(): ?bool
  742.     {
  743.         return $this->recevable;
  744.     }
  745.     public function isSended(): ?bool
  746.     {
  747.         return $this->sended;
  748.     }
  749.     public function isInit(): ?bool
  750.     {
  751.         return $this->init;
  752.     }
  753.     /**
  754.      * @return Collection<int, RecAvisMembre>
  755.      */
  756.     public function getAvisMembre(): Collection
  757.     {
  758.         return $this->avisMembre;
  759.     }
  760.     public function addAvisMembre(RecAvisMembre $avisMembre): static
  761.     {
  762.         if (!$this->avisMembre->contains($avisMembre)) {
  763.             $this->avisMembre->add($avisMembre);
  764.             $avisMembre->setCandidature($this);
  765.         }
  766.         return $this;
  767.     }
  768.     public function removeAvisMembre(RecAvisMembre $avisMembre): static
  769.     {
  770.         if ($this->avisMembre->removeElement($avisMembre)) {
  771.             // set the owning side to null (unless already changed)
  772.             if ($avisMembre->getCandidature() === $this) {
  773.                 $avisMembre->setCandidature(null);
  774.             }
  775.         }
  776.         return $this;
  777.     }
  778. }