diff --git a/application/modules/courses/controllers/EditController.php b/application/modules/courses/controllers/EditController.php index cc41c5aa04f006ed26eddabcd6719254d6bd4c02..f57cd3d7466ed1beeab8eeab1d64c1c51faa1de0 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 98553dcf984dea210791f9eeb81d6588775027a6..7f6f765286d16464533d2dec78b220bf21c00076 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; + } }