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