/** * checa se usuario terminou totalmente cada uma das etapas * * @param int $enterpriseId * @param int $userId * @return array */ public function terminoEtapas() { $etapas = $this->varEnterpriseRowAndUserId(); $modelQuest = new Model_Questionnaire(); $arrTerminoEtapas = $modelQuest->terminoEtapas($etapas['enterpriseId'], $etapas['userId']); return $arrTerminoEtapas; }
public function init() { $Questionnaire = new Model_Questionnaire(); $this->context = 'pending_candidature'; $this->competitionId = Zend_Registry::get('configDb')->competitionId; $this->questionnaire = $Questionnaire->getCurrentExecution(); $this->EmailMessage = new Model_EmailMessage(); $this->EmailRecipient = new Model_EmailRecipient(); $this->modelUser = new Model_User(); if (!$this->questionnaire) { throw new Exception('nenhum questionário ativo'); } }
/** * faz validacao das questoes respondidas em um questionario * */ public static function verificaQuestoesRespondidas(Model_Questionnaire $obj, $questionnaire_id, $user_id) { /** * verifica se todas as questoes foram respondidas * É um requisito para que a devolutiva seja gerada */ $return = true; $questoesRespondidas = $obj->isFullyAnswered($questionnaire_id, $user_id); if (!$questoesRespondidas) { $return = false; } return $return; }
/** * * @param type $questionnaire_id * @param type $user_id * @throws Exception */ protected function verificaQuestoesRespondidas($questionnaire_id, $user_id) { /** * verifica se todas as questoes foram respondidas * É um requisito para que a devolutiva seja gerada */ $return = true; $currentBlockIdNegocios = Zend_Registry::get('configDb')->qstn->currentBlockIdNegocios; $questoesRespondidas = $this->Questionnaire->isFullyAnswered($questionnaire_id, $user_id, $currentBlockIdNegocios); if (!$questoesRespondidas) { $return = false; } return $return; }
/** * * Printa pdf usando FPDF * * @param type $questionnaireId * @param type $userId * @param type $dirName * @param type $publicDir * @param type $arqName * @param type $isRA * @return type */ public function makePdfDevolutiveAutoAvaliacao($questionnaireId, $userId, $dirName, $publicDir, $arqName, $isRA = false) { $arrBlocksResult = $this->Questionnaire->getBlocksAutoavaliacao($questionnaireId); if ($arrBlocksResult) { $governancaBlockId = $arrBlocksResult[0]; $gestaoBlockId = 0; list($arrEnterprise, $arrContact, $arrIssues) = $this->getEnterpriseData($userId); list($arrDevolutiveGov, $arrBlocksGov, $arrCriteriaGov, $arrQuestionnaire) = $this->getArrayDevolutiveRAA($questionnaireId, $userId, $governancaBlockId); list($arrDevolutiveGes, $arrBlocksGes, $arrCriteriaGes, $arrQuestionnaire) = $this->getArrayDevolutiveRAA($questionnaireId, $userId, $gestaoBlockId); list($arrRadarDataGes, $arrTabulationGes, $arrPunctuationGes) = $this->Questionnaire->getRadarData($questionnaireId, $gestaoBlockId, $userId); $strPathRadar = $this->makeRadarPlot($arrCriteriaGes, $arrRadarDataGes, $arrTabulationGes, $arrPunctuationGes, $dirName); $arrScores = $this->makeScoreRAA($questionnaireId, $userId); $scorePart1 = $arrScores[0]; $scorePart2 = $arrScores[1]; require_once APPLICATION_PATH . '/models/DevolutiveRAA.php'; $isRA ? $arrHeader['title'] = 'Relatório de Avaliação' : ($arrHeader['title'] = 'Questionário de Autoavaliação'); $arrHeader['title'] = "Relatório de Avaliação"; $pdf = new Model_DevolutiveRAA($arrHeader, $isRA); // Desabilita header e footer $pdf->header = 0; $pdf->footer = 0; // Prepara variáveis para paginação $pdf->AliasNbPages(); // Capa $pdf->FirstPage($arrQuestionnaire); // Habilita header e footer $pdf->header = 1; $pdf->AddPage(); $pdf->footer = 1; // Mensagem de apresentação //$pdf->Presentation(); // Dados Cadastrais do avaliado $pdf->EnterpriseData($arrEnterprise, $arrContact, $arrIssues); // Primeira parte da Devolutiva $pdf->Model(); // Primeira parte da Devolutiva $pdf->FirstPart($scorePart1); // Comentários gerados a partir das respostas Parte I $offSet = $pdf->Devolutive($arrDevolutiveGov, $arrBlocksGov, $arrCriteriaGov, 0); // Segunda parte da Devolutiva $pdf->SecondPart($arrCriteriaGes, $offSet, $strPathRadar, $scorePart1, $scorePart2); // Comentários gerados a partir das respostas Parte II $pdf->Devolutive($arrDevolutiveGes, $arrBlocksGes, $arrCriteriaGes, $offSet); // Renderização do arquivo PDF $pdf->Output($dirName . $arqName); // Configura as permissões do arquivo chmod($dirName . $arqName, 0666); if ($strPathRadar) { // Remove o arquivo temporário do radar unlink($dirName . 'radarTMP.png'); } // Envia o e-mail com o link da devolutiva para download. $userName = $this->modelUser->getUserById($userId)->getName(); $link = $_SERVER['HTTP_ORIGIN'] . '' . $publicDir . $arqName; $this->createDevolutiveNotification($arrEnterprise['E-mail'], $userName, $link); } else { require_once APPLICATION_PATH . '/models/DevolutiveRAA.php'; $arrHeader['title'] = "Relatório de Autoavaliação"; $pdf = new Model_DevolutiveRAA($arrHeader); // Desabilita header e footer $pdf->header = 0; $pdf->footer = 0; // Prepara variáveis para paginação $pdf->AliasNbPages(); // Habilita header e footer $pdf->header = 1; $pdf->AddPage(); $pdf->footer = 1; $pdf->SetFont('Arial', 'BI', 16); $pdf->SetTextColor(255, 0, 0); $pdf->MultiCell(190, 13, utf8_decode("Faltando o cadastro dos blocos Governança ou Gestão"), 0, "C"); // Renderização do arquivo PDF $pdf->Output($dirName . $arqName); // Configura as permissões do arquivo chmod($dirName . $arqName, 0666); } return $publicDir . $arqName; }
public function reportGlobalAction() { $this->incluirJoinRegionalForce = false; $filter = $this->_getParam('filter', null); $filter['show_only'] = 'candidatas'; if (isset($filter['competition_id']) and $filter['competition_id'] != $this->competitionId) { throw new Exception('access denied'); return; } $format = $this->_getParam('format', null); $render = $format == 'csv' ? 'report-global' : 'index'; $this->_helper->viewRenderer->setRender($render); if (!$format) { self::indexAction(); return; } $cacheQuestion = new Vtx_Cache_MPE_QuestionarioCache(); $Qstn = new Model_Questionnaire(); $alternativesByQuestion = $allAlternativeIds = array(); $blockId = isset($filter['qstn']) ? $filter['qstn'] : Zend_Registry::get('configDb')->qstn->currentBlockIdNegocios; //$this->view->showRadar = $blockId==Model_Devolutive::BLOCO_GESTAOEMPRESA? true : false; $this->view->showRadar = false; $questions = $cacheQuestion->BlocoECriterios($blockId, $Qstn->getCurrentQstnRow()); $this->view->questions = $questions = $questions[$blockId]; foreach ($questions['Criterions'] as $criterion) { foreach ($criterion['Questions'] as $questionId => $question) { $alternativesQuestion = $cacheQuestion->alternativasEQuestoes($question['QuestionId'], new Model_Alternative()); $alternativesByQuestion[$questionId] = $alternativesQuestion; foreach ($alternativesQuestion as $alternative) { $allAlternativeIds[] = $alternative['Id']; } } } $this->filterAdditional = $filter; $this->filterAdditional['alternativesId'] = $allAlternativeIds; $this->view->alternativesByQuestion = $alternativesByQuestion; $this->fetchReturn = 'pairs'; $this->fetchReturnForce = 'pairs'; $this->tipoRelatorio = 'report-global-respostas'; self::indexAction(); $this->view->qtRespostasAlternativa = $this->view->getAllEnterprise; if (!$this->view->showRadar) { return; } $dataCriterios = $this->Enterprise->getAllByColAE($this->paramsBuscaServiceArea[0], $this->paramsBuscaServiceArea[1], $this->autoavaliacaoId, null, null, $this->filter, null, $format, 'assoc', 'report-global-criterios'); $dataCriteriosPorcent = array(); $this->view->dataCriterios = $dataCriterios['total']; $this->view->pontuacaoMaxima = $pontuacaoMaxima = Vtx_Util_Array::pontuacaoMaximaCriteriosGestao(); $i = 0; foreach ($this->view->dataCriterios as $criterio => $pontuacao) { if ($i != 0) { $dataCriteriosPorcent[] = (double) $pontuacao / (double) $pontuacaoMaxima[$i] * 100; } $i++; } $this->view->dataCriteriosPoncent = $dataCriteriosPorcent; }