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