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