public function processa_parecer($pk_pes_pesquisa) { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['abaPage'] = __FUNCTION__; $data['alias'] = __FUNCTION__; $data['abaAtiva'] = $this->AbaAtiva; $sqlPareceres = new SqlPareceres(); $sqlPareceres->reset_pesquisa($pk_pes_pesquisa); $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); foreach ($tipos_usuarios as $pk_tipo_usuario) { echo '<hr /><h1>Tipo de usuário ' . $pk_tipo_usuario . '</h1>'; foreach ($unidades as $pk_unidade) { echo '<h2>Unidade ' . $pk_unidade . '</h2>'; foreach ($series as $pk_serie) { echo '<h3>Série ' . $pk_serie . '</h3>'; $result = $sqlPareceres->get_questoes($pk_pes_pesquisa); $i = 0; foreach ($result as $item) { $i++; echo '<h3>' . $item['tipo_questao'] . ' - ' . $item['pes_questao'] . '</h3>'; if ($item['tipo_questao'] == 1 || $item['tipo_questao'] == 2) { $result = $sqlPareceres->get_distribuicao_questao($item['pk_pes_questao'], $pk_unidade, $pk_serie, $pk_tipo_usuario); $pk_pes_alternativa = array(); foreach ($result as $alt) { $pk_pes_alternativa[] = $alt['fk_pes_alternativa']; } $conta_alternativas = array_count_values($pk_pes_alternativa); foreach ($conta_alternativas as $pk_pes_alternativa => $valor_alternativa) { $sqlPareceres->insert_indicadores_questao_alternativa($pk_pes_pesquisa, $item['pk_pes_questao'], $pk_pes_alternativa, $pk_unidade, $pk_serie, $pk_tipo_usuario, $item['tipo_questao'], $valor_alternativa); } } else { if ($item['tipo_questao'] == 3) { $result = $sqlPareceres->get_distribuicao_questao($item['pk_pes_questao'], $pk_unidade, $pk_serie, $pk_tipo_usuario); $alternativas = array(); $pk_pes_alternativas = array(); foreach ($result as $alt) { $alternativas[] = $alt['fk_pes_alternativa'] . '#' . $alt['valor']; $pk_pes_alternativas[] = $alt['fk_pes_alternativa']; } $conta_alternativas = array_count_values($alternativas); $pk_pes_alternativas = array_count_values($pk_pes_alternativas); foreach ($pk_pes_alternativas as $key => $valor) { unset($_SESSION['pk_pes_alternativa_' . $key]); } foreach ($pk_pes_alternativas as $key => $valor) { foreach ($conta_alternativas as $key2 => $valor2) { $divide = explode('#', $key2); $pk_pes_alternativa = $divide[0]; $valor = $divide[1]; if ($key == $pk_pes_alternativa) { $_SESSION['pk_pes_alternativa_' . $key] = $_SESSION['pk_pes_alternativa_' . $key] + $valor * $valor2; } } } $dividendo = count($pk_pes_alternativas); foreach ($pk_pes_alternativas as $key => $valor) { $valor_alternativa = $_SESSION['pk_pes_alternativa_' . $key] / $dividendo; $sqlPareceres->insert_indicadores_questao_alternativa($pk_pes_pesquisa, $item['pk_pes_questao'], $key, $pk_unidade, $pk_serie, $pk_tipo_usuario, $item['tipo_questao'], $valor_alternativa); } } else { if ($item['tipo_questao'] == 4) { $result = $sqlPareceres->get_distribuicao_questao($item['pk_pes_questao'], $pk_unidade, $pk_serie, $pk_tipo_usuario); $soma = 0; foreach ($result as $alt) { $soma = $soma + $alt['valor']; } $media = Matematica::divisao($soma, count($result)); if (!empty($result)) { $sqlPareceres->insert_indicadores_questao_alternativa($pk_pes_pesquisa, $item['pk_pes_questao'], 0, $pk_unidade, $pk_serie, $pk_tipo_usuario, $item['tipo_questao'], $media); } } } } } } } } $this->session->set_flashdata('msg', '<div class="alert ok">Dados processados com sucesso!</div>'); redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/relatorio_pesquisa/' . $pk_pes_pesquisa); }