EducationCurriculum.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. <?php
  2. namespace AppBundle\Entity\Education;
  3. use AppBundle\Annotation\EntityJson;
  4. use AppBundle\Annotation\ExportSplitFields;
  5. use AppBundle\Entity\Booking\Examen;
  6. use AppBundle\Enum\Education\PratiqueEnum;
  7. use AppBundle\Enum\Product\ProductGroupEnum;
  8. use AppBundle\Entity\Organization\Organization;
  9. use AppBundle\Enum\Core\YearEnum;
  10. use Doctrine\Common\Collections\ArrayCollection;
  11. use Doctrine\ORM\Mapping as ORM;
  12. use Dunglas\ApiBundle\Annotation\Iri;
  13. use Symfony\Component\Serializer\Annotation\Groups;
  14. use Symfony\Component\Validator\Constraints as Assert;
  15. use AppBundle\Entity\Traits\TimestampableEntity;
  16. use AppBundle\Entity\Traits\CreatorUpdaterEntity;
  17. /**
  18. * Curriculum éducatif; composé d'un cycle, d'une année et d'un niveau
  19. *
  20. * @Iri("http://schema.org/EducationCurriculum")
  21. */
  22. #[ORM\Entity(repositoryClass: 'AppBundle\Entity\Education\Repository\EducationCurriculumRepository')]
  23. class EducationCurriculum
  24. {
  25. use TimestampableEntity;
  26. use CreatorUpdaterEntity;
  27. /**
  28. * @var string
  29. */
  30. #[ORM\Column(type: 'string', length: 255, nullable: true)]
  31. #[Assert\Type(type: 'string')]
  32. private $legacyId;
  33. /**
  34. * @var int
  35. */
  36. #[ORM\Column(type: 'integer')]
  37. #[ORM\Id]
  38. #[ORM\GeneratedValue(strategy: 'AUTO')]
  39. #[Groups(['educationcurriculum', 'intangible_list', 'my_student_list', 'planning_list', 'access_details_practicalcourses', 'presence_attendance', 'planning_detail', 'examen_details', 'course_details', 'educationstudent_reference', 'edu_stu_courses_courses', 'student_registration_courses', 'education_edit', 'examenconvocation_list_student', 'education_student_next_year', 'education_input_list', 'educationstudent_notation', 'educations_quotas_stats'])]
  40. private $id;
  41. /**
  42. * @var Education education
  43. */
  44. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\Education', inversedBy: 'educationCurriculums')]
  45. #[Assert\NotNull]
  46. #[Groups(['educationcurriculum', 'access_details_educationstudent', 'educationcurriculum_reference', 'student_list_educationstudent', 'student_list_courses', 'intangible_list_educationcurriculums', 'my_student_list_educationcurriculum', 'report_card_educationstudent', 'access_details_practicalcourses', 'educationstudent_reference_educationcurriculum', 'educationstudent_notation_educationcurriculum', 'educationcurriculum_reference', 'edu_stu_courses_courses', 'student_registration_courses', 'educationnotation_list_educationstudent', 'examenconvocation_list_student', 'accesses_courseteacher_show_practicalcourses', 'education_input_list_educationcurriculum', 'education_student_next_year_educationcurriculum', 'education_student_next_year_educationstudentlastyear', 'online_registration_access_details_educationstudent', 'access_intangible_list_intangible', 'accesses_no_reregistred_list_educationstudent'])]
  47. private $education;
  48. /**
  49. * @var string
  50. */
  51. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\Cycle')]
  52. #[Groups(['educationcurriculum', 'educationcurriculum_reference', 'access_details_educationstudent', 'student_list_educationstudent', 'intangible_list_educationcurriculums', 'my_student_list_educationcurriculum', 'planning_list', 'attendancebooking_list_course', 'generate_attendance', 'report_card_educationstudent', 'access_details_practicalcourses', 'presence_attendance_educationcurriculum', 'student_list_courses', 'examen_details_educationcurriculum', 'course_details_educationcurriculum', 'educationstudent_reference_educationcurriculum', 'edu_stu_courses_courses', 'student_registration_courses', 'educationnotation_list_educationstudent', 'education_edit_educationcurriculums', 'examenconvocation_list_examen', 'accesses_courseteacher_show_practicalcourses', 'education_student_next_year_educationcurriculum', 'education_student_next_year_educationstudentlastyear', 'education_input_list_educationcurriculum', 'access_intangible_list_intangible', 'worksbyusers_db_work', 'educationstudent_notation_educationcurriculum', 'accesses_no_reregistred_list_educationstudent'])]
  53. private $cycle;
  54. /**
  55. * @var string
  56. */
  57. #[ORM\Column(type: 'string', nullable: true)]
  58. #[Assert\Type(type: 'string')]
  59. #[Assert\Choice(callback: ['\AppBundle\Enum\Education\YearEnum', 'toArray'])]
  60. #[Groups(['educationcurriculum', 'educationcurriculum_reference', 'access_details_educationstudent', 'student_list_educationstudent', 'intangible_list_educationcurriculums', 'examenconvocation_list_examen', 'my_student_list_educationcurriculum', 'planning_list', 'attendancebooking_list_course', 'generate_attendance', 'report_card_educationstudent', 'access_details_practicalcourses', 'presence_attendance_educationcurriculum', 'student_list_courses', 'examen_details_educationcurriculum', 'course_details_educationcurriculum', 'educationstudent_reference_educationcurriculum', 'edu_stu_courses_courses', 'student_registration_courses', 'educationnotation_list_educationstudent', 'education_edit_educationcurriculums', 'accesses_courseteacher_show_practicalcourses', 'education_student_next_year_educationcurriculum', 'education_student_next_year_educationstudentlastyear', 'education_input_list_educationcurriculum', 'access_intangible_list_intangible', 'worksbyusers_db_work', 'educationstudent_notation_educationcurriculum', 'accesses_no_reregistred_list_educationstudent'])]
  61. private $year;
  62. /**
  63. * @var string
  64. */
  65. #[ORM\Column(type: 'string', length: 25, nullable: true)]
  66. #[Assert\Type(type: 'string')]
  67. #[Groups(['educationcurriculum', 'educationcurriculum_reference', 'access_details_educationstudent', 'student_list_educationstudent', 'planning_list', 'report_card_educationstudent', 'access_details_practicalcourses', 'presence_attendance_educationcurriculum', 'student_list_courses', 'examen_details_educationcurriculum', 'course_details_educationcurriculum', 'educationstudent_reference_educationcurriculum', 'edu_stu_courses_courses', 'student_registration_courses', 'educationnotation_list_educationstudent', 'education_edit_educationcurriculums', 'examenconvocation_list_examen', 'accesses_courseteacher_show_practicalcourses', 'education_student_next_year_educationcurriculum', 'education_student_next_year_educationstudentlastyear', 'education_input_list_educationcurriculum', 'access_intangible_list_intangible', 'worksbyusers_db_work', 'educationstudent_notation_educationcurriculum', 'accesses_no_reregistred_list_educationstudent'])]
  68. private $level;
  69. /**
  70. * @var \DateTime
  71. */
  72. #[ORM\Column(type: 'date', nullable: true)]
  73. #[Assert\Date]
  74. #[Groups(['educationcurriculum'])]
  75. private $endDate;
  76. /**
  77. * @var bool
  78. */
  79. #[ORM\Column(type: 'boolean', options: ['default' => false])]
  80. #[Assert\Type(type: 'boolean')]
  81. #[Assert\NotNull]
  82. #[Groups(['educationcurriculum', 'education_edit_educationcurriculums'])]
  83. private $isDisabled = false;
  84. /**
  85. * @var bool
  86. */
  87. #[ORM\Column(type: 'boolean', options: ['default' => true])]
  88. #[Assert\Type(type: 'boolean')]
  89. #[Assert\NotNull]
  90. #[Groups(['educationcurriculum', 'education_edit_educationcurriculums'])]
  91. private $isActive = true;
  92. /**
  93. * @var integer
  94. */
  95. #[ORM\Column(type: 'integer', nullable: true)]
  96. #[Assert\Type(type: 'integer', message: 'invalid-integer')]
  97. #[Groups(['educationcurriculum'])]
  98. private $duration;
  99. /**
  100. * @var integer
  101. */
  102. #[ORM\Column(type: 'integer', nullable: true)]
  103. #[Assert\Type(type: 'integer', message: 'invalid-integer')]
  104. #[Groups(['educationcurriculum'])]
  105. private $nbStudentsMax;
  106. /**
  107. * @var integer
  108. */
  109. #[ORM\Column(type: 'integer', nullable: true)]
  110. #[Assert\Type(type: 'integer', message: 'invalid-integer')]
  111. #[Groups(['educationcurriculum'])]
  112. private $nbStudentsByCourse;
  113. /**
  114. * @var integer
  115. */
  116. #[ORM\Column(type: 'integer', nullable: true)]
  117. #[Assert\Type(type: 'integer', message: 'invalid-integer')]
  118. #[Groups(['educationcurriculum'])]
  119. private $packingRate;
  120. /**
  121. * @var ArrayCollection<EducationStudent>
  122. */
  123. #[ORM\OneToMany(targetEntity: 'EducationStudent', mappedBy: 'educationCurriculum', cascade: ['persist'])]
  124. #[Groups(['education_educationstudent'])]
  125. private $educationStudent;
  126. /**
  127. * @var integer
  128. */
  129. #[ORM\Column(type: 'integer', nullable: true)]
  130. #[Assert\Type(type: 'integer')]
  131. #[Groups(['education_edit_educationcurriculums', 'educationcurriculum', 'educations_quotas_stats_educationcurriculums'])]
  132. private $availablePlaces;
  133. /**
  134. * @var integer
  135. */
  136. #[Groups(['educations_quotas_stats_educationcurriculums'])]
  137. private $totalEducationStudents;
  138. /**
  139. * @var integer
  140. */
  141. #[Groups(['educations_quotas_stats_educationcurriculums'])]
  142. private $fillingRate;
  143. /**
  144. * @var integer
  145. */
  146. #[Groups(['educations_quotas_stats_educationcurriculums'])]
  147. private $order;
  148. /**
  149. * @var string
  150. * @ExportSplitFields({"education.educationCategory.label","education.educationComplementTemplate","cycle.label","year","level"})
  151. */
  152. #[Groups(['intangible_list_educationcurriculums', 'planning_detail_educationcurriculum', 'educationcurriculum', 'student_list_educationstudent', 'educationnotation_list_educationstudent', 'education_student_next_year_educationcurriculum', 'education_student_next_year_educationstudentlastyear', 'education_input_list_educationcurriculum', 'access_intangible_list_intangible', 'educations_quotas_stats_educationcurriculums'])]
  153. private $fullLabelTemplate;
  154. /**
  155. * @var string
  156. * @ExportSplitFields({"cycle.label","year","level"})
  157. */
  158. #[Groups(['examenconvocation_list_examen'])]
  159. private $cycleYearLevelTemplate;
  160. /**
  161. * Only for elasticsearch...
  162. * @var string
  163. */
  164. private $fullLabelElastic;
  165. /**
  166. * @var EducationNotationConfig
  167. */
  168. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\Education\EducationNotationConfig', inversedBy: 'educationCurriculums')]
  169. #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
  170. #[Groups(['educationcurriculum', 'educationcurriculum_reference'])]
  171. private $educationNotationConfig;
  172. #[ORM\ManyToMany(targetEntity: 'AppBundle\Entity\Education\EducationTiming', inversedBy: 'educationCurriculums')]
  173. #[ORM\JoinTable(joinColumns: [], inverseJoinColumns: [])]
  174. #[ORM\JoinColumn(name: 'educationCurriculum_id', referencedColumnName: 'id')]
  175. #[ORM\JoinColumn(name: 'educationTiming_id', referencedColumnName: 'id')]
  176. #[Groups(['education_edit_educationcurriculums', 'educationcurriculum', 'educationcurriculum_reference'])]
  177. private $educationTimings;
  178. /**
  179. * Constructor
  180. */
  181. public function __construct()
  182. {
  183. $this->educationStudent = new ArrayCollection();
  184. $this->educationTimings = new ArrayCollection();
  185. }
  186. /**
  187. * Sets legacyId.
  188. *
  189. * @param string $legacyId
  190. *
  191. * @return $this
  192. */
  193. public function setLegacyId($legacyId)
  194. {
  195. $this->legacyId = $legacyId;
  196. return $this;
  197. }
  198. /**
  199. * Gets legacyId.
  200. *
  201. * @return string
  202. */
  203. public function getLegacyId()
  204. {
  205. return $this->legacyId;
  206. }
  207. /**
  208. * Sets id.
  209. *
  210. * @param int $id
  211. *
  212. * @return $this
  213. */
  214. public function setId($id)
  215. {
  216. $this->id = $id;
  217. return $this;
  218. }
  219. /**
  220. * Gets id.
  221. *
  222. * @return int
  223. */
  224. public function getId()
  225. {
  226. return $this->id;
  227. }
  228. /**
  229. * Sets education.
  230. *
  231. * @param Education $education
  232. *
  233. * @return $this
  234. */
  235. public function setEducation($education)
  236. {
  237. $this->education = $education;
  238. return $this;
  239. }
  240. /**
  241. * Gets education.
  242. *
  243. * @return Education
  244. */
  245. public function getEducation()
  246. {
  247. return $this->education;
  248. }
  249. /**
  250. * Sets cycle.
  251. *
  252. * @param string $cycle
  253. *
  254. * @return $this
  255. */
  256. public function setCycle($cycle)
  257. {
  258. $this->cycle = $cycle;
  259. return $this;
  260. }
  261. /**
  262. * Gets cycle.
  263. *
  264. * @return string
  265. */
  266. public function getCycle()
  267. {
  268. return $this->cycle;
  269. }
  270. /**
  271. * Sets year.
  272. *
  273. * @param integer $year
  274. *
  275. * @return $this
  276. */
  277. public function setYear($year)
  278. {
  279. $this->year = $year;
  280. return $this;
  281. }
  282. /**
  283. * Gets year.
  284. *
  285. * @return integer
  286. */
  287. public function getYear()
  288. {
  289. return $this->year;
  290. }
  291. /**
  292. * Sets level.
  293. *
  294. * @param string $level
  295. *
  296. * @return $this
  297. */
  298. public function setLevel($level)
  299. {
  300. $this->level = $level;
  301. return $this;
  302. }
  303. /**
  304. * Gets level.
  305. *
  306. * @return string
  307. */
  308. public function getLevel()
  309. {
  310. return $this->level;
  311. }
  312. /**
  313. * Sets endDate.
  314. *
  315. * @param \DateTime $endDate
  316. *
  317. * @return $this
  318. */
  319. public function setEndDate(\DateTime $endDate = null)
  320. {
  321. $this->endDate = $endDate;
  322. return $this;
  323. }
  324. /**
  325. * Gets endDate.
  326. *
  327. * @return \DateTime
  328. */
  329. public function getEndDate()
  330. {
  331. return $this->endDate ? $this->endDate->format('Y-m-d') : $this->endDate;
  332. }
  333. /**
  334. * Set isActive
  335. *
  336. * @param boolean $isActive
  337. *
  338. * @return CycleByNotation
  339. */
  340. public function setIsActive($isActive)
  341. {
  342. $this->isActive = $isActive;
  343. return $this;
  344. }
  345. /**
  346. * Get isActive
  347. *
  348. * @return boolean
  349. */
  350. public function getIsActive()
  351. {
  352. return $this->isActive;
  353. }
  354. /**
  355. * @param $isDisabled
  356. * @return $this
  357. */
  358. public function setIsDisabled($isDisabled)
  359. {
  360. $this->isDisabled = $isDisabled;
  361. return $this;
  362. }
  363. /**
  364. * @return bool
  365. */
  366. public function getIsDisabled()
  367. {
  368. return $this->isDisabled;
  369. }
  370. /**
  371. * Sets duration.
  372. *
  373. * @param integer $duration
  374. *
  375. * @return $this
  376. */
  377. public function setDuration($duration)
  378. {
  379. $this->duration = $duration;
  380. return $this;
  381. }
  382. /**
  383. * Gets duration.
  384. *
  385. * @return integer
  386. */
  387. public function getDuration()
  388. {
  389. return $this->duration;
  390. }
  391. /**
  392. * Sets nb students max.
  393. *
  394. * @param integer $nbStudentsMax
  395. *
  396. * @return $this
  397. */
  398. public function setNbStudentsMax($nbStudentsMax)
  399. {
  400. $this->nbStudentsMax = $nbStudentsMax;
  401. return $this;
  402. }
  403. /**
  404. * Gets nbStudentsMax.
  405. *
  406. * @return integer
  407. */
  408. public function getNbStudentsMax()
  409. {
  410. return $this->nbStudentsMax;
  411. }
  412. /**
  413. * Sets nbStudentsByCourse.
  414. *
  415. * @param integer $nbStudentsByCourse
  416. *
  417. * @return $this
  418. */
  419. public function setNbStudentsByCourse($nbStudentsByCourse)
  420. {
  421. $this->nbStudentsByCourse = $nbStudentsByCourse;
  422. return $this;
  423. }
  424. /**
  425. * Gets nbStudentsByCourse.
  426. *
  427. * @return integer
  428. */
  429. public function getNbStudentsByCourse()
  430. {
  431. return $this->nbStudentsByCourse;
  432. }
  433. /**
  434. * Gets packingRate.
  435. *
  436. * @return integer
  437. */
  438. public function getPackingRate()
  439. {
  440. return $this->packingRate;
  441. }
  442. /**
  443. * Set packingRate
  444. *
  445. * @param integer $packingRate
  446. *
  447. * @return EducationCurriculum
  448. */
  449. public function setPackingRate($packingRate)
  450. {
  451. $this->packingRate = $packingRate;
  452. return $this;
  453. }
  454. /**
  455. * Add educationStudent
  456. *
  457. * @param \AppBundle\Entity\Education\EducationStudent $educationStudent
  458. *
  459. * @return EducationCurriculum
  460. */
  461. public function addEducationStudent(\AppBundle\Entity\Education\EducationStudent $educationStudent)
  462. {
  463. $this->educationStudent[] = $educationStudent;
  464. return $this;
  465. }
  466. /**
  467. * Remove educationStudent
  468. *
  469. * @param \AppBundle\Entity\Education\EducationStudent $educationStudent
  470. */
  471. public function removeEducationStudent(\AppBundle\Entity\Education\EducationStudent $educationStudent)
  472. {
  473. $this->educationStudent->removeElement($educationStudent);
  474. }
  475. /**
  476. * Get educationStudent
  477. *
  478. * @return \Doctrine\Common\Collections\Collection
  479. */
  480. public function getEducationStudent()
  481. {
  482. return $this->educationStudent;
  483. }
  484. /**
  485. * Gets full label.
  486. *
  487. * @return array
  488. */
  489. public function getFullLabelTemplate()
  490. {
  491. return [
  492. $this->getEducation()->getEducationCategory()->getLabel(),
  493. $this->getEducation()->getEducationComplementTemplate(),
  494. $this->getCycle() && $this->getCycle()->getLabel() !== 'NO_CYCLE' ? $this->getCycle()->getLabel() : '',
  495. ['value' => $this->getYear(), 'translate' => true],
  496. $this->getLevel()
  497. ];
  498. }
  499. /**
  500. * Gets full label.
  501. *
  502. * @return array
  503. */
  504. public function getCycleYearLevelTemplate()
  505. {
  506. return [
  507. $this->getCycle() && $this->getCycle()->getLabel() !== 'NO_CYCLE' ? $this->getCycle()->getLabel() : '',
  508. ['value' => $this->getYear(), 'translate' => true],
  509. $this->getLevel()
  510. ];
  511. }
  512. /**
  513. * Gets full label.
  514. *
  515. * @return array
  516. */
  517. public function getFullLabelElastic()
  518. {
  519. return $this->getLevel();
  520. }
  521. /**
  522. * Set availablePlaces
  523. *
  524. * @param integer $availablePlaces
  525. *
  526. * @return EducationCurriculum
  527. */
  528. public function setAvailablePlaces($availablePlaces)
  529. {
  530. $this->availablePlaces = $availablePlaces;
  531. return $this;
  532. }
  533. /**
  534. * Get availablePlaces
  535. *
  536. * @return integer
  537. */
  538. public function getAvailablePlaces()
  539. {
  540. return $this->availablePlaces;
  541. }
  542. /**
  543. * Set totalEducationStudents
  544. *
  545. * @param integer $totalEducationStudents
  546. *
  547. * @return EducationCurriculum
  548. */
  549. public function setTotalEducationStudents($totalEducationStudents)
  550. {
  551. $this->totalEducationStudents = $totalEducationStudents;
  552. return $this;
  553. }
  554. /**
  555. * Get totalEducationStudents
  556. *
  557. * @return integer
  558. */
  559. public function getTotalEducationStudents()
  560. {
  561. return $this->totalEducationStudents;
  562. }
  563. /**
  564. * Set $fillingRate
  565. *
  566. * @param integer $fillingRate
  567. *
  568. * @return EducationCurriculum
  569. */
  570. public function setFillingRate($fillingRate)
  571. {
  572. $this->fillingRate = $fillingRate;
  573. return $this;
  574. }
  575. /**
  576. * Get $fillingRate
  577. *
  578. * @return integer
  579. */
  580. public function getFillingRate()
  581. {
  582. return $this->fillingRate;
  583. }
  584. /**
  585. * Set $order
  586. *
  587. * @param integer $order
  588. *
  589. * @return EducationCurriculum
  590. */
  591. public function setOrder($order)
  592. {
  593. $this->order = $order;
  594. return $this;
  595. }
  596. /**
  597. * Get $order
  598. *
  599. * @return integer
  600. */
  601. public function getOrder()
  602. {
  603. return $this->order;
  604. }
  605. /**
  606. * Sets educationNotationConfig.
  607. *
  608. * @param $educationNotationConfig
  609. *
  610. * @return $this
  611. */
  612. public function setEducationNotationConfig($educationNotationConfig)
  613. {
  614. $this->educationNotationConfig = $educationNotationConfig;
  615. return $this;
  616. }
  617. /**
  618. * Gets educationNotationConfig.
  619. *
  620. * @return EducationNotationConfig
  621. */
  622. public function getEducationNotationConfig()
  623. {
  624. return $this->educationNotationConfig;
  625. }
  626. /**
  627. * Add $educationTiming
  628. *
  629. * @param \AppBundle\Entity\Education\EducationTiming $educationTiming
  630. *
  631. * @return EducationCurriculum
  632. */
  633. public function addEducationTiming(\AppBundle\Entity\Education\EducationTiming $educationTiming)
  634. {
  635. $this->educationTimings[] = $educationTiming;
  636. return $this;
  637. }
  638. /**
  639. * Remove $educationTiming
  640. *
  641. * @param \AppBundle\Entity\Education\EducationTiming $educationTiming
  642. */
  643. public function removeEducationTiming(\AppBundle\Entity\Education\EducationTiming $educationTiming)
  644. {
  645. /** @var EducationStudent $educationStudent */
  646. foreach ($this->getEducationStudent() as $educationStudent){
  647. if($educationStudent->getEducationTiming() && $educationStudent->getEducationTiming()->getId() === $educationTiming->getId()){
  648. $educationStudent->setEducationTiming(null);
  649. }
  650. }
  651. $this->educationTimings->removeElement($educationTiming);
  652. }
  653. /**
  654. * Get EducationTiming
  655. *
  656. * @return \Doctrine\Common\Collections\Collection
  657. */
  658. public function getEducationTimings()
  659. {
  660. return $this->educationTimings;
  661. }
  662. }