コード例 #1
0
ファイル: TeacherPeer.php プロジェクト: nvidela/kimkelen
 /**
  * This method joins the teacher indicated with the corresponing students.
  *
  * @return $criteria
  */
 public static function joinWithStudents(Criteria $c, $user_id)
 {
     $c1 = new Criteria();
     $c1->add(PersonPeer::USER_ID, $user_id);
     $c1->addJoin(PersonPeer::ID, TeacherPeer::PERSON_ID);
     $c1->addJoin(CourseSubjectTeacherPeer::TEACHER_ID, TeacherPeer::ID);
     $c1->addJoin(CourseSubjectTeacherPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c1->addJoin(CourseSubjectPeer::ID, CourseSubjectStudentPeer::COURSE_SUBJECT_ID);
     $c1->addJoin(CourseSubjectStudentPeer::STUDENT_ID, StudentPeer::ID);
     $c1->clearSelectColumns();
     $c1->addSelectColumn(StudentPeer::ID);
     $c1->setDistinct();
     $stmt = StudentPeer::doSelectStmt($c1);
     $student_ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
     $c->add(StudentPeer::ID, $student_ids, Criteria::IN);
 }
コード例 #2
0
 /**
  * Get every student that isnt inscripted in other division.
  * The inscription depends on the aproval method implemented by each school
  *
  * @param  Division     $division
  *
  * @return array Student[]
  */
 public function getAvailableStudentsForDivision(Division $division)
 {
     $students_in = array();
     foreach ($division->getCourses() as $course) {
         foreach ($course->getNonOptionCourseSubjects() as $course_subject) {
             $criteria_course = $this->getAvailableStudentsForCourseSubjectCriteria($course_subject);
             $criteria_course->clearSelectColumns();
             $criteria_course->addSelectColumn(StudentPeer::ID);
             $stmt = StudentPeer::doSelectStmt($criteria_course);
             $students_in = array_merge($stmt->fetchAll(PDO::FETCH_COLUMN), $students_in);
         }
     }
     $c = new Criteria();
     //$c->addAnd(StudentPeer::ID,$not_in,Criteria::NOT_IN);
     $c->add(StudentPeer::ID, $students_in, Criteria::IN);
     return StudentPeer::doSelect($c);
 }
コード例 #3
0
 /**
  * This methods returns the students available four a course that have a Division
  *
  * @see getAvailableStudentsForCourseSubjectCriteria
  *
  * @param CourseSubject $course_subject
  * @param Criteria $criteria
  * @param Boolean $filter_by_orientation
  * @return Criteria
  */
 public function getAvailableStudentsForDivisionCourseSubjectCriteria(CourseSubject $course_subject, $criteria = null, $filter_by_orientation = true)
 {
     $criteria = is_null($criteria) ? new Criteria() : $criteria;
     if ($course_subject->getCourse()->getDivision()) {
         $c = new Criteria();
         $c->add(DivisionStudentPeer::DIVISION_ID, $course_subject->getCourse()->getDivisionId());
         $c->addJoin(StudentPeer::ID, DivisionStudentPeer::STUDENT_ID);
         $c->clearSelectColumns();
         $c->addSelectColumn(StudentPeer::ID);
         $stmt = StudentPeer::doSelectStmt($c);
         $in = $stmt->fetchAll(PDO::FETCH_COLUMN);
         $criteria->addAnd(StudentPeer::ID, $in, Criteria::IN);
     }
     return $this->getAvailableStudentsForCourseSubjectCriteria($course_subject, $criteria, $filter_by_orientation);
 }
コード例 #4
0
 public function addIsMatriculatedColumnCriteria($criteria, $field, $value)
 {
     if ($value != '') {
         $c = new Criteria();
         $c->add(SchoolYearPeer::ID, SchoolYearPeer::retrieveCurrent()->getId());
         $c->addJoin(SchoolYearPeer::ID, SchoolYearStudentPeer::SCHOOL_YEAR_ID);
         $c->addJoin(StudentPeer::ID, SchoolYearStudentPeer::STUDENT_ID);
         $c->clearSelectColumns();
         $c->addSelectColumn(StudentPeer::ID);
         $stmt = StudentPeer::doSelectStmt($c);
         $ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
         if ($value == '1') {
             $criteria->add(StudentPeer::ID, $ids, Criteria::IN);
         } else {
             $criteria->add(StudentPeer::ID, $ids, Criteria::NOT_IN);
         }
     }
 }
コード例 #5
0
ファイル: Course.php プロジェクト: nvidela/kimkelen
 public function canBeClosed(PropelPDO $con = null)
 {
     if ($this->getIsClosed()) {
         return false;
     }
     if ($this->countStudents() == 0) {
         return false;
     }
     //busco los retirados o con reserva de banco
     $criteria = new Criteria();
     $criteria->addJoin(StudentCareerSchoolYearPeer::STUDENT_ID, StudentPeer::ID);
     $criterion = $criteria->getNewCriterion(StudentCareerSchoolYearPeer::STATUS, StudentCareerSchoolYearStatus::WITHDRAWN, Criteria::EQUAL);
     $criterion->addOr($criteria->getNewCriterion(StudentCareerSchoolYearPeer::STATUS, StudentCareerSchoolYearStatus::WITHDRAWN_WITH_RESERVE, Criteria::EQUAL));
     $criteria->add($criterion);
     $criteria->clearSelectColumns();
     $criteria->addSelectColumn(StudentPeer::ID);
     $stmt = StudentPeer::doSelectStmt($criteria);
     $ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
     $c = new Criteria();
     $c->addJoin(CourseSubjectStudentMarkPeer::COURSE_SUBJECT_STUDENT_ID, CourseSubjectStudentPeer::ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->addJoin(CourseSubjectStudentPeer::STUDENT_ID, StudentPeer::ID);
     $c->add(CourseSubjectStudentPeer::IS_NOT_AVERAGEABLE, false);
     $c->addJoin(StudentPeer::PERSON_ID, PersonPeer::ID);
     $c->addJoin(PersonPeer::IS_ACTIVE, true);
     $c->addJoin(CourseSubjectPeer::COURSE_ID, $this->getId());
     $c->add(CourseSubjectStudentMarkPeer::MARK_NUMBER, $this->getCurrentPeriod());
     $c->add(CourseSubjectStudentMarkPeer::MARK, null, Criteria::ISNULL);
     $c->add(StudentPeer::ID, $ids, Criteria::NOT_IN);
     return CourseSubjectStudentMarkPeer::doCount($c) == 0 && $this->isCurrentSchoolYear();
 }
コード例 #6
0
ファイル: CourseSubject.php プロジェクト: nvidela/kimkelen
 public function getCourseSubjectStudents($criteria = null, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria();
     }
     //busco los retirados o con reserva de banco
     $c = new Criteria();
     $c->addJoin(StudentCareerSchoolYearPeer::STUDENT_ID, StudentPeer::ID);
     $criterion = $c->getNewCriterion(StudentCareerSchoolYearPeer::STATUS, StudentCareerSchoolYearStatus::WITHDRAWN, Criteria::EQUAL);
     $criterion->addOr($c->getNewCriterion(StudentCareerSchoolYearPeer::STATUS, StudentCareerSchoolYearStatus::WITHDRAWN_WITH_RESERVE, Criteria::EQUAL));
     $c->add($criterion);
     $c->clearSelectColumns();
     $c->addSelectColumn(StudentPeer::ID);
     $stmt = StudentPeer::doSelectStmt($c);
     $ids = $stmt->fetchAll(PDO::FETCH_COLUMN);
     $criteria->addJoin(CourseSubjectStudentPeer::STUDENT_ID, StudentPeer::ID);
     $criteria->add(CourseSubjectStudentPeer::IS_NOT_AVERAGEABLE, false);
     $criteria->addJoin(StudentPeer::PERSON_ID, PersonPeer::ID);
     $criteria->addJoin(CourseSubjectStudentPeer::STUDENT_ID, StudentCareerSchoolYearPeer::STUDENT_ID);
     $criteria->add(StudentPeer::ID, $ids, Criteria::NOT_IN);
     $criteria->setDistinct();
     $criteria->addAscendingOrderByColumn(PersonPeer::LASTNAME);
     return parent::getCourseSubjectStudents($criteria);
 }