Beispiel #1
0
 public function estatisticas_questoes($pk_sim_concurso = 0, $pk_sim_bloco = 0, $pk_sim_prova = 0)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     if ($data['mobile']) {
         $data['usuario'] = unserialize($_SESSION['usuario']);
         $data['tema'] = $this->load->setTheme('responsive');
         //            $data["css"] = array(base_url()."css/modules/simulado.css");
     } else {
         $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     }
     $data['abaPage'] = 'estatisticas_questoes';
     $data['page'] = 'home';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 18;
     $data['alias'] = 'estatisticas_questoes';
     if ($pk_sim_prova != 0) {
         // pega a sequencia de matérias da prova
         $sqlProva = new SqlProva();
         $materias = $sqlProva->get_gabarito_materias($pk_sim_prova);
     } else {
         if ($pk_sim_prova == 0 && $pk_sim_bloco != 0) {
             // pega a sequencia de matérias do bloco
             $sqlAdministracao = new SqlAdministracao();
             $materias = $sqlAdministracao->get_blocos_gabarito_materias($pk_sim_bloco);
         } else {
             if ($pk_sim_concurso != 0 && $pk_sim_prova == 0 && $pk_sim_bloco == 0) {
                 // pega a sequencia de matérias do bloco
                 $sqlAdministracao = new SqlAdministracao();
                 $materias = $sqlAdministracao->get_concurso_gabarito_materias($pk_sim_concurso);
             }
         }
     }
     $data['total'] = count($materias);
     $legenda = '';
     $legenda .= '<div id="legendasQuestoes">Legendas:<br />';
     $legenda .= '<div class="legendaQuestao questaoFacil"></div> <div class="legendaQuestaoDesc">Questão de nível fácil <label>(% de acertos </label><b>superior a 70%</b><label>)</label></div><br class="clear" />';
     $legenda .= '<div class="legendaQuestao questaoMedia"></div> <div class="legendaQuestaoDesc">Questão de nível médio <label>(% de acertos </label><b>entre 30% 70% </b><label>)</label></div><br class="clear" />';
     $legenda .= '<div class="legendaQuestao questaoDificil"></div> <div class="legendaQuestaoDesc">Questão de nível difícil <label>(% de acertos </label><b>inferior a 30%</b><label>)</label></div>';
     $legenda .= '</div>';
     $titulo = '';
     $codigos = '';
     foreach ($materias['registros'] as $row) {
         // echo $row['pk_sim_prova'].' - '.$row['sim_materia_nome'].')<br />';
         $titulo = '<div class="materia left mr20 ml20"><h3 class="left">' . $row['sim_materia_nome'] . '</h3><br class="clear" />';
         // pega a sequencia de matérias do bloco
         $sqlAdministracao = new SqlAdministracao();
         $gabaritos = $sqlAdministracao->listar_gabarito($row['pk_sim_prova'], $row['pk_sim_materia']);
         $htmlFinal = '';
         $html = '';
         foreach ($gabaritos['registros'] as $gabarito) {
             // se otipo de questão for ABCDE
             if ($gabarito['tipo_questao'] == 1) {
                 $htmlFinal .= Estatisticas::questaoABCDE($html, $gabarito['numero_questao'], $gabarito['anulada'], $gabarito['pk_sim_gabarito'], $row['pk_sim_prova'], $row['pk_sim_materia'], $gabarito['gabarito'], $gabarito['peso_questao']);
             } else {
                 if ($gabarito['tipo_questao'] == 3) {
                     $htmlFinal .= Estatisticas::questaoAberta($html, $gabarito['numero_questao'], $gabarito['anulada'], $gabarito['pk_sim_gabarito'], $row['pk_sim_prova'], $row['pk_sim_materia'], $gabarito['gabarito'], $gabarito['peso_questao']);
                 } else {
                 }
             }
         }
         $codigos .= $titulo . $htmlFinal . '</div>';
     }
     $data['html'] = $legenda . $codigos;
     $this->load->view($this->load->getUrlTema(), $data);
 }
 public function listar_gabarito($pk_sim_prova, $pk_sim_materia)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 18;
     $data['abaPage'] = 'listar_gabarito';
     $data['alias'] = 'listar_gabarito';
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             // View::validarFormAntInjection('form_cadastrar_grade');
             // Soma os pesos enviados
             $peso_total = 0;
             for ($i = $this->input->post('primeira'); $i <= $this->input->post('ultima'); $i++) {
                 $peso_total = $peso_total + str_replace(',', '.', $this->input->post('peso_' . $i));
             }
             $peso = $peso_total == 1 ? 100 : $peso_total * 100;
             // Trata os eventuais erros
             if ((int) $peso < 99) {
                 $this->session->set_flashdata('msg', '<div class="alert erro">A soma total dos pesos está inferior a 1 (' . $peso . ')</div>');
             } else {
                 if ((int) $peso > 100) {
                     $this->session->set_flashdata('msg', '<div class="alert erro">A soma total dos pesos está superior a 1: (' . $peso . ')</div>');
                 } else {
                     $this->session->set_flashdata('msg', '<div class="alert ok">Gabarito atualizado com sucesso!</div>');
                 }
             }
             $checa_gabarito = 0;
             for ($i = $this->input->post('primeira'); $i <= $this->input->post('ultima'); $i++) {
                 $anula = $this->input->post('anula_' . $i) == 'on' ? 1 : 0;
                 if ($this->input->post('gabarito_' . $i) != '') {
                     $checa_gabarito++;
                 }
                 $sqlAdministracao = new SqlAdministracao();
                 $sqlAdministracao->atualizar_gabarito($this->input->post('pk_sim_gabarito_' . $i), $this->input->post('tipo_' . $i), strtoupper($this->input->post('gabarito_' . $i)), $anula, str_replace(',', '.', $this->input->post('peso_' . $i)));
             }
             if ($checa_gabarito == $this->input->post('total')) {
                 $sqlAdministracao = new SqlAdministracao();
                 $sqlAdministracao->atualizar_checking_gabarito($this->input->post('fk_sim_prova'), $this->input->post('fk_sim_materia'), 1);
             }
             redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/listar_materias/' . $this->input->post('fk_sim_prova'));
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     $sqlAdministracao = new SqlAdministracao();
     $result = $sqlAdministracao->listar_gabarito($pk_sim_prova, $pk_sim_materia);
     $peso_questao = 10 / $result['total'] / 10;
     $sqlProva = new SqlProva();
     $data['titulo'] = $sqlProva->get_titulo_lista_gabarito($pk_sim_prova, $pk_sim_materia);
     $data['total'] = $result['total'];
     if ($result['total'] > 0) {
         $this->load->library('table');
         $arrHead[] = 'Questão';
         $arrHead[] = 'Tipo';
         $arrHead[] = 'Gabarito';
         $arrHead[] = 'Peso';
         $arrHead[] = 'Anular';
         $this->table->set_heading($arrHead);
         $count = 0;
         foreach ($result['registros'] as $row) {
             $count++;
             $tmpl = Util::zebrar($count, count($result['registros']));
             $peso = $row['peso_questao'] != '' ? $row['peso_questao'] : $peso_questao;
             $anula = $row['anulada'] == 1 ? 'checked' : '';
             $select = '<select name="tipo_' . $row['numero_questao'] . '" class="w100 required">';
             $selected = $row['tipo_questao'] == 1 ? 'selected' : '';
             $select .= '<option value="1" ' . $selected . '>ABCDE</option>';
             $selected = $row['tipo_questao'] == 2 ? 'selected' : '';
             $select .= '<option value="2" ' . $selected . '>VF</option>';
             $selected = $row['tipo_questao'] == 3 ? 'selected' : '';
             $select .= '<option value="3" ' . $selected . '>Abertas</option>';
             $selected = $row['tipo_questao'] == 4 ? 'selected' : '';
             $select .= '<option value="4" ' . $selected . '>Discursiva</option>';
             $select .= '</select>';
             $cell_1 = array('data' => $row['numero_questao'], 'class' => 'tcenter');
             $cell_2 = array('data' => $select, 'class' => 'tcenter');
             $cell_3 = array('data' => '<input type="text" name="gabarito_' . $row['numero_questao'] . '" class="w50" value="' . $row['gabarito'] . '" onchange="this.form.gabarito_' . ($row['numero_questao'] + 1) . '.focus()">', 'class' => 'tcenter');
             $cell_4 = array('data' => '<input type="text" name="peso_' . $row['numero_questao'] . '" class="w50" value="' . $peso . '" >', 'class' => 'tcenter');
             $cell_5 = array('data' => '<input type="checkbox" name="anula_' . $row['numero_questao'] . '" ' . $anula . '>
                                        <input type="hidden" name="pk_sim_gabarito_' . $row['numero_questao'] . '" value="' . $row['pk_sim_gabarito'] . '">', 'class' => 'tcenter');
             $this->table->add_row($cell_1, $cell_2, $cell_3, $cell_4, $cell_5);
         }
         $this->table->set_template($tmpl);
         $data['msg'] = '<div class="alert informacao">Para anular itens de questões do tipo VF, digite "N" (maiúsculo).</div>';
     } else {
         $data['msg'] = '<div class="alert atencao">Nenhuma prova incluída. Para cadastrar, clique no botão acima.</div>';
     }
     $primeira = array_shift($result['registros']);
     $data['primeira'] = $primeira['numero_questao'];
     $ultima = array_pop($result['registros']);
     $data['ultima'] = $ultima['numero_questao'];
     $this->load->view($this->load->getUrlTema(), $data);
 }