diff --git a/application/modules/courses/models/CourseModel.php b/application/modules/courses/models/CourseModel.php index ff50211c86af0cb579dd8390e0c8e45014f12cde..b17cce5c186ada360dcd799fe0e361a16329c2a6 100644 --- a/application/modules/courses/models/CourseModel.php +++ b/application/modules/courses/models/CourseModel.php @@ -437,19 +437,21 @@ class Courses_CourseModel extends Unl_Model } $select->where('r.complete = "no"'); */ + + // First, check for requests based on a course with the given course code. $select = new Zend_Db_Select($db); $select->distinct(); $select->from(array('c' => 'creqCourseCodes'), array()); + $select->where('c.subject = ?', $subject); + $select->where('c.courseNumber = ?', $courseNumber); + $select->where('c.courseLetter = ?', $courseLetter); $select->join(array('x' => 'creqCourseCrosslistings'), 'c.courseCodeId = x.courseCode', array()); $select->join(array('g1' => 'creqCourseGenerations'), 'x.generation = g1.courseGenerationId', array()); + $select->where('g1.removed = ?', 'no'); $select->join(array('p' => 'creqCourses'), 'g1.courseGenerationId = p.currentGeneration', array()); $select->join(array('g2' => 'creqCourseGenerations'), 'g1.course = g2.course', array()); $select->join(array('r' => 'creqRequests'), 'g2.request = r.requestId', array('requestId')); - $select->where('g1.removed = ?', 'no'); - $select->where('c.subject = ?', $subject); - $select->where('c.courseNumber = ?', $courseNumber); - $select->where('c.courseLetter = ?', $courseLetter); $select->where('r.complete = ?', 'no'); $records = $select->query()->fetchAll(); @@ -457,7 +459,28 @@ class Courses_CourseModel extends Unl_Model foreach ($records as $record) { $requestIds[] = $record['requestId']; } + + // Second, check for New Course requests with the given course code. + + $select = new Zend_Db_Select($db); + $select->distinct(); + $select->from(array('c' => 'creqCourseCodes'), array()); + $select->where('c.subject = ?', $subject); + $select->where('c.courseNumber = ?', $courseNumber); + $select->where('c.courseLetter = ?', $courseLetter); + $select->join(array('x' => 'creqCourseCrosslistings'), 'c.courseCodeId = x.courseCode', array()); + $select->join(array('g1' => 'creqCourseGenerations'), 'x.generation = g1.courseGenerationId', array()); + $select->where('g1.type = ?', 'proposed'); + $select->join(array('r' => 'creqRequests'), 'g1.request = r.requestId', array('requestId')); + $select->where('r.complete = ?', 'no'); + $select->join(array('t' => 'creqRequestTypes'), 'r.type = t.requestTypeId', array()); + $select->where('t.name LIKE ?', '%new%'); + $records = $select->query()->fetchAll(); + foreach ($records as $record) { + $requestIds[] = $record['requestId']; + } + $requests = Requests_RequestModel::find($requestIds); return $requests; }