From 0eb76deb99adce3aafd44f35ebaebf8a0fda502e Mon Sep 17 00:00:00 2001 From: Roger Feese <rfeese@unl.edu> Date: Mon, 18 Aug 2014 17:09:19 -0500 Subject: [PATCH] Added a method to update the ace recertification questions for a course model in memory. --- .../courses/controllers/EditController.php | 5 ++- .../modules/courses/models/CourseModel.php | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/application/modules/courses/controllers/EditController.php b/application/modules/courses/controllers/EditController.php index cc41c5aa..f57cd3d7 100644 --- a/application/modules/courses/controllers/EditController.php +++ b/application/modules/courses/controllers/EditController.php @@ -257,9 +257,12 @@ class Courses_EditController extends Creq_Controller_Action unset($session->currentSavedRequestId); } + //make sure the request is using the current ACE recertification questions + $course->updateAceRecertification(); + $session->request = $request; $session->course = $course; - $session->parentCourse = $parentCourse; + $session->parentCourse = $parentCourse; $this->_redirect('/courses/edit/index/id/' . $tempId); } diff --git a/application/modules/courses/models/CourseModel.php b/application/modules/courses/models/CourseModel.php index 98553dcf..7f6f7652 100644 --- a/application/modules/courses/models/CourseModel.php +++ b/application/modules/courses/models/CourseModel.php @@ -3901,5 +3901,48 @@ class Courses_CourseModel extends Unl_Model return $changes; } + + /** + * Update the ace recertification questions and answers. If there is a new version of the question set, it will be pulled in. + */ + public function updateAceRecertification() + { + $db = Zend_Registry::get('db'); + $select = new Zend_Db_Select($db); + $select->from(array('a' => 'creqCourseAceRecertifications')); + $select->where('a.generation = ?', $this->_data['course']); + + $record = $select->query()->fetch(); + + if($record){ + // for each AceRecertification record, get the questions and answers + //SELECT q.*, a.* FROM creq.creqCourseAceRecertifyAnswers AS a + //INNER JOIN creq.creqCourseAceRecertifyQuestions AS q ON a.questionId = q.courseAceRecertifyQuestionId + //INNER JOIN creq.creqCourseAceRecertifyQuestionSets AS s ON q.questionSetId = s.courseAceRecertifyQuestionSetId + //WHERE a.recertificationId = 785 ORDER BY q.questionSort; + $select = new Zend_Db_Select($db); + $select->from(array('a' => 'creqCourseAceRecertifyAnswers')); + $select->joinInner(array('q' => 'creqCourseAceRecertifyQuestions'), 'a.questionId = q.courseAceRecertifyQuestionId'); + $select->joinInner(array('s' => 'creqCourseAceRecertifyQuestionSets'), 'q.questionSetId = s.courseAceRecertifyQuestionSetId'); + $select->where('a.recertificationId = ?', $record['courseAceRecertificationId']); + $select->order('q.questionSort'); + $recordsRecertQA = $select->query()->fetchAll(); + } + + if (!$recordsRecertQA || ($self->_data['type'] == "official" && !empty($recordsRecertQA[0]["dateRetired"]))) { + // load current empty question set + //SELECT q.* FROM creq.creqCourseAceRecertifyQuestionSets as s + //INNER JOIN creq.creqCourseAceRecertifyQuestions AS q ON s.courseAceRecertifyQuestionSetId = q.questionSetId + //WHERE s.dateRetired IS NULL ORDER BY q.questionSort; + $select = new Zend_Db_Select($db); + $select->from(array('s' => 'creqCourseAceRecertifyQuestionSets')); + $select->joinInner(array('q' => 'creqCourseAceRecertifyQuestions'), 's.courseAceRecertifyQuestionSetId = q.questionSetId'); + $select->where('s.dateRetired IS NULL'); + $select->order('q.questionSort'); + $recordsRecertQA = $select->query()->fetchAll(); + } + + $self->_data['aceRecertification'] = $recordsRecertQA; + } } -- GitLab