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); } }
/** * 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); }