public function addStudentCourse($registrationId = null, $studentId = null, $courseId = null)
 {
     if ($this->checkIfStudentCourseGradeExists($studentId, $courseId)) {
         $oneSCG = $this->getOneStudentCourseGrade($studentId, $courseId);
         if (!empty($oneSCG)) {
             if ($oneSCG->checkIfStudentCourseIsFailed()) {
                 ## current course [one that has been failed]
                 $oneSCG->setIsCalculated(FALSE);
                 ## new course is added
                 $newSCG = new StudentCourseGrade();
                 $newSCG->setStudentId($studentId);
                 $newSCG->setRegistrationId($registrationId);
                 $newSCG->setCourseId($courseId);
                 $newSCG->setIsCalculated(TRUE);
                 $newSCG->setIsRepeated(TRUE);
                 $newSCG->setIsAcademicRepeated(TRUE);
                 $newSCG->setIsAdded(TRUE);
                 $newSCG->save();
                 $oneSCG->save();
             }
         } else {
             ## course must have been dropped ##
             ## new course is added
             $newSCG = new StudentCourseGrade();
             $newSCG->setStudentId($studentId);
             $newSCG->setRegistrationId($registrationId);
             $newSCG->setCourseId($courseId);
             $newSCG->setIsCalculated(TRUE);
             $newSCG->setIsAdded(TRUE);
             $newSCG->save();
         }
     }
 }
