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 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); } }
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'); }