src/Entity/Ecole.php line 12
<?phpnamespace App\Entity;use App\Repository\EcoleRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;#[ORM\Entity(repositoryClass: EcoleRepository::class)]class Ecole{const STATUS_BROUILLON = "BROUILLON";const STATUS_SOUMIS = "SOUMIS";const STATUS_VALIDEE = "VALIDEE";const STATUS_REJETEE = "REJETEE";const DOCUMENT_INSCRIPTION_ABSTRACT = "ABSTRACT";const DOCUMENT_INSCRIPTION_CV = "CV";const DOCUMENT_INSCRIPTION_AUTRE = "AUTRE";const DOCUMENT_INSCRIPTION_LETTRE_MOTIVATION = "LETTRE_MOTIVATION";#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id = null;#[ORM\Column(length: 255, nullable: true)]private ?string $libelle = null;#[ORM\ManyToOne (cascade: ["persist"])]private ?TailleEcole $taillePrevue = null;#[ORM\ManyToOne (cascade: ["persist"])]private ?FormatEcole $formatPropose = null;#[ORM\ManyToOne (cascade: ["persist"])]private ?FrequenceEcole $frequencePropose = null;#[ORM\Column(nullable: true)]private ?int $nbJours = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $marsAMaiDateDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $marsAMaiDateFin = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $juinAAoutDateDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $juinAAoutDateFin = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $septembreANovembreDateDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $septembreANovembreDateFin = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetPrenom = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetNom = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetLaboratoire = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porterProjetAdressePostale = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetCodePostal = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetVille = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porterProjetPays = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetTel = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porterProjetPortable = null;#[ORM\Column(length: 255, nullable: true)]private ?string $porteurProjetEmail = null;#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $breveDescription = null;#[ORM\Column(length: 255, nullable: true)]private ?string $siteWeb = null;#[ORM\Column(length: 255, nullable: true)]private ?string $emailGenerique = null;#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $informationComplementaire = null;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: ContactMember::class, orphanRemoval: true, cascade: ["persist"])]private Collection $membres;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: EcoleThematique::class, orphanRemoval: true, cascade: ["persist"])]private Collection $thematiques;#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $descriptionActivite = null;#[ORM\Column(type: Types::ARRAY, nullable: true)]private array $motsCles = [];#[ORM\OneToMany(mappedBy: 'ecoleComiteScientifique', targetEntity: Membre::class, orphanRemoval: true, cascade: ["persist"])]private Collection $membresComiteScientifique;#[ORM\OneToMany(mappedBy: 'ecoleComiteOrganisation', targetEntity: Membre::class, orphanRemoval: true, cascade: ["persist"])]private Collection $membresComiteOrganisation;#[ORM\Column(type: Types::ARRAY, nullable: true)]private array $public = [];#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $programme = null;#[ORM\Column(nullable: true)]private ?bool $grandPublic = null;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: Orateur::class, orphanRemoval: true, cascade: ["persist"])]private Collection $orateurs;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: Subvention::class, orphanRemoval: true, cascade: ["persist"])]private Collection $subventions;#[ORM\Column(type: Types::TEXT, nullable: true)]private ?string $commentaire = null;#[ORM\Column(length: 255, nullable: true)]private ?string $modeInscription = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $dateInscriptionDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $dateInscriptionFin = null;#[ORM\Column(length: 255, nullable: true)]private ?string $statut = self::STATUS_BROUILLON;#[ORM\Column(length: 1, nullable: true)]private ?string $single = null;#[ORM\Column(length: 1, nullable: true)]private ?string $accompagnants = null;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: Inscription::class, orphanRemoval: true, cascade: ["persist"])]private Collection $inscriptions;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $datePreInscriptionDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $datePreInscriptionFin = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $dateDefinitiveValideDebut = null;#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]private ?\DateTimeInterface $dateDefinitiveValideFin = null;#[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'gestionEcoles')]private Collection $gestionnaires;#[ORM\OneToMany(mappedBy: 'ecole', targetEntity: EcoleFile::class, cascade: ["persist"])]private Collection $files;#[ORM\Column(type: Types::SIMPLE_ARRAY, nullable: true)]private array $documentsInscription = [];public function __construct(){$this->membres = new ArrayCollection();$this->thematiques = new ArrayCollection();$this->membresComiteScientifique = new ArrayCollection();$this->membresComiteOrganisation = new ArrayCollection();$this->orateurs = new ArrayCollection();$this->subventions = new ArrayCollection();$this->inscriptions = new ArrayCollection();$this->gestionnaires = new ArrayCollection();$this->files = new ArrayCollection();}public function getId(): ?int{return $this->id;}public function getLibelle(): ?string{return $this->libelle;}public function setLibelle(?string $libelle): self{$this->libelle = $libelle;return $this;}public function getTaillePrevue(): ?TailleEcole{return $this->taillePrevue;}public function setTaillePrevue(?TailleEcole $taillePrevue): self{$this->taillePrevue = $taillePrevue;return $this;}public function getFormatPropose(): ?FormatEcole{return $this->formatPropose;}public function setFormatPropose(?FormatEcole $formatPropose): self{$this->formatPropose = $formatPropose;return $this;}public function getFrequencePropose(): ?FrequenceEcole{return $this->frequencePropose;}public function setFrequencePropose(?FrequenceEcole $frequencePropose): self{$this->frequencePropose = $frequencePropose;return $this;}public function getNbJours(): ?int{return $this->nbJours;}public function setNbJours(?int $nbJours): self{$this->nbJours = $nbJours;return $this;}public function getMarsAMaiDateDebut(): ?\DateTimeInterface{return $this->marsAMaiDateDebut;}public function setMarsAMaiDateDebut(?\DateTimeInterface $marsAMaiDateDebut): self{$this->marsAMaiDateDebut = $marsAMaiDateDebut;return $this;}public function getMarsAMaiDateFin(): ?\DateTimeInterface{return $this->marsAMaiDateFin;}public function setMarsAMaiDateFin(?\DateTimeInterface $marsAMaiDateFin): self{$this->marsAMaiDateFin = $marsAMaiDateFin;return $this;}public function getJuinAAoutDateDebut(): ?\DateTimeInterface{return $this->juinAAoutDateDebut;}public function setJuinAAoutDateDebut(?\DateTimeInterface $juinAAoutDateDebut): self{$this->juinAAoutDateDebut = $juinAAoutDateDebut;return $this;}public function getJuinAAoutDateFin(): ?\DateTimeInterface{return $this->juinAAoutDateFin;}public function setJuinAAoutDateFin(?\DateTimeInterface $juinAAoutDateFin): self{$this->juinAAoutDateFin = $juinAAoutDateFin;return $this;}public function getSeptembreANovembreDateDebut(): ?\DateTimeInterface{return $this->septembreANovembreDateDebut;}public function setSeptembreANovembreDateDebut(?\DateTimeInterface $septembreANovembreDateDebut): self{$this->septembreANovembreDateDebut = $septembreANovembreDateDebut;return $this;}public function getSeptembreANovembreDateFin(): ?\DateTimeInterface{return $this->septembreANovembreDateFin;}public function setSeptembreANovembreDateFin(?\DateTimeInterface $septembreANovembreDateFin): self{$this->septembreANovembreDateFin = $septembreANovembreDateFin;return $this;}public function getPorteurProjetPrenom(): ?string{return $this->porteurProjetPrenom;}public function setPorteurProjetPrenom(?string $porteurProjetPrenom): self{$this->porteurProjetPrenom = $porteurProjetPrenom;return $this;}public function getPorteurProjetNom(): ?string{return $this->porteurProjetNom;}public function setPorteurProjetNom(?string $porteurProjetNom): self{$this->porteurProjetNom = $porteurProjetNom;return $this;}public function getPorteurProjetLaboratoire(): ?string{return $this->porteurProjetLaboratoire;}public function setPorteurProjetLaboratoire(?string $porteurProjetLaboratoire): self{$this->porteurProjetLaboratoire = $porteurProjetLaboratoire;return $this;}public function getPorterProjetAdressePostale(): ?string{return $this->porterProjetAdressePostale;}public function setPorterProjetAdressePostale(?string $porterProjetAdressePostale): self{$this->porterProjetAdressePostale = $porterProjetAdressePostale;return $this;}public function getPorteurProjetCodePostal(): ?string{return $this->porteurProjetCodePostal;}public function setPorteurProjetCodePostal(?string $porteurProjetCodePostal): self{$this->porteurProjetCodePostal = $porteurProjetCodePostal;return $this;}public function getPorteurProjetVille(): ?string{return $this->porteurProjetVille;}public function setPorteurProjetVille(?string $porteurProjetVille): self{$this->porteurProjetVille = $porteurProjetVille;return $this;}public function getPorterProjetPays(): ?string{return $this->porterProjetPays;}public function setPorterProjetPays(?string $porterProjetPays): self{$this->porterProjetPays = $porterProjetPays;return $this;}public function getPorteurProjetTel(): ?string{return $this->porteurProjetTel;}public function setPorteurProjetTel(?string $porteurProjetTel): self{$this->porteurProjetTel = $porteurProjetTel;return $this;}public function getPorterProjetPortable(): ?string{return $this->porterProjetPortable;}public function setPorterProjetPortable(?string $porterProjetPortable): self{$this->porterProjetPortable = $porterProjetPortable;return $this;}public function getPorteurProjetEmail(): ?string{return $this->porteurProjetEmail;}public function setPorteurProjetEmail(?string $porteurProjetEmail): self{$this->porteurProjetEmail = $porteurProjetEmail;return $this;}public function getBreveDescription(): ?string{return $this->breveDescription;}public function setBreveDescription(string $breveDescription): self{$this->breveDescription = $breveDescription;return $this;}public function getSiteWeb(): ?string{return $this->siteWeb;}public function setSiteWeb(?string $siteWeb): self{$this->siteWeb = $siteWeb;return $this;}public function getEmailGenerique(): ?string{return $this->emailGenerique;}public function setEmailGenerique(?string $emailGenerique): self{$this->emailGenerique = $emailGenerique;return $this;}public function getInformationComplementaire(): ?string{return $this->informationComplementaire;}public function setInformationComplementaire(?string $informationComplementaire): self{$this->informationComplementaire = $informationComplementaire;return $this;}/*** @return Collection<int, ContactMember>*/public function getMembres(): Collection{return $this->membres;}public function addMembre(ContactMember $membre): self{if (!$this->membres->contains($membre)) {$this->membres->add($membre);$membre->setEcole($this);}return $this;}public function removeMembre(ContactMember $membre): self{if ($this->membres->removeElement($membre)) {// set the owning side to null (unless already changed)if ($membre->getEcole() === $this) {$membre->setEcole(null);}}return $this;}/*** @return Collection<int, EcoleThematique>*/public function getThematiques(): Collection{return $this->thematiques;}public function addThematique(EcoleThematique $thematique): self{if (!$this->thematiques->contains($thematique)) {$this->thematiques->add($thematique);$thematique->setEcole($this);}return $this;}public function removeThematique(EcoleThematique $thematique): self{if ($this->thematiques->removeElement($thematique)) {// set the owning side to null (unless already changed)if ($thematique->getEcole() === $this) {$thematique->setEcole(null);}}return $this;}public function getDescriptionActivite(): ?string{return $this->descriptionActivite;}public function setDescriptionActivite(?string $descriptionActivite): self{$this->descriptionActivite = $descriptionActivite;return $this;}public function getMotsCles(): array{return $this->motsCles;}public function setMotsCles(?array $motsCles): self{$this->motsCles = $motsCles;return $this;}/*** @return Collection<int, Membre>*/public function getMembresComiteScientifique(): Collection{return $this->membresComiteScientifique;}public function addMembresComiteScientifique(Membre $membresComiteScientifique): self{if (!$this->membresComiteScientifique->contains($membresComiteScientifique)) {$this->membresComiteScientifique->add($membresComiteScientifique);$membresComiteScientifique->setEcoleComiteScientifique($this);}return $this;}public function removeMembresComiteScientifique(Membre $membresComiteScientifique): self{if ($this->membresComiteScientifique->removeElement($membresComiteScientifique)) {// set the owning side to null (unless already changed)if ($membresComiteScientifique->getEcoleComiteScientifique() === $this) {$membresComiteScientifique->setEcoleComiteScientifique(null);}}return $this;}/*** @return Collection<int, Membre>*/public function getMembresComiteOrganisation(): Collection{return $this->membresComiteOrganisation;}public function addMembresComiteOrganisation(Membre $membresComiteOrganisation): self{if (!$this->membresComiteOrganisation->contains($membresComiteOrganisation)) {$this->membresComiteOrganisation->add($membresComiteOrganisation);$membresComiteOrganisation->setEcoleComiteOrganisation($this);}return $this;}public function removeMembresComiteOrganisation(Membre $membresComiteOrganisation): self{if ($this->membresComiteOrganisation->removeElement($membresComiteOrganisation)) {// set the owning side to null (unless already changed)if ($membresComiteOrganisation->getEcoleComiteOrganisation() === $this) {$membresComiteOrganisation->setEcoleComiteOrganisation(null);}}return $this;}public function getPublic(): array{return $this->public;}public function setPublic(?array $public): self{$this->public = $public;return $this;}public function getProgramme(): ?string{return $this->programme;}public function setProgramme(?string $programme): self{$this->programme = $programme;return $this;}public function isGrandPublic(): ?bool{return $this->grandPublic;}public function setGrandPublic(bool $grandPublic): self{$this->grandPublic = $grandPublic;return $this;}/*** @return Collection<int, Orateur>*/public function getOrateurs(): Collection{return $this->orateurs;}public function addOrateur(Orateur $orateur): self{if (!$this->orateurs->contains($orateur)) {$this->orateurs->add($orateur);$orateur->setEcole($this);}return $this;}public function removeOrateur(Orateur $orateur): self{if ($this->orateurs->removeElement($orateur)) {// set the owning side to null (unless already changed)if ($orateur->getEcole() === $this) {$orateur->setEcole(null);}}return $this;}/*** @return Collection<int, Subvention>*/public function getSubventions(): Collection{return $this->subventions;}public function addSubvention(Subvention $subvention): self{if (!$this->subventions->contains($subvention)) {$this->subventions->add($subvention);$subvention->setEcole($this);}return $this;}public function removeSubvention(Subvention $subvention): self{if ($this->subventions->removeElement($subvention)) {// set the owning side to null (unless already changed)if ($subvention->getEcole() === $this) {$subvention->setEcole(null);}}return $this;}public function getCommentaire(): ?string{return $this->commentaire;}public function setCommentaire(?string $commentaire): self{$this->commentaire = $commentaire;return $this;}public function getModeInscription(): ?string{return $this->modeInscription;}public function setModeInscription(?string $modeInscription): self{$this->modeInscription = $modeInscription;return $this;}public function getPorteurProjetFullName(): string{return $this->getPorteurProjetPrenom() . ' ' . $this->getPorteurProjetNom();}public function getDateEcoleText(): string{$dateDebut = '';$dateFin = '';if ($this->getDateDefinitiveValideDebut()) {$dateDebut = $this->getDateDefinitiveValideDebut()->format('d/m/Y');} else if ($this->getJuinAAoutDateDebut()) {$dateDebut = $this->getJuinAAoutDateDebut()->format('d/m/Y');} else if ($this->getMarsAMaiDateDebut()) {$dateDebut = $this->getMarsAMaiDateDebut()->format('d/m/Y');} else if ($this->getSeptembreANovembreDateDebut()) {$dateDebut = $this->getSeptembreANovembreDateDebut()->format('d/m/Y');}if ($this->getDateDefinitiveValideFin()) {$dateFin = $this->getDateDefinitiveValideFin()->format('d/m/Y');} else if ($this->getJuinAAoutDateFin()) {$dateFin = $this->getJuinAAoutDateFin()->format('d/m/Y');} else if ($this->getMarsAMaiDateFin()) {$dateFin = $this->getMarsAMaiDateFin()->format('d/m/Y');} else if ($this->getSeptembreANovembreDateFin()) {$dateFin = $this->getSeptembreANovembreDateFin()->format('d/m/Y');}return $dateDebut . ' - ' . $dateFin;}public function getDateInscriptionDebut(): ?\DateTimeInterface{return $this->dateInscriptionDebut;}public function setDateInscriptionDebut(?\DateTimeInterface $dateInscriptionDebut): self{$this->dateInscriptionDebut = $dateInscriptionDebut;return $this;}public function isAffichable(): bool{if ($this->dateDefinitiveValideFin === null) {return false;}return $this->statut === self::STATUS_VALIDEE && (int) $this->dateDefinitiveValideFin->format('Y') >= (int) date('Y');}public function isInscriptionOuverte(): bool{if ($this->dateInscriptionDebut === null || $this->dateInscriptionFin === null) {return false;}$now = new \DateTime();if($this->modeInscription == 'ONE_STEP') {return $now >= $this->dateInscriptionDebut && $now <= $this->dateInscriptionFin;} else { // TWO_STEPS (default)return $now >= $this->datePreInscriptionDebut && $now <= $this->datePreInscriptionFin;}}public function getDateInscriptionFin(): ?\DateTimeInterface{return $this->dateInscriptionFin;}public function setDateInscriptionFin(?\DateTimeInterface $dateInscriptionFin): self{$this->dateInscriptionFin = $dateInscriptionFin;return $this;}public function getStatut(): ?string{return $this->statut;}public function setStatut(?string $statut): self{$this->statut = $statut;return $this;}public function isSingle(): ?string{return $this->single;}public function setSingle(?string $single): self{$this->single = $single;return $this;}public function isAccompagnants(): ?string{return $this->accompagnants;}public function setAccompagnants(?string $accompagnants): self{$this->accompagnants = $accompagnants;return $this;}/*** @return Collection<int, Inscription>*/public function getInscriptions(): Collection{return $this->inscriptions;}public function addInscription(Inscription $inscription): self{if (!$this->inscriptions->contains($inscription)) {$this->inscriptions->add($inscription);$inscription->setEcole($this);}return $this;}public function removeInscription(Inscription $inscription): self{if ($this->inscriptions->removeElement($inscription)) {// set the owning side to null (unless already changed)if ($inscription->getEcole() === $this) {$inscription->setEcole(null);}}return $this;}public function isValider(): bool{return $this->statut === self::STATUS_VALIDEE;}public function __toString(): string{return $this->getLibelle();}public function getDatePreInscriptionDebut(): ?\DateTimeInterface{return $this->datePreInscriptionDebut;}public function setDatePreInscriptionDebut(?\DateTimeInterface $datePreInscriptionDebut): self{$this->datePreInscriptionDebut = $datePreInscriptionDebut;return $this;}public function getDatePreInscriptionFin(): ?\DateTimeInterface{return $this->datePreInscriptionFin;}public function setDatePreInscriptionFin(?\DateTimeInterface $datePreInscriptionFin): self{$this->datePreInscriptionFin = $datePreInscriptionFin;return $this;}public function isGestionnaires(User $user): bool{return $this->gestionnaires->contains($user);}public function getDateDefinitiveValideDebut(): ?\DateTimeInterface{return $this->dateDefinitiveValideDebut;}public function setDateDefinitiveValideDebut(?\DateTimeInterface $dateDefinitiveValideDebut): self{$this->dateDefinitiveValideDebut = $dateDefinitiveValideDebut;return $this;}public function getDateDefinitiveValideFin(): ?\DateTimeInterface{return $this->dateDefinitiveValideFin;}public function setDateDefinitiveValideFin(?\DateTimeInterface $dateDefinitiveValideFin): self{$this->dateDefinitiveValideFin = $dateDefinitiveValideFin;return $this;}public function getNbInscrit(): int{return $this->inscriptions->count();}/*** @return Collection<int, User>*/public function getGestionnaires(): Collection{return $this->gestionnaires;}public function addGestionnaire(User $gestionnaire): self{if (!$this->gestionnaires->contains($gestionnaire)) {$this->gestionnaires->add($gestionnaire);}return $this;}public function removeGestionnaire(User $gestionnaire): self{$this->gestionnaires->removeElement($gestionnaire);return $this;}/*** @return Collection<int, EcoleFile>*/public function getFiles(): Collection{return $this->files;}public function addFile(EcoleFile $file): self{if (!$this->files->contains($file)) {$this->files->add($file);$file->setEcole($this);}return $this;}public function removeFile(EcoleFile $file): self{if ($this->files->removeElement($file)) {// set the owning side to null (unless already changed)if ($file->getEcole() === $this) {$file->setEcole(null);}}return $this;}public function getDocumentsInscription(): array{return $this->documentsInscription;}public function setDocumentsInscription(?array $documentsInscription): self{$this->documentsInscription = $documentsInscription;return $this;}}