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