public function __construct()
 {
     $this->DbAppraiser = DbTable_AppraiserEnterprise::getInstance();
     $this->DbChecker = DbTable_CheckerEnterprise::getInstance();
     $this->DbEnterprise = DbTable_Enterprise::getInstance();
     $this->DbApeEvaluation = DbTable_ApeEvaluation::getInstance();
     $this->DbCheckerEvaluation = DbTable_CheckerEvaluation::getInstance();
     $this->DbApeEvaluationVerificador = DbTable_ApeEvaluationVerificador::getInstance();
 }
Пример #2
0
 public function saveApeEvaluationVerificador($questions, $evaluationRow, $answers = array(), $conclusao = '', $finalizar = false)
 {
     $tbApeEvaluationVerificador = DbTable_ApeEvaluationVerificador::getInstance();
     $appraiserEnterpriseId = $evaluationRow->getId();
     $userId = $evaluationRow->getUserId();
     $pontosFinal = 0;
     $finalizacaoSucesso = true;
     $questionsError = array();
     Zend_Registry::get('db')->beginTransaction();
     try {
         $evaluationRow->setStatus('I');
         $evaluationRow->save();
         $tbApeEvaluationVerificador->delete(array('AppraiserEnterpriseId = ?' => $appraiserEnterpriseId));
         foreach ($questions as $question) {
             $questionId = $question['Id'];
             if (!isset($questionId)) {
                 $finalizacaoSucesso = false;
                 $questionsError[$question['Bloco']][$question['Criterio']][$question['QuestaoLetra']] = array();
                 continue;
             }
             if (!isset($questionId) or $questionId != 1) {
                 $finalizacaoSucesso = false;
                 $questionsError[$question['Bloco']][$question['Criterio']][$question['QuestaoLetra']] = array();
             }
             if (isset($answers[$questionId]) and $answers[$questionId] == 2) {
                 $pontosFinal += $question['Peso'] * 0.5;
                 //50%
             } elseif (isset($answers[$questionId]) and $answers[$questionId] == 3) {
                 $pontosFinal += $question['Peso'] * 1;
                 //100%
             }
             $respostas = isset($answers[$questionId]) ? $answers[$questionId] : null;
             $appraiserEntRow = $tbApeEvaluationVerificador->createRow()->setAppraiserEnterpriseId($appraiserEnterpriseId)->setAvaliacaoPerguntaId($questionId)->setResposta($respostas)->setDate(new Zend_Db_Expr('NOW()'))->setPontosFinal($pontosFinal)->setUserId($userId);
             $appraiserEntRow->save();
         }
         if ($conclusao) {
             $evaluationRow->setConclusao($conclusao)->setConclusaoDate(new Zend_Db_Expr('NOW()'))->save();
         }
         if ($finalizar and $finalizacaoSucesso and $conclusao) {
             $evaluationRow->setStatus('C')->setPontos($pontosFinal)->save();
         }
         Zend_Registry::get('db')->commit();
         return array('status' => true, 'finalizacaoSucesso' => $finalizacaoSucesso, 'questionsError' => $questionsError);
     } catch (Vtx_UserException $e) {
         Zend_Registry::get('db')->rollBack();
         return array('status' => false, 'messageError' => $e->getMessage(), 'questionsError' => $questionsError);
     } catch (Exception $e) {
         Zend_Registry::get('db')->rollBack();
         throw new Exception($e);
     }
 }