Ejemplo n.º 1
0
 /**
  * Método que cadastra os conteúdos ministrados pelos professores no sistema
  */
 public function cadastrar_conteudo_form_apostila($fk_materia_vin = 0, $fk_usuario_professor = 0, $pk_grade = 0, $ordem = 0, $data_evento = '', $pk_aula = 0, $aula = 0, $falta = 0, $falta_providencia = 0, $pk_aula_substituida = 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['pk_livro'] = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0;
     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_grade = $this->input->post('fk_grade') != '' ? $this->input->post('fk_grade') : 0;
             $fk_usuario_inc = $data['idUsuario'];
             $atraso = $this->input->post('atraso') != '' ? $this->input->post('atraso') : 0;
             $falta = $this->input->post('falta') != '' ? $this->input->post('falta') : 0;
             $falta_providencia = $this->input->post('falta_providencia') != '' ? $this->input->post('falta_providencia') : 0;
             $obs = $this->input->post('obs') != '' ? $this->input->post('obs') : '';
             $pk_aula_substituida = $this->input->post('pk_aula_substituida') != '' ? $this->input->post('pk_aula_substituida') : 0;
             $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'] = $dia . '/' . $mes . '/' . $ano;
             $_SESSION['data_evento'] = $ano . '-' . $mes . '-' . $dia;
             // INICIA O CADASTRO DA AULA NA AGENDA DIÁRIA
             $capitulo = '';
             $conteudo = $this->input->post('conteudo') != '' ? $this->input->post('conteudo') : '';
             $paginas = $this->input->post('paginas') != '' ? $this->input->post('paginas') : '';
             $exercicios_casa = $this->input->post('exercicios_casa') != '' ? $this->input->post('exercicios_casa') : '';
             $exercicios_sala = '';
             $conteudos_livro_tratado = '';
             $status = 1;
             $bimestre = $this->input->post('volume');
             $sqlAulas = new SqlAulas();
             $pk_aula = $sqlAulas->cadastrar_aula($data_aula, $conteudo, $capitulo, $paginas, $exercicios_sala, $exercicios_casa, $data_inclusao, $fk_usuario_professor, $fk_materia_vin, $fk_grade, $fk_usuario_inc, $atraso, $falta, $falta_providencia, $obs, $status, $this->input->post('fk_livro'), $conteudos_livro_tratado, $conteudo, $this->input->post('aula_numero'), $bimestre, $pk_aula_substituida);
             // 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>');
             }
             // Este reset é temporário. A partir de 2016 deverá ser retirado, pois o link da chave primária (pk_aula) com a chave estrangeira já fará esta ação
             $sqlAulas = new SqlAulas();
             $sqlAulas->reset_aula_apostila($fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $this->input->post('aula_numero'));
             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->cadastrar_aula_apostila($pk_conteudo, $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $status, $this->input->post('aula_numero'), $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));
                     }
                 }
             }
             // CONSOLIDA OS PERCENTUAIS DO PROFESSOR E DA TURMA
             if ($total_aulas_dadas > 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']);
             }
             // 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, $pk_aula, $aula);
             } else {
                 $this->session->set_flashdata('msg', '<div class="alert ok">Conteúdos incluídos com sucesso!</div>');
             }
             if ($_SESSION['redirect'] != '') {
                 redirect($_SESSION['redirect']);
             } else {
                 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) != '') {
         if (!isset($_GET['pk_livro'])) {
             $sqlAulas = new SqlAulas();
             $result = $sqlAulas->get_ultimo_volume_serie($_SESSION['pk_serie_cadastro_aula'], $data['ano_letivo']);
             if (!empty($result)) {
                 redirect($data['urlAtual'] . '?&pk_livro=' . $result[0]['pk_livro'] . '&volume=' . $result[0]['volume']);
             }
         }
         $_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;
         $sqlAulas = new SqlAulas();
         $result = $sqlAulas->get_ultima_aula($data['ano_letivo'], $fk_usuario_professor, $fk_materia_vin, $_SESSION['pk_turma_cadastro_aula'], $pk_livro);
         $data['ultima_aula'] = !empty($result) ? $result[0]['aula'] : '';
         $result = $sqlAulas->get_aulas_dadas($data['ano_letivo'], $fk_usuario_professor, $fk_materia_vin, $_SESSION['pk_turma_cadastro_aula'], $pk_livro);
         $ultimo_registro = end($result);
         $data['ultima_aula'] = !empty($result) ? $ultimo_registro['aula'] : '';
         $remover_aulas_dadas = array();
         foreach ($result as $row) {
             $remover_aulas_dadas[] = $row['aula'];
         }
         $aulas_programadas = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70);
         $aulas_seguintes = array_diff($aulas_programadas, $remover_aulas_dadas);
         $select = '<p>
                     <label>Sequencial da aula atual: </label>
                     <select name="aula_numero" class="w70">';
         foreach ($aulas_seguintes as $aul) {
             $select .= '<option value="' . $aul . '">' . $aul . '</option>';
         }
         $select .= '</select>
                    </p>';
         $data['select_aula'] = $select;
         $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);
             //var_dump($result);
             $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>';
                 if ($item['status'] == 1) {
                     $html .= '<option value="' . $item['pk_conteudo'] . '#1">Em andamento</option>';
                     $html .= '<option value="' . $item['pk_conteudo'] . '#2">Concluído</option>';
                 } else {
                     if ($item['status'] == 2) {
                         $html .= '<option value="' . $item['pk_conteudo'] . '#3">Revisado</option>';
                     } else {
                         if ($item['status'] == 3) {
                             $html .= '<option value="' . $item['pk_conteudo'] . '#3">Revisado</option>';
                         } else {
                             $html .= '<option value="' . $item['pk_conteudo'] . '#1">Em andamento</option>';
                             $html .= '<option value="' . $item['pk_conteudo'] . '#2">Concluído</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">';
                 $html .= '<p>
                                     <label for="exercicios_sala">Reportar erros do material didático:</label>
                                         <div class="left">';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="1"> Melhorar conteúdo<br />';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="2"> Falta exercícios<br />';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="3"> Erro conceitual<br />';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="4"> Erro de diagramação<br />';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="5"> Erro gramatical<br />';
                 $html .= '<input type="checkbox" name="erro' . $i . '[]" value="6"> Erro de gabarito<br />';
                 $html .= '</div>
                                         <textarea name="erro_descricao' . $i . '" class="ml20 w450 h100"></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);
 }