public function processar_cartoes($pk_sim_area, $pk_sim_prova) { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; $data['msg'] = $this->getMsg(); $data['abaAtiva'] = 18; $data['abaPage'] = 'processar_cartoes'; $data['alias'] = 'processar_cartoes'; if ($_SERVER['REQUEST_METHOD'] == "POST") { try { $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->reset_media_prova($pk_sim_prova); $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->get_prova_gabarito($pk_sim_prova); foreach ($result as $row) { echo $row['pk_sim_gabarito'] . '<br />'; $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->reset_respostas($row['pk_sim_gabarito']); } $this->session->set_flashdata('msg', '<div class="alert ok">Prova resetada com sucesso!</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>'; } } if ($this->uri->segment(6) != '') { try { //$this->benchmark->mark('code_start'); $data['total'] = 0; // pega as questões para verificar se os gabaritos foram preenchidos $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->listar_gabarito_prova($pk_sim_prova); $gabarito = ''; foreach ($result['registros'] as $row) { $gabarito .= $row['gabarito']; } if ($gabarito != '') { // pega o nome do arquivo e o tipo de cartão $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->get_arquivo($this->uri->segment(6)); $arquivo = $result['registros'][0]['arquivo_nome']; $tipo_cartao = $result['registros'][0]['tipo_cartao']; // pega as questões $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->listar_gabarito_prova($pk_sim_prova); $n_questoes = $result['total']; // define as colunas iniciais dos cartões do cartão a ser lido, tanto para questões do tipo ABCDE quanto VF $colIni = 15; $colIniVF = 70; // se o cartão for do tipo ABCDE if ($tipo_cartao == 1) { ProcessaCartoes::processaABCDE($result, $n_questoes, $colIni, $arquivo); } else { if ($tipo_cartao == 2) { ProcessaCartoes::processaVF($result, $n_questoes, $colIni - 9, $arquivo); } else { if ($tipo_cartao == 3) { ProcessaCartoes::processaMisto($result, $n_questoes, $colIni, $colIniVF, $arquivo); } } } //$this->benchmark->mark('code_end'); //echo $this->benchmark->elapsed_time('code_start', 'code_end'); // atualiza a flag de processamento $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->atualizar_arquivo($this->uri->segment(6), 1, 1); $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) . '/' . $this->uri->segment(5)); } else { $this->session->set_flashdata('msg', '<div class="alert erro">Os gabaritos ainda não foram preechidos!</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>'; } } $sqlProva = new SqlProva(); $data['titulo'] = $sqlProva->get_titulo_lista_provas($pk_sim_area); $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->listar_arquivos($this->uri->segment(5)); $data['total'] = $result['total']; if ($result['total'] > 0) { $this->load->library('table'); $arrHead[] = 'Cod'; $arrHead[] = 'Arquivos'; $arrHead[] = ''; $arrHead[] = ''; $this->table->set_heading($arrHead); $count = 0; foreach ($result['registros'] as $row) { $count++; $tmpl = Util::zebrar($count, count($result['registros'])); if ($row['checking'] == 1 && $row['processa'] == '') { $cell = '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_cartoes/' . $this->uri->segment(4) . '/' . $this->uri->segment(5) . '/' . $row['pk_sim_arquivo'] . '"><div class="tooltip icon_processar" data-tooltip="Processar cartões"></div></a>'; } else { if ($row['checking'] == 1 && $row['processa'] == 1) { $cell = '<div class="tooltip icon_ok" data-tooltip="Cartão já processado"></div>'; } else { $cell = '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/checa_alunos/' . $this->uri->segment(4) . '/' . $this->uri->segment(5) . '/' . $row['pk_sim_arquivo'] . '"><div class="tooltip icon_checa_alunos" data-tooltip="Checar alunos"></div></a>'; } } $this->table->add_row($row['pk_sim_arquivo'], $row['arquivo_nome'], $cell, $data['permissao']['excluir'] == 1 ? '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/excluir_arquivo" ' . View::getParamExcluirItemTabela($row['pk_sim_arquivo'], $row['arquivo_nome'], 0, '', 'Excluir arquivo', 'Deseja excluir o arquivo ' . $row['arquivo_nome'] . '') . ' class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>' : ''); } $this->table->set_template($tmpl); } else { $data['msg'] = '<div class="alert atencao">Nenhum cartão enviado para esta prova.</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); } }