/** * metodo para recuperar tudo na z * * @param type $questionnaire_id * @return boolean */ protected function recuperaValidaQuestionario($questionnaire_id) { $return = true; //objeto Questionario $objQuestionnaire = $this->Questionnaire->getQuestionnaireById($questionnaire_id); //tipo questionario $this->devolutive_id = $objQuestionnaire->getDevolutiveCalcId(); if (!$questionnaire_id || !$objQuestionnaire) { $return = false; } return $return; }
public function getArrayDevolutiveRAA($questionnaireId, $userId, $blockId = null) { try { $arrDevolutiveRAA = array(); $arrCriteria = array(); $arrBlocks = array(); $arrQuestionnaire = array(); $arrRadarData = array(); // Definições do Questionário $questionnaireDefs = $this->Questionnaire->getQuestionnaireById($questionnaireId); $arrQuestionnaire['title'] = $questionnaireDefs->getTitle(); $arrQuestionnaire['description'] = $questionnaireDefs->getDescription(); $arrQuestionnaire['long_description'] = $questionnaireDefs->getLongDescription(); $arrQuestionnaire['operation_beginning'] = Vtx_Util_Date::format_dma($questionnaireDefs->getOperationBeginning()); $arrQuestionnaire['operation_ending'] = Vtx_Util_Date::format_dma($questionnaireDefs->getOperationEnding()); // Definições da Questão $questionsDefs = $this->Question->getAllByQuestionnaireIdBlockId($questionnaireId, $blockId); $this->Block = new Model_Block(); foreach ($questionsDefs as $question_def) { $idBlock = ""; $idCriterion = ""; $questionId = $question_def->getId(); $question_value = $question_def->getQuestao(); $perguntas = $this->Block->cacheOrModelBlockById(63); // Grava a questão no array de devolutiva $arrDevolutiveRAA[$questionId]['designation'] = $question_def->getDesignacao(); $arrDevolutiveRAA[$questionId]['value'] = $question_value; $arrDevolutiveRAA[$questionId]['text'] = $question_def->getTexto(); $arrDevolutiveRAA[$questionId]['pergunta'] = $perguntas[$questionId]["QuestionSummary"]; // Verifica se existe Bloco válido e grava nos arrays de blocos e devolutiva $idBlock = $question_def->getBloco(); if ($idBlock != "" && $idBlock != 0) { $arrBlocks[$idBlock] = $question_def->getBlocoTitulo(); $arrDevolutiveRAA[$questionId]['block'] = $question_def->getBloco(); } // Verifica se existe Critério válido e grava nos arrays de critérios e devolutiva $idCriterion = $question_def->getCriterio(); if ($idCriterion != "" && $idCriterion != 0) { $arrCriteria[$idCriterion] = $question_def->getCriterioTitulo(); $arrDevolutiveRAA[$questionId]['criterion'] = $question_def->getCriterio(); } $isAnswered = $this->Question->isAnsweredByEnterprise($questionId, $userId); $isAnsweredVerificador = $this->Question->isAnsweredByVerificador($questionId, $this->userAuth->getUserId(), $userId); //var_dump(array_key_exists("objAnswered",$isAnsweredVerificador));exit; //var_dump($userId); /// print_r($this->Questionnaire->getQuestionsAnsweredByUserId($questionnaireId,43005, $blockId)); //exit; if ($isAnswered['status']) { // Recupera a resposta escrita $answer = $this->Question->getQuestionAnswer($questionId, $userId); if (!array_key_exists("objAnswered", $isAnsweredVerificador)) { $alternative_id = $answer['alternative_id']; $anwser_value = isset($answer['answer_value']) ? $answer['answer_value'] : ""; } else { $alternative_id = $isAnsweredVerificador["objAnswered"]['AlternativeId']; $anwser_value = isset($isAnsweredVerificador["objAnswered"]['AnswerValue']) ? $isAnsweredVerificador["objAnswered"]['AnswerValue'] : ""; } $arrDevolutiveRAA[$questionId]['alternative_id'] = $alternative_id; $arrDevolutiveRAA[$questionId]['write_answer'] = $anwser_value; if (count($answer['annual_result']) > 0) { $arrDevolutiveRAA[$questionId]['annual_result'] = $answer['annual_result']; $arrDevolutiveRAA[$questionId]['annual_result_unit'] = $answer['annual_result_unit']; } else { $arrDevolutiveRAA[$questionId]['annual_result'] = ""; $arrDevolutiveRAA[$questionId]['annual_result_unit'] = ""; } // Recupera o feedback da alternativa escolhida $alternative = $this->Alternative->getAlternativeById($alternative_id); $arrDevolutiveRAA[$questionId]['alternative_designation'] = $alternative->getDesignation(); $arrDevolutiveRAA[$questionId]['alternative_feedback'] = $alternative->getFeedbackDefault(); // Recupera o 'Pontos Fortes' do avaliador da resolução da questão $arrDevolutiveRAA[$questionId]['answer_feedback'] = $this->Question->getAnswerFeedback($isAnswered['objAnswered']->getAnswerId()); // Recupera o 'Oportunidades de melhoria' do avaliador da resolução da questão $arrDevolutiveRAA[$questionId]['answer_feedback_improve'] = $this->Question->getAnswerFeedbackImprove($isAnswered['objAnswered']->getAnswerId()); } // Recupera as alternativas da questão $alternativesDefs = $this->Alternative->getAllByQuestionId($questionId); try { foreach ($alternativesDefs as $alternative_def) { $arr_alternative[$alternative_def['Designation']] = $alternative_def; $arrDevolutiveRAA[$questionId]['alternatives'] = $arr_alternative; } } catch (Excception $e) { } } return array($arrDevolutiveRAA, $arrBlocks, $arrCriteria, $arrQuestionnaire); } catch (Vtx_UserException $e) { DbTable_Questionnaire::getInstance()->getAdapter()->rollBack(); return array('status' => false, 'messageError' => $e->getMessage()); } catch (Exception $e) { DbTable_Questionnaire::getInstance()->getAdapter()->rollBack(); throw new Exception($e); } exit; }