public static function getCourseSubjects($widget, $values) { $sf_user = sfContext::getInstance()->getUser(); $career_school_year = CareerSchoolYearPeer::retrieveByPK(sfContext::getInstance()->getUser()->getAttribute('career_school_year_id')); $career = $career_school_year->getCareer(); $c = new Criteria(); $c->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID); $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year->getId()); $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID); $c->add(CoursePeer::SCHOOL_YEAR_ID, SchoolYearPeer::retrieveCurrent()->getId()); $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID); $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID); $c->add(CareerSubjectPeer::YEAR, $values); if ($sf_user->isPreceptor()) { $course_ids = PersonalPeer::retrieveCourseIdsjoinWithDivisionCourseOrCommission($sf_user->getGuardUser()->getId(), true); $c->add(CoursePeer::ID, $course_ids, Criteria::IN); $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID); } $course_ids = array(); foreach (CourseSubjectPeer::doSelect($c) as $course_subject) { if ($course_subject->hasAttendanceForSubject()) { $course_ids[] = $course_subject->getId(); } } $criteria = new Criteria(); $criteria->add(CourseSubjectPeer::ID, $course_ids, Criteria::IN); $criteria->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID); CareerSubjectSchoolYearPeer::sorted($criteria); $widget->setOption('criteria', $criteria); }
public static function getCourseSUbjects($widget, $values) { $sf_user = sfContext::getInstance()->getUser(); $career_school_year = CareerSchoolYearPeer::retrieveByPK(sfContext::getInstance()->getUser()->getAttribute('career_school_year_id')); $c = new Criteria(); $c->addJoin(CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID); $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year->getId()); $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID); $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID); $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID); $c->add(CareerSubjectPeer::YEAR, $values); if ($sf_user->isPreceptor()) { $course_ids = PersonalPeer::retrieveCourseIdsjoinWithDivisionCourseOrCommission($sf_user->getGuardUser()->getId(), true); $c->add(CoursePeer::ID, $course_ids, Criteria::IN); $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID); } $widget->setOption('criteria', $c); }
public static function getStudentsForAttendance($sf_user, $division_id, $course_subject_id = null, $career_school_year_id = null) { $c = new Criteria(); $c->add(StudentCareerSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id); $c->addJoin(StudentCareerSchoolYearPeer::STUDENT_ID, StudentPeer::ID); $c->addJoin(CourseSubjectStudentPeer::STUDENT_ID, self::ID); $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID); $c->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID); if (!is_null($course_subject_id)) { $c->add(CourseSubjectPeer::ID, $course_subject_id); } $c->add(CoursePeer::SCHOOL_YEAR_ID, SchoolYearPeer::retrieveCurrent()->getId()); $c->setDistinct(); if ($division_id) { $c->add(CoursePeer::DIVISION_ID, $division_id); } if ($sf_user->isPreceptor()) { $course_ids = PersonalPeer::retrieveCourseIdsjoinWithDivisionCourseOrCommission($sf_user->getGuardUser()->getId(), true); $c->add(CoursePeer::ID, $course_ids, Criteria::IN); } else { $c->addJoin(PersonPeer::ID, self::PERSON_ID); } return self::doSelectActive($c); }