public function setEnrollment(Enrollment $enroll) { $enroll->addAttendance($this); $this->enrollment = $enroll; }
/** * Faz a matrícula do aluno $sid na turma $cid. * * Se a matrícula já existe (tiver sido encerrada) ela é reabilidatada. * Caso contrário um novo $enrollment é criado */ public function enrollAction() { $sid = $this->params('id', false); $request = $this->getRequest(); if ($sid && $request->isPost()) { try { $data = $request->getPost(); if (!is_numeric($data['studentClass'])) { throw new RuntimeException('Turma não especificada'); } $em = $this->getEntityManager(); $enrollment = $em->getRepository('SchoolManagement\\Entity\\Enrollment')->findOneBy(array('class' => $data['studentClass'], 'registration' => $sid)); if ($enrollment === null) { $class = $em->getReference('SchoolManagement\\Entity\\StudentClass', $data['studentClass']); $registration = $em->getReference('Recruitment\\Entity\\Registration', $sid); $enrollment = new Enrollment(); $enrollment->setClass($class)->setRegistration($registration); $class->addEnrollment($enrollment); $em->persist($class); } else { $enrollment->setEnrollmentEndDate(null); $em->merge($enrollment); } $em->flush(); $message = 'Matrícula realizada com sucesso.'; } catch (Exception $ex) { if ($ex instanceof ConstraintViolationException) { $message = 'Aluno já está matriculado nesta turma.'; } else { $message = 'Erro: ' . $ex->getMessage(); } } } else { $message = 'Turma e/ou aluno não especificado(s).'; } return new JsonModel(array('message' => $message)); }
/** * * @param Enrollment $enrollment * @return SchoolManagement\Entity\StudentClass */ public function addEnrollment(Enrollment $enrollment) { $enrollment->setClass($this); $this->enrollments[] = $enrollment; return $this; }