From 81f73533bd30109c41294ff02aa49846d34c7284 Mon Sep 17 00:00:00 2001
From: Tim Steiner <tsteiner2@unl.edu>
Date: Mon, 20 Jul 2009 16:33:53 +0000
Subject: [PATCH] When checking for active requests with a give course code,
 added a check for NewCourse requests.

---
 .../modules/courses/models/CourseModel.php    | 31 ++++++++++++++++---
 1 file changed, 27 insertions(+), 4 deletions(-)

diff --git a/application/modules/courses/models/CourseModel.php b/application/modules/courses/models/CourseModel.php
index ff50211c..b17cce5c 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;
 	}
-- 
GitLab