Exemple #1
0
 /**
  * This method joins the preceptor indicated with the corresponing students.
  *
  * @return $criteria
  */
 public static function joinWithStudents(Criteria $c, $user_id, $return_ids = false)
 {
     $c1 = new Criteria();
     $c1->add(PersonPeer::USER_ID, $user_id);
     $c1->addJoin(PersonalPeer::PERSON_ID, PersonPeer::ID);
     $c1->addJoin(PersonalPeer::ID, DivisionPreceptorPeer::PRECEPTOR_ID);
     $c1->addJoin(DivisionPreceptorPeer::DIVISION_ID, DivisionStudentPeer::DIVISION_ID);
     $c1->clearSelectColumns();
     $c1->addSelectColumn(DivisionStudentPeer::STUDENT_ID);
     $c1->setDistinct();
     $stmt = DivisionStudentPeer::doSelectStmt($c1);
     $division_in = $stmt->fetchAll(PDO::FETCH_COLUMN);
     $c2 = new Criteria();
     self::joinWithCourse($c2, $user_id);
     $c2->addJoin(CourseSubjectPeer::COURSE_ID, CoursePeer::ID);
     $c2->addJoin(CourseSubjectPeer::ID, CourseSubjectStudentPeer::COURSE_SUBJECT_ID);
     $c2->clearSelectColumns();
     $c2->addSelectColumn(CourseSubjectStudentPeer::STUDENT_ID);
     $c2->setDistinct();
     $stmt = DivisionStudentPeer::doSelectStmt($c2);
     $course_in = $stmt->fetchAll(PDO::FETCH_COLUMN);
     $in = array_merge($course_in, $division_in);
     if ($return_ids) {
         return $in;
     }
     $c->add(StudentPeer::ID, $in, Criteria::IN);
     $c->setDistinct();
 }