public function getFinalGrade() { $c = new Criteria(); $c->addDescendingOrderByColumn(GradeConversionPeer::GRADE); $grade_convs = GradeConversionPeer::doSelect($c); $subject_accal = $this->getSubjectAccal(); $student_scores = $this->getStudentScores(); if (!$subject_accal) { return array('-', 0); } $subject_gradings = $subject_accal->getSubjectGradings(); $final_score = 0; $final_grade = '-'; $has_grade = false; foreach ($subject_gradings as $sg) { $gc = $sg->getGradeComponent(); $c = new Criteria(); $c->add(StudentScorePeer::GRADE_COMPONENT_ID, $gc->getId()); $c->add(StudentScorePeer::STUDENT_COURSE_ID, $this->getId()); $scores = StudentScorePeer::doSelect($c); $score_count = count($scores); if ($score_count > 0) { $has_grade = true; } $total_score = 0; foreach ($scores as $s) { $total_score += $s->getGrade(); } if ($score_count) { $score = intval($total_score) / intval($score_count); $score = $score * $sg->getPercentage() / 100; $final_score += $score; } } foreach ($grade_convs as $gc) { if ($final_score >= $gc->getMinValue() && $final_score <= $gc->getMaxValue()) { $final_grade = $gc->getName(); break; } } if ($has_grade) { return array($final_grade, $final_score); } return array('-', 0); }
public static function doSelectByStudentCourse() { $student_score_id = sfContext::getInstance()->getRequest()->getParameter('id'); $student_score = StudentScorePeer::retrieveByPK($student_score_id); $subject_accal = null; $objs = array(); if ($student_score) { $subject_accal = $student_score->getStudentCourse()->getSubjectAccal(); } if ($subject_accal == null) { return $objs; } $subject_gradings = $subject_accal->getSubjectGradings(); foreach ($subject_gradings as $sg) { $objs[] = $sg->getGradeComponent(); } return $objs; }
<td><?php echo $d->getStudent()->toString(); ?> </td> <?php if ($subject_grading) { ?> <td> <?php echo $subject_grading->getPercentage(); ?> </td> <?php $c = new Criteria(); $c->add(StudentScorePeer::GRADE_COMPONENT_ID, $subject_grading->getGradeComponentId()); $c->add(StudentScorePeer::STUDENT_COURSE_ID, $d->getStudentCourseId()); $student_score = StudentScorePeer::doSelectOne($c); if ($student_score) { ?> <td><?php echo input_tag('student_score_update_grade[' . $student_score->getId() . ']', $student_score->getGrade(), array('size' => 5, 'maxlength' => 5)); ?> </td> <td><?php echo input_tag('student_score_update_remark[' . $student_score->getId() . ']', $student_score->getRemark(), array('size' => 32, 'maxlength' => 255)); ?> </td> <td><?php echo select_tag('student_score_update_citation[' . $student_score->getId() . ']', options_for_select($citations, $student_score->getCitationId()), array('include_blank' => true, 'multiple' => false, 'size' => 1)); ?> </td> <?php
public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = StudentScorePeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setStudentCourseId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setGradeComponentId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setGrade($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setCitationId($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setRemark($arr[$keys[5]]); } }
public function executeUpdateScore() { $ss_update_grade = $this->getRequestParameter('student_score_update_grade'); $ss_update_rem = $this->getRequestParameter('student_score_update_remark'); $ss_update_cit = $this->getRequestParameter('student_score_update_citation'); $ss_add_grade = $this->getRequestParameter('student_score_add_grade'); $ss_add_rem = $this->getRequestParameter('student_score_add_remark'); $ss_add_cit = $this->getRequestParameter('student_score_add_citation'); $subject_accal_id = $this->getRequestParameter('subject_accal_id'); $class_group_id = $this->getRequestParameter('class_group_id'); $this->forward404Unless($subject_accal_id); foreach ($ss_update_grade as $ss_id => $ss_grade) { if ($ss_grade) { $ss = StudentScorePeer::retrieveByPK($ss_id); $ss->setGrade($ss_grade); if ($ss_update_rem[$ss_id]) { $ss->setRemark($ss_update_rem[$ss_id]); } else { $ss->setRemark(''); } if ($ss_update_cit[$ss_id]) { $ss->setCitationId($ss_update_cit[$ss_id]); } else { $ss->setCitationId(''); } $ss->save(); } } foreach ($ss_add_grade as $sc_id => $grade_comps) { foreach ($grade_comps as $gc_id => $grade) { if ($grade > 0) { $ss = new StudentScore(); $ss->setStudentCourseId($sc_id); $ss->setGradeComponentId($gc_id); $ss->setGrade($grade); if ($ss_add_rem[$sc_id][$gc_id]) { $ss->setRemark($ss_add_rem[$sc_id][$gc_id]); } if ($ss_add_cit[$sc_id][$gc_id]) { $ss->setCitationId($ss_add_cit[$sc_id][$gc_id]); } $ss->save(); } } } return $this->redirect('subject_accal_l/editScore?subject_accal_id=' . $subject_accal_id . '&class_group_id=' . $class_group_id); }
public function getStudentScoresJoinCitation($criteria = null, $con = null) { include_once 'lib/model/om/BaseStudentScorePeer.php'; if ($criteria === null) { $criteria = new Criteria(); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collStudentScores === null) { if ($this->isNew()) { $this->collStudentScores = array(); } else { $criteria->add(StudentScorePeer::STUDENT_COURSE_ID, $this->getId()); $this->collStudentScores = StudentScorePeer::doSelectJoinCitation($criteria, $con); } } else { $criteria->add(StudentScorePeer::STUDENT_COURSE_ID, $this->getId()); if (!isset($this->lastStudentScoreCriteria) || !$this->lastStudentScoreCriteria->equals($criteria)) { $this->collStudentScores = StudentScorePeer::doSelectJoinCitation($criteria, $con); } } $this->lastStudentScoreCriteria = $criteria; return $this->collStudentScores; }
public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(StudentScorePeer::ID, $pks, Criteria::IN); $objs = StudentScorePeer::doSelect($criteria, $con); } return $objs; }