예제 #1
0
 public function processar_prova_tri_process($pk_exa_area, $pk_exa_prova, $pk_livro)
 {
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['abaPage'] = __FUNCTION__;
     $data['abaAtiva'] = $this->AbaAtiva;
     try {
         $sqlConcurso = new SqlConcurso();
         $data['titulo'] = $sqlConcurso->get_titulo_lista_materias($pk_exa_prova);
         $pk_exa_concurso = $data['titulo'][0]['pk_exa_concurso'];
         $pk_turma = $_SESSION['turmas_process'];
         $total = count($_SESSION['turmas_process']);
         $data['total'] = $total;
         // Se já tiver ocorrido algum redirecionamento, faz um incremento. Caso contrário, inicia a contagem
         if (isset($_GET['counter'])) {
             $counter = $_GET['counter'] + 1;
         } else {
             $counter = 0;
         }
         // carrega a library e envia as variáveis a função "loop_refresh"
         $this->load->library('util');
         $data['redirect_delay'] = $this->util->loop_refresh('1', base_url() . 'exames/eva/processar_prova_tri_process/' . $pk_exa_area . '/' . $pk_exa_prova . '/' . $pk_livro, $counter, $total);
         // Se o contador for menor que o total de registros da array, efetua o processamento com base na turma da vez
         if ($counter < $total) {
             $sqlConcurso = new SqlConcurso();
             $materias = $sqlConcurso->get_gabarito_materias($pk_exa_prova);
             $sqlEva = new SqlEva();
             $result = $sqlEva->get_turma($pk_turma[$counter]);
             $pk_unidade = !empty($result) ? $result[0]['fk_unidade'] : 0;
             $data['status'] = !empty($result) && $pk_turma[$counter] != 0 ? $result[0]['turma_nome'] : '';
             $sqlEva->reset_alunos_prova($pk_exa_prova, $pk_livro, $pk_turma[$counter]);
             $sqlEva->reset_alunos_media($pk_exa_prova, $pk_livro, $pk_turma[$counter]);
             $result = $sqlEva->get_alunos_prova($pk_exa_prova, $pk_turma[$counter]);
             foreach ($result['registros'] as $row) {
                 //echo $row['nome'].'<br />';
                 $sqlEva = new SqlEva();
                 $pontuacao_materia_final = 0;
                 foreach ($materias as $mat) {
                     //echo $mat['exa_materia_nome'].'<br />';
                     // pega os capitulos da matéria
                     $capitulos = $sqlEva->get_capitulos_materia($pk_exa_prova, $mat['pk_exa_materia']);
                     $total_capitulos = count($capitulos);
                     $pontuacao_materia = 0;
                     foreach ($capitulos as $cap) {
                         //echo '.... Capitulo:'. $cap['fk_capitulo'].'<br />';
                         $questoes_capitulos = $sqlEva->get_gabarito_capitulo_aluno($pk_exa_prova, $mat['pk_exa_materia'], $cap['fk_capitulo'], $row['fk_usuario_aluno']);
                         $total_questoes_capitulo = count($questoes_capitulos);
                         $pontuacao = 0;
                         $pontuacao_facil = 0;
                         $pontuacao_media = 0;
                         $pontuacao_dificil = 0;
                         foreach ($questoes_capitulos as $gab) {
                             if ($total_questoes_capitulo == 1) {
                                 if ($gab['gabarito'] == $gab['resposta']) {
                                     $pontuacao = 100;
                                 }
                             } else {
                                 if ($total_questoes_capitulo == 2) {
                                     if ($gab['gabarito'] == $gab['resposta']) {
                                         if ($gab['nivel_questao_aluno'] == 2) {
                                             $pontuacao_media = 1;
                                         } else {
                                             $pontuacao_dificil = 1;
                                         }
                                     } else {
                                         $pontuacao = 0;
                                     }
                                 } else {
                                     if ($total_questoes_capitulo == 3) {
                                         if ($gab['gabarito'] == $gab['resposta']) {
                                             if ($gab['nivel_questao_aluno'] == 1) {
                                                 $pontuacao_facil = 1;
                                             } else {
                                                 if ($gab['nivel_questao_aluno'] == 2) {
                                                     $pontuacao_media = 1;
                                                 } else {
                                                     $pontuacao_dificil = 1;
                                                 }
                                             }
                                         } else {
                                             $pontuacao = 0;
                                         }
                                     }
                                 }
                             }
                         }
                         //
                         if ($total_questoes_capitulo == 1) {
                         } else {
                             if ($total_questoes_capitulo == 2) {
                                 if ($pontuacao_media == 1 && $pontuacao_dificil == 1) {
                                     $pontuacao = 100;
                                 } else {
                                     if ($pontuacao_media == 1 && $pontuacao_dificil == 0) {
                                         $pontuacao = 46.51;
                                     } else {
                                         if ($pontuacao_media == 0 && $pontuacao_dificil == 1) {
                                             $pontuacao = 51.16;
                                         } else {
                                             $pontuacao = 0;
                                         }
                                     }
                                 }
                             } else {
                                 if ($total_questoes_capitulo == 3) {
                                     if ($pontuacao_facil == 1 && $pontuacao_media == 1 && $pontuacao_dificil == 1) {
                                         $pontuacao = 100;
                                     } else {
                                         if ($pontuacao_facil == 0 && $pontuacao_media == 1 && $pontuacao_dificil == 1) {
                                             $pontuacao = 69.04000000000001;
                                         } else {
                                             if ($pontuacao_facil == 1 && $pontuacao_media == 0 && $pontuacao_dificil == 1) {
                                                 $pontuacao = 64.40000000000001;
                                             } else {
                                                 if ($pontuacao_facil == 1 && $pontuacao_media == 1 && $pontuacao_dificil == 0) {
                                                     $pontuacao = 61.92;
                                                 } else {
                                                     if ($pontuacao_facil == 0 && $pontuacao_media == 0 && $pontuacao_dificil == 1) {
                                                         $pontuacao = 34.77;
                                                     } else {
                                                         if ($pontuacao_facil == 0 && $pontuacao_media == 1 && $pontuacao_dificil == 0) {
                                                             $pontuacao = 30.96;
                                                         } else {
                                                             if ($pontuacao_facil == 1 && $pontuacao_media == 0 && $pontuacao_dificil == 0) {
                                                                 $pontuacao = 28.8;
                                                             } else {
                                                                 if ($pontuacao_facil == 0 && $pontuacao_media == 0 && $pontuacao_dificil == 0) {
                                                                     $pontuacao = 0;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         $pontuacao_materia = $pontuacao_materia + $pontuacao;
                         //echo '---------- Total de questões:'.$total_questoes_capitulo.'<br/>';
                         //echo '---------- Facil:'.$pontuacao_facil.'<br/>';
                         //echo '---------- Media:'.$pontuacao_media.'<br/>';
                         //echo '---------- Dificil:'.$pontuacao_dificil.'<br/>';
                         //echo '---------- Pontuacao final:'.$pontuacao.'<br/>';
                         $sqlEva->insert_capitulo_aluno($pk_exa_concurso, $pk_exa_prova, $mat['pk_exa_materia'], $row['fk_usuario_aluno'], $cap['fk_capitulo'], $pk_turma[$counter], $pk_unidade, $pk_livro, $pontuacao);
                     }
                     $media_tri = $pontuacao_materia / $total_capitulos;
                     $sqlEva->insert_medias_alunos_materias($pk_exa_concurso, $pk_exa_prova, $mat['pk_exa_materia'], $row['fk_usuario_aluno'], $pk_turma[$counter], $pk_unidade, $pk_livro, $media_tri);
                     // echo '---------------- Média da matérias: '.$media_tri.'<br/><br/>';
                 }
             }
         } else {
             $this->session->set_flashdata('msg', '<div class="alert ok">Dados do EVA processados com sucesso!</div>');
             $this->load->library('util');
             $data['redirect_delay'] = $this->util->redirect_delay(1, 'exames/concurso/listar_materias/' . $pk_exa_prova);
         }
     } catch (Exception $e) {
         $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
     }
     $this->load->view($this->load->getUrlTema(), $data);
 }
예제 #2
0
 public function gabaritos($pk_usuario_aluno, $pk_relatorio, $pk_exa_concurso = 0, $pk_exa_bloco = 0, $pk_exa_area = 0, $pk_exa_prova = 0)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     if ($data['mobile']) {
         $data['usuario'] = unserialize($_SESSION['usuario']);
         $data['page'] = "responsive/" . __FUNCTION__;
         $data['tema'] = $this->load->setTheme('responsive');
         $data['abaPage'] = __FUNCTION__;
     } else {
         $data['abaPage'] = __FUNCTION__;
         $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     }
     $data['page'] = 'home';
     $data['msg'] = $msg;
     $data['abaAtiva'] = $this->AbaAtiva;
     $data['alias'] = __FUNCTION__;
     if ($data['idTipoUsuario'] == 6) {
         $pk_usuario_aluno = $data['idUsuarioAluno'];
     } else {
         $pk_usuario_aluno = $this->uri->segment(4);
     }
     // pega os nomes do aluno e da turma
     $sqlUsuario = new SqlUsuario();
     $result = $sqlUsuario->get_aluno($pk_usuario_aluno);
     $data['nome'] = $result['registros'][0]['nome'];
     $data['turma_nome'] = $result['registros'][0]['turma_nome'];
     $sqlConcurso = new SqlConcurso();
     $titulo = $sqlConcurso->get_titulo_relatorio($pk_relatorio);
     $data['titulo'] = !empty($titulo) ? $titulo[0]['relatorio_nome'] : '';
     // se a pk do concurso veio definida é porque o concurso já foi processado.
     if ($pk_exa_concurso != 0) {
         // pega as matérias que o aluno participou
         if ($pk_exa_prova != 0) {
             $materias = $sqlConcurso->get_gabarito_materias($pk_exa_prova);
             $data['total'] = count($materias);
         } else {
             if ($pk_exa_area != 0 && $pk_exa_prova == 0) {
                 $materias = $sqlConcurso->get_gabarito_materias_area($pk_exa_area);
                 $data['total'] = count($materias);
             } else {
                 if ($pk_exa_bloco != 0 && $pk_exa_area == 0 && $pk_exa_prova == 0) {
                     $materias = $sqlConcurso->get_gabarito_materias_bloco($pk_exa_bloco);
                     $data['total'] = count($materias);
                 } else {
                     $materias = $sqlConcurso->get_gabarito_materias_concurso($pk_exa_concurso);
                     $data['total'] = count($materias);
                 }
             }
         }
         $html = '<hr />';
         foreach ($materias as $row) {
             //echo $row['exa_materia_nome'].')<br />';
             // pega os gabaritos de cada prova
             $gabaritos = $sqlConcurso->get_gabarito_aluno($row['pk_exa_prova'], $row['pk_exa_materia'], $pk_usuario_aluno);
             if ($gabaritos['total'] > 0) {
                 $html .= '<div class="materia left ml20 mr20"><div class="tooltip left" data-tooltip="Peso de disciplina: ' . $row['peso_materia'] * 10 . '"><h3 class="left">' . $row['exa_materia_nome'] . '</h3></div><br class="clear" />';
                 foreach ($gabaritos['registros'] as $gabarito) {
                     if ($gabarito['anulada'] == 1) {
                         $html .= '<div class="titulo_questao">' . $gabarito['numero_questao'] . '</div> <div class="questao_anulada">Anulada</div><br class="clear" />';
                     } else {
                         $html .= '<div class="titulo_questao">' . $gabarito['numero_questao'] . '</div>';
                         $html .= '<div class="questao"><table class="table">';
                         $explode = explode(',', $gabarito['gabarito']);
                         foreach ($explode as $gab) {
                             $html .= '<tr>';
                             $html .= $gab == 'A' ? '<th class="proposicao">A</th>' : '<td class="proposicao bold">A</td>';
                             $html .= $gab == 'B' ? '<th class="proposicao">B</th>' : '<td class="proposicao bold">B</td>';
                             $html .= $gab == 'C' ? '<th class="proposicao">C</th>' : '<td class="proposicao bold">C</td>';
                             $html .= $gab == 'D' ? '<th class="proposicao">D</th>' : '<td class="proposicao bold">D</td>';
                             $html .= $gab == 'E' ? '<th class="proposicao">E</th>' : '<td class="proposicao bold">E</td>';
                             $html .= '</tr>';
                         }
                         $html .= View::statusQuestaoABCDE($gabarito['gabarito'], $gabarito['resposta'], $gabarito['status'], $gabarito['pontuacao']);
                         $html .= '</table></div><br class="clear" />';
                     }
                 }
                 $html .= '</div>';
             }
         }
         $html .= '<div class="small"><strong>Dica:</strong> Ao passar o mouse sobre o nome da disciplina o sistema exibe o seu respectivo peso para o cálculo da média geral (todas as disciplinas).</div>';
         $data['html'] = $html;
     }
     $this->load->view($this->load->getUrlTema(), $data);
 }