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
 /**
  * Salva uma avalição do verificador
  * @param type $evaluationRow
  * @param type $linhas1
  * @param type $linhas2
  * @param type $answers
  * @param type $finalizar
  * @return type
  * @throws Exception
  */
 public function saveCheckerEvaluation($commentQuestions, $evaluationQuestions, $evaluationRow, $comments = array(), $answers = array(), $conclusao = '', $finalizar = false)
 {
     $tbCheckerEvaluation = DbTable_CheckerEvaluation::getInstance();
     $checkerEnterpriseId = $evaluationRow->getId();
     $finalizacaoSucesso = true;
     $criteriosError = $evaluationQuestionsError = array();
     Zend_Registry::get('db')->beginTransaction();
     try {
         $evaluationRow->setStatus('I')->save();
         $tbCheckerEvaluation->delete(array('CheckerEnterpriseId = ?' => $checkerEnterpriseId));
         $qtdePontosForte = 0;
         foreach ($evaluationQuestions as $question) {
             $questionId = $question['Id'];
             if (!isset($answers[$questionId])) {
                 $finalizacaoSucesso = false;
                 $evaluationQuestionsError[$questionId] = array();
                 continue;
             }
             $resposta = isset($answers[$questionId]) ? $answers[$questionId] : null;
             if ($resposta == 'F') {
                 $qtdePontosForte++;
             }
             $checkerEntRow = $tbCheckerEvaluation->createRow()->setCheckerEnterpriseId($checkerEnterpriseId)->setQuestionCheckerId($questionId)->setResposta($resposta)->setCheckerEvaluationTypeId(2);
             $checkerEntRow->save();
         }
         if ($conclusao) {
             $evaluationRow->setConclusao($conclusao)->setConclusaoDate(new Zend_Db_Expr('NOW()'))->setQtdePontosFortes($qtdePontosForte)->save();
         }
         $criterioAnterior = '';
         foreach ($commentQuestions as $question) {
             $criterio = "{$question->getBloco()}{$question->getCriterio()}";
             if ($criterioAnterior == $criterio) {
                 continue;
             }
             $criterioAnterior = $criterio;
             if (!isset($comments[$criterio]) or trim($comments[$criterio]) == '') {
                 $finalizacaoSucesso = false;
                 $criteriosError[$question->getBloco()][$question->getCriterio()] = array();
                 continue;
             }
             $checkerEntRow = $tbCheckerEvaluation->createRow()->setCheckerEnterpriseId($checkerEnterpriseId)->setCriterionNumber($criterio)->setComment($comments[$criterio])->setCheckerEvaluationTypeId(1);
             $checkerEntRow->save();
         }
         if ($finalizar and $finalizacaoSucesso and $conclusao and $qtdePontosForte) {
             $evaluationRow->setQtdePontosFortes($qtdePontosForte)->setStatus('C')->save();
         }
         Zend_Registry::get('db')->commit();
         return array('status' => true, 'finalizacaoSucesso' => $finalizacaoSucesso, 'criteriosError' => $criteriosError, 'evaluationQuestionsError' => $evaluationQuestionsError);
     } catch (Exception $e) {
         Zend_Registry::get('db')->rollBack();
         throw new Exception($e);
     }
 }
Пример #3
0
 public function getAnswers()
 {
     $tbCheckerEvaluation = DbTable_CheckerEvaluation::getInstance();
     $select = $tbCheckerEvaluation->select()->from($tbCheckerEvaluation, array('QuestionCheckerId', 'Resposta'))->where('CheckerEnterpriseId = ? and CheckerEvaluationTypeId = 2', $this->getId());
     return $tbCheckerEvaluation->fetch($select, 'assoc');
 }