Esempio n. 1
0
 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);
 }