Ejemplo n.º 1
0
 public function updateAnswer($answerId, $data, $alternativeRow)
 {
     DbTable_AnswerVerificador::getInstance()->getAdapter()->beginTransaction();
     try {
         $qstnId = $data['qstn_id'];
         $aaresult_value = $data['aaresult_value'];
         $answerRow = $this->getAnswerById($answerId);
         $alternativeIdOld = $answerRow->getAlternativeId();
         $data = $this->_filterInputAnswer($data)->getUnescaped();
         $data['aaresult_value'] = $aaresult_value;
         $answerRow->setAlternativeId($data['alternative_id'])->setAnswerValue($data['answer_value'])->setStartTime($data['start_time'])->setEndTime($data['end_time'])->setAnswerDate($data['answer_date']);
         $answerRow->save();
         $AnswerHistory = new Model_AnswerHistoryVerificador();
         $AnswerHistory->createAnswerHistory(array('user_id' => $data['logged_user_id'], 'answer_id' => $answerRow->getId(), 'alternative_id' => $answerRow->getAlternativeId(), 'answer_value' => $answerRow->getAnswerValue(), 'start_time' => $answerRow->getStartTime(), 'end_time' => $answerRow->getEndTime(), 'answer_date' => $answerRow->getAnswerDate(), 'enterprise_id' => $answerRow->getEnterpriseId()));
         $this->deleteOldAnswerAnnualResult($answerRow, $alternativeIdOld);
         if ($alternativeRow->getAlternativeTypeId() == Model_AlternativeType::RESULT_ACTION) {
             $this->saveAnswerAnnualResult($answerRow, $data, $alternativeIdOld);
         }
         $userLogged = Zend_Auth::getInstance()->getIdentity();
         $permissionEvaluationOfResponse = $this->Acl->isAllowed($userLogged->getRole(), 'management:questionnaire', 'evaluation-of-response');
         $Execution = new Model_Execution();
         $Execution->cleanDevolutive($qstnId, $data['user_id'], $permissionEvaluationOfResponse);
         DbTable_AnswerVerificador::getInstance()->getAdapter()->commit();
         return array('status' => true, 'row' => $answerRow);
     } catch (Vtx_UserException $e) {
         DbTable_AnswerVerificador::getInstance()->getAdapter()->rollBack();
         return array('status' => false, 'messageError' => $e->getMessage());
     } catch (Exception $e) {
         DbTable_AnswerVerificador::getInstance()->getAdapter()->rollBack();
         throw new Exception($e);
     }
 }