Advertisement
Guest User

user.php

a guest
Dec 7th, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.40 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Entity;
  4.  
  5. use Cocur\Slugify\Slugify;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Serializable;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. use Symfony\Component\Security\Core\User\UserInterface;
  12. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  13.  
  14. /**
  15. * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
  16. * @ORM\HasLifecycleCallbacks()
  17. * @UniqueEntity(
  18. * fields = {"email"},
  19. * message = "Cette adresse email a déjà été utilisée."
  20. * )
  21. */
  22. class User implements UserInterface
  23. {
  24. /**
  25. * @ORM\Id()
  26. * @ORM\GeneratedValue()
  27. * @ORM\Column(type="integer")
  28. */
  29. private $id;
  30.  
  31. /**
  32. * Adresse email de l'utilisateur
  33. * @ORM\Column(type="string", length=180, unique=true)
  34. * @Assert\NotBlank()
  35. * @Assert\Email(message="Veuillez renseigner un email valide")
  36. */
  37. private $email;
  38.  
  39. /**
  40. * Rôles de l'utilisateur
  41. * @ORM\Column(type="json")
  42. */
  43. private $roles = [];
  44.  
  45. /**
  46. * Mot de passe de l'utilisateur
  47. * @var string The hashed password
  48. * @ORM\Column(type="string")
  49. * @Assert\Length(
  50. * min = 4,
  51. * minMessage = "Votre mot de passe doit contenir au moins {{limit}}",
  52. * )
  53. */
  54. private $password;
  55.  
  56. /**
  57. * Confirmation du mot de passe de l'utilisateur
  58. * @Assert\EqualTo(propertyPath="password", message="Vous n'avez pas correctement confirmé votre mot de passe")
  59. */
  60. public $passwordConfirm;
  61.  
  62. /**
  63. * Nom de l'utilisateur
  64. * @ORM\Column(type="string", length=255)
  65. * @Assert\Length(
  66. * min = 1,
  67. * max = 20,
  68. * minMessage = "Votre nom doit contenir au moins {{limit}} caractère",
  69. * maxMessage = "Votre nom ne peut pas contenir plus de {{limit}} caractères"
  70. * )
  71. * @Assert\NotBlank
  72. */
  73. private $nom;
  74.  
  75. /**
  76. * Prénom de l'utilisateur
  77. * @ORM\Column(type="string", length=255)
  78. * @Assert\Length(
  79. * min = 1,
  80. * max = 20,
  81. * minMessage = "Votre prénom doit contenir au moins {{limit}} caractère",
  82. * maxMessage = "Votre prénom ne peut pas contenir plus de {{limit}} caractères"
  83. * )
  84. * @Assert\NotBlank
  85. */
  86. private $prenom;
  87.  
  88. /**
  89. * Slug de l'utilisateur
  90. * @ORM\Column(type="string", length=255)
  91. */
  92. private $slug;
  93.  
  94. /**
  95. * Absences de l'utilisateur
  96. * @ORM\OneToMany(targetEntity="App\Entity\Absence", mappedBy="user", orphanRemoval=true, cascade={"persist", "remove"})
  97. */
  98. private $absences;
  99.  
  100. /**
  101. * Service de l'utilisateur
  102. * @ORM\ManyToOne(targetEntity="App\Entity\GroupeValidateurs", inversedBy="users")
  103. * @ORM\JoinColumn(nullable=true)
  104. */
  105. private $groupe;
  106.  
  107. /**
  108. * Soldes des congés de l'utilisateur
  109. * @ORM\OneToMany(targetEntity="App\Entity\SoldeConges", mappedBy="user", orphanRemoval=true, fetch="EAGER", cascade={"persist","remove"})
  110. */
  111. private $soldeConges;
  112.  
  113. /**
  114. * Feuille de congés de l'utilisateur
  115. * @ORM\OneToOne(targetEntity="App\Entity\FeuilleConge", inversedBy="user", cascade={"persist", "remove"})
  116. */
  117. private $feuilleConge;
  118.  
  119. /**
  120. * Avatar de l'utilisateur
  121. * @ORM\OneToOne(targetEntity="App\Entity\Avatar", mappedBy="user", cascade={"persist", "remove"})
  122. */
  123. private $avatar;
  124.  
  125. /**
  126. * Profession de l'utilisateur
  127. * @ORM\Column(type="string", length=255, nullable = true)
  128. * @Assert\NotBlank
  129. */
  130. private $profession;
  131.  
  132. /**
  133. * Date de demande de réinitialisation du mot de passe de l'utilisateur
  134. * @ORM\Column(type="datetime", nullable=true)
  135. */
  136. private $passwordRequestedAt;
  137.  
  138. /**
  139. * Token de réinitialisation du mot de passe de l'utilisateur
  140. * @ORM\Column(type="string", length=255, nullable=true)
  141. */
  142. private $token;
  143.  
  144. /**
  145. * Ordres de mission de l'utilisateur
  146. * @ORM\OneToMany(targetEntity="App\Entity\OrdreMission", mappedBy="user")
  147. */
  148. private $ordreMissions;
  149.  
  150. /**
  151. * Signature de l'utilisateur
  152. * @ORM\OneToOne(targetEntity="App\Entity\Signature", mappedBy="user", cascade={"persist", "remove"})
  153. */
  154. private $signature;
  155.  
  156. /**
  157. * @ORM\OneToMany(targetEntity="App\Entity\Validateur", mappedBy="validateur", orphanRemoval=true, cascade={"persist"})
  158. */
  159. private $validateurs;
  160.  
  161. /**
  162. * @ORM\OneToMany(targetEntity="App\Entity\AbsencesPrevision", mappedBy="user", orphanRemoval=true)
  163. */
  164. private $absencesPrevisions;
  165.  
  166. /**
  167. * @ORM\Column(type="string", length=255)
  168. */
  169. private $hexColor;
  170.  
  171.  
  172.  
  173. /**
  174. * @ORM\Column(type="boolean")
  175. */
  176. private $autoValidation = false;
  177.  
  178. /**
  179. * @Assert\Expression(
  180. * "not (this.getAutovalidation() == true and this.getSuppleant() != null)",
  181. * message="Vous devez choisir entre l'auto-validation et avoir un suppléant"
  182. * )
  183. * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="delegues")
  184. */
  185. private $suppleant;
  186.  
  187. /**
  188. * @ORM\OneToMany(targetEntity="App\Entity\User", mappedBy="suppleant")
  189. */
  190. private $delegues;
  191.  
  192. /**
  193. * @ORM\Column(type="boolean")
  194. */
  195. private $activeMails = true;
  196.  
  197. /**
  198. * @ORM\ManyToOne(targetEntity="App\Entity\Entreprise", inversedBy="users")
  199. * @ORM\JoinColumn(nullable=false)
  200. */
  201. private $entreprise;
  202.  
  203.  
  204. public function __construct()
  205. {
  206. $this->absences = new ArrayCollection();
  207. $this->soldeConges = new ArrayCollection();
  208. $this->ordreMissions = new ArrayCollection();
  209. $this->validateurs = new ArrayCollection();
  210. $this->absencesPrevisions = new ArrayCollection();
  211. $this->delegues = new ArrayCollection();
  212. }
  213.  
  214. /**
  215. * Permet d'initialiser le slug
  216. *
  217. * @ORM\PrePersist
  218. * @ORM\PreUpdate
  219. *
  220. * @return void
  221. */
  222. public function initializeSlug()
  223. {
  224. if (empty($this->slug)) {
  225. $slugify = new Slugify();
  226. $this->slug = $slugify->slugify($this->prenom . ' ' . $this->nom);
  227. }
  228. }
  229.  
  230. /**
  231. * Initialiser l'utilisateur
  232. *
  233. * @ORM\PrePersist
  234. *
  235. * @return void
  236. */
  237. public function initializeUser()
  238. {
  239. if(empty($this->hexColor))
  240. {
  241. $this->hexColor = $this->rand_color();
  242. }
  243. }
  244.  
  245. public function getId(): ?int
  246. {
  247. return $this->id;
  248. }
  249.  
  250. /**
  251. * Retourne l'adresse email de l'utilisateur
  252. *
  253. * @return string|null
  254. */
  255. public function getEmail(): ?string
  256. {
  257. return $this->email;
  258. }
  259.  
  260. /**
  261. * Insère l'adresse email de l'utilisateur
  262. *
  263. * @param string $email
  264. * @return self
  265. */
  266. public function setEmail(string $email): self
  267. {
  268. $this->email = $email;
  269.  
  270. return $this;
  271. }
  272.  
  273. /**
  274. * A visual identifier that represents this user.
  275. *
  276. * @see UserInterface
  277. */
  278. public function getUsername(): string
  279. {
  280. return (string) $this->email;
  281. }
  282.  
  283. /**
  284. * @see UserInterface
  285. */
  286. public function getRoles(): array
  287. {
  288. $roles = $this->roles;
  289. // guarantee every user at least has ROLE_USER
  290. $roles[] = 'ROLE_USER';
  291.  
  292. return array_unique($roles);
  293. }
  294.  
  295. /**
  296. * Insère les rôles d'un utilisateur
  297. *
  298. * @param array $roles
  299. * @return self
  300. */
  301. public function setRoles(array $roles): self
  302. {
  303. $this->roles = $roles;
  304.  
  305. return $this;
  306. }
  307.  
  308. /**
  309. * Ajoute un rôle à l'utilisateur
  310. *
  311. * @param string $role
  312. * @return self
  313. */
  314. public function addRole($role)
  315. {
  316. if (!in_array($role, $this->roles)) {
  317. array_push($this->roles, $role);
  318. }
  319.  
  320. return $this;
  321. }
  322.  
  323. /**
  324. * Vérifie si l'utilisateur possède le rôle passé en paramètre
  325. *
  326. * @param string $role
  327. * @return boolean
  328. */
  329. public function hasRole($role)
  330. {
  331. return in_array(strtoupper($role), $this->getRoles(), true);
  332. }
  333.  
  334. /**
  335. * Supprime un rôle dans la liste des rôles de l'utilisateur
  336. *
  337. * @param string $role
  338. * @return self
  339. */
  340. public function removeRole($role)
  341. {
  342. if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
  343. unset($this->roles[$key]);
  344. $this->roles = array_values($this->roles);
  345. }
  346.  
  347. return $this;
  348. }
  349.  
  350. /**
  351. * @see UserInterface
  352. */
  353. public function getPassword(): string
  354. {
  355. return (string) $this->password;
  356. }
  357.  
  358. /**
  359. * Insère le mot de passe de l'utilisateur
  360. *
  361. * @param string $password
  362. * @return self
  363. */
  364. public function setPassword(string $password): self
  365. {
  366. $this->password = $password;
  367.  
  368. return $this;
  369. }
  370.  
  371. /**
  372. * @see UserInterface
  373. */
  374. public function getSalt()
  375. {
  376. // not needed when using the "bcrypt" algorithm in security.yaml
  377. }
  378.  
  379. /**
  380. * @see UserInterface
  381. */
  382. public function eraseCredentials()
  383. {
  384. // If you store any temporary, sensitive data on the user, clear it here
  385. // $this->plainPassword = null;
  386. }
  387.  
  388. /**
  389. * Retourne le nom de l'utilisateur
  390. *
  391. * @return string|null
  392. */
  393. public function getNom(): ?string
  394. {
  395. return $this->nom;
  396. }
  397.  
  398. /**
  399. * Insère le nom de l'utilisateur
  400. *
  401. * @param string $nom
  402. * @return self
  403. */
  404. public function setNom(string $nom): self
  405. {
  406. $this->nom = $nom;
  407.  
  408. return $this;
  409. }
  410.  
  411. /**
  412. * Retourne le prénom de l'utilisateur
  413. *
  414. * @return string|null
  415. */
  416. public function getPrenom(): ?string
  417. {
  418. return $this->prenom;
  419. }
  420.  
  421. /**
  422. * Insère le prénom de l'utilisateur
  423. *
  424. * @param string $prenom
  425. * @return self
  426. */
  427. public function setPrenom(string $prenom): self
  428. {
  429. $this->prenom = $prenom;
  430.  
  431. return $this;
  432. }
  433.  
  434. /**
  435. * Retourne le slug de l'utilisateur
  436. *
  437. * @return string|null
  438. */
  439. public function getSlug(): ?string
  440. {
  441. return $this->slug;
  442. }
  443.  
  444. /**
  445. * Retourne le slug de l'utilisateur
  446. *
  447. * @param string $slug
  448. * @return self
  449. */
  450. public function setSlug(string $slug): self
  451. {
  452. $this->slug = $slug;
  453.  
  454. return $this;
  455. }
  456.  
  457. /**
  458. * Retourne la collection d'absences de l'utilisateur
  459. * @return Collection|Absence[]
  460. */
  461. public function getAbsences(): Collection
  462. {
  463. return $this->absences;
  464. }
  465.  
  466. /**
  467. * Ajoute une absence à l'utilisateur
  468. *
  469. * @param Absence $absence
  470. * @return self
  471. */
  472. public function addAbsence(Absence $absence): self
  473. {
  474. if (!$this->absences->contains($absence)) {
  475. $this->absences[] = $absence;
  476. $absence->setUser($this);
  477. }
  478.  
  479. return $this;
  480. }
  481.  
  482. /**
  483. * Supprime une absence de l'utilisateur
  484. *
  485. * @param Absence $absence
  486. * @return self
  487. */
  488. public function removeAbsence(Absence $absence): self
  489. {
  490. if ($this->absences->contains($absence)) {
  491. $this->absences->removeElement($absence);
  492. // set the owning side to null (unless already changed)
  493. if ($absence->getUser() === $this) {
  494. $absence->setUser(null);
  495. }
  496. }
  497.  
  498. return $this;
  499. }
  500.  
  501. /**
  502. * Retourne le nom complet de l'utilisateur
  503. *
  504. * @return string
  505. */
  506. public function getFullname()
  507. {
  508. return strtoupper($this->nom) . ' ' . $this->prenom;
  509. }
  510.  
  511. /**
  512. * Retourne le service de l'utilisateur
  513. *
  514. * @return GroupeValidateurs|null
  515. */
  516. public function getGroupe(): ?GroupeValidateurs
  517. {
  518. return $this->groupe;
  519. }
  520.  
  521. /**
  522. * Insère le service de l'utilisateur
  523. *
  524. * @param GroupeValidateurs|null $groupe
  525. * @return self
  526. */
  527. public function setGroupe(?GroupeValidateurs $groupe): self
  528. {
  529. $this->groupe = $groupe;
  530.  
  531. return $this;
  532. }
  533.  
  534. /**
  535. * Retourne une collection de soldes de congés appartenant à l'utilisateur
  536. * @return Collection|SoldeConges[]
  537. */
  538. public function getSoldeConges(): Collection
  539. {
  540. return $this->soldeConges;
  541. }
  542.  
  543. /**
  544. * Ajoute un solde de congé à l'utilisateur
  545. *
  546. * @param SoldeConges $soldeConge
  547. * @return self
  548. */
  549. public function addSoldeConge(SoldeConges $soldeConge): self
  550. {
  551. if (!$this->soldeConges->contains($soldeConge)) {
  552. $this->soldeConges[] = $soldeConge;
  553. $soldeConge->setUser($this);
  554. }
  555.  
  556. return $this;
  557. }
  558.  
  559. /**
  560. * Décrémente un solde congé d'un utilisateur
  561. *
  562. * @param SoldeConges $soldeDec
  563. * @return self
  564. */
  565. public function decrementeSoldeConge(SoldeConges $soldeDec)
  566. {
  567. if ($soldeDec->getTypeConge()->getSoldeInitial() != null) {
  568.  
  569. foreach ($this->soldeConges as $solde) {
  570. if ($solde == $soldeDec) {
  571. $solde->setSolde($solde->getSolde() - 1);
  572. }
  573. }
  574. }
  575.  
  576. return $this;
  577. }
  578.  
  579. /**
  580. * Supprime un solde congé de l'utilisateur
  581. *
  582. * @param SoldeConges $soldeConge
  583. * @return self
  584. */
  585. public function removeSoldeConge(SoldeConges $soldeConge): self
  586. {
  587. if ($this->soldeConges->contains($soldeConge)) {
  588. $this->soldeConges->removeElement($soldeConge);
  589. // set the owning side to null (unless already changed)
  590. if ($soldeConge->getUser() === $this) {
  591. $soldeConge->setUser(null);
  592. }
  593. }
  594.  
  595. return $this;
  596. }
  597.  
  598. /**
  599. * Retourne les soldes qui sont actifs ( qui n'ont pas de solde initial égal à null)
  600. *
  601. * @return array
  602. */
  603. public function getSoldesActif()
  604. {
  605. $soldesTypesConge = $this->soldeConges;
  606.  
  607. foreach ($soldesTypesConge as $solde) {
  608. if ($solde->getSolde() == 0) {
  609. $soldesTypesConge->removeElement($solde);
  610. }
  611. }
  612.  
  613. return $soldesTypesConge;
  614. }
  615.  
  616. /**
  617. * Retourne la feuille de congé de l'utilisateur
  618. *
  619. * @return FeuilleConge|null
  620. */
  621. public function getFeuilleConge(): ?FeuilleConge
  622. {
  623. return $this->feuilleConge;
  624. }
  625.  
  626. /**
  627. * Insère la feuille de congé de l'utilisateur
  628. *
  629. * @param FeuilleConge|null $feuilleConge
  630. * @return self
  631. */
  632. public function setFeuilleConge(?FeuilleConge $feuilleConge): self
  633. {
  634. $this->feuilleConge = $feuilleConge;
  635.  
  636. return $this;
  637. }
  638.  
  639. /**
  640. * Retourne l'avatar de l'utilisateur
  641. *
  642. * @return Avatar|null
  643. */
  644. public function getAvatar(): ?Avatar
  645. {
  646. return $this->avatar;
  647. }
  648.  
  649. /**
  650. * Insère l'avatar de l'utilisateur
  651. *
  652. * @param Avatar|null $avatar
  653. * @return self
  654. */
  655. public function setAvatar(?Avatar $avatar): self
  656. {
  657. $this->avatar = $avatar;
  658.  
  659. // set (or unset) the owning side of the relation if necessary
  660. $newUser = $avatar === null ? null : $this;
  661. if ($newUser !== $avatar->getUser()) {
  662. $avatar->setUser($newUser);
  663. }
  664.  
  665. return $this;
  666. }
  667.  
  668. /**
  669. * Retourne le solde d'heures de l'utilisateur
  670. *
  671. * @return string|null
  672. */
  673. public function getSoldeHeures()
  674. {
  675. foreach ($this->soldeConges as $solde) {
  676. if ($solde->getTypeConge()->getNom() == "Heures supp") {
  677. return $this->convertDecimalToTime($solde->getSolde());
  678. }
  679. }
  680.  
  681. return null;
  682. }
  683.  
  684. /**
  685. * Converti un décimal en horaire (hh:mm)
  686. *
  687. * @param float $decimal
  688. * @return string
  689. */
  690. public function convertDecimalToTime($decimal)
  691. {
  692. $heures = floor($decimal);
  693. $minutes = round(($decimal - $heures) * 60);
  694.  
  695. $sHeures = strval($heures);
  696. $sMinutes = strval($minutes);
  697.  
  698. if ($heures < 10) {
  699. $sHeures = '0' . $heures;
  700. }
  701.  
  702. if ($minutes < 10) {
  703. $sMinutes = '0' . $minutes;
  704. }
  705.  
  706. $time = $sHeures . ' h ' . $sMinutes;
  707. return $time;
  708. }
  709.  
  710. /**
  711. * Retourne la profession d'un utilisateur
  712. *
  713. * @return string|null
  714. */
  715. public function getProfession(): ?string
  716. {
  717. return $this->profession;
  718. }
  719.  
  720. /**
  721. * Insère la profession d'un utilisateur
  722. *
  723. * @param string|null $profession
  724. * @return self
  725. */
  726. public function setProfession(?string $profession): self
  727. {
  728. $this->profession = $profession;
  729.  
  730. return $this;
  731. }
  732.  
  733. /**
  734. * Retourne la date de demande de réinitialisation de mot de passe de la part de l'utilisateur
  735. *
  736. * @return \DateTimeInterface|null
  737. */
  738. public function getPasswordRequestedAt(): ?\DateTimeInterface
  739. {
  740. return $this->passwordRequestedAt;
  741. }
  742.  
  743. /**
  744. * Insère la date de demande de réinitialisation de mot de passe de la part de l'utilisateur
  745. *
  746. * @param \DateTimeInterface|null $passwordRequestedAt
  747. * @return self
  748. */
  749. public function setPasswordRequestedAt(?\DateTimeInterface $passwordRequestedAt): self
  750. {
  751. $this->passwordRequestedAt = $passwordRequestedAt;
  752.  
  753. return $this;
  754. }
  755.  
  756. /**
  757. * Retourne le token de demande de réinitialisation de mot de passe de la part de l'utilisateur
  758. *
  759. * @return string|null
  760. */
  761. public function getToken(): ?string
  762. {
  763. return $this->token;
  764. }
  765.  
  766. /**
  767. * Insère le token de demande de réinitialisation de mot de passe de la part de l'utilisateur
  768. *
  769. * @param string|null $token
  770. * @return self
  771. */
  772. public function setToken(?string $token): self
  773. {
  774. $this->token = $token;
  775.  
  776. return $this;
  777. }
  778.  
  779. /**
  780. * Retourne les ordres de mission de l'utilisateur
  781. * @return Collection|OrdreMission[]
  782. */
  783. public function getOrdreMissions(): Collection
  784. {
  785. return $this->ordreMissions;
  786. }
  787.  
  788. /**
  789. * Ajoute un ordre de mission à l'utilisateur
  790. *
  791. * @param OrdreMission $ordreMission
  792. * @return self
  793. */
  794. public function addOrdreMission(OrdreMission $ordreMission): self
  795. {
  796. if (!$this->ordreMissions->contains($ordreMission)) {
  797. $this->ordreMissions[] = $ordreMission;
  798. $ordreMission->setUser($this);
  799. }
  800.  
  801. return $this;
  802. }
  803.  
  804. /**
  805. * Supprime un ordre de mission de l'utilisateur
  806. *
  807. * @param OrdreMission $ordreMission
  808. * @return self
  809. */
  810. public function removeOrdreMission(OrdreMission $ordreMission): self
  811. {
  812. if ($this->ordreMissions->contains($ordreMission)) {
  813. $this->ordreMissions->removeElement($ordreMission);
  814. // set the owning side to null (unless already changed)
  815. if ($ordreMission->getUser() === $this) {
  816. $ordreMission->setUser(null);
  817. }
  818. }
  819.  
  820. return $this;
  821. }
  822.  
  823. /**
  824. * Retourne la signature de l'utilisateur
  825. *
  826. * @return Signature|null
  827. */
  828. public function getSignature(): ?Signature
  829. {
  830. return $this->signature;
  831. }
  832.  
  833. /**
  834. * Insère la signature de l'utilisateur
  835. *
  836. * @param Signature|null $signature
  837. * @return self
  838. */
  839. public function setSignature(?Signature $signature): self
  840. {
  841. $this->signature = $signature;
  842.  
  843. // set (or unset) the owning side of the relation if necessary
  844. $newUser = null === $signature ? null : $this;
  845. if ($signature->getUser() !== $newUser) {
  846. $signature->setUser($newUser);
  847. }
  848.  
  849. return $this;
  850. }
  851.  
  852. /**
  853. * @return Collection|Validateur[]
  854. */
  855. public function getValidateurs(): Collection
  856. {
  857. return $this->validateurs;
  858. }
  859.  
  860. public function addValidateur(Validateur $validateur): self
  861. {
  862. if (!$this->validateurs->contains($validateur)) {
  863. $this->validateurs[] = $validateur;
  864. $validateur->setValidateur($this);
  865. }
  866.  
  867. return $this;
  868. }
  869.  
  870. public function removeValidateur(Validateur $validateur): self
  871. {
  872. if ($this->validateurs->contains($validateur)) {
  873. $this->validateurs->removeElement($validateur);
  874. // set the owning side to null (unless already changed)
  875. if ($validateur->getValidateur() === $this) {
  876. $validateur->setValidateur(null);
  877. }
  878. }
  879.  
  880. return $this;
  881. }
  882.  
  883. /**
  884. * @return Collection|AbsencesPrevision[]
  885. */
  886. public function getAbsencesPrevisions(): Collection
  887. {
  888. return $this->absencesPrevisions;
  889. }
  890.  
  891. public function addAbsencesPrevision(AbsencesPrevision $absencesPrevision): self
  892. {
  893. if (!$this->absencesPrevisions->contains($absencesPrevision)) {
  894. $this->absencesPrevisions[] = $absencesPrevision;
  895. $absencesPrevision->setUser($this);
  896. }
  897.  
  898. return $this;
  899. }
  900.  
  901. public function removeAbsencesPrevision(AbsencesPrevision $absencesPrevision): self
  902. {
  903. if ($this->absencesPrevisions->contains($absencesPrevision)) {
  904. $this->absencesPrevisions->removeElement($absencesPrevision);
  905. // set the owning side to null (unless already changed)
  906. if ($absencesPrevision->getUser() === $this) {
  907. $absencesPrevision->setUser(null);
  908. }
  909. }
  910.  
  911. return $this;
  912. }
  913.  
  914. public function getHexColor(): ?string
  915. {
  916. return $this->hexColor;
  917. }
  918.  
  919. public function setHexColor(string $hexColor): self
  920. {
  921. $this->hexColor = $hexColor;
  922.  
  923. return $this;
  924. }
  925.  
  926.  
  927.  
  928. public function getAutoValidation(): ?bool
  929. {
  930. return $this->autoValidation;
  931. }
  932.  
  933. public function setAutoValidation(?bool $autoValidation): self
  934. {
  935. $this->autoValidation = $autoValidation;
  936.  
  937. return $this;
  938. }
  939.  
  940. public function getSuppleant(): ?self
  941. {
  942. return $this->suppleant;
  943. }
  944.  
  945. public function setSuppleant(?self $suppleant): self
  946. {
  947. $this->suppleant = $suppleant;
  948.  
  949. return $this;
  950. }
  951.  
  952. /**
  953. * @return Collection|self[]
  954. */
  955. public function getDelegues(): Collection
  956. {
  957. return $this->delegues;
  958. }
  959.  
  960. public function addDelegue(self $delegue): self
  961. {
  962. if (!$this->delegues->contains($delegue)) {
  963. $this->delegues[] = $delegue;
  964. $delegue->setSuppleant($this);
  965. }
  966.  
  967. return $this;
  968. }
  969.  
  970. public function removeDelegue(self $delegue): self
  971. {
  972. if ($this->delegues->contains($delegue)) {
  973. $this->delegues->removeElement($delegue);
  974. // set the owning side to null (unless already changed)
  975. if ($delegue->getSuppleant() === $this) {
  976. $delegue->setSuppleant(null);
  977. }
  978. }
  979.  
  980. return $this;
  981. }
  982.  
  983. public function getActiveMails(): ?bool
  984. {
  985. return $this->activeMails;
  986. }
  987.  
  988. public function setActiveMails(bool $activeMails): self
  989. {
  990. $this->activeMails = $activeMails;
  991.  
  992. return $this;
  993. }
  994.  
  995. /**
  996. * Renvoi une couleur en hexadecimal
  997. *
  998. * @return string
  999. */
  1000. public function rand_color() {
  1001. // return '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
  1002. return sprintf('#%06X', mt_rand(0xFF9999, 0xFFFF00));
  1003.  
  1004. }
  1005.  
  1006. public function getEntreprise(): ?Entreprise
  1007. {
  1008. return $this->entreprise;
  1009. }
  1010.  
  1011. public function setEntreprise(?Entreprise $entreprise): self
  1012. {
  1013. $this->entreprise = $entreprise;
  1014.  
  1015. return $this;
  1016. }
  1017.  
  1018.  
  1019. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement