public static function retrieveForExaminationSubject(ExaminationSubject $examination_subject, PropelPDO $con = null)
 {
     $con = is_null($con) ? Propel::getConnection() : $con;
     $c = new Criteria();
     $c->addJoin(self::COURSE_SUBJECT_STUDENT_ID, CourseSubjectStudentPeer::ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->add(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, $examination_subject->getCareerSubjectSchoolYearId());
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
     $c->add(CareerSchoolYearPeer::SCHOOL_YEAR_ID, $examination_subject->getExamination()->getSchoolYearId());
     $c->add(self::EXAMINATION_NUMBER, $examination_subject->getExamination()->getExaminationNumber());
     $c->add(self::EXAMINATION_SUBJECT_ID, null, Criteria::ISNULL);
     return self::doSelect($c, $con);
 }
 public function getAvailableStudentsForManualExaminationSubject(ExaminationSubject $examination_subject)
 {
     $c = new Criteria();
     $c->add(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, $examination_subject->getCareerSubjectSchoolYearId());
     $c->addJoin(CourseSubjectPeer::ID, CourseSubjectStudentPeer::COURSE_SUBJECT_ID, Criteria::INNER_JOIN);
     $c->add(CourseSubjectStudentPeer::STUDENT_APPROVED_COURSE_SUBJECT_ID, null, Criteria::ISNULL);
     $c->addJoin(CourseSubjectStudentPeer::STUDENT_ID, StudentPeer::ID, Criteria::INNER_JOIN);
     $c->addJoin(CourseSubjectStudentPeer::ID, StudentDisapprovedCourseSubjectPeer::COURSE_SUBJECT_STUDENT_ID, Criteria::INNER_JOIN);
     $c->add(StudentDisapprovedCourseSubjectPeer::EXAMINATION_NUMBER, $examination_subject->getExamination()->getExaminationNumber());
     return StudentPeer::doSelect($c);
 }