Example #2
0
 public function executeStudentRegradeDetail(sfWebRequest $request)
 {
     ## <SectionDetail>, <StudentDetail>, <GradedCourses> <CreateForm> <activatedRegrades> ## THESE ARE NEEDED STEP BY STEP
     $this->showCourseGrades = FALSE;
     $this->showFormResult = FALSE;
     $this->showActivatedRegrade = FALSE;
     $this->registrationIdsArray = array();
     $this->coursesIdsArray = array();
     $this->regradeRegistrationIdsArray = array();
     $this->activatedCourseIdsArray = array();
     $this->departmentName = $this->getUser()->getAttribute('departmentName');
     $this->programSectionId = $request->getParameter('sectionId');
     $this->studentId = $request->getParameter('studentId');
     $this->enrollmentId = $request->getParameter('enrollmentId');
     $this->sectionDetail = Doctrine_Core::getTable('ProgramSection')->getOneProgramSectionById($this->programSectionId);
     $this->studentDetail = Doctrine_Core::getTable('Student')->getStudentDetailById($this->studentId);
     $this->programName = Doctrine_Core::getTable('ProgramSection')->getOneProgramSectionById($this->programSectionId)->getProgram();
     ## RETRIEVE STUDENT REGISTERED COURSES UNDER ONE SEMESTER ENROLLMENT,
     #1. Find enrollment
     $this->enrollment = Doctrine_Core::getTable('EnrollmentInfo')->findOneStudentEnrollmentInforById($this->enrollmentId);
     $this->forward404Unless($this->enrollment);
     #2. Find all Registrations per enrollment above
     $this->registrations = Doctrine_Core::getTable('Registration')->getEnrollmentRegistrations($this->enrollment->getId());
     $this->forward404Unless($this->registrations);
     foreach ($this->registrations as $registration) {
         $this->registrationIdsArray[$registration->getId()] = $registration->getId();
         if ($registration->getIsGradeComplain() == TRUE || $registration->getIsMakeup() == TRUE || $registration->getIsReexam() == TRUE) {
             $this->regradeRegistrationIdsArray[$registration->getId()] = $registration->getId();
         }
     }
     #3. Find all courses [StudentCourseGrade] under each Registration, a)Calculatables, b)Have Grade
     $this->activeGradedStudentCourses = Doctrine_Core::getTable('StudentCourseGrade')->getActiveRegistrationCourses($this->registrationIdsArray, $this->studentId);
     $this->forward404Unless($this->activeGradedStudentCourses);
     #3.1 Check if there graded courses
     if ($this->activeGradedStudentCourses->count() != 0) {
         $this->showCourseGrades = TRUE;
     }
     #3.2 Find all courses [StudentCourseGrade] under each Registration, a)Calculatables, b)Have Grade c)not under regrade process (not activated)
     $this->activeNotReGradedStudentCourses = Doctrine_Core::getTable('StudentCourseGrade')->getActiveRegistrationNotRegradedCourses($this->registrationIdsArray, $this->studentId);
     $this->forward404Unless($this->activeNotReGradedStudentCourses);
     #4. PREPARE REGRADE REQUEST FORM
     ##COURSE
     $this->coursesIdsArray[''] = 'Select Course to Regrade';
     foreach ($this->activeNotReGradedStudentCourses as $course) {
         $this->coursesIdsArray[$course->getCourseId()] = $course->getCourse();
     }
     ##REGRADE - FROM FormChoices
     ##AC MINUTE, REMARK
     ## THE FORM
     $this->frontendRegradeRequestForm = new FrontendRegradeRequestForm($this->enrollmentId, $this->studentId, $this->coursesIdsArray);
     #5. ACTIVATED REGRADES
     #5.1 - Get all special / regrade registrations
     $this->activatedCoursesForRegrade = Doctrine_Core::getTable('StudentCourseGrade')->getActivatedCoursesForRegrade($this->regradeRegistrationIdsArray, $this->studentId);
     $this->forward404Unless($this->activatedCoursesForRegrade);
     #5.2 - Arrange activated regradable courses for form
     if ($this->activatedCoursesForRegrade->count() != 0) {
         $this->showActivatedRegrade = TRUE;
         $this->activatedCourseIdsArray[''] = '-- Select Course To Regrade --';
         foreach ($this->activatedCoursesForRegrade as $activatedCFR) {
             $this->activatedCourseIdsArray[$activatedCFR->getId()] = $activatedCFR->getCourse();
         }
         #KEEP COURSE ID ARRAY ON SESSION, TO BE USED WHEN REGRADE VALUE IS ENTERED
         $this->getUser()->setAttribute('activatedCourseIdsArray', $this->activatedCourseIdsArray);
     }
     #6. DATAWORKER FOR VIEW
     $gradeChoices = Doctrine_Core::getTable('Grade')->getAllLetterGradeChoices();
     $this->getUser()->setAttribute('gradeChoices', $gradeChoices);
     ## created for use when new regrade value is entered,
     $this->frontendRegradeSubmissionForm = new FrontendRegradeSubmissionForm($this->enrollmentId, $this->studentId, $this->activatedCourseIdsArray, $gradeChoices);
     ### PROCESS THE FORM IF SUBMITTED ###
     if ($request->isMethod('post')) {
         $this->frontendRegradeRequestForm->bind($request->getParameter('regraderequestform'));
         if ($this->frontendRegradeRequestForm->isValid()) {
             $formData = $this->frontendRegradeRequestForm->getValues();
             $this->courseId = $formData['course_id'];
             $this->regradeReason = $formData['regrade_reason'];
             $this->studentId = $formData['student_id'];
             $this->enrollmentInfoId = $formData['enrollment_info_id'];
             $this->remark = $formData['remark'];
             $this->ac = $formData['ac'];
             if ($this->courseId == '' || $this->regradeReason == '' || $this->studentId == '' || $this->enrollmentInfoId == '') {
                 $this->getUser()->setFlash('error', 'Error occured: nothing performed, please redo actions ');
                 $this->redirect('regrade/studentRegradeDetail?sectionId=' . $this->programSectionId . '&studentId=' . $this->studentId . '&enrollmentId=' . $this->enrollmentId);
             }
             ## REGISTER STUDENT BASED ON ENROLLMENTINFO FOR SPECIFIED REGRADE REASON
             $registration = new Registration();
             $registration->setEnrollmentInfoId($this->enrollmentInfoId);
             $registration->setAc($this->ac);
             $registration->setDate(date('m-d-Y'));
             $registration->setRemark($this->remark);
             if ($this->regradeReason == 'gradecomplain') {
                 $registration->setIsGradeComplain(TRUE);
             }
             if ($this->regradeReason == 'reexam') {
                 $registration->setIsReexam(TRUE);
             }
             if ($this->regradeReason == 'makeup') {
                 $registration->setIsMakeup(TRUE);
             }
             $registration->save();
             ## STUDENTCOURSEGRADE -----------> NEW COURSE RE-REGISTERED
             $student = new StudentCourseGrade();
             $student->setStudentId($this->studentId);
             $student->setRegistrationId($registration->getId());
             $student->setCourseId($this->courseId);
             $student->setIsRepeated(TRUE);
             $student->setIsCalculated(FALSE);
             $student->setRegradeStatus(2);
             $student->save();
             ## STUDENTCOURSEGRADE ------------> EXISTING COURSE / ONE NEEDED TO BE CHANGED
             $normalRegistration = Doctrine_Core::getTable('Registration')->getNormalRegistrationByEnrollmentId($this->enrollmentInfoId);
             $oldStudentCourseGrade = Doctrine_Core::getTable('StudentCourseGrade')->getRegisteredGradedCourse($normalRegistration->getId(), $this->studentId, $this->courseId);
             $oldStudentCourseGrade->setRegradeStatus(4);
             $oldStudentCourseGrade->save();
             //$this->showFormResult=TRUE;
             ##Do Logging!!
             $newLog = new AuditLog();
             $action = 'The Department Head has Activated  Student Regreade Process';
             $newLog->addNewLogInfo($this->getUser()->getAttribute('userId'), $action);
             $this->getUser()->setFlash('notice', 'Successfuly Activated Regrade Process');
             $this->redirect('regrade/studentRegradeDetail?sectionId=' . $this->programSectionId . '&studentId=' . $this->studentId . '&enrollmentId=' . $this->enrollmentId);
         }
     }
     #$this->sectionCourses   = Doctrine_Core::getTable('Course')->getCoursesByCourseIds($courseIds);
 }
