src/Entity/BFTournoi.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. /**
  8.  * @ORM\Entity(repositoryClass="App\Repository\BFTournoiRepository")
  9.  */
  10. class BFTournoi
  11. {
  12.     /**
  13.      * @ORM\Id()
  14.      * @ORM\GeneratedValue()
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="string", length=255)
  20.      */
  21.     private $name;
  22.     /**
  23.      * @ORM\Column(type="date")
  24.      */
  25.     private $startdate;
  26.     /**
  27.      * @ORM\Column(type="date")
  28.      */
  29.     private $enddate;
  30.     /**
  31.      * @ORM\ManyToOne(targetEntity="App\Entity\BFEdition", inversedBy="bftournois")
  32.      * @ORM\JoinColumn(nullable=false)
  33.      */
  34.     private $edition;
  35.     /**
  36.      * @ORM\OneToMany(targetEntity="App\Entity\BFSeance", mappedBy="tournoi", orphanRemoval=true)
  37.      * @ORM\OrderBy({"startdate" = "ASC"})
  38.      */
  39.     private $seances;
  40.     /**
  41.      * @ORM\OneToOne(targetEntity="App\Entity\BFDescriptionTournoi", inversedBy="bftournoi", cascade={"persist", "remove"})
  42.      * @ORM\JoinColumn(nullable=false)
  43.      */
  44.     private $description;
  45.     /**
  46.      * @ORM\Column(type="string", length=255, nullable=true)
  47.      */
  48.     private $type;
  49.     /**
  50.      * @ORM\Column(type="datetime", nullable=true)
  51.      */
  52.     private $creationdate;
  53.     /**
  54.      * @ORM\OneToMany(targetEntity="App\Entity\BFInscription", mappedBy="tournoi", orphanRemoval=true)
  55.      * @ORM\OrderBy({"updatedate" = "DESC", "creationdate" = "DESC"})
  56.      */
  57.     private $inscriptions;
  58.     /**
  59.      * @ORM\OneToMany(targetEntity="App\Entity\BFMailTournoi", mappedBy="tournoi", orphanRemoval=true)
  60.      */
  61.     private $mails;
  62.     /**
  63.      * @ORM\ManyToMany(targetEntity="App\Entity\BFProductEdition", mappedBy="tournois")
  64.      */
  65.     private $bfproducteditions;
  66.     public function __construct()
  67.     {
  68.         $this->seances = new ArrayCollection();
  69.         $this->description = new BFDescriptionTournoi();
  70.         $this->creationdate = new \DateTime('now');
  71.         $this->inscriptions = new ArrayCollection();
  72.         $this->mails = new ArrayCollection();
  73.         $this->bfproducteditions = new ArrayCollection();
  74.     }
  75.     public function getId(): ?int
  76.     {
  77.         return $this->id;
  78.     }
  79.     public function getName(): ?string
  80.     {
  81.         return $this->name;
  82.     }
  83.     public function setName(string $name): self
  84.     {
  85.         $this->name $name;
  86.         return $this;
  87.     }
  88.     public function getStartdate(): ?\DateTimeInterface
  89.     {
  90.         return $this->startdate;
  91.     }
  92.     public function setStartdate(\DateTimeInterface $startdate): self
  93.     {
  94.         $this->startdate $startdate;
  95.         return $this;
  96.     }
  97.     public function getEnddate(): ?\DateTimeInterface
  98.     {
  99.         return $this->enddate;
  100.     }
  101.     public function setEnddate(\DateTimeInterface $enddate): self
  102.     {
  103.         $this->enddate $enddate;
  104.         return $this;
  105.     }
  106.     public function getEdition(): ?BFEdition
  107.     {
  108.         return $this->edition;
  109.     }
  110.     public function setEdition(?BFEdition $edition): self
  111.     {
  112.         $this->edition $edition;
  113.         return $this;
  114.     }
  115.     public function getDescription(): ?BFDescriptionTournoi
  116.     {
  117.         return $this->description;
  118.     }
  119.     public function setDescription(?BFDescriptionTournoi $description): self
  120.     {
  121.         $this->description $description;
  122.         return $this;
  123.     }
  124.     /**
  125.      * @return Collection|BFSeance[]
  126.      */
  127.     public function getSeances(): Collection
  128.     {
  129.         return $this->seances;
  130.     }
  131.     public function addBfseance(BFSeance $seance): self
  132.     {
  133.         if (!$this->seances->contains($seance)) {
  134.             $this->seances[] = $seance;
  135.             $seance->setTournoiid($this);
  136.         }
  137.         return $this;
  138.     }
  139.     public function removeSeance(BFSeance $seance): self
  140.     {
  141.         if ($this->seances->contains($seance)) {
  142.             $this->seances->removeElement($seance);
  143.             // set the owning side to null (unless already changed)
  144.             if ($seance->getTournoiid() === $this) {
  145.                 $seance->setTournoiid(null);
  146.             }
  147.         }
  148.         return $this;
  149.     }
  150.     public function getType(): ?string
  151.     {
  152.         return $this->type;
  153.     }
  154.     public function setType(?string $type): self
  155.     {
  156.         $this->type $type;
  157.         return $this;
  158.     }
  159.     
  160.     /**
  161.      * @Assert\IsTrue(message="Les dates ne sont pas valides")
  162.      */
  163.     public function isDatesValid()
  164.     {
  165.         return $this->startdate<=$this->enddate;
  166.     }
  167.     
  168.     /**
  169.      * @Assert\IsTrue(message="Les dates ne sont pas comprises par celles de l'édition")
  170.      */
  171.     public function isDatesInEdition()
  172.     {
  173.         $startdateedition $this->getEdition()->getStartdate();
  174.         $enddateedition $this->getEdition()->getEnddate();
  175.                 
  176.         return $this->startdate>=$startdateedition && $this->startdate<=$enddateedition
  177.             && $this->enddate>=$startdateedition && $this->enddate<=$enddateedition;
  178.     }
  179.     public function getCreationdate(): ?\DateTimeInterface
  180.     {
  181.         return $this->creationdate;
  182.     }
  183.     public function setCreationdate(?\DateTimeInterface $creationdate): self
  184.     {
  185.         $this->creationdate $creationdate;
  186.         return $this;
  187.     }
  188.     /**
  189.      * @return Collection|BFInscription[]
  190.      */
  191.     public function getInscriptions(): Collection
  192.     {
  193.         return $this->inscriptions;
  194.     }
  195.     public function addInscription(BFInscription $inscription): self
  196.     {
  197.         if (!$this->inscriptions->contains($inscription)) {
  198.             $this->inscriptions[] = $inscription;
  199.             $inscription->setTournoi($this);
  200.         }
  201.         return $this;
  202.     }
  203.     public function removeInscription(BFInscription $inscription): self
  204.     {
  205.         if ($this->inscriptions->contains($inscription)) {
  206.             $this->inscriptions->removeElement($inscription);
  207.             // set the owning side to null (unless already changed)
  208.             if ($inscription->getTournoi() === $this) {
  209.                 $inscription->setTournoi(null);
  210.             }
  211.         }
  212.         return $this;
  213.     }
  214.     
  215.     public static function  sorting($a,$b
  216.     { 
  217.         if($a->getStartdate()<$b->getStartdate())
  218.             return -1;
  219.         else if($a->getStartdate()==$b->getStartdate()
  220.             && $a->getEnddate()<$b->getEnddate())
  221.             return -1;
  222.         else if($a->getStartdate()==$b->getStartdate()
  223.                && $a->getEnddate()==$b->getEnddate())
  224.             return 0
  225.         else
  226.             return 1
  227.     }
  228.     /**
  229.      * @return Collection|BFMailTournoi[]
  230.      */
  231.     public function getMails(): Collection
  232.     {
  233.         return $this->mails;
  234.     }
  235.     public function addMail(BFMailTournoi $mail): self
  236.     {
  237.         if (!$this->mails->contains($mail)) {
  238.             $this->mails[] = $mail;
  239.             $mail->setTournoi($this);
  240.         }
  241.         return $this;
  242.     }
  243.     public function removeMail(BFMailTournoi $mail): self
  244.     {
  245.         if ($this->mails->contains($mail)) {
  246.             $this->mails->removeElement($mail);
  247.             // set the owning side to null (unless already changed)
  248.             if ($mail->getTournoi() === $this) {
  249.                 $mail->setTournoi(null);
  250.             }
  251.         }
  252.         return $this;
  253.     }
  254.     /**
  255.      * @return Collection|BFProductEdition[]
  256.      */
  257.     public function getBfproducteditions(): Collection
  258.     {
  259.         return $this->bfproducteditions;
  260.     }
  261.     public function addBfproductedition(BFProductEdition $bfproductedition): self
  262.     {
  263.         if (!$this->bfproducteditions->contains($bfproductedition)) {
  264.             $this->bfproducteditions[] = $bfproductedition;
  265.             $bfproductedition->addTournois($this);
  266.         }
  267.         return $this;
  268.     }
  269.     public function removeBfproductedition(BFProductEdition $bfproductedition): self
  270.     {
  271.         if ($this->bfproducteditions->contains($bfproductedition)) {
  272.             $this->bfproducteditions->removeElement($bfproductedition);
  273.             $bfproductedition->removeTournois($this);
  274.         }
  275.         return $this;
  276.     } 
  277. }