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