Example #3
0
 public function processRegistration(sfWebRequest $request, sfForm $registrationForm)
 {
     $registrationForm->bind($request->getParameter('courseregistrationform'));
     if ($registrationForm->isValid()) {
         ## get form values
         $formData = $this->registrationForm->getValues();
         $courseIds = $formData['course_id'];
         $enrollmentInfoIds = $formData['student_id'];
         if ($courseIds == '' || $enrollmentInfoIds == '') {
             $this->getUser()->setFlash('error', 'Error occured, please redo actions ');
             $this->redirect('registration/index');
         }
         foreach ($enrollmentInfoIds as $enrollmentId) {
             $enrollmentDetail = Doctrine_Core::getTable('EnrollmentInfo')->findOneStudentEnrollmentInforById($enrollmentId);
             $sectionId = $enrollmentDetail->getSectionId();
             $enrollmentDetail->updateEnrollmentSemesterAction(sfConfig::get('app_registered_semester_action'));
             $registration = new Registration();
             $registration->setEnrollmentInfoId($enrollmentId);
             $registration->setDate(date('m-d-Y'));
             $registration->save();
             foreach ($courseIds as $courseId) {
                 $studentCourse = new StudentCourseGrade();
                 $studentCourse->setCourseId($courseId);
                 $studentCourse->setRegistrationId($registration->getId());
                 $studentCourse->setStudentId(Doctrine_Core::getTable('EnrollmentInfo')->getEnrollmentDetailById($enrollmentId)->getStudentId());
                 $studentCourse->save();
             }
         }
         $newLog = new AuditLog();
         $action = 'User has Registered Students Student Record Management System';
         $newLog->addNewLogInfo($this->getUser()->getAttribute('userId'), $action);
         $this->getUser()->setFlash('notice', 'Student Registration was successfull ');
         $this->redirect('registration/sectiondetail?id=' . $sectionId);
         ## Check filter combination availability [program_id, academic_year, year, semester], then return section]
     }
 }
Example #4
0
 public function processRegistration(sfWebRequest $request, sfForm $registrationForm)
 {
     $registrationForm->bind($request->getParameter('courseregistrationform'));
     if ($registrationForm->isValid()) {
         ## get form values
         $formData = $this->registrationForm->getValues();
         $courseIds = $formData['course_id'];
         $enrollmentInfoIds = $formData['student_id'];
         foreach ($enrollmentInfoIds as $enrollmentId) {
             $enrollmentDetail = Doctrine_Core::getTable('EnrollmentInfo')->findOneStudentEnrollmentInforById($enrollmentId);
             $checkIfStudentCanRegister = Doctrine_Core::getTable('StudentCourseGrade')->checkIfStudentCanRegister($enrollmentDetail->getStudentId(), $courseIds);
             if ($checkIfStudentCanRegister) {
                 Doctrine_Core::getTable('EnrollmentInfo')->setSemesterActionToRegistered($enrollmentId);
                 $registration = new Registration();
                 $registration->setEnrollmentInfoId($enrollmentId);
                 $registration->setDate(date('m-d-Y'));
                 $registration->save();
                 foreach ($courseIds as $courseId) {
                     $studentCourse = new StudentCourseGrade();
                     $studentCourse->setCourseId($courseId);
                     $studentCourse->setRegistrationId($registration->getId());
                     $studentCourse->setStudentId(Doctrine_Core::getTable('EnrollmentInfo')->getEnrollmentDetailById($enrollmentId)->getStudentId());
                     $studentCourse->save();
                 }
             }
         }
         $this->getUser()->setFlash('notice', 'Registration was successfull ' . $enrollmentDetail->getStudentId());
         $this->redirect('programsection/index');
         ## Check filter combination availability [program_id, academic_year, year, semester], then return section]
     }
 }
Example #5
0
 public function registerWithDrop($enrollmentInfoId = NULL, $courseIdsArrayToRegister = NULL, $courseIdsArrayToDrop = NULL)
 {
     if (is_null($enrollmentInfoId)) {
         return FALSE;
     }
     if (is_null($courseIdsArrayToRegister)) {
         return FALSE;
     }
     if (is_null($courseIdsArrayToDrop)) {
         return FALSE;
     }
     $this->setEnrollmentInfoId($enrollmentInfoId);
     $this->setDate(date('Y-m-d'));
     $this->save();
     ## Call upon StudentCourseRegistration
     foreach ($courseIdsArrayToRegister as $courseId => $courseName) {
         $scg = new StudentCourseGrade();
         if (!$scg->register($this->getEnrollmentInfo()->getStudentId(), $this->getId(), $courseId)) {
             return FALSE;
         }
     }
     foreach ($courseIdsArrayToDrop as $courseId => $courseName) {
         $scg = new StudentCourseGrade();
         if (!$scg->registerWithDrop($this->getEnrollmentInfo()->getStudentId(), $this->getId(), $courseId)) {
             return FALSE;
         }
     }
     return TRUE;
 }