src/Entity/Subscription.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Student;
  4. use App\Repository\SubscriptionRepository;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use App\Entity\Traits\TimeStampable;
  7. /**
  8. * @ORM\Entity(repositoryClass=SubscriptionRepository::class)
  9. */
  10. class Subscription
  11. {
  12. use TimeStampable;
  13. /**
  14. * @ORM\Id
  15. * @ORM\GeneratedValue
  16. * @ORM\Column(type="integer")
  17. */
  18. private $id;
  19. /**
  20. * @ORM\ManyToOne(targetEntity=Student::class, inversedBy="subscriptions")
  21. * @ORM\JoinColumn(nullable=false)
  22. */
  23. private $student;
  24. /**
  25. * @ORM\ManyToOne(targetEntity=ClassRoom::class, inversedBy="subscriptions")
  26. * @ORM\JoinColumn(nullable=false)
  27. */
  28. private $classRoom;
  29. /**
  30. * @ORM\ManyToOne(targetEntity=SchoolYear::class, inversedBy="subscriptions")
  31. * @ORM\JoinColumn(nullable=false)
  32. */
  33. private $schoolYear;
  34. /*
  35. 0 : Echec
  36. 1p : Success Passable
  37. 1a : Success Assez-bien
  38. 1b : Success Bien
  39. 1t : Success Tres-Bien
  40. 1e : Success Excellent
  41. A : 5 points
  42. B : 4 points
  43. C : 3 points
  44. D : 2 points
  45. E : 1 point
  46. */
  47. /**
  48. * @var string
  49. *
  50. * @ORM\Column(name="officialExamResult", type="string", length=10 , options={"default" = "1p"})
  51. */
  52. private $officialExamResult;
  53. /**
  54. * @ORM\Column(type="boolean")
  55. */
  56. private $financeHolder;
  57. public function __construct()
  58. {
  59. $this->updateTimestamp();
  60. $this->financeHolder = false;
  61. $this->setOfficialExamResult("1p");
  62. }
  63. public function getId(): ?int
  64. {
  65. return $this->id;
  66. }
  67. public function getStudent(): ?Student
  68. {
  69. return $this->student;
  70. }
  71. public function setStudent(?Student $student): self
  72. {
  73. $this->student = $student;
  74. return $this;
  75. }
  76. public function getClassRoom(): ?ClassRoom
  77. {
  78. return $this->classRoom;
  79. }
  80. public function setClassRoom(?ClassRoom $classRoom): self
  81. {
  82. $this->classRoom = $classRoom;
  83. return $this;
  84. }
  85. public function getSchoolYear(): ?SchoolYear
  86. {
  87. return $this->schoolYear;
  88. }
  89. public function setSchoolYear(?SchoolYear $schoolYear): self
  90. {
  91. $this->schoolYear = $schoolYear;
  92. return $this;
  93. }
  94. public function getFinanceHolder(): ?bool
  95. {
  96. return $this->financeHolder;
  97. }
  98. public function setFinanceHolder(bool $financeHolder): self
  99. {
  100. $this->financeHolder = $financeHolder;
  101. return $this;
  102. }
  103. public function getOfficialExamResult(): ?string
  104. {
  105. return $this->officialExamResult;
  106. }
  107. public function getVerbalOfficialExamResult()
  108. {
  109. $result = "PASSABLE";
  110. switch ($this->officialExamResult) {
  111. case "0":
  112. $result = "ECHEC";
  113. break;
  114. case "1p":
  115. $result = "PASSABLE";
  116. break;
  117. case "1a":
  118. $result = "ASSEZ-BIEN";
  119. break;
  120. case "1b":
  121. $result = "BIEN";
  122. break;
  123. case "1t":
  124. $result = "TRES-BIEN";
  125. break;
  126. case "1e":
  127. $result = "EXCELLENT";
  128. break;
  129. case "A":
  130. $result = "5 POINTS";
  131. break;
  132. case "B":
  133. $result = "4 POINTS";
  134. break;
  135. case "C":
  136. $result = "3 POINTS";
  137. break;
  138. case "D":
  139. $result = "2 POINTS";
  140. break;
  141. case "E":
  142. $result = "1 POINTS";
  143. break;
  144. }
  145. return $result;
  146. }
  147. public function setOfficialExamResult(?string $officialExamResult): static
  148. {
  149. $this->officialExamResult = $officialExamResult;
  150. return $this;
  151. }
  152. public function isFinanceHolder(): ?bool
  153. {
  154. return $this->financeHolder;
  155. }
  156. }