Ejemplo n.º 1
0
 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)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 7;
     $data['abaPage'] = 'cadastrar_conteudo_form_apostila';
     $data['alias'] = 'conteudo_form';
     $_SESSION['capitulo_sequencial'] = '';
     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') : '';
             $tipo_form = $this->input->post('tipo_form') != '' ? $this->input->post('tipo_form') : '';
             $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;
             // conta o número de aulas dadas
             $total_aulas_dadas = 0;
             for ($i = 1; $i <= $this->input->post('total'); $i++) {
                 if ($this->input->post('aula_apostila_' . $i) != '') {
                     $total_aulas_dadas++;
                 }
                 if ($this->input->post('aula_numero_' . $i) != 'Aula') {
                     $aula = $this->input->post('aula_numero_' . $i);
                 }
             }
             $sqlAula = new SqlAula();
             $sqlAula->reset_aula_apostila($fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $aula);
             $capitulo = '';
             $conteudo = '';
             $paginas = '';
             $conteudos_livro = '';
             $exercicios_casa = '';
             $exercicios_sala = '';
             for ($i = 1; $i <= $this->input->post('total'); $i++) {
                 if ($this->input->post('pk_conteudo_' . $i) != '' && $this->input->post('aula_apostila_' . $i) != '0#0') {
                     $divide = explode('#', $this->input->post('aula_apostila_' . $i));
                     $pk_conteudo = $divide[0];
                     $status = $divide[1];
                     if ($status == 0) {
                         $this->session->set_flashdata('msg', '<div class="alert erro">A aula não foi incluída porque faltou o preenchimento do campo "status".</div>');
                         redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/cadastrar_conteudo_dados');
                         break;
                     }
                     if ($this->input->post('aula_numero_' . $i) == 'Aula') {
                         $this->session->set_flashdata('msg', '<div class="alert erro">A aula não foi incluída porque faltou o preenchimento do campo "aula".</div>');
                         redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/cadastrar_conteudo_dados');
                         break;
                     }
                     if ($this->input->post('aula_numero_' . $i) - $this->input->post('ultima_aula') != 1) {
                         $this->session->set_flashdata('msg', '<div class="alert erro">Você tentou incluir uma aula fora da sequência. A próxima aula a ser incluída deve ser de número ' . ($this->input->post('ultima_aula') + 1) . '.</div>');
                         redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/cadastrar_conteudo_dados');
                         break;
                     }
                     if ($pk_conteudo == $this->input->post('pk_conteudo_' . $i)) {
                         $conta_assuntos++;
                     }
                     if ($status == 1) {
                         $status_nome = ' (em andamento)';
                     } else {
                         if ($status == 2) {
                             $status_nome = ' (concluído)';
                         } else {
                             if ($status == 3) {
                                 $status_nome = ' (revisado)';
                             } else {
                                 $status_nome = '';
                             }
                         }
                     }
                     $sqlAula = new SqlAula();
                     $result = $sqlAula->get_conteudo_livro_chave($pk_conteudo);
                     $conteudo .= '<br />' . $result[0]['capitulo_sequencial'] . ': ' . $result[0]['capitulo_nome'] . '<br />';
                     $conteudo .= 'Assunto: ' . $result[0]['conteudo_nome'] . ' - Páginas:' . $result[0]['paginas_trabalhadas'] . $status_nome;
                     $exercicios_sala .= $this->input->post('exercicios_sala_' . $i) != '' ? '<br />' . $this->input->post('exercicios_sala_' . $i) : '';
                     $exercicios_casa .= $this->input->post('exercicios_casa_' . $i) != '' ? '<br />' . $this->input->post('exercicios_casa_' . $i) : '';
                     $aula = $this->input->post('aula_numero_' . $i) != '' ? $this->input->post('aula_numero_' . $i) : '';
                     $conteudos_livro .= $result[0]['pk_conteudo'] . ',';
                     $sqlAula = new SqlAula();
                     $sqlAula->cadastrar_aula_apostila($pk_conteudo, $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_aula, $status, $this->input->post('aula_numero_' . $i), $this->input->post('exercicios_sala_' . $i), $this->input->post('exercicios_casa_' . $i));
                     if (!isset($_SESSION['pk_unidade_cadastro_aula'])) {
                         $sqlAula = new SqlAula();
                         $result_unidade = $sqlAula->get_unidade($_SESSION['pk_turma_cadastro_aula']);
                         $_SESSION['pk_unidade_cadastro_aula'] = $result_unidade[0]['fk_unidade'];
                     }
                     $sqlAula = new SqlAula();
                     $result_percentual = $sqlAula->get_percentual_conteudo($pk_conteudo);
                     $sqlAula = new SqlAula();
                     $sqlAula->calcular_percentual_professor($fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $pk_conteudo, $status, $data_aula, $aula, $fk_materia_vin, $this->input->post('fk_livro'), $data['ano_letivo'], $_SESSION['pk_serie_cadastro_aula'], $_SESSION['pk_unidade_cadastro_aula'], $result_percentual[0]['percentual']);
                     if (is_array($this->input->post('erro' . $i))) {
                         // inclui os registros de erros na tabela de relatórios
                         $erros = '';
                         foreach ($this->input->post('erro' . $i) as $row) {
                             $erros .= $row . ',';
                         }
                         $sqlAula = new SqlAula();
                         $sqlAula->cadastrar_erros($pk_conteudo, $fk_usuario_professor, $erros, $this->input->post('erro_descricao' . $i));
                     }
                 }
             }
             $sqlAula = new SqlAula();
             $result = $sqlAula->checa_registro_aula($data_aula, $fk_usuario_professor, $fk_materia_vin, $fk_grade);
             if (count($result) == 0) {
                 $conteudos_livro_tratado = strlen(strip_tags($conteudos_livro)) > 50 ? substr(strip_tags($conteudos_livro), 0, 50) : $conteudos_livro;
                 if ($conteudo != '') {
                     $sqlAula = new SqlAula();
                     $pk_aula = $sqlAula->cadastrar_aula($data_aula, '', $capitulo, $paginas, $exercicios_sala, $exercicios_casa, $data_inclusao, $fk_usuario_professor, $fk_materia_vin, $fk_grade, $fk_usuario_inc, $atraso, $falta, $falta_providencia, $obs, $tipo_form, 1, $this->input->post('fk_livro'), $conteudos_livro_tratado, $conteudo, $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>');
                     }
                 } else {
                     $this->session->set_flashdata('msg', '<div class="alert erro">A inclusão não foi feita porque faltou clicar no checkbox correspondente ao assunto.</div>');
                     redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/cadastrar_conteudo_dados');
                 }
             } else {
                 $sqlAula = new SqlAula();
                 $sqlAula->editar_aula_apostila($result[0]['pk_aula'], $data_aula, $fk_usuario_professor, $fk_materia_vin, $fk_grade, $data_aula, $data_inclusao, $fk_usuario_inc, $exercicios_sala, $exercicios_casa, $obs, $this->input->post('fk_livro'), $conteudos_livro, $conteudo, $aula);
                 $this->session->set_flashdata('msg', '<div class="alert ok">Conteúdos atualizados 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) != '') {
         $_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']) ? $_GET['pk_livro'] : 0;
         $sqlAula = new SqlAula();
         $result = $sqlAula->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'] : '';
         $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);
         $sqlAula = new SqlAula();
         $data['livro'] = $sqlAula->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];
         $sqlAula = new SqlAula();
         $result = $sqlAula->get_conteudos_aula($fk_materia_vin, $fk_usuario_professor, $pk_grade, $data_evento);
         $data['exercicios_casa'] = count($result) > 0 ? $result[0]['exercicios_casa'] : '';
         $data['exercicios_sala'] = count($result) > 0 ? $result[0]['exercicios_sala'] : '';
         $data['obs'] = count($result) > 0 ? $result[0]['obs'] : '';
         $sqlAula = new SqlAula();
         $result = $sqlAula->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 .= '<strong>' . $row['capitulo_sequencial'] . ' - ' . $row['capitulo_nome'] . '</strong><br/>';
             $sqlAula = new SqlAula();
             $result = $sqlAula->get_conteudo_livro($row['pk_capitulo'], $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $aula);
             $i2 = 0;
             $erros = '';
             $html .= '<table>';
             foreach ($result as $item) {
                 $i2++;
                 $zebra = Util::zebrarGeral($i2, count($result));
                 $sqlAula = new SqlAula();
                 $result_aula = $sqlAula->get_conteudos_apostila_professor_edicao($_SESSION['pk_livro'], $fk_materia_vin, $fk_usuario_professor, $_SESSION['pk_turma_cadastro_aula'], $data_evento, $item['pk_conteudo'], $aula);
                 if (!empty($result_aula)) {
                     if ($result_aula[0]['pk_conteudo'] == $item['pk_conteudo']) {
                         $status_checed = 'checked';
                     }
                 } else {
                     $status_checed = '';
                 }
                 $i++;
                 $html .= '<tr ' . $zebra . '>
                             <td class="w20">' . View::status_aula($item['status']) . '</td>    
                             <td class="w300">' . $item['conteudo_nome'] . '</td>
                             <td class="w100">pag. ' . $item['paginas_trabalhadas'] . '</td>
                             <td>
                                 <input type="checkbox" name="pk_conteudo_' . $i . '" value="' . $item['pk_conteudo'] . '" ' . $status_checed . ' />
                                 <select name="aula_apostila_' . $i . '" class="w150" id="select_' . $i . '">
                                     <option value="0#0">Status</option>';
                 if (!empty($result_aula)) {
                     $selected = $result_aula[0]['status'] == 1 ? 'selected' : '';
                     $status = $result_aula[0]['status'];
                 } else {
                     $selected = $item['status'] == 1 ? 'selected' : '';
                     $status = $item['status'];
                 }
                 // $html .= $status == null || $status < 2 ? '<option value="' . $item['pk_conteudo'] . '#1" ' . $selected . '>Em andamento</option>' : '';
                 $html .= '<option value="' . $item['pk_conteudo'] . '#1" ' . $selected . '>Em andamento</option>';
                 if (!empty($result_aula)) {
                     $selected = $result_aula[0]['status'] == 2 ? 'selected' : '';
                     $status = $result_aula[0]['status'];
                 } else {
                     $selected = $item['status'] == 2 ? 'selected' : '';
                     $status = $item['status'];
                 }
                 // $html .= $status == null || $status < 3 ?  '<option value="' . $item['pk_conteudo'] . '#2" ' . $selected . '>Concluído</option>' : '';
                 $html .= '<option value="' . $item['pk_conteudo'] . '#2" ' . $selected . '>Concluído</option>';
                 if (!empty($result_aula)) {
                     $selected = $result_aula[0]['status'] == 3 ? 'selected' : '';
                     $status = $result_aula[0]['status'];
                 } else {
                     $selected = $item['status'] == 3 ? 'selected' : '';
                     $status = $item['status'];
                 }
                 // $html .= $status > 1 ? '<option value="' . $item['pk_conteudo'] . '#3" ' . $selected . '>Revisado</option>' : '';
                 $html .= '<option value="' . $item['pk_conteudo'] . '#3" ' . $selected . '>Revisado</option>';
                 $html .= '</select></td><td>';
                 if (!empty($result_aula)) {
                     $html .= '<input type="text" name="aula_numero_' . $i . '" class="w30" id="text_' . $i . '" value="' . $result_aula[0]['aula'] . '" />';
                 } else {
                     $html .= '<input type="text" name="aula_numero_' . $i . '" class="w30" id="text_' . $i . '" value="Aula" onClick="if(this.value==\'Aula\') this.value=\'\';" />';
                 }
                 $html .= '</td>
                             <td>
                                 <a class="mostraDivOculta link" data-id="' . $item['pk_conteudo'] . '">Tarefas / Erros</a>
                             </td>
                           </tr>';
                 $zebrar = $zebra == 'class="par"' ? 'par' : '';
                 if (!empty($result_aula)) {
                     $exercicios_sala = $result_aula[0]['exercicios_sala'];
                     $exercicios_casa = $result_aula[0]['exercicios_casa'];
                 } else {
                     $exercicios_sala = '';
                     $exercicios_casa = '';
                 }
                 $html .= '<tr class="DivOculta ' . $zebrar . '" id="' . $item['pk_conteudo'] . '">
                             <td></td>
                             <td colspan="5">
                                 <p>
                                     <label for="exercicios_sala">Exercícios em sala:</label><br />
                                     <input type="text" name="exercicios_sala_' . $i . '" id="exercicios_sala_' . $i . '" size="80"  maxlength="255" value="' . $exercicios_sala . '"> 
                                 </p>
                                 <p>
                                     <label for="exercicios_casa">Tarefas de casa:</label><br />
                                     <input type="text" name="exercicios_casa_' . $i . '" id="exercicios_sala_' . $i . '" size="80"  maxlength="255" value="' . $exercicios_casa . '"> 
                                 </p>';
                 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;
     }
     if (isset($_GET['pk_livro'])) {
         $data['msg'] = '<div class="alert atencao"><strong>Atenção!</strong><br /><br />Apenas os registros clicados no respectivo checkbox <img src="' . base_url() . 'images/checkbox.jpg"> aparecerão nos conteúdos diários da aula e do dia em questão. <br /><br /> 
             Recomendamos para que sempre sejam conferidos os conteúdos incluídos de cada dia, ao final da inclusão da última aula de cada turma.</div>';
     } else {
         $data['msg'] = '<div class="alert informacao">Caso o conteúdo dado seja fora da apostila (Ed. Física, por exemplo), preencha os dados abaixo sem selecionar o livro.</div>';
     }
     $data['formulario'] = isset($_GET['pk_livro']) ? 'cadastrar_conteudo_form_apostila' : 'cadastrar_conteudo_form';
     $this->load->view($this->load->getUrlTema(), $data);
 }