public function evaluateCareerSchoolYearStudent(CareerSchoolYear $career_school_year, Student $student, PropelPDO $con = null)
 {
     $con = is_null($con) ? Propel::getConnection() : $con;
     // obtenemos mas materias de este año
     #$course_subject_students = CourseSubjectStudentPeer::retrieveByCareerSchoolYearAndStudent($career_school_year, $student, $con);
     //$c = CourseSubjectStudentPeer::retrieveCriteriaByCareerSchoolYearAndStudent($career_school_year, $student, $con);
     //$c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID, Criteria::INNER_JOIN);
     //$c->add(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, $this->getCurrentHistoriaDelArte()->getId(), Criteria::NOT_EQUAL);
     // para todas las materias cursadas este año
     //$course_subject_students = CourseSubjectStudentPeer::doSelect($c);
     $school_year = SchoolYearPeer::retrieveCurrent();
     $course_subject_students = $student->getCourseSubjectStudentsForSchoolYear($school_year);
     CourseSubjectStudentPeer::clearInstancePool();
     unset($school_year);
     foreach ($course_subject_students as $course_subject_student) {
         // obtenemos el resultado (aprobada o desaprobada) y la cerramos.
         // para el caso de las aprobadas, se crea la mesa de examen final (StudentApprovedCareerSubject)
         // de lo contrario, la inscripción a la mesa de examen (TODO)
         $result = $course_subject_student->getCourseResult($con);
         if (!is_null($result)) {
             $result->close($con);
             ###Liberando memoria ###
             $result->clearAllReferences(true);
             unset($result);
         }
         $course_subject_student->clearAllReferences(true);
         unset($course_subject_student);
         ###########################
     }
     ###Liberando memoria ###
     unset($course_subject_students);
     StudentApprovedCourseSubjectPeer::clearInstancePool();
     StudentDisapprovedCourseSubjectPeer::clearInstancePool();
     ################################
     if ($this->getCurrentHistoriaDelArte()) {
         $this->evaluateHistoriaDelArteCareerSchoolYearStudent($career_school_year, $student, $con);
     }
 }
 public function evaluateCareerSchoolYearStudent(CareerSchoolYear $career_school_year, Student $student, PropelPDO $con = null)
 {
     $con = is_null($con) ? Propel::getConnection() : $con;
     // obtenemos las materias de este año
     #$course_subject_students = CourseSubjectStudentPeer::retrieveByCareerSchoolYearAndStudent($career_school_year, $student, $con);
     $c = CourseSubjectStudentPeer::retrieveCriteriaByCareerSchoolYearAndStudent($career_school_year, $student, $con);
     $pager = new sfPropelPager('CourseSubjectStudent', 100);
     $pager->setCriteria($c);
     $pager->init();
     for ($i = 1; $i < $pager->getLastPage() + 1; $i++) {
         $course_subject_students = $pager->getResults();
         // para todas las materias cursadas este año
         foreach ($course_subject_students as $course_subject_student) {
             // obtenemos el resultado (aprobada o desaprobada) y la cerramos.
             // para el caso de las aprobadas, se crea la mesa de examen final (StudentApprovedCareerSubject)
             // de lo contrario, la inscripción a la mesa de examen (TODO)
             $result = $course_subject_student->getCourseResult($con);
             if (!is_null($result)) {
                 $result->close($con);
             }
         }
         ###Liberando memoria ###
         CourseSubjectStudentPeer::clearInstancePool();
         StudentApprovedCourseSubjectPeer::clearInstancePool();
         StudentDisapprovedCourseSubjectPeer::clearInstancePool();
         ################################
         $pager->setPage($pager->getPage() + 1);
         $pager->init();
     }
     unset($pager);
     unset($c);
 }