예제 #1
0
 public function getAverageForMarkNumber($mark_number = null)
 {
     if ($mark_number < $this->getCourse()->getCurrentPeriod() || is_null($mark_number) && $this->getCourse()->getIsClosed()) {
         $c = new Criteria();
         $c->add(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, $this->getId());
         $c->addJoin(CourseSubjectStudentMarkPeer::COURSE_SUBJECT_STUDENT_ID, CourseSubjectStudentPeer::ID);
         if (!is_null($mark_number)) {
             $c->add(CourseSubjectStudentMarkPeer::MARK_NUMBER, $mark_number);
         }
         $c->clearSelectColumns();
         $c->addSelectColumn("SUM(" . CourseSubjectStudentMarkPeer::MARK . ") as sum");
         $stmt = CourseSubjectStudentMarkPeer::doSelectStmt($c);
         $sum = $stmt->fetchAll(PDO::FETCH_COLUMN);
         return sprintf('%.4s', $sum[0] / CourseSubjectStudentMarkPeer::doCount($c));
     }
 }