<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Repository\UserRepository;
use App\Repository\SchoolAverageRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @ORM\Entity(repositoryClass=SchoolAverageRepository::class)
*/
class SchoolAverage
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=20, unique=true)
*/
private $code;
/**
* @ORM\Column(type="string", length=128)
*/
private $label;
/**
* @ORM\ManyToOne(targetEntity=Establishment::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $establishment;
/**
* @ORM\ManyToOne(targetEntity=SchoolYear::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $schoolYear;
/**
* @ORM\ManyToOne(targetEntity=SchoolYearPeriode::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $schoolYearPeriode;
/**
* @ORM\ManyToOne(targetEntity=SettingClassroom::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $classroom;
/**
* @ORM\ManyToOne(targetEntity=SchoolMatter::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $matter;
/**
* @ORM\ManyToOne(targetEntity=SchoolSubMatter::class, inversedBy="schoolAverages")
*/
private $subMatter;
/**
* @ORM\Column(type="float")
*/
private $note_on;
/**
* @ORM\Column(type="float")
*/
private $coefficient;
/**
* @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\OneToMany(targetEntity=SchoolStudentAverage::class, mappedBy="schoolAverage")
*/
private $schoolStudentAverages;
/**
* @ORM\ManyToOne(targetEntity=SchoolTeacher::class, inversedBy="schoolAverages")
* @ORM\JoinColumn(nullable=false)
*/
private $schoolTeacher;
/**
* @ORM\Column(type="boolean")
*/
private $is_validated;
/**
* @ORM\ManyToOne(targetEntity=SchoolTeacherMatterClassroom::class, inversedBy="schoolAverages")
*/
private $schoolTeacherMatterClassroom;
public function __construct()
{
$this->note_on = 20;
$this->is_validated = false;
$this->coefficient = 1;
$this->schoolStudentAverages = new ArrayCollection();
}
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 getSchoolYear(): ?SchoolYear
{
return $this->schoolYear;
}
public function setSchoolYear(?SchoolYear $schoolYear): self
{
$this->schoolYear = $schoolYear;
return $this;
}
public function getSchoolYearPeriode(): ?SchoolYearPeriode
{
return $this->schoolYearPeriode;
}
public function setSchoolYearPeriode(?SchoolYearPeriode $schoolYearPeriode): self
{
$this->schoolYearPeriode = $schoolYearPeriode;
return $this;
}
public function getClassroom(): ?SettingClassroom
{
return $this->classroom;
}
public function setClassroom(?SettingClassroom $classroom): self
{
$this->classroom = $classroom;
return $this;
}
public function getMatter(): ?SchoolMatter
{
return $this->matter;
}
public function setMatter(?SchoolMatter $matter): self
{
$this->matter = $matter;
return $this;
}
public function getSubMatter(): ?SchoolSubMatter
{
return $this->subMatter;
}
public function setSubMatter(?SchoolSubMatter $subMatter): self
{
$this->subMatter = $subMatter;
return $this;
}
public function getNoteOn(): ?float
{
return $this->note_on;
}
public function setNoteOn(float $note_on): self
{
$this->note_on = $note_on;
return $this;
}
public function getCoefficient(): ?float
{
return $this->coefficient;
}
public function setCoefficient(float $coefficient): self
{
$this->coefficient = $coefficient;
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|SchoolStudentAverage[]
*/
public function getSchoolStudentAverages(): Collection
{
return $this->schoolStudentAverages;
}
public function addSchoolStudentAverage(SchoolStudentAverage $schoolStudentAverage): self
{
if (!$this->schoolStudentAverages->contains($schoolStudentAverage)) {
$this->schoolStudentAverages[] = $schoolStudentAverage;
$schoolStudentAverage->setSchoolAverage($this);
}
return $this;
}
public function removeSchoolStudentAverage(SchoolStudentAverage $schoolStudentAverage): self
{
if ($this->schoolStudentAverages->removeElement($schoolStudentAverage)) {
// set the owning side to null (unless already changed)
if ($schoolStudentAverage->getSchoolAverage() === $this) {
$schoolStudentAverage->setSchoolAverage(null);
}
}
return $this;
}
public function getSchoolTeacher(): ?SchoolTeacher
{
return $this->schoolTeacher;
}
public function setSchoolTeacher(?SchoolTeacher $schoolTeacher): self
{
$this->schoolTeacher = $schoolTeacher;
return $this;
}
public function getIsValidated(): ?bool
{
return $this->is_validated;
}
public function setIsValidated(bool $is_validated): self
{
$this->is_validated = $is_validated;
return $this;
}
public function getLabel(): ?string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getCode(): ?string
{
return $this->code;
}
public function setCode(string $code): self
{
$this->code = $code;
return $this;
}
public function getSchoolTeacherMatterClassroom(): ?SchoolTeacherMatterClassroom
{
return $this->schoolTeacherMatterClassroom;
}
public function setSchoolTeacherMatterClassroom(?SchoolTeacherMatterClassroom $schoolTeacherMatterClassroom): self
{
$this->schoolTeacherMatterClassroom = $schoolTeacherMatterClassroom;
return $this;
}
public function getUserUpdatedBy(UserRepository $userRepository){
return $userRepository->findOneBy(['id' => $this->getUpdatedBy()], []);
}
}