예제 #1
0
파일: Faculty.php 프로젝트: hughnguy/php
 /**
  * Given a user and semester, fetch all students (excel friendly)
  * @param array $accommodations The accommodations to filter by
  * @param int $faculty_user_id The faculty user ID
  * @param string $semester
  * @return array
  */
 public function fetchAllStudentsExcel(array $accommodations, $faculty_user_id, $semester)
 {
     $semester = $this->db->clean($semester);
     $sql = "SELECT v.student_num AS column0, CONCAT(s.first_name, ' ', s.last_name) AS column1,\n                       s.email AS column2, c.code AS column3, c.section AS column4,\n                       GROUP_CONCAT(CONCAT(cc.professor_first_name, ' ', cc.professor_last_name) SEPARATOR ', ') AS column5,\n                       cc.professor_email AS column6, cc.teaching_method AS column7\n                  FROM org_student_course_classes y\n                  JOIN ventus_students v\n                    ON y.student_id = v.student_num\n                  JOIN org_students s\n                    ON v.student_num = s.student_id\n                  JOIN org_course_classes cc\n                    ON y.class_id = cc.class_id\n                  JOIN org_courses c\n                    ON c.course_id = cc.course_id\n                  JOIN ventus_student_accommodations vsa\n                    ON v.student_num = vsa.student_num\n             LEFT JOIN ventus_student_accommodations_exceptions vsae\n                    ON v.student_num = vsae.student_num\n                   AND vsae.course_code = c.code\n                   AND vsae.course_section = c.section\n                   AND vsae.session = c.session\n             LEFT JOIN ventus_students_courses_no_accommodations vscna\n                    ON v.student_num = vscna.student_num\n                  JOIN ventus_accommodations va \n                    ON vsa.accommodation_id = va.accommodation_id \n                    OR vsae.accommodation_id = va.accommodation_id \n                  JOIN ventus_accommodation_types vat \n                    ON va.type_id = vat.type_id\n                 WHERE v.access_profile_status='active'\n                   AND c.session = '{$semester}'\n                   AND (CURDATE() BETWEEN vsa.effective_on AND vsa.expires_on \n                    OR CURDATE() BETWEEN vsae.effective_on AND vsae.expires_on)\n                   AND vscna.opt_out_id IS NULL \n                   AND vat.category IN ('" . implode("','", $accommodations) . "')\n              GROUP BY v.student_num, c.code, c.section, c.session, cc.teaching_method";
     $students = $this->db->query($sql);
     return $this->facultyUserModel->filterByPermissions($faculty_user_id, $students, 'column3', 'column4');
 }
예제 #2
0
파일: NOE.php 프로젝트: hughnguy/php
 /**
  * For a given user, fetch all NOEs (Excel friendly)
  * @param int $faculty_user_id The faculty user ID
  * @param string $start The start of the date range
  * @param string $end The end of the date range
  * @return array
  */
 public function fetchNoticeDetailsForExport($faculty_user_id, $start, $end)
 {
     if (!ctype_digit($faculty_user_id) && !is_int($faculty_user_id)) {
         throw new \InvalidArgumentException('Invalid user ID');
     }
     $exams = parent::fetchNoticeDetailsForExport($start, $end);
     return $this->facultyUserModel->filterByPermissions($faculty_user_id, $exams, 'column0', 'column1');
 }