コード例 #1
0
ファイル: actions.class.php プロジェクト: taryono/school
 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());
     }
 }
コード例 #2
0
ファイル: BaseCur13TermSpec.php プロジェクト: taryono/school
 public function addCur13Grade(Cur13Grade $l)
 {
     $this->collCur13Grades[] = $l;
     $l->setCur13TermSpec($this);
 }