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(); }
/** * 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); } }