src/Entity/SchoolReportCard.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use DateTimeImmutable;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Repository\UserRepository;
  6. use Doctrine\Common\Collections\Collection;
  7. use App\Repository\SchoolReportCardRepository;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. /**
  10.  * @ORM\Entity(repositoryClass=SchoolReportCardRepository::class)
  11.  */
  12. class SchoolReportCard
  13. {
  14.     /**
  15.      * @ORM\Id
  16.      * @ORM\GeneratedValue
  17.      * @ORM\Column(type="integer")
  18.      */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="string", length=60, unique=true)
  22.      */
  23.     private $code;
  24.     /**
  25.      * @ORM\Column(type="string", length=128)
  26.      */
  27.     private $label;
  28.     /**
  29.      * @ORM\Column(type="float")
  30.      */
  31.     private $note_on;
  32.     /**
  33.      * @ORM\ManyToOne(targetEntity=Establishment::class, inversedBy="schoolReportCards")
  34.      * @ORM\JoinColumn(nullable=false)
  35.      */
  36.     private $establishment;
  37.     /**
  38.      * @ORM\ManyToOne(targetEntity=SchoolYear::class, inversedBy="schoolReportCards")
  39.      * @ORM\JoinColumn(nullable=false)
  40.      */
  41.     private $schoolYear;
  42.     /**
  43.      * @ORM\ManyToOne(targetEntity=SchoolYearPeriode::class, inversedBy="schoolReportCards")
  44.      * @ORM\JoinColumn(nullable=false)
  45.      */
  46.     private $schoolYearPeriode;
  47.     /**
  48.      * @ORM\ManyToOne(targetEntity=RegistrationStudentRegistration::class, inversedBy="schoolReportCards")
  49.      * @ORM\JoinColumn(nullable=false)
  50.      */
  51.     private $studentRegistration;
  52.     /**
  53.      * @ORM\ManyToOne(targetEntity=SettingClassroom::class, inversedBy="schoolReportCards")
  54.      * @ORM\JoinColumn(nullable=false)
  55.      */
  56.     private $classroom;
  57.     /**
  58.      * @ORM\Column(type="float")
  59.      */
  60.     private $coefficient;
  61.     /**
  62.      * @ORM\Column(type="integer")
  63.      */
  64.     private $order_num;
  65.     /**
  66.      * @ORM\Column(type="datetime_immutable")
  67.     */
  68.     private $created_at;
  69.     /**
  70.      * @ORM\Column(type="datetime_immutable")
  71.      */
  72.     private $updated_at;
  73.     /**
  74.      * @ORM\Column(type="integer")
  75.      */
  76.     private $created_by;
  77.     /**
  78.      * @ORM\Column(type="integer")
  79.      */
  80.     private $updated_by;
  81.     /**
  82.      * @ORM\OneToMany(targetEntity=SchoolAverageReportCard::class, mappedBy="reportCard")
  83.      * @ORM\OrderBy({"order_num" = "ASC"})
  84.      */
  85.     private $schoolAverageReportCards;
  86.     /**
  87.      * @ORM\OneToMany(targetEntity=SchoolAssessmentByClass::class, mappedBy="reportCard")
  88.      */
  89.     private $schoolAssessmentByClasses;
  90.     /**
  91.      * @ORM\OneToMany(targetEntity=SchoolAssessmentByLevel::class, mappedBy="reportCard")
  92.      */
  93.     private $schoolAssessmentByLevels;
  94.     /**
  95.      * @ORM\OneToMany(targetEntity=SchoolAssessmentByClassByMatter::class, mappedBy="reportCard")
  96.      */
  97.     private $schoolAssessmentByClassByMatters;
  98.     /**
  99.      * @ORM\OneToMany(targetEntity=SchoolAssessmentByLevelByMatter::class, mappedBy="reportCard")
  100.      */
  101.     private $schoolAssessmentByLevelByMatters;
  102.     /**
  103.      * @ORM\ManyToOne(targetEntity=ReportCard::class, inversedBy="schoolReportCards")
  104.      * @ORM\JoinColumn(nullable=false)
  105.      */
  106.     private $reportCard;
  107.     /**
  108.      * @ORM\Column(type="string", length=128)
  109.      */
  110.     private $type;
  111.     /**
  112.      * @ORM\Column(type="boolean")
  113.     */
  114.     private $is_validated;
  115.     /**
  116.      * @ORM\Column(type="float", nullable=true)
  117.      */
  118.     private $report_card_average;
  119.     /**
  120.      * @ORM\Column(type="float", nullable=true)
  121.      */
  122.     private $class_average;
  123.     /**
  124.      * @ORM\Column(type="float", nullable=true)
  125.      */
  126.     private $smallest_average;
  127.     /**
  128.      * @ORM\Column(type="float", nullable=true)
  129.      */
  130.     private $sstrongest_average;
  131.     /**
  132.      * @ORM\Column(type="string", length=60, nullable=true)
  133.      */
  134.     private $rank;
  135.     /**
  136.      * @ORM\Column(type="string", length=60, nullable=true)
  137.      */
  138.     private $level_rank;
  139.     /**
  140.      * @ORM\Column(type="float", nullable=true)
  141.      */
  142.     private $total_average;
  143.     /**
  144.      * @ORM\Column(type="float", nullable=true)
  145.      */
  146.     private $total_coefficient;
  147.     /**
  148.      * @ORM\Column(type="float", nullable=true)
  149.      */
  150.     private $justified_absence;
  151.     /**
  152.      * @ORM\Column(type="float", nullable=true)
  153.      */
  154.     private $unjustified_absence;
  155.     /**
  156.      * @ORM\Column(type="float", nullable=true)
  157.      */
  158.     private $annual_average;
  159.     /**
  160.      * @ORM\Column(type="string", length=60, nullable=true)
  161.      */
  162.     private $annual_rank;
  163.     /**
  164.      * @ORM\Column(type="float", nullable=true)
  165.      */
  166.     private $class_annual_average;
  167.     /**
  168.      * @ORM\Column(type="boolean")
  169.     */
  170.     private $is_unclassified;
  171.     /**
  172.      * @ORM\ManyToOne(targetEntity=SchoolReportCardAbsence::class, inversedBy="schoolReportCards")
  173.      */
  174.     private $schoolReportCardAbsence;
  175.     public function __construct()
  176.     {
  177.         $this->total_average 0;
  178.         $this->total_coefficient 0;
  179.         
  180.         $this->is_validated false;
  181.         $this->is_unclassified false;
  182.         $this->schoolAverageReportCards = new ArrayCollection();
  183.         $this->schoolAssessmentByClasses = new ArrayCollection();
  184.         $this->schoolAssessmentByLevels = new ArrayCollection();
  185.         $this->schoolAssessmentByClassByMatters = new ArrayCollection();
  186.         $this->schoolAssessmentByLevelByMatters = new ArrayCollection();
  187.     }
  188.     public function getId(): ?int
  189.     {
  190.         return $this->id;
  191.     }
  192.     public function getEstablishment(): ?Establishment
  193.     {
  194.         return $this->establishment;
  195.     }
  196.     public function setEstablishment(?Establishment $establishment): self
  197.     {
  198.         $this->establishment $establishment;
  199.         return $this;
  200.     }
  201.     public function getSchoolYear(): ?SchoolYear
  202.     {
  203.         return $this->schoolYear;
  204.     }
  205.     public function setSchoolYear(?SchoolYear $schoolYear): self
  206.     {
  207.         $this->schoolYear $schoolYear;
  208.         return $this;
  209.     }
  210.     public function getSchoolYearPeriode(): ?SchoolYearPeriode
  211.     {
  212.         return $this->schoolYearPeriode;
  213.     }
  214.     public function setSchoolYearPeriode(?SchoolYearPeriode $schoolYearPeriode): self
  215.     {
  216.         $this->schoolYearPeriode $schoolYearPeriode;
  217.         return $this;
  218.     }
  219.     public function getStudentRegistration(): ?RegistrationStudentRegistration
  220.     {
  221.         return $this->studentRegistration;
  222.     }
  223.     public function setStudentRegistration(?RegistrationStudentRegistration $studentRegistration): self
  224.     {
  225.         $this->studentRegistration $studentRegistration;
  226.         return $this;
  227.     }
  228.     public function getClassroom(): ?SettingClassroom
  229.     {
  230.         return $this->classroom;
  231.     }
  232.     public function setClassroom(?SettingClassroom $classroom): self
  233.     {
  234.         $this->classroom $classroom;
  235.         return $this;
  236.     }
  237.     public function getCoefficient(): ?float
  238.     {
  239.         return $this->coefficient;
  240.     }
  241.     public function setCoefficient(float $coefficient): self
  242.     {
  243.         $this->coefficient $coefficient;
  244.         return $this;
  245.     }
  246.     public function getOrderNum(): ?int
  247.     {
  248.         return $this->order_num;
  249.     }
  250.     public function setOrderNum(int $order_num): self
  251.     {
  252.         $this->order_num $order_num;
  253.         return $this;
  254.     }
  255.     /**
  256.      * @return Collection|SchoolAverageReportCard[]
  257.      */
  258.     public function getSchoolAverageReportCards(): Collection
  259.     {
  260.         return $this->schoolAverageReportCards;
  261.     }
  262.     public function addSchoolAverageReportCard(SchoolAverageReportCard $schoolAverageReportCard): self
  263.     {
  264.         if (!$this->schoolAverageReportCards->contains($schoolAverageReportCard)) {
  265.             $this->schoolAverageReportCards[] = $schoolAverageReportCard;
  266.             $schoolAverageReportCard->setReportCard($this);
  267.         }
  268.         return $this;
  269.     }
  270.     public function removeSchoolAverageReportCard(SchoolAverageReportCard $schoolAverageReportCard): self
  271.     {
  272.         if ($this->schoolAverageReportCards->removeElement($schoolAverageReportCard)) {
  273.             // set the owning side to null (unless already changed)
  274.             if ($schoolAverageReportCard->getReportCard() === $this) {
  275.                 $schoolAverageReportCard->setReportCard(null);
  276.             }
  277.         }
  278.         return $this;
  279.     }
  280.     /**
  281.      * @return Collection|SchoolAssessmentByClass[]
  282.      */
  283.     public function getSchoolAssessmentByClasses(): Collection
  284.     {
  285.         return $this->schoolAssessmentByClasses;
  286.     }
  287.     public function addSchoolAssessmentByClass(SchoolAssessmentByClass $schoolAssessmentByClass): self
  288.     {
  289.         if (!$this->schoolAssessmentByClasses->contains($schoolAssessmentByClass)) {
  290.             $this->schoolAssessmentByClasses[] = $schoolAssessmentByClass;
  291.             $schoolAssessmentByClass->setReportCard($this);
  292.         }
  293.         return $this;
  294.     }
  295.     public function removeSchoolAssessmentByClass(SchoolAssessmentByClass $schoolAssessmentByClass): self
  296.     {
  297.         if ($this->schoolAssessmentByClasses->removeElement($schoolAssessmentByClass)) {
  298.             // set the owning side to null (unless already changed)
  299.             if ($schoolAssessmentByClass->getReportCard() === $this) {
  300.                 $schoolAssessmentByClass->setReportCard(null);
  301.             }
  302.         }
  303.         return $this;
  304.     }
  305.     /**
  306.      * @return Collection|SchoolAssessmentByLevel[]
  307.      */
  308.     public function getSchoolAssessmentByLevels(): Collection
  309.     {
  310.         return $this->schoolAssessmentByLevels;
  311.     }
  312.     public function addSchoolAssessmentByLevel(SchoolAssessmentByLevel $schoolAssessmentByLevel): self
  313.     {
  314.         if (!$this->schoolAssessmentByLevels->contains($schoolAssessmentByLevel)) {
  315.             $this->schoolAssessmentByLevels[] = $schoolAssessmentByLevel;
  316.             $schoolAssessmentByLevel->setReportCard($this);
  317.         }
  318.         return $this;
  319.     }
  320.     public function removeSchoolAssessmentByLevel(SchoolAssessmentByLevel $schoolAssessmentByLevel): self
  321.     {
  322.         if ($this->schoolAssessmentByLevels->removeElement($schoolAssessmentByLevel)) {
  323.             // set the owning side to null (unless already changed)
  324.             if ($schoolAssessmentByLevel->getReportCard() === $this) {
  325.                 $schoolAssessmentByLevel->setReportCard(null);
  326.             }
  327.         }
  328.         return $this;
  329.     }
  330.     public function getCode(): ?string
  331.     {
  332.         return $this->code;
  333.     }
  334.     public function setCode(string $code): self
  335.     {
  336.         $this->code $code;
  337.         return $this;
  338.     }
  339.     public function getLabel(): ?string
  340.     {
  341.         return $this->label;
  342.     }
  343.     public function setLabel(string $label): self
  344.     {
  345.         $this->label $label;
  346.         return $this;
  347.     }
  348.     public function getCreatedAt(): ?\DateTimeImmutable
  349.     {
  350.         return $this->created_at;
  351.     }
  352.     public function setCreatedAt(\DateTimeImmutable $created_at): self
  353.     {
  354.         $this->created_at $created_at;
  355.         return $this;
  356.     }
  357.     public function getUpdatedAt(): ?\DateTimeImmutable
  358.     {
  359.         return $this->updated_at;
  360.     }
  361.     public function setUpdatedAt(\DateTimeImmutable $updated_at): self
  362.     {
  363.         $this->updated_at $updated_at;
  364.         return $this;
  365.     }
  366.     public function getCreatedBy(): ?int
  367.     {
  368.         return $this->created_by;
  369.     }
  370.     public function setCreatedBy(int $created_by): self
  371.     {
  372.         $this->created_by $created_by;
  373.         return $this;
  374.     }
  375.     public function getUpdatedBy(): ?int
  376.     {
  377.         return $this->updated_by;
  378.     }
  379.     public function setUpdatedBy(int $updated_by): self
  380.     {
  381.         $this->updated_by $updated_by;
  382.         return $this;
  383.     }
  384.     /**
  385.      * @return Collection|SchoolAssessmentByClassByMatter[]
  386.      */
  387.     public function getSchoolAssessmentByClassByMatters(): Collection
  388.     {
  389.         return $this->schoolAssessmentByClassByMatters;
  390.     }
  391.     public function addSchoolAssessmentByClassByMatter(SchoolAssessmentByClassByMatter $schoolAssessmentByClassByMatter): self
  392.     {
  393.         if (!$this->schoolAssessmentByClassByMatters->contains($schoolAssessmentByClassByMatter)) {
  394.             $this->schoolAssessmentByClassByMatters[] = $schoolAssessmentByClassByMatter;
  395.             $schoolAssessmentByClassByMatter->setReportCard($this);
  396.         }
  397.         return $this;
  398.     }
  399.     public function removeSchoolAssessmentByClassByMatter(SchoolAssessmentByClassByMatter $schoolAssessmentByClassByMatter): self
  400.     {
  401.         if ($this->schoolAssessmentByClassByMatters->removeElement($schoolAssessmentByClassByMatter)) {
  402.             // set the owning side to null (unless already changed)
  403.             if ($schoolAssessmentByClassByMatter->getReportCard() === $this) {
  404.                 $schoolAssessmentByClassByMatter->setReportCard(null);
  405.             }
  406.         }
  407.         return $this;
  408.     }
  409.     /**
  410.      * @return Collection|SchoolAssessmentByLevelByMatter[]
  411.      */
  412.     public function getSchoolAssessmentByLevelByMatters(): Collection
  413.     {
  414.         return $this->schoolAssessmentByLevelByMatters;
  415.     }
  416.     public function addSchoolAssessmentByLevelByMatter(SchoolAssessmentByLevelByMatter $schoolAssessmentByLevelByMatter): self
  417.     {
  418.         if (!$this->schoolAssessmentByLevelByMatters->contains($schoolAssessmentByLevelByMatter)) {
  419.             $this->schoolAssessmentByLevelByMatters[] = $schoolAssessmentByLevelByMatter;
  420.             $schoolAssessmentByLevelByMatter->setReportCard($this);
  421.         }
  422.         return $this;
  423.     }
  424.     public function removeSchoolAssessmentByLevelByMatter(SchoolAssessmentByLevelByMatter $schoolAssessmentByLevelByMatter): self
  425.     {
  426.         if ($this->schoolAssessmentByLevelByMatters->removeElement($schoolAssessmentByLevelByMatter)) {
  427.             // set the owning side to null (unless already changed)
  428.             if ($schoolAssessmentByLevelByMatter->getReportCard() === $this) {
  429.                 $schoolAssessmentByLevelByMatter->setReportCard(null);
  430.             }
  431.         }
  432.         return $this;
  433.     }
  434.     public function getReportCard(): ?ReportCard
  435.     {
  436.         return $this->reportCard;
  437.     }
  438.     public function setReportCard(?ReportCard $reportCard): self
  439.     {
  440.         $this->reportCard $reportCard;
  441.         return $this;
  442.     }
  443.     public function getType(): ?string
  444.     {
  445.         return $this->type;
  446.     }
  447.     public function setType(string $type): self
  448.     {
  449.         $this->type $type;
  450.         return $this;
  451.     }
  452.     public function getIsValidated(): ?bool
  453.     {
  454.         return $this->is_validated;
  455.     }
  456.     public function setIsValidated(bool $is_validated): self
  457.     {
  458.         $this->is_validated $is_validated;
  459.         return $this;
  460.     }
  461.     public function getTotaleNote(){
  462.         $note 0;
  463.         foreach ($this->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
  464.             $note += $schoolAverageReportCard->getCoefficientXAverage();
  465.         }
  466.         return $note;
  467.     }
  468.     public function getTotaleCoefficient(){
  469.         $coefficient 0;
  470.         foreach ($this->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
  471.             $coefficient += $schoolAverageReportCard->getCoefficient();
  472.         }
  473.         return $coefficient;
  474.     }
  475.     public function getAverage(){
  476.         if ($this->getTotaleCoefficient() > 0) {
  477.             return $this->getTotaleNote()/$this->getTotaleCoefficient();
  478.         }
  479.         return 0;
  480.     }
  481.     public function getNoteOn(): ?float
  482.     {
  483.         return $this->note_on;
  484.     }
  485.     public function setNoteOn(float $note_on): self
  486.     {
  487.         $this->note_on $note_on;
  488.         return $this;
  489.     }
  490.     public function getReportCardAverage(): ?float
  491.     {
  492.         return $this->report_card_average;
  493.     }
  494.     public function setReportCardAverage(?float $report_card_average): self
  495.     {
  496.         $this->report_card_average $report_card_average;
  497.         return $this;
  498.     }
  499.     public function getRank(): ?string
  500.     {
  501.         return $this->rank;
  502.     }
  503.     public function setRank(?string $rank): self
  504.     {
  505.         $this->rank $rank;
  506.         return $this;
  507.     }
  508.     public function getClassAverage(): ?float
  509.     {
  510.         return $this->class_average;
  511.     }
  512.     public function setClassAverage(?float $class_average): self
  513.     {
  514.         $this->class_average $class_average;
  515.         return $this;
  516.     }
  517.     public function getSmallestAverage(): ?float
  518.     {
  519.         return $this->smallest_average;
  520.     }
  521.     public function setSmallestAverage(?float $smallest_average): self
  522.     {
  523.         $this->smallest_average $smallest_average;
  524.         return $this;
  525.     }
  526.     public function getSstrongestAverage(): ?float
  527.     {
  528.         return $this->sstrongest_average;
  529.     }
  530.     public function setSstrongestAverage(?float $sstrongest_average): self
  531.     {
  532.         $this->sstrongest_average $sstrongest_average;
  533.         return $this;
  534.     }
  535.     public function getLevelRank(): ?string
  536.     {
  537.         return $this->level_rank;
  538.     }
  539.     public function setLevelRank(?string $level_rank): self
  540.     {
  541.         $this->level_rank $level_rank;
  542.         return $this;
  543.     }
  544.     public function getTotalAverage(): ?float
  545.     {
  546.         return $this->total_average;
  547.     }
  548.     public function setTotalAverage(?float $total_average): self
  549.     {
  550.         $this->total_average $total_average;
  551.         return $this;
  552.     }
  553.     public function getTotalCoefficient(): ?float
  554.     {
  555.         return $this->total_coefficient;
  556.     }
  557.     public function setTotalCoefficient(?float $total_coefficient): self
  558.     {
  559.         $this->total_coefficient $total_coefficient;
  560.         return $this;
  561.     }
  562.     public function getJustifiedAbsence(): ?float
  563.     {
  564.         return $this->justified_absence;
  565.     }
  566.     public function setJustifiedAbsence(?float $justified_absence): self
  567.     {
  568.         $this->justified_absence $justified_absence;
  569.         return $this;
  570.     }
  571.     public function getUnjustifiedAbsence(): ?float
  572.     {
  573.         return $this->unjustified_absence;
  574.     }
  575.     public function setUnjustifiedAbsence(?float $unjustified_absence): self
  576.     {
  577.         $this->unjustified_absence $unjustified_absence;
  578.         return $this;
  579.     }
  580.     public function getAnnualAverage(): ?float
  581.     {
  582.         return $this->annual_average;
  583.     }
  584.     public function setAnnualAverage(?float $annual_average): self
  585.     {
  586.         $this->annual_average $annual_average;
  587.         return $this;
  588.     }
  589.     public function getAnnualRank(): ?string
  590.     {
  591.         return $this->annual_rank;
  592.     }
  593.     public function setAnnualRank(?string $annual_rank): self
  594.     {
  595.         $this->annual_rank $annual_rank;
  596.         return $this;
  597.     }
  598.     public function getClassAnnualAverage(): ?float
  599.     {
  600.         return $this->class_annual_average;
  601.     }
  602.     public function setClassAnnualAverage(?float $class_annual_average): self
  603.     {
  604.         $this->class_annual_average $class_annual_average;
  605.         return $this;
  606.     }
  607.     public function isUnclassified(){
  608.         $count_nc 0;
  609.         foreach ($this->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
  610.             if ($schoolAverageReportCard->getAverage() >= 999) {
  611.                 $count_nc++;
  612.             }
  613.         }
  614.         return $count_nc == count($this->getSchoolAverageReportCards());
  615.     }
  616.     public function isConduiteBlame(){
  617.         foreach ($this->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
  618.             if (!$schoolAverageReportCard->getMatter()->getIsMatterConduct()) {
  619.                 if ($schoolAverageReportCard->getMatter()->getIsMatterConduct() && $schoolAverageReportCard->getAverage() < 10) {
  620.                     return true;
  621.                 }
  622.             }
  623.         }
  624.         return false;
  625.     }
  626.     public function getIsUnclassified(): ?bool
  627.     {
  628.         return $this->is_unclassified;
  629.     }
  630.     public function setIsUnclassified(bool $is_unclassified): self
  631.     {
  632.         $this->is_unclassified $is_unclassified;
  633.         return $this;
  634.     }
  635.     public function getNbHAbsence(DateTimeImmutable $startDateDateTimeImmutable $endDate){
  636.         $nbh 0;
  637.         foreach ($this->getStudentRegistration()->getSchoolTeacherCallSheetLines() as $key => $schoolTeacherCallSheetLine) {
  638.             if ($schoolTeacherCallSheetLine->getCreateDate()->format('Y-m-d') >= $startDate->format('Y-m-d') && $schoolTeacherCallSheetLine->getCreateDate()->format('Y-m-d') <= $endDate->format('Y-m-d')) {
  639.                 if ($schoolTeacherCallSheetLine->getIsAbsent() && $schoolTeacherCallSheetLine->getSchoolTeacherCallSheet()->getIsAproved()) {
  640.                     if ($schoolTeacherCallSheetLine->getSchoolTeacherCallSheet()->getSettingTimeTable()->getDefautDuration() > 0) {
  641.                         $nbh += $schoolTeacherCallSheetLine->getSchoolTeacherCallSheet()->getSettingTimeTable()->getDefautDuration();
  642.                     }else {
  643.                         $nbh += 1;
  644.                     }
  645.                 }
  646.             }
  647.         }
  648.         return $nbh;
  649.     }
  650.     public function getUserUpdatedBy(UserRepository $userRepository){
  651.         return $userRepository->findOneBy(['id' => $this->getUpdatedBy()], []);
  652.     }
  653.     public function getSchoolReportCardAbsence(): ?SchoolReportCardAbsence
  654.     {
  655.         return $this->schoolReportCardAbsence;
  656.     }
  657.     public function setSchoolReportCardAbsence(?SchoolReportCardAbsence $schoolReportCardAbsence): self
  658.     {
  659.         $this->schoolReportCardAbsence $schoolReportCardAbsence;
  660.         return $this;
  661.     }
  662. }