public function getAnswers($etapa = 'estadual')
 {
     $tbApeEvaluation = DbTable_ApeEvaluation::getInstance();
     $select = $tbApeEvaluation->select()->from($tbApeEvaluation, array('AvaliacaoPerguntaId', 'Resposta', 'Linha1', 'Linha2'))->where('AppraiserEnterpriseId = ?', $this->getId());
     //$sql = $select->__toString();
     //echo "$sql\n";exit;
     return $tbApeEvaluation->fetch($select, 'assoc');
 }
 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();
 }
Beispiel #3
0
 /**
  * Salva uma avalição do relato de uma candidata
  * @param type $evaluationRow
  * @param type $linhas1
  * @param type $linhas2
  * @param type $answers
  * @param type $finalizar
  * @return type
  * @throws Exception
  */
 public function saveEvaluation($questions, $evaluationRow, $linhas1, $linhas2, $answers = array(), $conclusao = '', $finalizar = false)
 {
     $tbApeEvaluation = DbTable_ApeEvaluation::getInstance();
     $appraiserEnterpriseId = $evaluationRow->getId();
     $pontosFinal = 0;
     $finalizacaoSucesso = true;
     $questionsError = array();
     Zend_Registry::get('db')->beginTransaction();
     try {
         $evaluationRow->setStatus('I')->save();
         $tbApeEvaluation->delete(array('AppraiserEnterpriseId = ?' => $appraiserEnterpriseId));
         foreach ($questions as $question) {
             //$question['peso']
             $questionId = $question['Id'];
             if (!isset($answers[$questionId]) and !$linhas1[$questionId] and !$linhas2[$questionId]) {
                 $finalizacaoSucesso = false;
                 $questionsError[$question->getBloco()][$question->getCriterio()][$question->getQuestaoLetra()] = array();
                 continue;
             }
             if (!isset($answers[$questionId]) or $answers[$questionId] != 'D' and (!$linhas1[$questionId] or !$linhas2[$questionId] or $linhas1[$questionId] > $linhas2[$questionId])) {
                 $finalizacaoSucesso = false;
                 $questionsError[$question->getBloco()][$question->getCriterio()][$question->getQuestaoLetra()] = array();
             }
             $appraiserEntRow = $tbApeEvaluation->createRow()->setAppraiserEnterpriseId($appraiserEnterpriseId)->setAvaliacaoPerguntaId($questionId)->setResposta(isset($answers[$questionId]) ? $answers[$questionId] : null)->setLinha1($linhas1[$questionId])->setLinha2($linhas2[$questionId]);
             $appraiserEntRow->save();
             if (isset($answers[$questionId]) and $answers[$questionId] == 'A') {
                 $pontosFinal += $question['Peso'] * 0.5;
                 //50%
             } elseif (isset($answers[$questionId]) and $answers[$questionId] == 'S') {
                 $pontosFinal += $question['Peso'] * 1;
                 //100%
             }
         }
         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);
     }
 }