Ejemplo n.º 1
0
 public function createAnswer($data, $alternativeRow)
 {
     DbTable_AnswerVerificador::getInstance()->getAdapter()->beginTransaction();
     try {
         $qstnId = $data['qstn_id'];
         $aaresult_value = $data['aaresult_value'];
         $data = $this->_filterInputAnswer($data)->getUnescaped();
         $data['aaresult_value'] = $aaresult_value;
         $answerRow = DbTable_AnswerVerificador::getInstance()->createRow()->setAlternativeId($data['alternative_id'])->setAnswerValue($data['answer_value'])->setStartTime($data['start_time'])->setEndTime($data['end_time'])->setAnswerDate($data['answer_date'])->setUserId($data['user_id'])->setEnterpriseId($data['enterprise_id']);
         //print_r($answerRow);exit
         //Zend_Debug::Dump($answerRow );exit;
         $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()));
         if ($alternativeRow->getAlternativeTypeId() == Model_AlternativeType::RESULT_ACTION) {
             $this->saveAnswerAnnualResult($answerRow, $data);
         }
         $Execution = new Model_Execution();
         $Execution->initExecution($qstnId, $data['user_id']);
         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);
     }
 }
Ejemplo n.º 2
0
 public function setExecutionProgress($QstnId, $UserId)
 {
     $qtdTotal = DbTable_Questionnaire::getInstance()->getQuestionnaireTotalQuestions($QstnId)->getQtdTotal();
     $qtdFaltante = count(DbTable_Questionnaire::getInstance()->needToFinish($QstnId, $UserId)->toArray());
     $qtdRealizado = $qtdTotal - $qtdFaltante;
     $pctRealizado = round($qtdRealizado / $qtdTotal * 100, 0);
     $executionRow = DbTable_Execution::getInstance()->fetchRow(array('UserId = ?' => $UserId, 'QuestionnaireId = ?' => $QstnId));
     if (!$executionRow) {
         $Execution = new Model_Execution();
         $executionRow = $Execution->initExecution($QstnId, $UserId);
     }
     $executionRow->setProgress($pctRealizado);
     $executionRow->save();
     return true;
 }