Exemple #1
0
 /**
  * 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');
     }
 }
Exemple #3
0
 /**
  * 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;
 }