Ejemplo n.º 1
0
 /**
  * Método que edita os conteúdos ministrados pelos professores no sistema
  */
 public function editar_conteudo_form_apostila($fk_materia_vin = 0, $fk_usuario_professor = 0, $pk_grade = 0, $ordem = 0, $data_evento = '', $pk_aula = 0, $aula = 0, $pk_turma = 0)
 {
     $data = $this->getParametroVisao();
     $data['abaAtiva'] = 7;
     $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
     $data['page'] = 'home';
     $data['msg'] = $this->getMsg();
     $_SESSION['capitulo_sequencial'] = '';
     $data['aula'] = $aula;
     $data['get_shadowbox'] = $data['shadowbox'] == TRUE ? '?shadowbox=1' : '';
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             // View::validarFormAntInjection($data['alias']);
             $data_aula = $this->input->post('data_aula') != '' ? $this->input->post('data_aula') : '';
             $data_inclusao = date('Y-m-d H:i:s');
             $fk_usuario_professor = $this->input->post('fk_usuario_professor') != '' ? $this->input->post('fk_usuario_professor') : 0;
             $fk_materia_vin = $this->input->post('fk_materia_vin') != '' ? $this->input->post('fk_materia_vin') : 0;
             $fk_usuario_inc = $data['idUsuario'];
             $obs = $this->input->post('obs') != '' ? $this->input->post('obs') : '';
             $ano = substr($this->input->post('data_aula'), 0, 4);
             $mes = substr($this->input->post('data_aula'), 5, 2);
             $dia = substr($this->input->post('data_aula'), 8, 2);
             $_SESSION['diasemana'] = date("w", mktime(0, 0, 0, $mes, $dia, $ano));
             $_SESSION['diasemana_nome'] = Util::diaSemana($_SESSION['diasemana']);
             $_SESSION['data_aula'] = View::converteDataBr($this->input->post('data_aula'));
             $_SESSION['data_evento'] = $this->input->post('data_aula');
             // conta o número de tópicos abordados
             $total_aulas_dadas = 0;
             for ($i = 1; $i <= $this->input->post('total'); $i++) {
                 if ($this->input->post('aula_apostila_' . $i) != '0#0') {
                     $total_aulas_dadas++;
                 }
             }
             if ($total_aulas_dadas == 0 && $this->input->post('obs') == '') {
                 $this->session->set_flashdata('msg', '<div class="alert erro"></div>');
             }
             $sqlAulas = new SqlAulas();
             $sqlAulas->reset_aula_apostila($fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $this->input->post('aula'));
             $checa_assuntos_apostila = 0;
             for ($i = 1; $i <= $this->input->post('total'); $i++) {
                 if ($this->input->post('aula_apostila_' . $i) != '0#0') {
                     $divide = explode('#', $this->input->post('aula_apostila_' . $i));
                     $pk_conteudo = $divide[0];
                     $status = $divide[1];
                     $sqlAulas = new SqlAulas();
                     $sqlAulas->cadastrar_aula_apostila($pk_conteudo, $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $status, $this->input->post('aula'), $this->input->post('pk_aula'));
                     if (is_array($this->input->post('erro' . $i))) {
                         $erros = '';
                         foreach ($this->input->post('erro' . $i) as $row) {
                             $erros .= $row . ',';
                         }
                         $sqlAulas->cadastrar_erros($pk_conteudo, $fk_usuario_professor, $erros, $this->input->post('erro_descricao' . $i));
                     }
                     $checa_assuntos_apostila++;
                 }
             }
             // CONSOLIDA OS PERCENTUAIS DO PROFESSOR E DA TURMA
             if ($checa_assuntos_apostila > 0) {
                 consolidaDadosProfessor::processa_dados($data['ano_letivo'], $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $fk_materia_vin, $this->input->post('fk_livro'), $this->input->post('aula_numero'), $data_aula, $_SESSION['pk_serie_cadastro_aula'], $_SESSION['pk_unidade_cadastro_aula']);
             }
             $sqlAulas = new SqlAulas();
             $sqlAulas->editar_aula_apostila($this->input->post('pk_aula'), $data_inclusao, $fk_usuario_inc, $fk_usuario_professor, $fk_materia_vin, $data_aula, $obs, $this->input->post('fk_livro'), $this->input->post('aula'), $this->input->post('atraso'), $this->input->post('conteudo'), $this->input->post('paginas'), $this->input->post('exercicios_casa'));
             // Cadastra registro de atraso no FAP, caso o select de falta seja selecionado.
             if ($this->input->post('atraso') != 0) {
                 if ($this->input->post('atraso') == 5) {
                     $pk_fap_subtipo = 1;
                 } else {
                     if ($this->input->post('atraso') == 10) {
                         $pk_fap_subtipo = 2;
                     } else {
                         if ($this->input->post('atraso') == 15) {
                             $pk_fap_subtipo = 3;
                         } else {
                             if ($this->input->post('atraso') == 20) {
                                 $pk_fap_subtipo = 4;
                             }
                         }
                     }
                 }
                 $RegistroFap = new RegistroFap();
                 $result = $RegistroFap->cadastrar_registro($fk_usuario_professor, $pk_fap_subtipo, '', $data_aula, $this->input->post('pk_aula'), $aula);
             }
             // tratamento de erros
             $mensagem_diagnostico = array();
             for ($i = 1; $i <= $this->input->post('total'); $i++) {
                 if ($this->input->post('aula_apostila_' . $i) != '0#0') {
                     $divide = explode('#', $this->input->post('aula_apostila_' . $i));
                     $pk_conteudo = $divide[0];
                     $status = $divide[1];
                     // checa se houve pulo no status do conteúdo e cria incrementa a array para alertar o usuário posteriormente sobre inconsistências
                     $sqlAulas = new SqlAulas();
                     $result = $sqlAulas->checa_status_conteudo($pk_conteudo, $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula']);
                     if (!empty($result)) {
                         $conta_andamento = 0;
                         $conta_concluido = 0;
                         $conta_loops = 0;
                         foreach ($result as $row) {
                             $conta_loops++;
                             //var_dump($pk_conteudo.'#'.$row['status'] );
                             if ($status == 1) {
                                 if ($row['status'] == $status) {
                                 } else {
                                     $mensagem_diagnostico[] = $pk_conteudo . '#' . $row['status'];
                                     break;
                                 }
                             } else {
                                 if ($status == 2) {
                                     if ($row['status'] == 1) {
                                         $conta_andamento++;
                                     } else {
                                         if ($row['status'] == 2) {
                                             $conta_concluido++;
                                         }
                                     }
                                     if ($conta_concluido > 1) {
                                         $mensagem_diagnostico[] = $pk_conteudo . '#' . $row['status'];
                                     }
                                 } else {
                                     if ($status == 3) {
                                         if ($row['status'] == 1) {
                                             $conta_andamento++;
                                         } else {
                                             if ($row['status'] == 2) {
                                                 $conta_concluido++;
                                             }
                                         }
                                         if ($conta_concluido > 1) {
                                             $mensagem_diagnostico[] = $pk_conteudo . '#' . $row['status'];
                                         } else {
                                             if (count($result) == $conta_loops && $conta_concluido == 0) {
                                                 // se o loop tiver terminado e ainda assim não houver um registro de conclusão
                                                 $mensagem_diagnostico[] = $pk_conteudo . '#' . $row['status'];
                                             }
                                         }
                                         if ($conta_andamento == 0) {
                                             $mensagem_diagnostico[] = $pk_conteudo . '#' . $row['status'];
                                         }
                                     }
                                 }
                             }
                         }
                     } else {
                         if ($status == 3) {
                             $mensagem_diagnostico[] = $pk_conteudo . '#0';
                         }
                     }
                 }
             }
             $pks_conteudos_correcao = array();
             foreach ($mensagem_diagnostico as $row) {
                 $divide = explode('#', $row);
                 $pk_conteudo = $divide[0];
                 $status = $divide[1];
                 $pks_conteudos_correcao[] = $pk_conteudo;
             }
             $_SESSION['pks_conteudos_correcao'] = $pks_conteudos_correcao;
             if (!empty($mensagem_diagnostico)) {
                 $this->session->set_flashdata('msg', '<div class="alert atencao">Os conteúdos foram atualizados com restrição. Sequência fora do padrão (andamento, concluído, revisado). Verifique os tópicos marcados em vermelho listados abaixo para efetuar as devidas correções.</div>');
                 redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/edicao_conteudos?' . 'pk_materia_vin=' . $this->input->post('fk_materia_vin') . '' . '&pk_usuario_professor=' . $this->input->post('fk_usuario_professor') . '' . '&pk_turma=' . $this->input->post('pk_turma') . '' . '&pk_livro=' . $this->input->post('fk_livro') . $data['get_shadowbox']);
             } else {
                 $this->session->set_flashdata('msg', '<div class="alert ok">Conteúdos atualizados com sucesso!</div>');
                 redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/cadastrar_conteudo_dados');
             }
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     if ($this->uri->segment(4) != '') {
         $sqlAulas = new SqlAulas();
         $result = $sqlAulas->get_conteudos_aula($fk_materia_vin, $fk_usuario_professor, $pk_grade, $data_evento);
         $data['edit_paginas'] = count($result) > 0 ? $result[0]['paginas'] : '';
         $data['edit_conteudo'] = count($result) > 0 ? $result[0]['conteudo'] : '';
         $data['edit_exercicios_casa'] = count($result) > 0 ? $result[0]['exercicios_casa'] : '';
         $data['edit_obs'] = count($result) > 0 ? $result[0]['obs'] : '';
         $data['atraso'] = count($result) > 0 ? $result[0]['atraso'] : 0;
         $_SESSION['pk_livro'] = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0;
         $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/';
         $pk_livro = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0;
         $sqlGrade = new SqlGrade();
         $result = $sqlGrade->get_materia_vin_nome($this->uri->segment(4));
         $data['materia'] = $result[0]['materia_nome'];
         $data['pk_materia_vin'] = $this->uri->segment(4);
         $sqlProfessor = new SqlUsuario();
         $result = $sqlProfessor->get_nome_professor($this->uri->segment(5));
         $data['professor'] = $result[0]['nome'];
         $data['pk_usuario_professor'] = $this->uri->segment(5);
         $data['livro'] = $sqlAulas->get_livro($data['ano_letivo'], $_SESSION['pk_serie_cadastro_aula'], $fk_materia_vin);
         $livro = explode("&pk_livro=", $_SERVER['QUERY_STRING']);
         $data['livro_url'] = $config['base_url'] . $this->uri->segment(4) . '/' . $this->uri->segment(5) . '/' . $this->uri->segment(6) . '/' . $this->uri->segment(7) . '/' . $this->uri->segment(8) . '?' . $livro[0];
         $result = $sqlAulas->get_capitulo_livro($data['ano_letivo'], $_SESSION['pk_serie_cadastro_aula'], $fk_materia_vin, $_SESSION['pk_livro']);
         $i = 0;
         $html = '';
         foreach ($result as $row) {
             $html .= '<h3>' . $row['capitulo_sequencial'] . ' - ' . $row['capitulo_nome'] . '</h3>';
             $result = $sqlAulas->get_conteudo_livro($row['pk_capitulo'], $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $aula);
             $i2 = 0;
             $erros = '';
             $html .= '<table><tr><th class="w50">Status Anterior</th><th class="w300">Tópicos</th><th class="w70">Páginas</th><th>Status Atual</th><th></th></tr>';
             foreach ($result as $item) {
                 $i2++;
                 $zebra = Util::zebrarGeral($i2, count($result));
                 $i++;
                 $status_anterior = View::status_aula_novo($item['status']);
                 $html .= '<tr ' . $zebra . '>
                             <td class="tcenter ' . $status_anterior['cor'] . '">' . $status_anterior['label'] . '</td>
                             <td>Tópico ' . $item['topico'] . ' - ' . $item['conteudo_nome'] . '</td>
                             <td>pag. ' . $item['paginas_trabalhadas'] . '</td>
                             <td>
                                 <select name="aula_apostila_' . $i . '" class="w150" id="select_' . $i . '">
                                     <option value="0#0"></option>';
                 $select1 = $item['aula'] == $aula && $item['status_aula'] == 1 ? 'selected' : '';
                 $select2 = $item['aula'] == $aula && $item['status_aula'] == 2 ? 'selected' : '';
                 $select3 = $item['aula'] == $aula && $item['status_aula'] == 3 ? 'selected' : '';
                 $html .= '<option value="' . $item['pk_conteudo'] . '#1" ' . $select1 . '>Em andamento</option>';
                 $html .= '<option value="' . $item['pk_conteudo'] . '#2" ' . $select2 . '>Concluído</option>';
                 if ($item['status'] != NULL) {
                     $html .= '<option value="' . $item['pk_conteudo'] . '#3" ' . $select3 . '>Revisado</option>';
                 }
                 $html .= '</select></td>';
                 $html .= '<td>
                                 <a class="mostraDivOculta link" data-id="' . $item['pk_conteudo'] . '">Sugestões de melhorias<br/> no livro didático</a>
                             </td>
                           </tr>';
                 $zebrar = $zebra == 'class="par"' ? 'par' : '';
                 $html .= '<tr class="DivOculta ' . $zebrar . '" id="' . $item['pk_conteudo'] . '">
                             <td></td>
                             <td colspan="5">';
                 if ($item['erros'] != NULL) {
                     $erros = explode(',', $item['erros']);
                 }
                 $html .= '<p>
                                     <label for="exercicios_sala">Reportar erros do material didático:</label>
                                         <div class="left">';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '1') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="1" ' . $status_erro . '> Melhorar conteúdo<br />';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '2') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="2" ' . $status_erro . '> Falta exercícios<br />';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '3') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="3" ' . $status_erro . '> Erro conceitual<br />';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '4') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="4" ' . $status_erro . '> Erro de diagramação<br />';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '5') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="5" ' . $status_erro . '> Erro gramatical<br />';
                 $status_erro = '';
                 if ($item['erros'] != NULL) {
                     foreach ($erros as $erro) {
                         if ($erro == '6') {
                             $status_erro = 'checked';
                             break;
                         }
                     }
                 }
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="6" ' . $status_erro . '> Erro de gabarito<br />';
                 $html .= '</div>
                                         <textarea name="erro_descricao' . $i . '" class="ml20 w450 h100">' . $item['obs'] . '</textarea>
                                  </p>
                             </td>
                           </tr>';
             }
             $html .= '</table>';
             $html .= '<br />';
         }
         $data['total'] = $i;
         $data['conteudo'] = $html;
     }
     $data['formulario'] = isset($_GET['pk_livro']) ? 'cadastrar_conteudo_form_apostila' : 'cadastrar_conteudo_form';
     $this->load->view($this->load->getUrlTema(), $data);
 }