public function checa_alunos($pk_exa_area, $pk_exa_prova, $pk_exa_arquivo) { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['abaPage'] = __FUNCTION__; $data['alias'] = __FUNCTION__; $data['abaAtiva'] = $this->AbaAtiva; $sqlConcurso = new SqlConcurso(); $data['titulo'] = $sqlConcurso->get_titulo_lista_materias($pk_exa_prova); if ($_SERVER['REQUEST_METHOD'] == "POST") { try { //$this->benchmark->mark('code_start'); // pega as questões $resultGab = $sqlConcurso->listar_gabarito_prova($pk_exa_prova); $n_questoes = $resultGab['total']; // pega o nome do arquivo $result = $sqlConcurso->get_arquivo($pk_exa_arquivo); $arquivo = $result['registros'][0]['arquivo_nome']; $file = file("uploadArquivos/easyTols/exames/" . $arquivo . ""); // conta o total de linhas $totalLinhas = count($file); // define as colunas iniciais dos cartões do cartão a ser lido $colIni = 15; $i = 0; foreach ($file as $linha) { $i++; $ponteiro = $i - 1; $pk_usuario_aluno = (int) substr($linha, 0, 16); $sql_insert = 'INSERT INTO exa.exa_resposta (fk_usuario_aluno, fk_exa_gabarito, resposta, pontuacao, fk_exa_prova) VALUES '; $conta = 0; foreach ($resultGab['registros'] as $row) { //var_dump($row); $conta++; $colunaAluno = $colIni + $conta; $resposta = substr($linha, $colunaAluno, 1); //var_dump($file[$ponteiro]); if ($row['anulada'] != 1) { $gab = explode(',', $row['gabarito']); foreach ($gab as $gab_final) { if ($gab_final == $resposta) { $valorQuestao = $row['peso_questao']; break; } else { $valorQuestao = 0; } } } else { $valorQuestao = 0; } $sql_insert .= "(" . $pk_usuario_aluno . ", " . $row['pk_exa_gabarito'] . ", '" . $resposta . "', " . $valorQuestao . ", " . $pk_exa_prova . ")"; if ($conta < $n_questoes) { $sql_insert .= ', '; } echo $pk_usuario_aluno . ' - ' . $row['gabarito'] . ' - ' . $row['anulada'] . ' - ' . $row['peso_questao'] . ' - ' . $resposta . ' - ' . $valorQuestao . '<br />'; } echo $sql_insert; echo '<hr />'; $sqlConcurso->insert_respostas_aluno($sql_insert, $pk_usuario_aluno, $pk_exa_prova); } //$this->benchmark->mark('code_end'); //echo $this->benchmark->elapsed_time('code_start', 'code_end'); $sqlConcurso->atualizar_arquivo($pk_exa_arquivo, 1, 1); $this->session->set_flashdata('msg', '<div class="alert ok">O arquivo está pronto para processado!</div>'); redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_cartoes/' . $this->uri->segment(4) . '/' . $this->uri->segment(5)); return false; } catch (Exception $e) { $msg = '<p class="alert erro">' . $e->getMessage() . '</p>'; } } // pega o nome do arquivo e o tipo de cartão $result = $sqlConcurso->get_arquivo($pk_exa_arquivo); $data['arquivo'] = $result['registros'][0]['arquivo_nome']; $data['pk_exa_arquivo'] = $result['registros'][0]['pk_exa_arquivo']; $file = file("uploadArquivos/easyTols/exames/" . $data['arquivo'] . ""); $data['total'] = count($file); if ($data['total'] > 0) { $this->load->library('table'); $arrHead[] = 'Cod'; $arrHead[] = 'Aluno'; $arrHead[] = 'Turma'; $this->table->set_heading($arrHead); $count = 0; $count_erros = 0; foreach ($file as $linha) { // seta a pk do aluno o sua marcação $pk_usuario_aluno = (int) substr($linha, 0, 16); // busca o código do aluno na base de dados $result = $sqlConcurso->get_aluno($pk_usuario_aluno); $nome = !empty($result) != 0 ? $result[0]['nome'] : ''; $turma_nome = !empty($result) != 0 ? $result[0]['turma_nome'] : ''; if (count($result) == 0) { $count_erros++; } $data['erros'] = $count_erros; $count++; $tmpl = Util::zebrar($count, count($result)); $this->table->add_row($pk_usuario_aluno, $nome, $turma_nome); } $this->table->set_template($tmpl); } else { $data['msg'] = '<div class="alert atencao">Nenhum registro encontrado</div>'; } $this->load->view($this->load->getUrlTema(), $data); }