public function getAnualAverageForStudentCareerSchoolYear($student_career_school_year)
 {
     if ($this->hasApprovedAllCourseSubjects($student_career_school_year)) {
         $c = StudentApprovedCareerSubjectPeer::retrieveCriteriaForStudentCareerSchoolYear($student_career_school_year);
         $student_approved_career_subjects = StudentApprovedCareerSubjectPeer::doSelect($c);
         if ($student_career_school_year->getYear() == 4) {
             $sum = 0;
             $sum_introcuccion = 0;
             foreach ($student_approved_career_subjects as $student_approved_career_subject) {
                 if (in_array($student_approved_career_subject->getCareerSubject()->getSubject()->getId(), $this->_introduccion)) {
                     $sum_introcuccion += $student_approved_career_subject->getMark();
                 } else {
                     $sum += $student_approved_career_subject->getMark();
                 }
             }
             $sum += $sum_introcuccion / 3;
             $count = count($student_approved_career_subjects) - 2;
         } elseif ($student_career_school_year->getYear() == 6) {
             $sum = 0;
             foreach ($student_approved_career_subjects as $student_approved_career_subject) {
                 $is_historia = self::HISTORIA_DEL_ARTE == $student_approved_career_subject->getCareerSubject()->getSubjectId() || in_array($student_approved_career_subject->getCareerSubjectid(), array(261, 262));
                 if ($is_historia) {
                     $historia_mark = $this->getHistoriaDelArteMark($student_approved_career_subject->getStudent(), $student_approved_career_subject->getSchoolYear());
                 } else {
                     $sum += $student_approved_career_subject->getMark();
                 }
             }
             if (isset($historia_mark)) {
                 $sum += $historia_mark;
                 $count = count($student_approved_career_subjects) - 1;
             } else {
                 $count = count($student_approved_career_subjects);
             }
         } else {
             $sum = array_sum(array_map(create_function("\$css", "return \$css->getMark();"), $student_approved_career_subjects));
             $count = count($student_approved_career_subjects);
         }
         if ($sum > 0 && $count > 0) {
             return bcdiv($sum, $count, 2);
         }
     }
     return null;
 }
 public function fixApproved($con)
 {
     $c = new Criteria();
     $c->add(StudentApprovedCareerSubjectPeer::MARK, null, Criteria::ISNULL);
     $school_year = SchoolYearPeer::retrieveByPk(1);
     foreach (StudentApprovedCareerSubjectPeer::doSelect($c) as $student_approved_career_subject) {
         $course_subject_student = CourseSubjectStudentPeer::retrieveByStudentApprovedCareerSubject($student_approved_career_subject, $school_year);
         $mark = $course_subject_student->getCourseResult()->getMark();
         $student_approved_career_subject->setMark($mark);
         $student_approved_career_subject->save($con);
     }
 }
Example #3
0
 /**
  * Este metodo devuelve todas la materias que el alumno rindio. O promociono o tiene como equivalencia.
  *
  * @return <type>
  */
 public function getStudentApprovedCareerSubjects()
 {
     //Aprobadas
     $c = new Criteria();
     $c->add(StudentApprovedCareerSubjectPeer::STUDENT_ID, $this->getStudentId());
     $c->addJoin(StudentApprovedCareerSubjectPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID, Criteria::INNER_JOIN);
     $c->addJoin(CareerSubjectPeer::CAREER_ID, CareerPeer::ID, Criteria::INNER_JOIN);
     CareerSubjectPeer::sorted($c);
     $c->add(CareerPeer::ID, $this->getCareerId());
     $c->addAscendingOrderByColumn(StudentApprovedCareerSubjectPeer::CREATED_AT);
     return StudentApprovedCareerSubjectPeer::doSelect($c);
 }