src/Entity/RecPoste.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\Collection;
  4. use Doctrine\DBAL\Types\Types;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use APY\DataGridBundle\Grid\Mapping as GRID;
  7. use App\Entity\RecTypePopulation;
  8. use Symfony\Component\Validator\Mapping\ClassMetadata;
  9. use Symfony\Component\Validator\Constraints\NotBlank;
  10. use Symfony\Component\Validator\Constraints\Type;
  11. use Doctrine\Common\Collections\ArrayCollection;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. /**
  14.  * Client
  15.  *
  16.  * @ORM\Table(name="rec_poste")
  17.  * @ORM\HasLifecycleCallbacks
  18.  * @ORM\Entity(repositoryClass="App\Repository\RecPosteRepository")
  19.  * @GRID\Source(columns="id, typepopulation.identifiant, idInterne, openDate, closeDate")
  20.  */
  21. class RecPoste
  22. {
  23.     /**
  24.      * @var integer
  25.      * @ORM\Column(name="id", type="integer")
  26.      * @ORM\Id
  27.      * @ORM\GeneratedValue(strategy="AUTO")
  28.      * @GRID\Column(title="Id", size="100", type="text",visible=false)
  29.      */
  30.     private $id;
  31.     /**
  32.      * @ORM\Column(type= "string", length=150)
  33.      * @Assert\NotBlank()
  34.      * @GRID\Column(title="Intitulé", size="150", type="text")
  35.      */
  36.     protected $title;
  37.     /**
  38.      * @var \DateTime
  39.      * @ORM\Column(name="open_date", type="datetime")
  40.      * @GRID\Column(title="Date d'ouverture", size="150", type="date", format="d/m/Y à h:i"),
  41.      */
  42.     private $openDate;
  43.     /**
  44.      * @var \DateTime
  45.      * @ORM\Column(name="close_date", type="datetime")
  46.      * @GRID\Column(title="Date de fermeture", size="150", type="date", format="d/m/Y à h:i"),
  47.      */
  48.     private $closeDate;
  49.     /**
  50.      * @var string
  51.      * @ORM\Column(name="audition", type="text", nullable=true)
  52.      */
  53.     private $audition;
  54.     /**
  55.      * @var \DateTime
  56.      * @ORM\Column(name="audition_date", type="datetime", nullable=true)
  57.      */
  58.     private $auditionDate;
  59.     /**
  60.      * @var \DateTime
  61.      * @ORM\Column(name="convocation_date", type="datetime", nullable=true)
  62.      */
  63.     private $convocationDate;
  64.     /**
  65.      * @var \DateTime
  66.      * @ORM\Column(name="response_date", type="datetime", nullable=true)
  67.      */
  68.     private $responseDate;
  69.     /**
  70.      *
  71.      * @ORM\ManyToOne(targetEntity="RecTypePopulation", inversedBy="postes")
  72.      * @ORM\JoinColumn(name="typepopulation_id", referencedColumnName="id")
  73.      * @GRID\Column(field="typepopulation.identifiant", title="Type de Population",size="150", type="text")
  74.      */
  75.     protected $typepopulation;
  76.     /**
  77.      * @var string
  78.      * @ORM\Column(name="id_interne", type="string", length=50)
  79.      * @GRID\Column(title="Numéro interne", size="150", type="text")
  80.      */
  81.     private $idInterne;
  82.     /**
  83.      * @var string
  84.      * @ORM\Column(name="id_externe", type="string", length=50,nullable=true)
  85.      * @GRID\Column(title="Numéro externe", size="150", type="text")
  86.      */
  87.     private $idExterne;
  88.     /**
  89.      * @var string
  90.      * @ORM\Column(name="description", type="text", nullable=true)
  91.      */
  92.     private $description;
  93.     /**
  94.      * @var string
  95.      * @ORM\Column(name="information", type="text", nullable=true)
  96.      */
  97.     private $information;
  98.     /**
  99.      * @var string
  100.      * @ORM\Column(name="comments", type="text", nullable=true)
  101.      */
  102.     private $comments;
  103.     /**
  104.      * @var string
  105.      * @ORM\Column(name="usernotaccess", type="text", nullable=true)
  106.      */
  107.     private $usernotaccess;
  108.     /**
  109.      * @ORM\OneToMany(targetEntity="App\Entity\RecCandidature", mappedBy="poste",cascade={"persist"})
  110.      */
  111.     private $candidatures;
  112.     /**
  113.      * @ORM\Column(name="is_spontane", type="boolean")
  114.      */
  115.     private $isSpontane;
  116.     /**
  117.      * @ORM\Column(name="archive", type="boolean", nullable=true)
  118.      */
  119.     private $archive;
  120.     /**
  121.      * @ORM\Column(name="pdf", type="boolean", nullable=true)
  122.      */
  123.     private $pdf;
  124.     /**
  125.      *
  126.      * @ORM\OneToOne(targetEntity="App\Entity\RecDocument", cascade={"persist"})
  127.      **/
  128.     protected $fiche;
  129.     /**
  130.      *
  131.      * @ORM\OneToOne(targetEntity="App\Entity\RecDocument", cascade={"persist"})
  132.      **/
  133.     protected $annexe;
  134.     /**
  135.      * @ORM\OneToMany(targetEntity="RecDocumentPoste", mappedBy="poste", cascade={"remove"})
  136.      */
  137.     private $documents;
  138.     /**
  139.      * @ORM\OneToMany(targetEntity="RecEmail", mappedBy="poste", cascade={"remove"})
  140.      */
  141.     private $emails;
  142.     private $nbStatusRH;
  143.     function __construct()
  144.     {
  145.         $this->openDate = new \DateTime('now');
  146.         $this->openDate->setTime(000);
  147.         $this->closeDate = new \DateTime('now');
  148.         $this->closeDate->setTime(235959);
  149.         $this->candidatures = new ArrayCollection();
  150.         $this->isSpontane false;
  151.         $this->documents = new ArrayCollection();
  152.         $this->emails = new ArrayCollection();
  153.         $this->pdf=false;
  154.         $this->archive=false;
  155.         $this->isSpontane=false;
  156.     }
  157.     /**
  158.      * Get id
  159.      *
  160.      * @return integer 
  161.      */
  162.     public function getId()
  163.     {
  164.         return $this->id;
  165.     }
  166.     /**
  167.      * Set openDate
  168.      *
  169.      * @param \DateTime $openDate
  170.      * @return RecPoste
  171.      */
  172.     public function setOpenDate($openDate)
  173.     {
  174.         $this->openDate $openDate;
  175.         return $this;
  176.     }
  177.     /**
  178.      * Get openDate
  179.      *
  180.      * @return \DateTime 
  181.      */
  182.     public function getOpenDate()
  183.     {
  184.         return $this->openDate;
  185.     }
  186.     /**
  187.      * Set closeDate
  188.      *
  189.      * @param \DateTime $closeDate
  190.      * @return RecPoste
  191.      */
  192.     public function setCloseDate($closeDate)
  193.     {
  194.         $this->closeDate $closeDate;
  195.         return $this;
  196.     }
  197.     /**
  198.      * Get closeDate
  199.      *
  200.      * @return \DateTime 
  201.      */
  202.     public function getCloseDate()
  203.     {
  204.         return $this->closeDate;
  205.     }
  206.     /**
  207.      * Set id_interne
  208.      *
  209.      * @param string $idInterne
  210.      * @return RecPoste
  211.      */
  212.     public function setIdInterne($idInterne)
  213.     {
  214.         $this->idInterne $idInterne;
  215.         return $this;
  216.     }
  217.     /**
  218.      * Get id_interne
  219.      *
  220.      * @return string 
  221.      */
  222.     public function getIdInterne()
  223.     {
  224.         return $this->idInterne;
  225.     }
  226.     /**
  227.      * Set id_externe
  228.      *
  229.      * @param string $idExterne
  230.      * @return RecPoste
  231.      */
  232.     public function setIdExterne($idExterne)
  233.     {
  234.         $this->idExterne $idExterne;
  235.         return $this;
  236.     }
  237.     /**
  238.      * Get id_externe
  239.      *
  240.      * @return string 
  241.      */
  242.     public function getIdExterne()
  243.     {
  244.         return $this->idExterne;
  245.     }
  246.     /**
  247.      * Set typepopulation
  248.      *
  249.      * @param \App\Entity\RecTypePopulation $typepopulation
  250.      * @return RecPoste
  251.      */
  252.     public function setTypepopulation(\App\Entity\RecTypePopulation $typepopulation null)
  253.     {
  254.         $this->typepopulation $typepopulation;
  255.         return $this;
  256.     }
  257.     /**
  258.      * Get typepopulation
  259.      *
  260.      * @return \Dosi\RecrutementBundle\Entity\RecTypePopulation 
  261.      */
  262.     public function getTypepopulation()
  263.     {
  264.         return $this->typepopulation;
  265.     }
  266.     /**
  267.      * Add candidatures
  268.      *
  269.      * @param \App\Entity\RecCandidature $candidatures
  270.      * @return RecPoste
  271.      */
  272.     public function addCandidature(\App\Entity\RecCandidature $candidatures)
  273.     {
  274.         $this->candidatures[] = $candidatures;
  275.         return $this;
  276.     }
  277.     /**
  278.      * Remove candidatures
  279.      *
  280.      * @param \App\Entity\RecCandidature $candidatures
  281.      */
  282.     public function removeCandidature(\App\Entity\RecCandidature $candidatures)
  283.     {
  284.         $this->candidatures->removeElement($candidatures);
  285.     }
  286.     /**
  287.      * Get candidatures
  288.      *
  289.      * @return \Doctrine\Common\Collections\Collection 
  290.      */
  291.     public function getCandidatures()
  292.     {
  293.         return $this->candidatures;
  294.     }
  295.     public function getNbCandidatures()
  296.     {
  297.         return count($this->candidatures);
  298.     }
  299.     /**
  300.      * Set title
  301.      *
  302.      * @param string $title
  303.      * @return RecPoste
  304.      */
  305.     public function setTitle($title)
  306.     {
  307.         $this->title $title;
  308.         return $this;
  309.     }
  310.     /**
  311.      * Get title
  312.      *
  313.      * @return string 
  314.      */
  315.     public function getTitle()
  316.     {
  317.         return $this->title;
  318.     }
  319.     /**
  320.      * Set description
  321.      *
  322.      * @param string $description
  323.      * @return RecPoste
  324.      */
  325.     public function setDescription($description)
  326.     {
  327.         $this->description $description;
  328.         return $this;
  329.     }
  330.     /**
  331.      * Get description
  332.      *
  333.      * @return string 
  334.      */
  335.     public function getDescription()
  336.     {
  337.         return $this->description;
  338.     }
  339.     /**
  340.      * Set fiche
  341.      *
  342.      * @param \App\Entity\RecDocument $fiche
  343.      * @return RecPoste
  344.      */
  345.     public function setFiche(\App\Entity\RecDocument $fiche null)
  346.     {
  347.         $this->fiche $fiche;
  348.         return $this;
  349.     }
  350.     /**
  351.      * Get fiche
  352.      *
  353.      * @return \Dosi\RecrutementBundle\Entity\RecDocument 
  354.      */
  355.     public function getFiche()
  356.     {
  357.         return $this->fiche;
  358.     }
  359.     /**
  360.      * Set isSpontane
  361.      *
  362.      * @param boolean $isSpontane
  363.      * @return RecPoste
  364.      */
  365.     public function setIsSpontane($isSpontane)
  366.     {
  367.         $this->isSpontane $isSpontane;
  368.         return $this;
  369.     }
  370.     /**
  371.      * Get isSpontane
  372.      *
  373.      * @return boolean 
  374.      */
  375.     public function getIsSpontane()
  376.     {
  377.         return $this->isSpontane;
  378.     }
  379.     /**
  380.      * Set annexe
  381.      *
  382.      * @param \App\Entity\RecDocument $annexe
  383.      * @return RecPoste
  384.      */
  385.     public function setAnnexe(\App\Entity\RecDocument $annexe null)
  386.     {
  387.         $this->annexe $annexe;
  388.         return $this;
  389.     }
  390.     /**
  391.      * Get annexe
  392.      *
  393.      * @return \Dosi\RecrutementBundle\Entity\RecDocument 
  394.      */
  395.     public function getAnnexe()
  396.     {
  397.         return $this->annexe;
  398.     }
  399.     /**
  400.      * Set archive
  401.      *
  402.      * @param boolean $archive
  403.      * @return RecPoste
  404.      */
  405.     public function setArchive($archive)
  406.     {
  407.         $this->archive $archive;
  408.         return $this;
  409.     }
  410.     /**
  411.      * Get archive
  412.      *
  413.      * @return boolean 
  414.      */
  415.     public function getArchive()
  416.     {
  417.         return $this->archive;
  418.     }
  419.     /**
  420.      * Set usernotaccess
  421.      *
  422.      * @param string $usernotaccess
  423.      * @return RecPoste
  424.      */
  425.     public function setUsernotaccess($usernotaccess)
  426.     {
  427.         $this->usernotaccess $usernotaccess;
  428.         return $this;
  429.     }
  430.     /**
  431.      * Get usernotaccess
  432.      *
  433.      * @return string 
  434.      */
  435.     public function getUsernotaccess()
  436.     {
  437.         return $this->usernotaccess;
  438.     }
  439.     /**
  440.      * Add documents
  441.      *
  442.      * @param \App\Entity\RecDocumentPoste $documents
  443.      * @return RecPoste
  444.      */
  445.     public function addDocument(\App\Entity\RecDocumentPoste $documents)
  446.     {
  447.         $this->documents[] = $documents;
  448.         return $this;
  449.     }
  450.     /**
  451.      * Remove documents
  452.      *
  453.      * @param \App\Entity\RecDocumentPoste $documents
  454.      */
  455.     public function removeDocument(\App\Entity\RecDocumentPoste $documents)
  456.     {
  457.         $this->documents->removeElement($documents);
  458.     }
  459.     /**
  460.      * Get documents
  461.      *
  462.      * @return \Doctrine\Common\Collections\Collection 
  463.      */
  464.     public function getDocuments()
  465.     {
  466.         return $this->documents;
  467.     }
  468.     public function getStockageRatio()
  469.     {
  470.         $bytes 0;
  471.         $ratio "50";
  472.         foreach($this->documents as $document)
  473.         {
  474.             if(file_exists($document->getAbsolutePath().'/'.$document->getHiddenName()))
  475.                 $bytes+= filesize($document->getAbsolutePath().'/'.$document->getHiddenName());
  476.         }
  477.         $ratioBytes $ratio*1048576;
  478.         return number_format($bytes $ratioBytes,2);
  479.     }
  480.     public function getStockage()
  481.     {
  482.         $bytes 0;
  483.         foreach($this->documents as $document)
  484.         {
  485.             if(file_exists($document->getAbsolutePath().'/'.$document->getHiddenName()))
  486.                 $bytes+= filesize($document->getAbsolutePath().'/'.$document->getHiddenName());
  487.         }
  488.         if ($bytes >= 1073741824)
  489.         {
  490.             $bytes number_format($bytes 10737418242) . ' GB';
  491.         }
  492.         elseif ($bytes >= 1048576)
  493.         {
  494.             $bytes number_format($bytes 10485762) . ' MB';
  495.         }
  496.         elseif ($bytes >= 1024)
  497.         {
  498.             $bytes number_format($bytes 10242) . ' KB';
  499.         }
  500.         elseif ($bytes 1)
  501.         {
  502.             $bytes $bytes ' bytes';
  503.         }
  504.         elseif ($bytes == 1)
  505.         {
  506.             $bytes $bytes ' byte';
  507.         }
  508.         else
  509.         {
  510.             $bytes '0 bytes';
  511.         }
  512.         return $bytes;
  513.     }
  514.     /**
  515.      * Add emails
  516.      *
  517.      * @param \App\Entity\RecEmail $emails
  518.      * @return RecPoste
  519.      */
  520.     public function addEmail(\App\Entity\RecEmail $emails)
  521.     {
  522.         $this->emails[] = $emails;
  523.         return $this;
  524.     }
  525.     /**
  526.      * Remove emails
  527.      *
  528.      * @param \App\Entity\RecEmail $emails
  529.      */
  530.     public function removeEmail(\App\Entity\RecEmail $emails)
  531.     {
  532.         $this->emails->removeElement($emails);
  533.     }
  534.     /**
  535.      * Get emails
  536.      *
  537.      * @return \Doctrine\Common\Collections\Collection 
  538.      */
  539.     public function getEmails()
  540.     {
  541.         return $this->emails;
  542.     }
  543.     /**
  544.      * Set audition
  545.      *
  546.      * @param string $audition
  547.      * @return RecPoste
  548.      */
  549.     public function setAudition($audition)
  550.     {
  551.         $this->audition $audition;
  552.         return $this;
  553.     }
  554.     /**
  555.      * Get audition
  556.      *
  557.      * @return string 
  558.      */
  559.     public function getAudition()
  560.     {
  561.         return $this->audition;
  562.     }
  563.     /**
  564.      * Set auditionDate
  565.      *
  566.      * @param \DateTime $auditionDate
  567.      * @return RecPoste
  568.      */
  569.     public function setAuditionDate($auditionDate)
  570.     {
  571.         $this->auditionDate $auditionDate;
  572.         return $this;
  573.     }
  574.     /**
  575.      * Get auditionDate
  576.      *
  577.      * @return \DateTime 
  578.      */
  579.     public function getAuditionDate()
  580.     {
  581.         return $this->auditionDate;
  582.     }
  583.     /**
  584.      * Set convocationDate
  585.      *
  586.      * @param \DateTime $convocationDate
  587.      * @return RecPoste
  588.      */
  589.     public function setConvocationDate($convocationDate)
  590.     {
  591.         $this->convocationDate $convocationDate;
  592.         return $this;
  593.     }
  594.     /**
  595.      * Get convocationDate
  596.      *
  597.      * @return \DateTime 
  598.      */
  599.     public function getConvocationDate()
  600.     {
  601.         return $this->convocationDate;
  602.     }
  603.     /**
  604.      * Set responseDate
  605.      *
  606.      * @param \DateTime $responseDate
  607.      * @return RecPoste
  608.      */
  609.     public function setResponseDate($responseDate)
  610.     {
  611.         $this->responseDate $responseDate;
  612.         return $this;
  613.     }
  614.     /**
  615.      * Get responseDate
  616.      *
  617.      * @return \DateTime 
  618.      */
  619.     public function getResponseDate()
  620.     {
  621.         return $this->responseDate;
  622.     }
  623.     /**
  624.      * Set comments.
  625.      *
  626.      * @param string|null $comments
  627.      *
  628.      * @return RecPoste
  629.      */
  630.     public function setComments($comments null)
  631.     {
  632.         $this->comments $comments;
  633.         return $this;
  634.     }
  635.     /**
  636.      * Get comments.
  637.      *
  638.      * @return string|null
  639.      */
  640.     public function getComments()
  641.     {
  642.         return $this->comments;
  643.     }
  644.     public function setStatusNbRH($nb)
  645.     {
  646.         $this->nbStatusRH $nb;
  647.         return $this;
  648.     }
  649.     public function getStatusNbRH()
  650.     {
  651.         return $this->nbStatusRH;
  652.     }
  653.     public function isCandidat($email)
  654.     {
  655.         foreach($this->candidatures as $candidature)
  656.         {
  657.             if($candidature->getCandidat()->getEmail()==$email)
  658.                 return $candidature;
  659.         }
  660.         return false;
  661.     }
  662.     public function isIsSpontane(): ?bool
  663.     {
  664.         return $this->isSpontane;
  665.     }
  666.     public function isArchive(): ?bool
  667.     {
  668.         return $this->archive;
  669.     }
  670.     public function isAuthorized($login): ?bool
  671.     {
  672.         if(in_array($login,$this->getTypepopulation()->getUids(true)))
  673.             return true;
  674.         else
  675.             return false;
  676.     }
  677.     public function getInformation(): ?string
  678.     {
  679.         return $this->information;
  680.     }
  681.     public function setInformation(?string $information): static
  682.     {
  683.         $this->information $information;
  684.         return $this;
  685.     }
  686.     public function isPdf(): ?bool
  687.     {
  688.         return $this->pdf;
  689.     }
  690.     public function setPdf(?bool $pdf): static
  691.     {
  692.         $this->pdf $pdf;
  693.         return $this;
  694.     }
  695. }