private function initializeStudentBelt($student) { $studentRank = new StudentRank(); $studentRank->setStudent($student); $studentRank->setRank($this->em->getRepository('TSK\\RankBundle\\Entity\\Rank')->find(1)); // WHITE BELT -- config options? $studentRank->setRankType($this->em->getRepository('TSK\\RankBundle\\Entity\\RankType')->find(1)); // BELT TYPE -- config options? $this->em->persist($studentRank); $this->em->flush(); }
/** * @Route("/test/{id}") * @Template() * @Method({"GET"}) */ public function testAction(Student $student) { $em = $this->getDoctrine()->getManager(); $forms = array(); $eligibleRanks = $student->getEligibleRanks(); foreach ($eligibleRanks as $rank) { $studentRank = new StudentRank(); $studentRank->setStudent($student); $studentRank->setRank($rank); $studentRank->setRankType($rank->getRankType()); $form = $this->createForm(new StudentPromotionFormType(), $studentRank); $forms[] = $form->createView(); } $srRepo = $em->getRepository('TSKStudentBundle:StudentRank'); $studentCreditRepo = $em->getRepository('TSKStudentBundle:StudentCreditLog'); return array('student' => $student, 'forms' => $forms, 'currentRank' => $student->getRank()->getId(), 'numberStripesEarnedAtCurrentBelt' => $srRepo->getNumberStripesEarnedAtCurrentBelt($student), 'numberKbStripesEarnedAtCurrentBelt' => $srRepo->getNumberKbStripesEarnedAtCurrentBelt($student), 'numberGrStripesEarnedAtCurrentBelt' => $srRepo->getNumberGrStripesEarnedAtCurrentBelt($student), 'lastPromotionDate' => $srRepo->getLastPromotionDate($student), 'lastKbPromotionDate' => $srRepo->getLastKbPromotionDate($student), 'lastGrPromotionDate' => $srRepo->getLastGrPromotionDate($student), 'creditsEarnedSinceLastPromotion' => $studentCreditRepo->getCreditsEarnedSinceLastPromotion($student), 'kbCreditsEarnedSinceLastKbPromotion' => $studentCreditRepo->getKbCreditsEarnedSinceLastKbPromotion($student), 'grCreditsEarnedSinceLastGrPromotion' => $studentCreditRepo->getGrCreditsEarnedSinceLastGrPromotion($student)); }
protected function processStudent($row) { if ($row) { $manager = $this->getContainer()->get('doctrine.orm.entity_manager'); $studentRepo = $manager->getRepository('TSK\\StudentBundle\\Entity\\Student'); $statesRepo = $manager->getRepository('TSK\\UserBundle\\Entity\\States'); $studentStatusRepo = $manager->getRepository('TSK\\StudentBundle\\Entity\\StudentStatus'); $rankRepo = $manager->getRepository('TSK\\RankBundle\\Entity\\Rank'); $schoolRepo = $manager->getRepository('TSK\\SchoolBundle\\Entity\\School'); $row[0] = preg_replace('/-/', '', $row[0]); $student = $studentRepo->findOneBy(array('legacyStudentId' => $row[0])); if (!$student) { $student = new Student(); $contactManager = $this->getContainer()->get('tsk_user.contact_manager'); $contact = $contactManager->createContact(); $contact->setOrganization($this->org); $contact->setFirstName($row[1]); $contact->setLastName($row[2]); $contact->setEmail($row[13]); $contact->setAddress1($row[3]); $contact->setAddress2($row[4]); $contact->setCity($row[5]); $contact->setState($statesRepo->find($row[6])); $contact->setPostalCode($row[7]); $contact->setPhone($row[8]); $contact->setMobile($row[9]); $contact->setDateOfBirth(new \DateTime($row[10])); $contact->addSchool($this->school); $contactManager->updateCanonicalFields($contact); $student->setContact($contact); $student->setLegacyStudentId($row[0]); $student->setStudentStatus($studentStatusRepo->findOneBy(array('name' => 'active'))); $rank = $rankRepo->findOneBy(array('fullDescription' => $row[12])); if (!$rank) { print 'Bad rank [' . $row[12] . ']' . "\n"; try { } catch (\Exception $e) { // throw new \Exception('Bad Rank [' . $row[12] . ']'); } } else { $student->setRank($rank); $studentRank = new StudentRank(); $studentRank->setStudent($student); $studentRank->setRank($rank); $studentRank->setRankType($rank->getRankType()); $studentRank->setAwardedDate(new \DateTime($row[14])); $manager->persist($studentRank); } $manager->persist($student); $manager->flush(); } } }
/** * @Route("/promote/{id}") * @Template() * @Method({"GET","POST"}) */ public function promoteAction(Student $student) { $eligibleRanks = $student->getEligibleRanks(); $forms = array(); foreach ($eligibleRanks as $rank) { $studentRank = new StudentRank(); $studentRank->setStudent($student); $studentRank->setRank($rank); $studentRank->setRankType($rank->getRankType()); $form = $this->createForm(new StudentPromotionFormType(), $studentRank); $forms[] = $form->createView(); } $request = $this->get('request'); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { if ($studentRank->getRank() == $student->getRank()) { $this->get('session')->getFlashBag()->add('error', 'ERROR: Cannot promote student to same rank'); } else { $em = $this->getDoctrine()->getManager(); $em->persist($studentRank); $em->flush(); // Dispatch student progress event ... $studentProgressEvent = new StudentProgressEvent($student); $dispatcher = $this->get('event_dispatcher'); $dispatcher->dispatch(StudentEvents::STUDENT_PROGRESS, $studentProgressEvent); $this->get('session')->getFlashBag()->add('success', 'Student Promoted!'); // Force a redirect here to get the updated data return $this->redirect($this->getRequest()->headers->get('referer')); } } } return array('student' => $student, 'forms' => $forms); }