src/Entity/Teacher.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\TeacherRepository")
  9.  */
  10. class Teacher
  11. {
  12.     /**
  13.      * @ORM\Id()
  14.      * @ORM\GeneratedValue()
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="decimal", precision=25, scale=15)
  20.      */
  21.     private $hourlySalary;
  22.     /**
  23.      * @ORM\Column(type="boolean", nullable=true)
  24.      */
  25.     private $isGrader false;
  26.     /**
  27.      * @ORM\OneToOne(targetEntity="App\Entity\User", inversedBy="teacher", cascade={"persist", "remove"})
  28.      * @ORM\JoinColumn(nullable=false)
  29.      */
  30.     private $userId;
  31.     /**
  32.      * @ORM\OneToMany(targetEntity="App\Entity\TeacherSchedule", mappedBy="teacher")
  33.      */
  34.     private $schedules;
  35.     /**
  36.      * @ORM\ManyToMany(targetEntity="App\Entity\Category", inversedBy="teachers")
  37.      */
  38.     private $categories;
  39.     /**
  40.      * @ORM\OneToMany(targetEntity="App\Entity\Session", mappedBy="teacher", orphanRemoval=true)
  41.      */
  42.     private $sessionsCourses;
  43.     /**
  44.      * @ORM\OneToMany(targetEntity="App\Entity\SubscriptionOrder", mappedBy="teacher")
  45.      */
  46.     private $subscriptionOrders;
  47.     /**
  48.      * @ORM\Column(type="boolean")
  49.      */
  50.     private $forChildren;
  51.     /**
  52.      * @ORM\Column(type="decimal", precision=25, scale=15, nullable=true)
  53.      */
  54.     private $hourlySalaryWaiting;
  55.     /**
  56.      * @ORM\OneToMany(targetEntity="App\Entity\TeacherSubject", mappedBy="teacher", cascade={"persist"}, orphanRemoval=true)
  57.      * @Assert\Valid()
  58.      */
  59.     private $teacherSubjects;
  60.     /**
  61.      * @ORM\OneToMany(targetEntity="App\Entity\TeacherSalary", mappedBy="teacher")
  62.      */
  63.     private $teacherSalaries;
  64.     /**
  65.      * @ORM\OneToMany(targetEntity="App\Entity\Homework", mappedBy="CorrectedBy")
  66.      */
  67.     private $homeworks;
  68.     /**
  69.      * @ORM\OneToMany(targetEntity="App\Entity\VideoProgram", mappedBy="teacher")
  70.      */
  71.     private $videoPrograms;
  72.     /**
  73.      * @ORM\ManyToMany(targetEntity="App\Entity\VideoProgram", mappedBy="teacherForLesson")
  74.      */
  75.     private $videoProgramsCanTeach;
  76.     /**
  77.      * @ORM\OneToMany(targetEntity="App\Entity\VideoDividend", mappedBy="teacher")
  78.      */
  79.     private $videoDividends;
  80.     /**
  81.      * @ORM\Column(type="string", length=150, nullable=true)
  82.      * @Assert\Regex(pattern = "/^#?[a-z\-_0-9]+$/i", htmlPattern = "^#?[a-z\-_0-9]+$/i", message="This must contain only letter or numbers" )
  83.      */
  84.     private $slackChannel;
  85.     /**
  86.      * @ORM\Column(type="string", length=255, nullable=true)
  87.      */
  88.     private $iban;
  89.     /**
  90.      * @ORM\Column(type="string", length=255, nullable=true)
  91.      */
  92.     private $address;
  93.     /**
  94.      * @ORM\Column(type="string", length=100, nullable=true)
  95.      */
  96.     private $city;
  97.     /**
  98.      * @ORM\Column(type="integer", nullable=true)
  99.      */
  100.     private $zipCode;
  101.     /**
  102.      * @ORM\Column(type="string", length=100, nullable=true)
  103.      */
  104.     private $country;
  105.     /**
  106.      * @ORM\Column(type="boolean", nullable=true)
  107.      */
  108.     private $isActif;
  109.     /**
  110.      * @ORM\Column(type="boolean", nullable=true)
  111.      */
  112.     private $isLevelTest;
  113.     /**
  114.      * @ORM\Column(type="boolean", nullable=true)
  115.      */
  116.     private $isCamera;
  117.     /**
  118.      * @ORM\OneToMany(targetEntity=TrainingReport::class, mappedBy="teacher")
  119.      */
  120.     private $trainingReports;
  121.     /**
  122.      * @ORM\Column(type="decimal", precision=25, scale=15, nullable=true)
  123.      */
  124.     private $addonForArabic;
  125.     /**
  126.      * @ORM\Column(type="decimal", precision=25, scale=15, nullable=true)
  127.      */
  128.     private $addonForQuran;
  129.     /**
  130.      * @ORM\Column(type="decimal", precision=25, scale=15, nullable=true)
  131.      */
  132.     private $addonForChildren;
  133.     /**
  134.      * @ORM\Column(type="boolean", nullable=true)
  135.      */
  136.     private $isBeginner;
  137.     /**
  138.      * @ORM\Column(type="boolean", nullable=true)
  139.      */
  140.     private $isIntermediate;
  141.     /**
  142.      * @ORM\Column(type="boolean", nullable=true)
  143.      */
  144.     private $isAdvanced;
  145.     /**
  146.      * @ORM\Column(type="string", length=100, nullable=true)
  147.      */
  148.     private $currency;
  149.     /**
  150.      * @ORM\OneToMany(targetEntity=MainTeacherSalary::class, mappedBy="teacher")
  151.      */
  152.     private $mainTeacherSalaries;
  153.     /**
  154.      * @ORM\OneToMany(targetEntity=TeacherLeveltest::class, mappedBy="teacher")
  155.      */
  156.     private $teacherLeveltests;
  157.     /**
  158.      * @ORM\ManyToOne(targetEntity=Qiraa::class, inversedBy="teachers")
  159.      */
  160.     private $Qiraa;
  161.     /**
  162.      * @ORM\Column(type="float", nullable=true)
  163.      */
  164.     private $groupSalary;
  165.     /**
  166.      * @ORM\Column(type="float", nullable=true)
  167.      */
  168.     private $groupWaitingSalary;
  169.     public function __construct()
  170.     {
  171.         $this->schedules             = new ArrayCollection();
  172.         $this->categories            = new ArrayCollection();
  173.         $this->sessionsCourses       = new ArrayCollection();
  174.         $this->subscriptionOrders    = new ArrayCollection();
  175.         $this->teacherSubjects       = new ArrayCollection();
  176.         $this->teacherSalaries       = new ArrayCollection();
  177.         $this->homeworks             = new ArrayCollection();
  178.         $this->videoPrograms         = new ArrayCollection();
  179.         $this->videoProgramsCanTeach = new ArrayCollection();
  180.         $this->videoDividends        = new ArrayCollection();
  181.         $this->trainingReports = new ArrayCollection();
  182.         $this->mainTeacherSalaries = new ArrayCollection();
  183.         $this->teacherLeveltests = new ArrayCollection();
  184.     }
  185.     public function getId(): ?int
  186.     {
  187.         return $this->id;
  188.     }
  189.     public function getHourlySalary(): ?float
  190.     {
  191.         return $this->hourlySalary;
  192.     }
  193.     public function setHourlySalary(float $hourlySalary): self
  194.     {
  195.         $this->hourlySalary round($hourlySalary2);
  196.         return $this;
  197.     }
  198.     public function getIsGrader(): ?bool
  199.     {
  200.         return $this->isGrader;
  201.     }
  202.     public function setIsGrader(?bool $isGrader): self
  203.     {
  204.         $this->isGrader $isGrader;
  205.         return $this;
  206.     }
  207.     public function getUserId(): ?User
  208.     {
  209.         return $this->userId;
  210.     }
  211.     public function setUserId(User $userId): self
  212.     {
  213.         $this->userId $userId;
  214.         return $this;
  215.     }
  216.     /**
  217.      * @return Collection|TeacherSchedule[]
  218.      */
  219.     public function getSchedules(): Collection
  220.     {
  221.         return $this->schedules;
  222.     }
  223.     public function addSchedule(TeacherSchedule $schedule): self
  224.     {
  225.         if ( ! $this->schedules->contains($schedule)) {
  226.             $this->schedules[] = $schedule;
  227.             $schedule->setTeacher($this);
  228.         }
  229.         return $this;
  230.     }
  231.     public function removeSchedule(TeacherSchedule $schedule): self
  232.     {
  233.         if ($this->schedules->contains($schedule)) {
  234.             $this->schedules->removeElement($schedule);
  235.             // set the owning side to null (unless already changed)
  236.             if ($schedule->getTeacher() === $this) {
  237.                 $schedule->setTeacher(null);
  238.             }
  239.         }
  240.         return $this;
  241.     }
  242.     /**
  243.      * @return Collection|Category[]
  244.      */
  245.     public function getCategories(): Collection
  246.     {
  247.         return $this->categories;
  248.     }
  249.     public function addCategory(Category $category): self
  250.     {
  251.         if ( ! $this->categories->contains($category)) {
  252.             $this->categories[] = $category;
  253.         }
  254.         return $this;
  255.     }
  256.     public function removeCategory(Category $category): self
  257.     {
  258.         if ($this->categories->contains($category)) {
  259.             $this->categories->removeElement($category);
  260.         }
  261.         return $this;
  262.     }
  263.     /**
  264.      * @return Collection|Session[]
  265.      */
  266.     public function getSessionsCourses(): Collection
  267.     {
  268.         return $this->sessionsCourses;
  269.     }
  270.     public function addSession(Session $session): self
  271.     {
  272.         if ( ! $this->sessionsCourses->contains($session)) {
  273.             $this->sessionsCourses[] = $session;
  274.             $session->setTeacher($this);
  275.         }
  276.         return $this;
  277.     }
  278.     public function removeSession(Session $session): self
  279.     {
  280.         if ($this->sessionsCourses->contains($session)) {
  281.             $this->sessionsCourses->removeElement($session);
  282.             // set the owning side to null (unless already changed)
  283.             if ($session->getTeacher() === $this) {
  284.                 $session->setTeacher(null);
  285.             }
  286.         }
  287.         return $this;
  288.     }
  289.     /**
  290.      * @return Collection|SubscriptionOrder[]
  291.      */
  292.     public function getSubscriptionOrders(): Collection
  293.     {
  294.         return $this->subscriptionOrders;
  295.     }
  296.     public function addSubscriptionOrder(SubscriptionOrder $subscriptionOrder): self
  297.     {
  298.         if ( ! $this->subscriptionOrders->contains($subscriptionOrder)) {
  299.             $this->subscriptionOrders[] = $subscriptionOrder;
  300.             $subscriptionOrder->setTeacher($this);
  301.         }
  302.         return $this;
  303.     }
  304.     public function removeSubscriptionOrder(SubscriptionOrder $subscriptionOrder): self
  305.     {
  306.         if ($this->subscriptionOrders->contains($subscriptionOrder)) {
  307.             $this->subscriptionOrders->removeElement($subscriptionOrder);
  308.             // set the owning side to null (unless already changed)
  309.             if ($subscriptionOrder->getTeacher() === $this) {
  310.                 $subscriptionOrder->setTeacher(null);
  311.             }
  312.         }
  313.         return $this;
  314.     }
  315.     public function getForChildren(): ?bool
  316.     {
  317.         return $this->forChildren;
  318.     }
  319.     public function setForChildren(?bool $forChildren): self
  320.     {
  321.         $this->forChildren $forChildren;
  322.         return $this;
  323.     }
  324.     public function __toString()
  325.     {
  326.         return $this->getUserId()->getFullname();
  327.     }
  328.     public function getHourlySalaryWaiting(): ?float
  329.     {
  330.         return $this->hourlySalaryWaiting;
  331.     }
  332.     public function setHourlySalaryWaiting(?float $hourlySalaryWaiting): self
  333.     {
  334.         $this->hourlySalaryWaiting round($hourlySalaryWaiting2);
  335.         return $this;
  336.     }
  337.     /**
  338.      * @return Collection|TeacherSubject[]
  339.      */
  340.     public function getTeacherSubjects(): Collection
  341.     {
  342.         return $this->teacherSubjects;
  343.     }
  344.     public function addTeacherSubject(TeacherSubject $teacherSubject): self
  345.     {
  346.         if ( ! $this->teacherSubjects->contains($teacherSubject)) {
  347.             $this->teacherSubjects[] = $teacherSubject;
  348.             $teacherSubject->setTeacher($this);
  349.         }
  350.         return $this;
  351.     }
  352.     public function removeTeacherSubject(TeacherSubject $teacherSubject): self
  353.     {
  354.         if ($this->teacherSubjects->contains($teacherSubject)) {
  355.             $this->teacherSubjects->removeElement($teacherSubject);
  356.             // set the owning side to null (unless already changed)
  357. //            if ($teacherSubject->getTeacher() === $this) {
  358. //                $teacherSubject->setTeacher(null);
  359. //            }
  360.         }
  361.         return $this;
  362.     }
  363.     /**
  364.      * @return Collection|TeacherSalary[]
  365.      */
  366.     public function getTeacherSalaries(): Collection
  367.     {
  368.         return $this->teacherSalaries;
  369.     }
  370.     public function addTeacherSalary(TeacherSalary $teacherSalary): self
  371.     {
  372.         if ( ! $this->teacherSalaries->contains($teacherSalary)) {
  373.             $this->teacherSalaries[] = $teacherSalary;
  374.             $teacherSalary->setTeacher($this);
  375.         }
  376.         return $this;
  377.     }
  378.     public function removeTeacherSalary(TeacherSalary $teacherSalary): self
  379.     {
  380.         if ($this->teacherSalaries->contains($teacherSalary)) {
  381.             $this->teacherSalaries->removeElement($teacherSalary);
  382.             // set the owning side to null (unless already changed)
  383.             if ($teacherSalary->getTeacher() === $this) {
  384.                 $teacherSalary->setTeacher(null);
  385.             }
  386.         }
  387.         return $this;
  388.     }
  389.     /**
  390.      * @return Collection|Homework[]
  391.      */
  392.     public function getHomeworks(): Collection
  393.     {
  394.         return $this->homeworks;
  395.     }
  396.     public function addHomework(Homework $homework): self
  397.     {
  398.         if ( ! $this->homeworks->contains($homework)) {
  399.             $this->homeworks[] = $homework;
  400.             $homework->setCorrectedBy($this);
  401.         }
  402.         return $this;
  403.     }
  404.     public function removeHomework(Homework $homework): self
  405.     {
  406.         if ($this->homeworks->contains($homework)) {
  407.             $this->homeworks->removeElement($homework);
  408.             // set the owning side to null (unless already changed)
  409.             if ($homework->getCorrectedBy() === $this) {
  410.                 $homework->setCorrectedBy(null);
  411.             }
  412.         }
  413.         return $this;
  414.     }
  415.     /**
  416.      * @return Collection|VideoProgram[]
  417.      */
  418.     public function getVideoPrograms(): Collection
  419.     {
  420.         return $this->videoPrograms;
  421.     }
  422.     public function addVideoProgram(VideoProgram $videoProgram): self
  423.     {
  424.         if ( ! $this->videoPrograms->contains($videoProgram)) {
  425.             $this->videoPrograms[] = $videoProgram;
  426.             $videoProgram->setTeacher($this);
  427.         }
  428.         return $this;
  429.     }
  430.     public function removeVideoProgram(VideoProgram $videoProgram): self
  431.     {
  432.         if ($this->videoPrograms->contains($videoProgram)) {
  433.             $this->videoPrograms->removeElement($videoProgram);
  434.             // set the owning side to null (unless already changed)
  435.             if ($videoProgram->getTeacher() === $this) {
  436.                 $videoProgram->setTeacher(null);
  437.             }
  438.         }
  439.         return $this;
  440.     }
  441.     /**
  442.      * @return Collection|VideoProgram[]
  443.      */
  444.     public function getVideoProgramsCanTeach(): Collection
  445.     {
  446.         return $this->videoProgramsCanTeach;
  447.     }
  448.     public function addVideoProgramsCanTeach(VideoProgram $videoProgramsCanTeach): self
  449.     {
  450.         if ( ! $this->videoProgramsCanTeach->contains($videoProgramsCanTeach)) {
  451.             $this->videoProgramsCanTeach[] = $videoProgramsCanTeach;
  452.             $videoProgramsCanTeach->addTeacherForLesson($this);
  453.         }
  454.         return $this;
  455.     }
  456.     public function removeVideoProgramsCanTeach(VideoProgram $videoProgramsCanTeach): self
  457.     {
  458.         if ($this->videoProgramsCanTeach->contains($videoProgramsCanTeach)) {
  459.             $this->videoProgramsCanTeach->removeElement($videoProgramsCanTeach);
  460.             $videoProgramsCanTeach->removeTeacherForLesson($this);
  461.         }
  462.         return $this;
  463.     }
  464.     /**
  465.      * @return Collection|VideoDividend[]
  466.      */
  467.     public function getVideoDividends(): Collection
  468.     {
  469.         return $this->videoDividends;
  470.     }
  471.     public function addVideoDividend(VideoDividend $videoDividend): self
  472.     {
  473.         if ( ! $this->videoDividends->contains($videoDividend)) {
  474.             $this->videoDividends[] = $videoDividend;
  475.             $videoDividend->setTeacher($this);
  476.         }
  477.         return $this;
  478.     }
  479.     public function removeVideoDividend(VideoDividend $videoDividend): self
  480.     {
  481.         if ($this->videoDividends->contains($videoDividend)) {
  482.             $this->videoDividends->removeElement($videoDividend);
  483.             // set the owning side to null (unless already changed)
  484.             if ($videoDividend->getTeacher() === $this) {
  485.                 $videoDividend->setTeacher(null);
  486.             }
  487.         }
  488.         return $this;
  489.     }
  490.     public function getSlackChannel(): ?string
  491.     {
  492.         return $this->slackChannel;
  493.     }
  494.     public function setSlackChannel(?string $slackChannel): self
  495.     {
  496.         if ( ! empty($slackChannel) && substr($slackChannel01) !== '#') {
  497.             $slackChannel '#'.$slackChannel;
  498.         }
  499.         $this->slackChannel $slackChannel;
  500.         return $this;
  501.     }
  502.     public function getIban(): ?string
  503.     {
  504.         return $this->iban;
  505.     }
  506.     public function setIban(?string $iban): self
  507.     {
  508.         $this->iban $iban;
  509.         return $this;
  510.     }
  511.     public function getAddress(): ?string
  512.     {
  513.         return $this->address;
  514.     }
  515.     public function setAddress(?string $address): self
  516.     {
  517.         $this->address $address;
  518.         return $this;
  519.     }
  520.     public function getCity(): ?string
  521.     {
  522.         return $this->city;
  523.     }
  524.     public function setCity(?string $city): self
  525.     {
  526.         $this->city $city;
  527.         return $this;
  528.     }
  529.     public function getZipCode(): ?int
  530.     {
  531.         return $this->zipCode;
  532.     }
  533.     public function setZipCode(?int $zipCode): self
  534.     {
  535.         $this->zipCode $zipCode;
  536.         return $this;
  537.     }
  538.     public function getCountry(): ?string
  539.     {
  540.         return $this->country;
  541.     }
  542.     public function setCountry(?string $country): self
  543.     {
  544.         $this->country $country;
  545.         return $this;
  546.     }
  547.     public function getIsActif(): ?bool
  548.     {
  549.         return $this->isActif;
  550.     }
  551.     public function setIsActif(?bool $isActif): self
  552.     {
  553.         $this->isActif $isActif;
  554.         return $this;
  555.     }
  556.     public function getIsLevelTest(): ?bool
  557.     {
  558.         return $this->isLevelTest;
  559.     }
  560.     public function setIsLevelTest(?bool $isLevelTest): self
  561.     {
  562.         $this->isLevelTest $isLevelTest;
  563.         return $this;
  564.     }
  565.     public function getIsCamera(): ?bool
  566.     {
  567.         return $this->isCamera;
  568.     }
  569.     public function setIsCamera(?bool $isCamera): self
  570.     {
  571.         $this->isCamera $isCamera;
  572.         return $this;
  573.     }
  574.     /**
  575.      * @return Collection|TrainingReport[]
  576.      */
  577.     public function getTrainingReports(): Collection
  578.     {
  579.         return $this->trainingReports;
  580.     }
  581.     public function addTrainingReport(TrainingReport $trainingReport): self
  582.     {
  583.         if (!$this->trainingReports->contains($trainingReport)) {
  584.             $this->trainingReports[] = $trainingReport;
  585.             $trainingReport->setTeacher($this);
  586.         }
  587.         return $this;
  588.     }
  589.     public function removeTrainingReport(TrainingReport $trainingReport): self
  590.     {
  591.         if ($this->trainingReports->removeElement($trainingReport)) {
  592.             // set the owning side to null (unless already changed)
  593.             if ($trainingReport->getTeacher() === $this) {
  594.                 $trainingReport->setTeacher(null);
  595.             }
  596.         }
  597.         return $this;
  598.     }
  599.     public function getAddonForArabic(): ?float
  600.     {
  601.         return $this->addonForArabic;
  602.     }
  603.     public function setAddonForArabic(?float $addonForArabic): self
  604.     {
  605.         $this->addonForArabic round($addonForArabic2);
  606.         return $this;
  607.     }
  608.     public function getAddonForQuran(): ?float
  609.     {
  610.         return $this->addonForQuran;
  611.     }
  612.     public function setAddonForQuran(?float $addonForQuran): self
  613.     {
  614.         $this->addonForQuran round($addonForQuran2);
  615.         return $this;
  616.     }
  617.     public function getAddonForChildren(): ?float
  618.     {
  619.         return $this->addonForChildren;
  620.     }
  621.     public function setAddonForChildren(?float $addonForChildren): self
  622.     {
  623.         $this->addonForChildren round($addonForChildren2);
  624.         return $this;
  625.     }
  626.     public function getIsBeginner(): ?bool
  627.     {
  628.         return $this->isBeginner;
  629.     }
  630.     public function setIsBeginner(?bool $isBeginner): self
  631.     {
  632.         $this->isBeginner $isBeginner;
  633.         return $this;
  634.     }
  635.     public function getIsIntermediate(): ?bool
  636.     {
  637.         return $this->isIntermediate;
  638.     }
  639.     public function setIsIntermediate(?bool $isIntermediate): self
  640.     {
  641.         $this->isIntermediate $isIntermediate;
  642.         return $this;
  643.     }
  644.     public function getIsAdvanced(): ?bool
  645.     {
  646.         return $this->isAdvanced;
  647.     }
  648.     public function setIsAdvanced(?bool $isAdvanced): self
  649.     {
  650.         $this->isAdvanced $isAdvanced;
  651.         return $this;
  652.     }
  653.     public function getCurrency(): ?string
  654.     {
  655.         return $this->currency;
  656.     }
  657.     public function setCurrency(?string $currency): self
  658.     {
  659.         $this->currency $currency;
  660.         return $this;
  661.     }
  662.     /**
  663.      * @return Collection<int, MainTeacherSalary>
  664.      */
  665.     public function getMainTeacherSalaries(): Collection
  666.     {
  667.         return $this->mainTeacherSalaries;
  668.     }
  669.     public function addMainTeacherSalary(MainTeacherSalary $mainTeacherSalary): self
  670.     {
  671.         if (!$this->mainTeacherSalaries->contains($mainTeacherSalary)) {
  672.             $this->mainTeacherSalaries[] = $mainTeacherSalary;
  673.             $mainTeacherSalary->setTeacher($this);
  674.         }
  675.         return $this;
  676.     }
  677.     public function removeMainTeacherSalary(MainTeacherSalary $mainTeacherSalary): self
  678.     {
  679.         if ($this->mainTeacherSalaries->removeElement($mainTeacherSalary)) {
  680.             // set the owning side to null (unless already changed)
  681.             if ($mainTeacherSalary->getTeacher() === $this) {
  682.                 $mainTeacherSalary->setTeacher(null);
  683.             }
  684.         }
  685.         return $this;
  686.     }
  687.     /**
  688.      * @return Collection<int, TeacherLeveltest>
  689.      */
  690.     public function getTeacherLeveltests(): Collection
  691.     {
  692.         return $this->teacherLeveltests;
  693.     }
  694.     public function addTeacherLeveltest(TeacherLeveltest $teacherLeveltest): self
  695.     {
  696.         if (!$this->teacherLeveltests->contains($teacherLeveltest)) {
  697.             $this->teacherLeveltests[] = $teacherLeveltest;
  698.             $teacherLeveltest->setTeacher($this);
  699.         }
  700.         return $this;
  701.     }
  702.     public function removeTeacherLeveltest(TeacherLeveltest $teacherLeveltest): self
  703.     {
  704.         if ($this->teacherLeveltests->removeElement($teacherLeveltest)) {
  705.             // set the owning side to null (unless already changed)
  706.             if ($teacherLeveltest->getTeacher() === $this) {
  707.                 $teacherLeveltest->setTeacher(null);
  708.             }
  709.         }
  710.         return $this;
  711.     }
  712.     public function updateSubjects(): void
  713.     {
  714.         foreach ($this->getTeacherSubjects() as $teacherSubject) {
  715.             if ($teacherSubject->getSubject()->getCategory()->getId() == 1) {
  716.                 $teacherSubject->setQiraa(null);
  717.             }
  718.             if ($teacherSubject->getSubject()->getCategory()->getId() == 2) {
  719.                 $teacherSubject->setFromLevel(null);
  720.                 $teacherSubject->setToLevel(null);
  721.             }
  722.         }
  723.     }
  724.     public function getQiraa(): ?Qiraa
  725.     {
  726.         return $this->Qiraa;
  727.     }
  728.     public function setQiraa(?Qiraa $Qiraa): self
  729.     {
  730.         $this->Qiraa $Qiraa;
  731.         return $this;
  732.     }
  733.     public function getGroupSalary(): ?float
  734.     {
  735.         return $this->groupSalary;
  736.     }
  737.     public function setGroupSalary(?float $groupSalary): self
  738.     {
  739.         $this->groupSalary $groupSalary;
  740.         return $this;
  741.     }
  742.     public function getGroupWaitingSalary(): ?float
  743.     {
  744.         return $this->groupWaitingSalary;
  745.     }
  746.     public function setGroupWaitingSalary(?float $groupWaitingSalary): self
  747.     {
  748.         $this->groupWaitingSalary $groupWaitingSalary;
  749.         return $this;
  750.     }
  751. }