Example #1
0
 public function relatorio_pesquisa($pk_pes_pesquisa)
 {
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['abaPage'] = __FUNCTION__;
     $data['alias'] = __FUNCTION__;
     $data['abaAtiva'] = 8;
     $sqlPareceres = new SqlPareceres();
     $result = $sqlPareceres->get_descricao_pesquisa($pk_pes_pesquisa);
     $data['pes_nome'] = $result[0]['pes_nome'];
     $data['pes_pesquisa_template_nome'] = $result[0]['pes_pesquisa_template_nome'];
     $data['obs'] = $result[0]['obs'];
     $result = $sqlPareceres->get_unidades_series_tipos_usuarios($pk_pes_pesquisa);
     $pk_unidade = array();
     $pk_serie = array();
     $pk_tipo_usuario = array();
     foreach ($result as $uni) {
         $pk_unidade[] = $uni['fk_unidade'];
         $pk_serie[] = $uni['fk_serie'];
         $pk_tipo_usuario[] = $uni['fk_tipo_usuario'];
     }
     $unidades = array_unique($pk_unidade);
     $series = array_unique($pk_serie);
     $tipos_usuarios = array_unique($pk_tipo_usuario);
     $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/' . $this->uri->segment(4) . '/';
     $sqlPareceres = new SqlPareceres();
     $data['pesquisa_unidade'] = $sqlPareceres->listar_pesquisas_processadas_unidades($unidades);
     $pesquisa_unidade = explode("&pk_unidade", $_SERVER['QUERY_STRING']);
     $data['pesquisa_unidade_url'] = $config['base_url'] . '?' . $pesquisa_unidade[0];
     $data['pesquisa_serie'] = $sqlPareceres->listar_pesquisas_processadas_series($series);
     $pesquisa_serie = explode("&pk_serie", $_SERVER['QUERY_STRING']);
     $data['pesquisa_serie_url'] = $config['base_url'] . '?' . $pesquisa_serie[0];
     $data['pesquisa_tipo_usuario'] = $sqlPareceres->listar_pesquisas_processadas_tipos_usuarios($tipos_usuarios);
     $pesquisa_tipo_usuario = explode("&pk_tipo_usuario", $_SERVER['QUERY_STRING']);
     $data['pesquisa_tipo_usuario_url'] = $config['base_url'] . '?' . $pesquisa_tipo_usuario[0];
     $pk_unidade = isset($_GET['pk_unidade']) && $_GET['pk_unidade'] != '' ? $_GET['pk_unidade'] : '';
     $pk_serie = isset($_GET['pk_serie']) && $_GET['pk_serie'] != '' ? $_GET['pk_serie'] : '';
     $pk_tipo_usuario = isset($_GET['pk_tipo_usuario']) && $_GET['pk_tipo_usuario'] != '' ? $_GET['pk_tipo_usuario'] : '';
     $data['total_usuarios'] = $sqlPareceres->conta_usuarios_pesquisa($pk_pes_pesquisa, $pk_unidade, $pk_serie, $pk_tipo_usuario);
     $sqlPareceres = new SqlPareceres();
     $result = $sqlPareceres->get_questoes($pk_pes_pesquisa);
     $array_final = array();
     foreach ($result as $item) {
         //echo '<h4>'.$item['tipo_questao'].' - '.$item['pes_questao'].'</h4>';
         $resultAlternativas = $sqlPareceres->get_alternativas_pesquisa($item['pk_pes_questao']);
         $arr_alternativas = array();
         $array_alternativas = array();
         foreach ($resultAlternativas as $alt) {
             //echo $alt['pes_alternativa_nome'].'<br />';
             $alternativa_nome = $alt['pes_alternativa_nome'];
             if ($item['tipo_questao'] == 1 || $item['tipo_questao'] == 2) {
                 $result = $sqlPareceres->get_distribuicao_questao_relatorio($item['pk_pes_questao'], $alt['pk_pes_alternativa'], $pk_unidade, $pk_serie, $pk_tipo_usuario);
                 $i = 0;
                 foreach ($result as $row) {
                     $i++;
                 }
                 //echo $i.'<br />';
                 $array_alternativas[] = array('pes_alternativa_nome' => $alt['pes_alternativa_nome'], 'valor' => $i);
             } else {
                 if ($item['tipo_questao'] == 3) {
                     // Questão para gerar ranking de prioridades
                     $result = $sqlPareceres->get_distribuicao_questao_relatorio($item['pk_pes_questao'], $alt['pk_pes_alternativa'], $pk_unidade, $pk_serie, $pk_tipo_usuario);
                     $alternativas = array();
                     $pk_pes_alternativas = array();
                     foreach ($result as $alter) {
                         $alternativas[] = $alter['fk_pes_alternativa'] . '#' . $alter['valor'];
                         $pk_pes_alternativas[] = $alter['fk_pes_alternativa'];
                     }
                     $conta_alternativas = array_count_values($alternativas);
                     if (isset($alt['pk_pes_alternativa'])) {
                         unset($_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']]);
                     }
                     foreach ($conta_alternativas as $key2 => $valor2) {
                         $divide = explode('#', $key2);
                         $pk_pes_alternativa = $divide[0];
                         $valor = $divide[1];
                         if (isset($alt['pk_pes_alternativa']) && $pk_pes_alternativa == $alt['pk_pes_alternativa']) {
                             if (isset($_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']])) {
                                 $_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']] = $_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']] + $valor * $valor2;
                             } else {
                                 $_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']] = $valor * $valor2;
                             }
                         }
                     }
                     $dividendo = count($result);
                     if (isset($alt['pk_pes_alternativa'])) {
                         $valor_alternativa = $_SESSION['pk_pes_alternativa_' . $alt['pk_pes_alternativa']] / $dividendo;
                     } else {
                         $valor_alternativa = 0;
                     }
                     $arr_alternativas[] = $valor_alternativa . '#' . $alternativa_nome;
                     // echo $valor_alternativa.'<br />';
                 } else {
                     if ($item['tipo_questao'] == 4) {
                         //Questão para gerar indicador a partir de notas dadas pelo usuário
                         $result = $sqlPareceres->get_distribuicao_questao_relatorio($item['pk_pes_questao'], $alt['pk_pes_alternativa'], $pk_unidade, $pk_serie, $pk_tipo_usuario);
                         $soma = 0;
                         foreach ($result as $row) {
                             $soma = $soma + $row['valor'];
                         }
                         $media = Matematica::divisao($soma, count($result));
                         $arr_alternativas[] = $media . '#' . $alt['pes_alternativa_nome'];
                         //$array_alternativas[] = array('pes_alternativa_nome' => $alt['pes_alternativa_nome'], 'valor' => $media);
                     }
                 }
             }
         }
         // orderna a array  $arr_alternativas
         if ($item['tipo_questao'] == 4) {
             array_multisort($arr_alternativas, SORT_NUMERIC, SORT_DESC);
         } else {
             array_multisort($arr_alternativas);
         }
         $alternativas_ordenadas = array();
         foreach ($arr_alternativas as $row) {
             $divide = explode('#', $row);
             $alternativa_nome = $divide[1];
             $alternativa_valor = $divide[0];
             $alternativas_ordenadas[] = array('pes_alternativa_nome' => $alternativa_nome, 'valor' => $alternativa_valor);
         }
         if (!empty($alternativas_ordenadas)) {
             $array_alternativas_final = $alternativas_ordenadas;
         } else {
             $array_alternativas_final = $array_alternativas;
         }
         $array_final[] = array('tipo_questao' => $item['tipo_questao'], 'questao' => $item['pes_questao'], 'alternativas' => $array_alternativas_final);
     }
     $data['result'] = $array_final;
     $this->load->view($this->load->getUrlTema(), $data);
 }