public static function doSelectByAccal() { $student_course_id = sfContext::getInstance()->getRequest()->getParameter('id'); $student_course = StudentCoursePeer::retrieveByPK($student_course_id); if ($student_course) { if (!$student_course->getSubjectAccal()) { return array(); } $accal = $student_course->getSubjectAccal()->getAcademicCalendar(); } else { $accal_id = sfContext::getInstance()->getRequest()->getParameter('accal_id'); $accal = AcademicCalendarPeer::retrieveByPK($accal_id); } if ($accal == null) { return array(); } $c = new Criteria(); $c->addAscendingOrderByColumn(AcademicCalendarPeer::CODE); $c->addAscendingOrderByColumn(SubjectPeer::NAME); $c->addAscendingOrderByColumn(EmployeePeer::NAME); $c->addJoin(AcademicCalendarPeer::ID, SubjectAccalPeer::ACADEMIC_CALENDAR_ID); $c->addJoin(SubjectPeer::ID, SubjectAccalPeer::SUBJECT_ID); $c->addJoin(EmployeePeer::ID, SubjectAccalPeer::EMPLOYEE_ID); $c->add(SubjectAccalPeer::ACADEMIC_CALENDAR_ID, $accal->getId()); $objs = SubjectAccalPeer::doSelect($c); return $objs; }
public function getStudentCourse($con = null) { include_once 'lib/model/om/BaseStudentCoursePeer.php'; if ($this->aStudentCourse === null && $this->student_course_id !== null) { $this->aStudentCourse = StudentCoursePeer::retrieveByPK($this->student_course_id, $con); } return $this->aStudentCourse; }
public function executePrintBankTransferForm() { $student_course = StudentCoursePeer::retrieveByPK($this->getRequestParameter('id')); $stu = StudentPeer::retrieveByPK($this->getRequestParameter('student_id')); $accal = $student_course->getSubjectAccal()->getAcademicCalendar(); $job = JobPeer::retrieveByCode($this->getModuleName()); $academic_process = $job->getAcademicProcess(); $this->forward404Unless($student_course && $stu && $accal && $job && $academic_process); $c = new Criteria(); $c->add(AcademicCostPeer::ACADEMIC_CALENDAR_ID, $accal->getId()); $c->add(AcademicProcessPeer::CODE, $academic_process->getCode()); $c->addJoin(AcademicProcessPeer::ID, AcademicCostPeer::ACADEMIC_PROCESS_ID); $costs = AcademicCostPeer::doSelect($c); $c = new Criteria(); $c->add(StudentCoursePeer::STUDENT_ID, $stu->getId()); $c->add(SubjectAccalPeer::ACADEMIC_CALENDAR_ID, $accal->getId()); $c->add(StudentCoursePeer::STATUS, StudentCourse::STATUS_APPROVED); $c->addJoin(SubjectAccalPeer::ID, StudentCoursePeer::SUBJECT_ACCAL_ID); $scs = StudentCoursePeer::doSelect($c); $total_subject = 0; $total_credit = 0; $total_credit_cost = 0; $total_cost = 0; $total_subject_cost = 0; foreach ($costs as $c) { if ($c->getAcademicCostComponent()->getUnit() == AcademicCostComponent::UNIT_CREDIT) { foreach ($scs as $sc) { $total_credit += $sc->getSubjectAccal()->getSubject()->getCredit(); $total_cost += $c->getAmount() * $sc->getSubjectAccal()->getSubject()->getCredit(); $total_credit_cost += $c->getAmount() * $sc->getSubjectAccal()->getSubject()->getCredit(); } } elseif ($c->getAcademicCostComponent()->getUnit() == AcademicCostComponent::UNIT_SUBJECT) { foreach ($scs as $sc) { ++$total_subject; $total_cost += $c->getAmount(); $total_subject_cost += $c->getAmount(); } } else { $total_cost += $c->getAmount(); } } $this->stu = $stu; $this->accal = $accal; $this->costs = $costs; $this->total_credit = $total_credit; $this->total_credit_cost = $total_credit_cost; $this->total_cost = $total_cost; $this->total_subject = $total_subject; $this->total_subject_cost = $total_subject_cost; $this->setViewClass('sfDomPDF'); }
public function executeInsertPaymentJournal() { $student_course = StudentCoursePeer::retrieveByPK($this->getRequestParameter('id')); $stu = StudentPeer::retrieveByPK($this->getRequestParameter('student_id')); $accal = $student_course->getAcademicCalendar(); $job = JobPeer::retrieveByCode($this->getModuleName()); $academic_process = $job->getAcademicProcess(); $this->forward404Unless($student_course && $stu && $accal && $job && $academic_process); // $c = new Criteria(); // $c->add(AcademicCostPeer::ACADEMIC_CALENDAR_ID, $accal->getId()); // $c->add(AcademicProcessPeer::CODE, $academic_process->getCode()); // $c->addJoin(AcademicProcessPeer::ID, AcademicCostPeer::ACADEMIC_PROCESS_ID); // $costs = AcademicCostPeer::doSelect($c); #$c = new Criteria(); #$c->add(StudentCoursePeer::STUDENT_ID, $stu->getId()); #$c->add(SubjectAccalPeer::ACADEMIC_CALENDAR_ID, $accal->getId()); #$c->add(StudentCoursePeer::STATUS, StudentCourse::STATUS_APPROVED); #$c->addJoin(SubjectAccalPeer::ID, StudentCoursePeer::SUBJECT_ACCAL_ID); #$scs = StudentCoursePeer::doSelect($c); $paids = $this->getRequestParameter('paid'); foreach ($paids as $key => $val) { $c = AcademicCostPeer::retrieveByPK($key); $payment_journal = new PaymentJournal(); $payment_journal->setAcademicCost($c); $payment_journal->setJob($job); $payment_journal->setPayer($stu->getId()); #$amount = 0; #if ($c->getAcademicCostComponent()->getUnit() == AcademicCostComponent::UNIT_CREDIT) { # foreach ($scs as $sc) { # $amount += $c->getAmount() * $sc->getSubjectAccal()->getSubject()->getCredit(); # } #} elseif ($c->getAcademicCostComponent()->getUnit() == AcademicCostComponent::UNIT_SUBJECT) { # foreach ($scs as $sc) { # $amount += $c->getAmount(); # } #} else { $amount = $c->getAmount(); #} $payment_journal->setAmount($amount); $payment_journal->setPaid($val); $payment_journal->setReceivable($amount - $val); $payment_journal->setAcademicProcess($academic_process); $payment_journal->setPayerType(PaymentJournal::PAYER_TYPE_STUDENT); if ($amount - $val == 0) { $payment_journal->setStatus('S'); } elseif ($amount - $val > 0) { $payment_journal->setStatus('M'); } elseif ($amount - $val < 0) { $payment_journal->setStatus('P'); } $payment_journal->save(); $ph = new PaymentHistory(); $ph->setPaymentJournal($payment_journal); $ph->setAmount($val); $ph->save(); } // activate all paid credit if ($this->hasRequestParameter('status[student_course]') && $this->getRequestParameter('status[student_course]') == 1) { $c = new Criteria(); $c->add(StudentCoursePeer::STUDENT_ID, $stu->getId()); $c->add(StudentCoursePeer::STATUS, StudentCourse::STATUS_APPROVED); $approved_scs = StudentCoursePeer::doSelect($c); foreach ($approved_scs as $asc) { $asc->setStatus(StudentCourse::STATUS_ACTIVE); $asc->save(); } } // change student status to active if ($this->hasRequestParameter('status[student]') && $this->getRequestParameter('status[student]') == Student::STATUS_ACTIVE) { $stu->setStatus(Student::STATUS_ACTIVE); $stu->setAcademicCalendarId($accal->getId()); $stu->save(); } return $this->redirect('student_course/list?student_id=' . $stu->getId()); }
public function executeSelectByStudentCourse() { $student_course_id = $this->getRequestParameter('student_course_id'); $student_course = StudentCoursePeer::retrieveByPK($student_course_id); $this->forward404Unless($student_course); $content = array(); $subject_accal = $student_course->getSubjectAccal(); $objs = $subject_accal->getSubjectGradings(); foreach ($objs as $o) { $content[$o->getGradeComponentId()] = $o->getGradeComponent()->toString(); } $this->content = $content; }
public function executeSelectByAccal() { $student_course_id = $this->getRequestParameter('student_course_id'); $student_course = StudentCoursePeer::retrieveByPK($student_course_id); if (!$student_course) { $student_course = new StudentCourse(); } $student_id = $this->getRequestParameter('student_id'); $student = StudentPeer::retrieveByPK($student_id); // $this->forward404Unless($student); $accal_id = $this->getRequestParameter('accal_id'); $accal = AcademicCalendarPeer::retrieveByPK($accal_id); $disabled = array(); if ($student) { $student_courses = $student->getStudentCoursesJoinSubjectAccal(); foreach ($student_courses as $sc) { if ($sc->getSubjectAccal()->getAcademicCalendarId() == $accal->getId() && $student_course->getSubjectAccalId() != $sc->getSubjectAccal()->getId()) { $disabled[] = $sc->getSubjectAccal()->getId(); } } } $content = array(); $objs = SubjectAccalPeer::doSelectByAccal(); if ($student) { foreach ($objs as $o) { $content[$o->getId()] = $o->toString(); $c = new Criteria(); $c->add(SubjectAccalPeer::ID, $o->getId()); $c->add(SubjectCurrPeer::SUBJECT_ID, $o->getSubjectId()); $c->addJoin(AcademicCalendarPeer::ID, SubjectAccalPeer::ACADEMIC_CALENDAR_ID); $c->addJoin(AcademicCalendarPeer::CURRICULUM_ID, SubjectCurrPeer::CURRICULUM_ID); $c->addJoin(SubjectCurrPeer::ID, SubjectPrereqPeer::SUBCURR); $sps = SubjectPrereqPeer::doSelect($c); foreach ($sps as $sp) { $s = $sp->getSubjectCurrRelatedBySubcurrPrereq()->getSubject(); // prereq subject must be in closed state $c = new Criteria(); $c->add(SubjectAccalPeer::SUBJECT_ID, $s->getId()); $c->add(StudentCoursePeer::STUDENT_ID, $student_id); $c->add(StudentCoursePeer::STATUS, StudentCourse::STATUS_CLOSED); $c->addJoin(StudentCoursePeer::SUBJECT_ACCAL_ID, SubjectAccalPeer::ID); $scs = StudentCoursePeer::doSelect($c); $isPassGrade = false; $isPassCredit = true; $isPassIndex = true; foreach ($scs as $sc) { $grade = $sc->getFinalGrade(); $gc = GradeConversionPeer::retrieveByName($grade[0]); // check prereq subject grade if ($gc && $gc->getGrade() >= $sp->getGradeConversion()->getGrade()) { $isPassGrade = true; } else { $isPassGrade = false; } // check credit requirement if ($sp->getTotalCredit() > 0) { if ($sc->getTotalCreditClosed() >= $sp->getTotalCredit()) { $isPassCredit = true; } else { $isPassCredit = false; } } // check index requirement if ($sp->getPerformanceIndex() > 0) { if ($sc->getPerformanceIndex() >= $sp->getPerformanceIndex()) { $isPassIndex = true; } else { $isPassIndex = false; } } } $s0 = $sp->getSubjectCurrRelatedBySubcurrPrereq()->getSubject()->toString(); $s1 = $sp->getSubjectCurrRelatedBySubcurr()->getSubject()->toString(); // echo "<div align=left><pre>"; // echo "$s1 -> $s0 | isPassGrade:$isPassGrade isPassCredit:$isPassCredit isPassIndex:$isPassIndex"; // echo "</pre></div>"; if (!$isPassGrade || !$isPassCredit || !$isPassIndex) { $disabled[] = $o->getId(); } } } } else { foreach ($objs as $o) { $content[$o->getId()] = $o->toString(); } } $this->content = $content; $this->disabled = $disabled; }
public function executeGetKkm() { $sc_id = $this->getRequestParameter('student_course_id'); $sc = StudentCoursePeer::retrieveByPK($sc_id); $this->forward404Unless($sc); $c = new Criteria(); $c->add(SubjectGradingPeer::SUBJECT_ACCAL_ID, $sc->getSubjectAccalId()); $sg = SubjectGradingPeer::doSelectOne($c); $this->forward404Unless($sg); return $this->renderText("<input type='text' size='7' value='" . $sg->getPercentage() . "' id='kkm' name='kkm'/>"); }