src/Entity/Course.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Evaluation;
  4. use App\Entity\Attribution;
  5. use App\Entity\SchoolYear;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use App\Repository\CourseRepository;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\Common\Collections\ArrayCollection;
  10. use App\Repository\AttributionRepository;
  11. use App\Service\SchoolYearService;
  12. use Symfony\Component\DependencyInjection\ContainerInterface;
  13. /**
  14.  * @ORM\Entity(repositoryClass=CourseRepository::class)
  15.  */
  16. class Course
  17. {
  18.     
  19.     /**
  20.      * @ORM\Id
  21.      * @ORM\GeneratedValue
  22.      * @ORM\Column(type="integer")
  23.      */
  24.     private $id;
  25.     /**
  26.      * @ORM\ManyToOne(targetEntity=Domain::class, inversedBy="courses")
  27.      * @ORM\JoinColumn(nullable=false)
  28.      */
  29.     private $domain;
  30.     /**
  31.      * @ORM\ManyToOne(targetEntity=Module::class, inversedBy="courses")
  32.      */
  33.     private $module;
  34.     /**
  35.      * @ORM\Column(type="string", length=255)
  36.      */
  37.     private $wording;
  38.     /**
  39.      * @ORM\Column(type="integer")
  40.      */
  41.     private $coefficient;
  42.     /**
  43.      * @ORM\Column(type="string", length=255)
  44.      */
  45.     private $code;
  46.    
  47.     /**
  48.      * @ORM\OneToMany(targetEntity=Evaluation::class, mappedBy="course")
  49.      */
  50.     private $evaluations;
  51.     /**
  52.      * @ORM\OneToMany(targetEntity=Attribution::class, mappedBy="course",cascade={"persist"})    
  53.      * @ORM\JoinColumn(nullable=true)
  54.      *    
  55.      * */
  56.     private $attributions;
  57.   
  58.     public function __construct()
  59.     {
  60.         $this->evaluations = new ArrayCollection();
  61.         $this->attributions = new ArrayCollection();
  62.     
  63.     }
  64.     public function getId(): ?int
  65.     {
  66.         return $this->id;
  67.     }
  68.     public function __toString()
  69.     {
  70.         $domain = (is_null($this->getDomain())) ? "" $this->getDomain();
  71.         $wording = (is_null($this->getWording())) ? "" $this->getWording();
  72.         $code = (is_null($this->getCode())) ? "" $this->getCode();
  73.         return (string) ($domain "/" $code "_" $wording);
  74.     }
  75.     public function getCoefficient(): ?int
  76.     {
  77.         return $this->coefficient;
  78.     }
  79.     public function setCoefficient(int $coefficient): self
  80.     {
  81.         $this->coefficient $coefficient;
  82.         return $this;
  83.     }
  84.     public function getDomain(): ?Domain
  85.     {
  86.         return $this->domain;
  87.     }
  88.     public function setDomain(?Domain $domain): self
  89.     {
  90.         $this->domain $domain;
  91.         return $this;
  92.     }
  93.     public function getModule(): ?Module
  94.     {
  95.         return $this->module;
  96.     }
  97.     public function setModule(?Module $module): self
  98.     {
  99.         $this->module $module;
  100.         return $this;
  101.     }
  102.     public function getWording(): ?string
  103.     {
  104.         return $this->wording;
  105.     }
  106.     public function setWording(string $wording): self
  107.     {
  108.         $this->wording $wording;
  109.         return $this;
  110.     }
  111.     public function getCode(): ?string
  112.     {
  113.         return $this->code;
  114.     }
  115.     public function setCode(string $code): self
  116.     {
  117.         $this->code $code;
  118.         return $this;
  119.     }
  120.  
  121.     public function getCurrentTeacher(AttributionRepository $attRepoSchoolYear $year) {
  122.         $attribution $attRepo->findOneBy(array("course" => $this"schoolYear"=> $year));
  123.         return $attribution==null false $attribution->getTeacher();
  124.     }
  125.     /**
  126.      * @return Collection|Evaluation[]
  127.      */
  128.     public function getEvaluations(): Collection
  129.     {
  130.         return $this->evaluations;
  131.     }
  132.     public function addEvaluation(Evaluation $evaluation): self
  133.     {
  134.         if (!$this->evaluations->contains($evaluation)) {
  135.             $this->evaluations[] = $evaluation;
  136.             $evaluation->setCourse($this);
  137.         }
  138.         return $this;
  139.     }
  140.     public function removeEvaluation(Evaluation $evaluation): self
  141.     {
  142.         if ($this->evaluations->removeElement($evaluation)) {
  143.             // set the owning side to null (unless already changed)
  144.             if ($evaluation->getCourse() === $this) {
  145.                 $evaluation->setCourse(null);
  146.             }
  147.         }
  148.         return $this;
  149.     }
  150.     public function addAttribution(Attribution $attribution)
  151.     {
  152.         $this->attributions[] = $attribution;
  153.         return $this;
  154.     }
  155.     public function removeAttribution(Attribution $attribution)
  156.     {
  157.         $this->attributions->removeElement($attribution);
  158.     }
  159.     /**
  160.      * Get attributions
  161.      *
  162.      * @return \Doctrine\Common\Collections\Collection
  163.      */
  164.     public function getAttributions()
  165.     {
  166.         return $this->attributions;
  167.     }
  168.   
  169. }