/** * 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); }