Skip to content
Snippets Groups Projects
Commit 50d78d43 authored by Tim Steiner's avatar Tim Steiner
Browse files

ApprovalActionMakeOfficial now also makes the newly official generation the current generation.

parent 2e08c0fd
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,7 @@ class Courses_ApprovalActionMakeOfficialModel extends Requests_ApprovalActionMod
$courses->setType('official');
}
Courses_CourseModel::save($courses);
Courses_CourseModel::makeCurrent($courses);
Requests_ApprovalChainModel::advance($requests);
return $requests;
}
......
......@@ -808,6 +808,7 @@ class Courses_CourseModel extends Unl_Model
. 'SET a.currentGeneration = b.currentGeneration '
. 'WHERE a.courseId = b.courseId ';
$db->query($sql);
$db->query('DROP TABLE creqCoursesUpdate');
// Update the courseGenerations table
......@@ -839,6 +840,7 @@ class Courses_CourseModel extends Unl_Model
. ' a.removed = b.removed '
. 'WHERE a.courseGenerationId = b.courseGenerationId ';
$db->query($sql);
$db->query('DROP TABLE creqCourseGenerationsUpdate');
// Update the courseDetails table
......@@ -882,6 +884,7 @@ class Courses_CourseModel extends Unl_Model
. ' a.description = b.description '
. 'WHERE a.courseDetailId = b.courseDetailId ';
$db->query($sql);
$db->query('DROP TABLE creqCourseDetailsUpdate');
}
static public function _insertAceOutcomes($models)
......@@ -1167,6 +1170,7 @@ class Courses_CourseModel extends Unl_Model
. 'WHERE a.courseCreditId = b.courseCreditId ';
$db->query($sql);
$db->query('DROP TABLE creqCourseCreditsUpdate');
}
static public function _deleteCredits($models)
......@@ -2206,5 +2210,54 @@ class Courses_CourseModel extends Unl_Model
return in_array($subject, self::$_subjectList);
}
static public function makeCurrent($courseModels)
{
if (!Unl_Util::isArray($courseModels)) {
if (!($courseModels instanceof self)) {
throw Exception(__CLASS__ . '::' . __METHOD__ . '(): invalid argument.');
}
$collection = new Unl_Model_Collection(__CLASS__);
$collection[] = $courseModels;
$courseModels = $collection;
}
if (count($courseModels) == 0) {
return;
}
$courseOfficialGenerations = array();
foreach ($courseModels as $courseModel) {
$courseId = $courseModel->_data['course'];
$generationId = $courseModel->getId();
$courseOfficialGenerations[$courseId] = $generationId;
}
$db = Zend_Registry::get('db');
$sql = 'CREATE TEMPORARY TABLE creqCoursesUpdate '
. 'SELECT * FROM creqCourses LIMIT 0';
$db->query($sql);
$sql = 'INSERT INTO creqCoursesUpdate VALUES ';
$sqlParts = array();
foreach ($courseOfficialGenerations as $courseId => $generationId) {
$sqlParts[] = $db->quoteInto('(?, ', $courseId)
. $db->quoteInto('?)' , $generationId);
}
$sql .= implode(', ', $sqlParts);
$db->query($sql);
$sql = 'UPDATE creqCourses AS a, '
. ' creqCoursesUpdate AS b '
. 'SET a.currentGeneration = b.currentGeneration '
. 'WHERE a.courseId = b.courseId ';
$db->query($sql);
$db->query('DROP TABLE creqCoursesUpdate');
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment