Example #1
0
 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);
 }