public function processar_cartoes() { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; $data['msg'] = $this->getMsg(); $data['abaAtiva'] = 8; $data['abaPage'] = 'processar_cartoes'; $data['alias'] = 'processar_cartoes'; if ($this->uri->segment(5) != '') { try { // View::validarFormAntInjection($data['alias']); // o número de questões $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->listar_gabarito($this->uri->segment(4)); $n_questoes = $result['total']; // pega o nome do arquivo e o tipo de cartão $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->get_arquivo($this->uri->segment(5)); $arquivo = $result['registros'][0]['arquivo_nome']; $tipo_cartao = $result['registros'][0]['tipo_cartao']; $sqlPesquisa = new SqlPesquisa(); $sqlPesquisa->excluir_respostas($this->uri->segment(5)); // define as colunas inicial e final do cartão a ser lido $colIni = 16; $colFim = $colIni + $n_questoes; // pega os dados do arquivo $file = file("uploadArquivos/easyTols/" . $arquivo . ""); // conta o total de linhas $totalLinhas = count($file); // define a coluna atual $colAtual = $colIni; $questao = 0; for ($colAtual = $colIni; $colAtual < $colFim; $colAtual++) { // incrementa o número da questão $questao++; foreach ($file as $linha) { // pega o campo do arquivo $marcacao = substr($linha, $colAtual, 1); // pega as pks do gabarito e da alternativa $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->get_alternativa_questao($this->uri->segment(4), $questao, $marcacao); if ($result['total'] == 1) { // grava as pks do gabario e da alternativa marcada $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->insert_resposta($result['registros'][0]['pk_pes_gabarito'], $result['registros'][0]['pk_pes_alternativa'], $this->uri->segment(5)); } } } $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) . '/processar_cartoes/' . $this->uri->segment(4)); return false; } catch (Exception $e) { $msg = '<p class="alert erro">' . $e->getMessage() . '</p>'; } } $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->get_pesquisa($this->uri->segment(4)); $data['titulo'] = $result[0]['pes_nome'] . ' - ' . $result[0]['turma_nome']; $sqlPesquisa = new SqlPesquisa(); $result = $sqlPesquisa->listar_arquivos($this->uri->segment(4)); $data['total'] = $result['total']; if ($result['total'] > 0) { $this->load->library('table'); $arrHead[] = 'Cod.'; $arrHead[] = 'Arquivos'; $arrHead[] = ''; $this->table->set_heading($arrHead); $count = 0; foreach ($result['registros'] as $row) { $count++; $tmpl = Util::zebrar($count, count($result['registros'])); $this->table->add_row($row['pk_pes_arquivo'], $row['arquivo_nome'], '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_cartoes/' . $this->uri->segment(4) . '/' . $row['pk_pes_arquivo'] . '"><div class="tooltip icon_processar" data-tooltip="Processar cartões"></div></a>'); } $this->table->set_template($tmpl); } else { $data['msg'] = '<div class="alert atencao">Nenhum registro encontrado</div>'; } if ($this->input->is_ajax_request()) { echo json_encode(array('content' => $this->load->view($this->uri->segment(3), $data, true))); } else { $this->load->view($this->load->getUrlTema(), $data); } }