public function executeSaveElse() { $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $this->course_schedule = $course_schedule; $cur13_term_id = $this->getRequestParameter('cur13_term_id'); $cur13_term = Cur13TermPeer::retrieveByPK($cur13_term_id); $this->forward404Unless($cur13_term); $this->cur13_term = $cur13_term; if ($cur13_term->getCur13KiId() == ScoreRule::THREE) { $ct = new Criteria(); $ct->add(GradeConversionPeer::TYPE_CONVERSION, ScoreRule::ONE); } else { $ct = new Criteria(); $ct->add(GradeConversionPeer::TYPE_CONVERSION, ScoreRule::TWO); } $grade_convs = GradeConversionPeer::doSelect($ct); $scores = $this->getRequestParameter('score'); foreach ($scores as $k => $score) { if ($score != null) { ## Simpan if ($score != '-') { $ids = split('_', $k); ## $ids[0] = Student Accal Id ## $ids[1] = Cur13 Term Spec Id $cr = new Criteria(); $cr->add(Cur13GradePeer::STUDENT_ACCAL_ID, $ids[0]); $cr->add(Cur13GradePeer::CUR13_TERM_SPEC_ID, $ids[1]); $g = Cur13GradePeer::doSelectOne($cr); if ($g == null) { $g = new Cur13Grade(); } $g->setStudentAccalId($ids[0]); $g->setCur13TermSpecId($ids[1]); $g->setGradeScale($score); $g->save(); $crm = new Criteria(); $crm->add(Cur13TermSpecPeer::CUR13_TERM_ID, $cur13_term->getId()); $crm->addJoin(Cur13GradePeer::CUR13_TERM_SPEC_ID, Cur13TermSpecPeer::ID); $crm->add(Cur13GradePeer::STUDENT_ACCAL_ID, $ids[0]); #$crm->addDescendingOrderByColumn(Cur13GradePeer::GRADE_SCALE); #$crm->setLimit(1); #$modus = Cur13GradePeer::doSelectOne($crm); $alls = Cur13GradePeer::doSelect($crm); $total = 0; $count = 0; foreach ($alls as $all) { $total += $all->getGradeScale(); $count += 1; } $avg = number_format($total / $count, 2); $avg_scale = number_format($avg / 100 * 4, 2); #$avg = $modus->getGradeScale(); $remark = ''; foreach ($grade_convs as $gc) { if ($avg_scale >= $gc->getMinScale() && $avg_scale <= $gc->getMaxScale()) { $remark = $gc->getName(); } } $cri = new Criteria(); $cri->add(Cur13GradeTermPeer::STUDENT_ACCAL_ID, $ids[0]); $cri->add(Cur13GradeTermPeer::CUR13_TERM_ID, $cur13_term->getId()); $gi = Cur13GradeTermPeer::doSelectOne($cri); if ($gi == null) { $gi = new Cur13GradeTerm(); } $gi->setStudentAccalId($ids[0]); $gi->setCur13TermId($cur13_term->getId()); $gi->setGrade($avg); $gi->setGradeScale($avg_scale); $gi->setRemark($remark); $gi->save(); ## Delete } else { $cr = new Criteria(); $cr->add(Cur13GradePeer::STUDENT_ACCAL_ID, $ids[0]); $cr->add(Cur13GradePeer::CUR13_TERM_SPEC_ID, $ids[1]); $g = Cur13GradePeer::doSelectOne($cr); if ($g != null) { $g->delete(); } } } } if ($cur13_term->getCur13KiId() == ScoreRule::THREE) { return $this->redirect('course_sd/listScoreKi3?course_id=' . $course_schedule->getId() . '&cur13_ki_id=' . $cur13_term->getCur13KiId() . '&cur13_term_id=' . $cur13_term->getId()); } else { return $this->redirect('course_sd/listScoreKi4?course_id=' . $course_schedule->getId() . '&cur13_ki_id=' . $cur13_term->getCur13KiId() . '&cur13_term_id=' . $cur13_term->getId()); } }
public function addCur13Grade(Cur13Grade $l) { $this->collCur13Grades[] = $l; $l->setCur13TermSpec($this); }