<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Repository\SettingLevelRepository;
use Doctrine\Common\Collections\Collection;
use App\Repository\SchoolReportCardRepository;
use App\Service\SalaryManage;
use DateTimeImmutable;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity(repositoryClass=SettingLevelRepository::class)
* Niveau CP1,6EME,2ND, TLE, ...
*/
class SettingLevel
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Establishment::class, inversedBy="settingLevels")
* @ORM\JoinColumn(nullable=false)
*/
private $establishment;
/**
* @ORM\Column(type="string", length=128)
*/
private $label;
/**
* @ORM\Column(type="datetime_immutable")
*/
private $created_at;
/**
* @ORM\Column(type="datetime_immutable")
*/
private $updated_at;
/**
* @ORM\Column(type="integer")
*/
private $created_by;
/**
* @ORM\Column(type="integer")
*/
private $updated_by;
/**
* @ORM\ManyToOne(targetEntity=SettingCycle::class, inversedBy="settingLevels")
*/
private $cycle;
/**
* @ORM\OneToMany(targetEntity=SettingClassroom::class, mappedBy="level")
* @ORM\OrderBy({"label" = "ASC"})
*/
private $settingClassrooms;
/**
* @ORM\OneToMany(targetEntity=SchoolMatter::class, mappedBy="level")
* @ORM\OrderBy({"order_num" = "ASC"})
*/
private $schoolMatters;
/**
* @ORM\OneToMany(targetEntity=SchoolSubMatter::class, mappedBy="level")
*/
private $schoolSubMatters;
/**
* @ORM\OneToMany(targetEntity=SchoolAssessmentByLevel::class, mappedBy="level")
*/
private $schoolAssessmentByLevels;
/**
* @ORM\OneToMany(targetEntity=SchoolAssessmentByLevelByMatter::class, mappedBy="level")
*/
private $schoolAssessmentByLevelByMatters;
/**
* @ORM\OneToMany(targetEntity=ReportCard::class, mappedBy="level")
*/
private $reportCards;
/**
* @ORM\ManyToMany(targetEntity=SettingFee::class, mappedBy="levels")
*/
private $settingFees;
/**
* @ORM\OneToMany(targetEntity=RegistrationStudent::class, mappedBy="entryLevel")
*/
private $registrationStudents;
/**
* @ORM\Column(type="boolean")
*/
private $is_student_entry_test_do;
/**
* @ORM\Column(type="boolean")
*/
private $is_student_toxicological_test_do;
/**
* @ORM\Column(type="boolean")
*/
private $is_student_psychological_test_do;
/**
* @ORM\Column(type="boolean")
*/
private $is_student_cbe_affected;
/**
* @ORM\OneToMany(targetEntity=RegistrationStudentPreRegistration::class, mappedBy="entryLevel")
*/
private $registrationStudentPreRegistrations;
/**
* @ORM\ManyToMany(targetEntity=RegistrationStudentPreRegistration::class, mappedBy="classJumps")
*/
private $classJumpRegistrationStudentPreRegistrations;
/**
* @ORM\OneToMany(targetEntity=EntreTestReportCard::class, mappedBy="level")
*/
private $entreTestReportCards;
/**
* @ORM\OneToMany(targetEntity=PreRegistrationEntreTestReportCard::class, mappedBy="level")
*/
private $preRegistrationEntreTestReportCards;
/**
* @ORM\ManyToMany(targetEntity=CommunicationMessage::class, mappedBy="levels")
*/
private $communicationMessages;
/**
* @ORM\ManyToOne(targetEntity=SettingLevel::class, inversedBy="childrens")
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity=SettingLevel::class, mappedBy="parent")
*/
private $childrens;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $num_order;
/**
* @ORM\OneToMany(targetEntity=SchoolAssessment::class, mappedBy="nextLevel")
*/
private $schoolAssessments;
public function __construct()
{
$this->is_student_cbe_affected = false;
$this->is_student_entry_test_do = false;
$this->is_student_toxicological_test_do = false;
$this->is_student_psychological_test_do = false;
$this->settingClassrooms = new ArrayCollection();
$this->settingFees = new ArrayCollection();
$this->schoolMatters = new ArrayCollection();
$this->schoolSubMatters = new ArrayCollection();
$this->schoolAssessmentByLevels = new ArrayCollection();
$this->schoolAssessmentByLevelByMatters = new ArrayCollection();
$this->reportCards = new ArrayCollection();
$this->registrationStudents = new ArrayCollection();
$this->registrationStudentPreRegistrations = new ArrayCollection();
$this->classJumpRegistrationStudentPreRegistrations = new ArrayCollection();
$this->entreTestReportCards = new ArrayCollection();
$this->preRegistrationEntreTestReportCards = new ArrayCollection();
$this->communicationMessages = new ArrayCollection();
$this->childrens = new ArrayCollection();
$this->schoolAssessments = new ArrayCollection();
}
public function __toString()
{
return $this->label;
}
public function getId(): ?int
{
return $this->id;
}
public function getEstablishment(): ?Establishment
{
return $this->establishment;
}
public function setEstablishment(?Establishment $establishment): self
{
$this->establishment = $establishment;
return $this;
}
public function getCycle(): ?SettingCycle
{
return $this->cycle;
}
public function setCycle(?SettingCycle $cycle): self
{
$this->cycle = $cycle;
return $this;
}
/**
* @return Collection|SettingClassroom[]
*/
public function getSettingClassrooms(): Collection
{
return $this->settingClassrooms;
}
public function addSettingClassroom(SettingClassroom $settingClassroom): self
{
if (!$this->settingClassrooms->contains($settingClassroom)) {
$this->settingClassrooms[] = $settingClassroom;
$settingClassroom->setLevel($this);
}
return $this;
}
public function removeSettingClassroom(SettingClassroom $settingClassroom): self
{
if ($this->settingClassrooms->removeElement($settingClassroom)) {
// set the owning side to null (unless already changed)
if ($settingClassroom->getLevel() === $this) {
$settingClassroom->setLevel(null);
}
}
return $this;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeImmutable $created_at): self
{
$this->created_at = $created_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeImmutable
{
return $this->updated_at;
}
public function setUpdatedAt(\DateTimeImmutable $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
public function getCreatedBy(): ?int
{
return $this->created_by;
}
public function setCreatedBy(int $created_by): self
{
$this->created_by = $created_by;
return $this;
}
public function getUpdatedBy(): ?int
{
return $this->updated_by;
}
public function setUpdatedBy(int $updated_by): self
{
$this->updated_by = $updated_by;
return $this;
}
/**
* @return Collection|SchoolMatter[]
*/
public function getSchoolMatters(): Collection
{
return $this->schoolMatters;
}
public function addSchoolMatter(SchoolMatter $schoolMatter): self
{
if (!$this->schoolMatters->contains($schoolMatter)) {
$this->schoolMatters[] = $schoolMatter;
$schoolMatter->setLevel($this);
}
return $this;
}
public function removeSchoolMatter(SchoolMatter $schoolMatter): self
{
if ($this->schoolMatters->removeElement($schoolMatter)) {
// set the owning side to null (unless already changed)
if ($schoolMatter->getLevel() === $this) {
$schoolMatter->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|SchoolSubMatter[]
*/
public function getSchoolSubMatters(): Collection
{
return $this->schoolSubMatters;
}
public function addSchoolSubMatter(SchoolSubMatter $schoolSubMatter): self
{
if (!$this->schoolSubMatters->contains($schoolSubMatter)) {
$this->schoolSubMatters[] = $schoolSubMatter;
$schoolSubMatter->setLevel($this);
}
return $this;
}
public function removeSchoolSubMatter(SchoolSubMatter $schoolSubMatter): self
{
if ($this->schoolSubMatters->removeElement($schoolSubMatter)) {
// set the owning side to null (unless already changed)
if ($schoolSubMatter->getLevel() === $this) {
$schoolSubMatter->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|SchoolAssessmentByLevel[]
*/
public function getSchoolAssessmentByLevels(): Collection
{
return $this->schoolAssessmentByLevels;
}
public function addSchoolAssessmentByLevel(SchoolAssessmentByLevel $schoolAssessmentByLevel): self
{
if (!$this->schoolAssessmentByLevels->contains($schoolAssessmentByLevel)) {
$this->schoolAssessmentByLevels[] = $schoolAssessmentByLevel;
$schoolAssessmentByLevel->setLevel($this);
}
return $this;
}
public function removeSchoolAssessmentByLevel(SchoolAssessmentByLevel $schoolAssessmentByLevel): self
{
if ($this->schoolAssessmentByLevels->removeElement($schoolAssessmentByLevel)) {
// set the owning side to null (unless already changed)
if ($schoolAssessmentByLevel->getLevel() === $this) {
$schoolAssessmentByLevel->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|SchoolAssessmentByLevelByMatter[]
*/
public function getSchoolAssessmentByLevelByMatters(): Collection
{
return $this->schoolAssessmentByLevelByMatters;
}
public function addSchoolAssessmentByLevelByMatter(SchoolAssessmentByLevelByMatter $schoolAssessmentByLevelByMatter): self
{
if (!$this->schoolAssessmentByLevelByMatters->contains($schoolAssessmentByLevelByMatter)) {
$this->schoolAssessmentByLevelByMatters[] = $schoolAssessmentByLevelByMatter;
$schoolAssessmentByLevelByMatter->setLevel($this);
}
return $this;
}
public function removeSchoolAssessmentByLevelByMatter(SchoolAssessmentByLevelByMatter $schoolAssessmentByLevelByMatter): self
{
if ($this->schoolAssessmentByLevelByMatters->removeElement($schoolAssessmentByLevelByMatter)) {
// set the owning side to null (unless already changed)
if ($schoolAssessmentByLevelByMatter->getLevel() === $this) {
$schoolAssessmentByLevelByMatter->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|ReportCard[]
*/
public function getReportCards(): Collection
{
return $this->reportCards;
}
public function addReportCard(ReportCard $reportCard): self
{
if (!$this->reportCards->contains($reportCard)) {
$this->reportCards[] = $reportCard;
$reportCard->setLevel($this);
}
return $this;
}
public function removeReportCard(ReportCard $reportCard): self
{
if ($this->reportCards->removeElement($reportCard)) {
// set the owning side to null (unless already changed)
if ($reportCard->getLevel() === $this) {
$reportCard->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|SettingFee[]
*/
public function getSettingFees(): Collection
{
return $this->settingFees;
}
public function addSettingFee(SettingFee $settingFee): self
{
if (!$this->settingFees->contains($settingFee)) {
$this->settingFees[] = $settingFee;
$settingFee->addLevel($this);
}
return $this;
}
public function removeSettingFee(SettingFee $settingFee): self
{
if ($this->settingFees->removeElement($settingFee)) {
$settingFee->removeLevel($this);
}
return $this;
}
/**
* @return Collection|RegistrationStudent[]
*/
public function getRegistrationStudents(): Collection
{
return $this->registrationStudents;
}
public function addRegistrationStudent(RegistrationStudent $registrationStudent): self
{
if (!$this->registrationStudents->contains($registrationStudent)) {
$this->registrationStudents[] = $registrationStudent;
$registrationStudent->setEntryLevel($this);
}
return $this;
}
public function removeRegistrationStudent(RegistrationStudent $registrationStudent): self
{
if ($this->registrationStudents->removeElement($registrationStudent)) {
// set the owning side to null (unless already changed)
if ($registrationStudent->getEntryLevel() === $this) {
$registrationStudent->setEntryLevel(null);
}
}
return $this;
}
public function getIsStudentEntryTestDo(): ?bool
{
return $this->is_student_entry_test_do;
}
public function setIsStudentEntryTestDo(bool $is_student_entry_test_do): self
{
$this->is_student_entry_test_do = $is_student_entry_test_do;
return $this;
}
public function getIsStudentToxicologicalTestDo(): ?bool
{
return $this->is_student_toxicological_test_do;
}
public function setIsStudentToxicologicalTestDo(bool $is_student_toxicological_test_do): self
{
$this->is_student_toxicological_test_do = $is_student_toxicological_test_do;
return $this;
}
public function getIsStudentPsychologicalTestDo(): ?bool
{
return $this->is_student_psychological_test_do;
}
public function setIsStudentPsychologicalTestDo(bool $is_student_psychological_test_do): self
{
$this->is_student_psychological_test_do = $is_student_psychological_test_do;
return $this;
}
/**
* @return Collection|RegistrationStudentPreRegistration[]
*/
public function getRegistrationStudentPreRegistrations(): Collection
{
return $this->registrationStudentPreRegistrations;
}
public function addRegistrationStudentPreRegistration(RegistrationStudentPreRegistration $registrationStudentPreRegistration): self
{
if (!$this->registrationStudentPreRegistrations->contains($registrationStudentPreRegistration)) {
$this->registrationStudentPreRegistrations[] = $registrationStudentPreRegistration;
$registrationStudentPreRegistration->setEntryLevel($this);
}
return $this;
}
public function removeRegistrationStudentPreRegistration(RegistrationStudentPreRegistration $registrationStudentPreRegistration): self
{
if ($this->registrationStudentPreRegistrations->removeElement($registrationStudentPreRegistration)) {
// set the owning side to null (unless already changed)
if ($registrationStudentPreRegistration->getEntryLevel() === $this) {
$registrationStudentPreRegistration->setEntryLevel(null);
}
}
return $this;
}
/**
* @return Collection|RegistrationStudentPreRegistration[]
*/
public function getClassJumpRegistrationStudentPreRegistrations(): Collection
{
return $this->classJumpRegistrationStudentPreRegistrations;
}
public function addClassJumpRegistrationStudentPreRegistration(RegistrationStudentPreRegistration $classJumpRegistrationStudentPreRegistration): self
{
if (!$this->classJumpRegistrationStudentPreRegistrations->contains($classJumpRegistrationStudentPreRegistration)) {
$this->classJumpRegistrationStudentPreRegistrations[] = $classJumpRegistrationStudentPreRegistration;
$classJumpRegistrationStudentPreRegistration->addClassJump($this);
}
return $this;
}
public function removeClassJumpRegistrationStudentPreRegistration(RegistrationStudentPreRegistration $classJumpRegistrationStudentPreRegistration): self
{
if ($this->classJumpRegistrationStudentPreRegistrations->removeElement($classJumpRegistrationStudentPreRegistration)) {
$classJumpRegistrationStudentPreRegistration->removeClassJump($this);
}
return $this;
}
/**
* @return Collection|EntreTestReportCard[]
*/
public function getEntreTestReportCards(): Collection
{
return $this->entreTestReportCards;
}
public function addEntreTestReportCard(EntreTestReportCard $entreTestReportCard): self
{
if (!$this->entreTestReportCards->contains($entreTestReportCard)) {
$this->entreTestReportCards[] = $entreTestReportCard;
$entreTestReportCard->setLevel($this);
}
return $this;
}
public function removeEntreTestReportCard(EntreTestReportCard $entreTestReportCard): self
{
if ($this->entreTestReportCards->removeElement($entreTestReportCard)) {
// set the owning side to null (unless already changed)
if ($entreTestReportCard->getLevel() === $this) {
$entreTestReportCard->setLevel(null);
}
}
return $this;
}
/**
* @return Collection|PreRegistrationEntreTestReportCard[]
*/
public function getPreRegistrationEntreTestReportCards(): Collection
{
return $this->preRegistrationEntreTestReportCards;
}
public function addPreRegistrationEntreTestReportCard(PreRegistrationEntreTestReportCard $preRegistrationEntreTestReportCard): self
{
if (!$this->preRegistrationEntreTestReportCards->contains($preRegistrationEntreTestReportCard)) {
$this->preRegistrationEntreTestReportCards[] = $preRegistrationEntreTestReportCard;
$preRegistrationEntreTestReportCard->setLevel($this);
}
return $this;
}
public function removePreRegistrationEntreTestReportCard(PreRegistrationEntreTestReportCard $preRegistrationEntreTestReportCard): self
{
if ($this->preRegistrationEntreTestReportCards->removeElement($preRegistrationEntreTestReportCard)) {
// set the owning side to null (unless already changed)
if ($preRegistrationEntreTestReportCard->getLevel() === $this) {
$preRegistrationEntreTestReportCard->setLevel(null);
}
}
return $this;
}
public function getCanteenregistered(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $cettingClassroom) {
foreach ($cettingClassroom->getRegistrationStudentRegistrations() as $key => $registrationStudentRegistration) {
if ($registrationStudentRegistration->hasCanteenFee() && $registrationStudentRegistration->getSchoolYear() == $schoolYear) {
$registereds->add($registrationStudentRegistration);
}
}
}
return $registereds;
}
/**
* @return Collection|CommunicationMessage[]
*/
public function getCommunicationMessages(): Collection
{
return $this->communicationMessages;
}
public function addCommunicationMessage(CommunicationMessage $communicationMessage): self
{
if (!$this->communicationMessages->contains($communicationMessage)) {
$this->communicationMessages[] = $communicationMessage;
$communicationMessage->addLevel($this);
}
return $this;
}
public function removeCommunicationMessage(CommunicationMessage $communicationMessage): self
{
if ($this->communicationMessages->removeElement($communicationMessage)) {
$communicationMessage->removeLevel($this);
}
return $this;
}
public function getParent(): ?self
{
return $this->parent;
}
public function setParent(?self $parent): self
{
$this->parent = $parent;
return $this;
}
/**
* @return Collection|self[]
*/
public function getChildrens(): Collection
{
return $this->childrens;
}
public function addChildren(self $children): self
{
if (!$this->childrens->contains($children)) {
$this->childrens[] = $children;
$children->setParent($this);
}
return $this;
}
public function removeChildren(self $children): self
{
if ($this->childrens->removeElement($children)) {
// set the owning side to null (unless already changed)
if ($children->getParent() === $this) {
$children->setParent(null);
}
}
return $this;
}
public function getRegistered(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $registrationStudentRegistration) {
if ($registrationStudentRegistration->getSchoolYear() == $schoolYear) {
$registereds->add($registrationStudentRegistration);
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom){
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $registrationStudentRegistration) {
if ($registrationStudentRegistration->getSchoolYear() == $schoolYear) {
$registereds->add($registrationStudentRegistration);
}
}
}
return $registereds;
}
public function getMRegistered(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if ($studentRegistration->getStudent()->getGender() == 'MASCULIN') {
$registereds->add($studentRegistration);
}
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if ($studentRegistration->getStudent()->getGender() == 'MASCULIN') {
$registereds->add($studentRegistration);
}
}
}
}
return $registereds;
}
public function getFRegistered(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if ($studentRegistration->getStudent()->getGender() == 'FEMININ') {
$registereds->add($studentRegistration);
}
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if ($studentRegistration->getStudent()->getGender() == 'FEMININ') {
$registereds->add($studentRegistration);
}
}
}
}
return $registereds;
}
public function getRedoublingRegistereds(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
$registereds->add($studentRegistration);
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
$registereds->add($studentRegistration);
}
}
}
return $registereds;
}
public function getMRedoublingRegistereds(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
if ($studentRegistration->getStudent()->getGender() == 'MASCULIN') {
$registereds->add($studentRegistration);
}
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
if ($studentRegistration->getStudent()->getGender() == 'MASCULIN') {
$registereds->add($studentRegistration);
}
}
}
}
return $registereds;
}
public function getFRedoublingRegistereds(SchoolYear $schoolYear){
$registereds = new ArrayCollection();
if (count($this->getChildrens()) > 0) {
foreach ($this->getChildrens() as $key => $children) {
foreach ($children->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
if ($studentRegistration->getStudent()->getGender() == 'FEMININ') {
$registereds->add($studentRegistration);
}
}
}
}
}
return $registereds;
}
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsRedoubling()) {
if ($studentRegistration->getStudent()->getGender() == 'FEMININ') {
$registereds->add($studentRegistration);
}
}
}
}
return $registereds;
}
public function getNumOrder(): ?int
{
return $this->num_order;
}
public function setNumOrder(?int $num_order): self
{
$this->num_order = $num_order;
return $this;
}
//for report
public function studentsPeriodeReportCard(SchoolYearPeriode $schoolYearPeriode, $gender = null)
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if (!$schoolReportCard->isUnclassified()) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
return $schoolReportCards;
}
public function allStudentsPeriodeReportCard(SchoolYearPeriode $schoolYearPeriode, $gender = null)
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVSupOrEqual(float $vSup, SchoolYearPeriode $schoolYearPeriode, $gender = null, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vSup) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vSup) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20 && ($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) > 0) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20 && ($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) > 0) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVSupVInf(float $vSup, float $vInf, SchoolYearPeriode $schoolYearPeriode, $gender = null, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vInf && ($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vSup) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vInf && ($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vSup) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVInf(float $vInf, SchoolYearPeriode $schoolYearPeriode, $gender = null, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vInf) {
if (!$schoolReportCard->getIsUnclassified()) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vInf) {
if (!$schoolReportCard->getIsUnclassified()) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function periodeAverage(SchoolYearPeriode $schoolYearPeriode, $gender = null, $resultType = 'Trimestriel')
{
$count = 0;
$average = 0;
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
if(count($settingClassroom->studentsPeriodeReportCard($schoolYearPeriode)) > 0){
$average += $settingClassroom->periodeAverage($schoolYearPeriode, $resultType);
$count += 1;
}
}
$pAv = 0;
if($count > 0){
$pAv = $average / $count;
}
return $pAv;
}
/** for redoubling */
public function studentsPeriodeReportCardRed(SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false)
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if (!$schoolReportCard->isUnclassified()) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function allStudentsPeriodeReportCardRed(SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false)
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVSupOrEqualRed(float $vSup, SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vSup) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vSup) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVSupVInfRed(float $vSup, float $vInf, SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vInf && ($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vSup) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) >= $vInf && ($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vSup) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function studentsPeriodeVInfRed(float $vInf, SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false, $resultType = 'Trimestriel')
{
$schoolReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
if (($schoolReportCard->getReportCardAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vInf) {
if (!$schoolReportCard->getIsUnclassified()) {
if (null == $gender) {
$schoolReportCards->add($schoolReportCard);
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}else {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) < $vInf) {
if (!$schoolReportCard->getIsUnclassified()) {
if (null == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}else {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == $gender) {
if (($schoolReportCard->getAnnualAverage() / ($schoolReportCard->getNoteOn() / 20)) <= 20) {
$schoolReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
}
return $schoolReportCards;
}
public function periodeAverageRed(SchoolYearPeriode $schoolYearPeriode, $gender = null, $red = false, $resultType = 'Trimestriel')
{
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getIsRedoubling() == $red) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
if ($resultType == 'Trimestriel') {
return $schoolReportCard->getClassAverage();
}else {
return $schoolReportCard->getClassAnnualAverage();
}
}
}
}
}
return 0;
}
//
public function major(SchoolYearPeriode $schoolYearPeriode, SchoolReportCardRepository $schoolReportCardRepository, int $nb = 1)
{
$schoolReportCards = $schoolReportCardRepository->createQueryBuilder('entity')
->andWhere('entity.schoolYearPeriode = :schoolYearPeriode')
->setParameter('schoolYearPeriode', $schoolYearPeriode)
->innerJoin('entity.classroom', 'classroom')
->addSelect('classroom')
->andWhere('classroom.level = :level')
->setParameter('level', $this)
->orderBy('entity.report_card_average', 'DESC')
->setMaxResults($nb)
->getQuery()
->getResult();
return $schoolReportCards;
}
public function annualMajor(SchoolYearPeriode $schoolYearPeriode, SchoolReportCardRepository $schoolReportCardRepository, int $nb = 1)
{
$schoolReportCards = $schoolReportCardRepository->createQueryBuilder('entity')
->andWhere('entity.schoolYearPeriode = :schoolYearPeriode')
->setParameter('schoolYearPeriode', $schoolYearPeriode)
->innerJoin('entity.classroom', 'classroom')
->addSelect('classroom')
->andWhere('classroom.level = :level')
->setParameter('level', $this)
->orderBy('entity.annual_average', 'DESC')
->setMaxResults($nb)
->getQuery()
->getResult();
return $schoolReportCards;
}
// repartition par age
public function repartitionByLevelBirthday(SchoolYear $schoolYear, $age, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if (null == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) == $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) == $age){
$registereds->add($studentRegistration);
}
}
}
}
}else{
if ($studentRegistration->getIsRedoubling() == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) == $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) == $age){
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
}
}
return $registereds;
}
public function repartitionMinusByLevelBirthday(SchoolYear $schoolYear, $age, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if (null == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) < $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) < $age){
$registereds->add($studentRegistration);
}
}
}
}
}else{
if ($studentRegistration->getIsRedoubling() == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) < $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) < $age){
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
}
}
return $registereds;
}
public function repartitionPlusByLevelBirthday(SchoolYear $schoolYear, $age, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if (null == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) > $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) > $age){
$registereds->add($studentRegistration);
}
}
}
}
}else{
if ($studentRegistration->getIsRedoubling() == $red) {
if (null == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) > $age){
$registereds->add($studentRegistration);
}
}
}else {
if ($studentRegistration->getStudent()->getGender() == $gender) {
if ($studentRegistration->getStudent()->getBirthday() != null) {
if(SalaryManage::MyYearDiff($studentRegistration->getStudent()->getBirthday(), new DateTimeImmutable()) > $age){
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
}
}
return $registereds;
}
public function getDiet(SchoolYear $schoolYear, $gender = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear && $studentRegistration->getIsDiet()) {
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}
}
}
return $registereds;
}
public function registeredByGender(SchoolYear $schoolYear, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if(null == $red){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}else{
if($red == $studentRegistration->getIsRedoubling()){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
return $registereds;
}
public function registeredIvByGender(SchoolYear $schoolYear, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if(strtoupper(substr($studentRegistration->getStudent()->getNationality(), 0, 2)) == 'IV'){
if(null == $red){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}else{
if($red == $studentRegistration->getIsRedoubling()){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
}
return $registereds;
}
public function registeredEtByGender(SchoolYear $schoolYear, $gender = null, $red = null){
$registereds = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getRegistrationStudentRegistrations() as $key => $studentRegistration) {
if ($studentRegistration->getSchoolYear() == $schoolYear) {
if(strtoupper(substr($studentRegistration->getStudent()->getNationality(), 0, 2)) != 'IV'){
if(null == $red){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}else{
if($red == $studentRegistration->getIsRedoubling()){
if(null == $gender){
$registereds->add($studentRegistration);
}else{
if ($studentRegistration->getStudent()->getGender() == $gender) {
$registereds->add($studentRegistration);
}
}
}
}
}
}
}
}
return $registereds;
}
//
public function periodeAverageReportCard(SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
public function periodeAverageReportCardMasculin(SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == 'MASCULIN') {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
public function periodeAverageReportCardFeminin(SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == 'FEMININ') {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
public function periodeAveragePeriodeVInf(float $vInf, SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
public function periodeAveragePeriodeVInfMasculin(float $vInf, SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == 'MASCULIN') {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
public function periodeAveragePeriodeVInfFeminin(float $vInf, SchoolYearPeriode $schoolYearPeriode, EquivalentMatter $equivalentMatter)
{
$schoolAverageReportCards = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
foreach ($settingClassroom->getSchoolReportCards() as $key => $schoolReportCard) {
if ($schoolReportCard->getStudentRegistration()->getStudent()->getGender() == 'FEMININ') {
if ($schoolReportCard->getSchoolYearPeriode() == $schoolYearPeriode) {
foreach ($schoolReportCard->getSchoolAverageReportCards() as $key => $schoolAverageReportCard) {
if ($schoolAverageReportCard->getSubMatter() == null) {
if ($schoolAverageReportCard->getMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}else {
if ($equivalentMatter->getParent() != null) {
if ($schoolAverageReportCard->getSubMatter()->getEquivalentMatter() == $equivalentMatter) {
if ($schoolAverageReportCard->getAverage() < 999 && $schoolAverageReportCard->getAverage() < $vInf) {
$schoolAverageReportCards->add($schoolReportCard);
}
}
}
}
}
}
}
}
}
return $schoolAverageReportCards;
}
/**
* @return Collection|SchoolAssessment[]
*/
public function getSchoolAssessments(): Collection
{
return $this->schoolAssessments;
}
public function addSchoolAssessment(SchoolAssessment $schoolAssessment): self
{
if (!$this->schoolAssessments->contains($schoolAssessment)) {
$this->schoolAssessments[] = $schoolAssessment;
$schoolAssessment->setNextLevel($this);
}
return $this;
}
public function removeSchoolAssessment(SchoolAssessment $schoolAssessment): self
{
if ($this->schoolAssessments->removeElement($schoolAssessment)) {
// set the owning side to null (unless already changed)
if ($schoolAssessment->getNextLevel() === $this) {
$schoolAssessment->setNextLevel(null);
}
}
return $this;
}
public function getClassrooms(SchoolYear $schoolYear)
{
$classrooms = new ArrayCollection();
foreach ($this->getSettingClassrooms() as $key => $settingClassroom) {
if ($settingClassroom->getSchoolYear() == $schoolYear) {
$classrooms->add($settingClassroom);
}
}
return $classrooms;
}
public function getIsStudentCbeAffected(): ?bool
{
return $this->is_student_cbe_affected;
}
public function setIsStudentCbeAffected(bool $is_student_cbe_affected): self
{
$this->is_student_cbe_affected = $is_student_cbe_affected;
return $this;
}
}