Пример #1
0
 /**
  * Método que importa capítulos e tópicos da apostila do ano anterior
  */
 public function importa_arvore()
 {
     $data = $this->getParametroVisao();
     $data['abaAtiva'] = 7;
     $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
     $data['page'] = 'home';
     $data['msg'] = $this->getMsg();
     $data['ano'] = isset($_GET['ano']) ? (int) $_GET['ano'] : 0;
     $data['pk_serie'] = isset($_GET['pk_serie']) ? (int) $_GET['pk_serie'] : 0;
     $data['pk_livro_cat'] = isset($_GET['pk_livro_cat']) ? (int) $_GET['pk_livro_cat'] : 0;
     $data['pk_materia_mae'] = isset($_GET['pk_materia_mae']) ? (int) $_GET['pk_materia_mae'] : 0;
     $data['pk_materia'] = isset($_GET['pk_materia']) ? (int) $_GET['pk_materia'] : 0;
     $data['volume'] = isset($_GET['volume']) ? (int) $_GET['volume'] : 0;
     $data['pk_livro'] = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0;
     $ano_anterior = $data['ano_letivo'] - 1;
     $data['tabela2'] = '';
     $data['livro_atual'] = '';
     $total_capitulos_livro_atual = 0;
     if (isset($_GET['sessoes']) == 1) {
         $_SESSION['pk_serie'] = (int) $_GET['pk_serie'];
         $_SESSION['pk_livro'] = (int) $_GET['pk_livro'];
         $_SESSION['pk_livro_cat'] = (int) $_GET['pk_livro_cat'];
         $_SESSION['pk_materia_mae'] = (int) $_GET['pk_materia_mae'];
         $_SESSION['pk_materia'] = (int) $_GET['pk_materia'];
         $_SESSION['volume'] = (int) $_GET['volume'];
         $_SESSION['ano_apostila'] = $data['ano_letivo'];
         $_SESSION['area'] = (int) $_GET['area'];
         redirect(str_replace('&sessoes=1', '', $data['urlAtual']));
     }
     if (isset($_GET['concluir'])) {
         $sqlLivro = new SqlLivro();
         $sqlLivro->update_status_livro($data['pk_livro'], $data['pk_materia'], 2);
         $this->session->set_flashdata('msg', '<p class="alert ok">Livro incluído com sucesso!<br />Edite os conteúdos digitais e clique no botão "concluir" no final da página.</p>');
         redirect(base_url() . 'aula/livro/arvore_links/?pk_serie=' . $_SESSION['pk_serie'] . '&pk_livro_cat=' . $_SESSION['pk_livro_cat'] . '&area=' . $_SESSION['area'] . '&pk_materia_mae=' . $_SESSION['pk_materia_mae'] . '&pk_materia=' . $_SESSION['pk_materia'] . '&pk_livro=' . $_SESSION['pk_livro'] . '&volume=' . $_SESSION['volume']);
     }
     $sqlLivro = new SqlLivro();
     $result = $sqlLivro->checa_livro($_SESSION['pk_serie'], $_SESSION['pk_livro_cat'], $_SESSION['volume'], $_SESSION['ano_letivo']);
     $pk_livro = !empty($result) ? $result[0]['pk_livro'] : 0;
     $data['pk_livro'] = $pk_livro;
     $result = $sqlLivro->get_materia_vin($_SESSION['pk_serie'], $_SESSION['pk_materia']);
     $pk_materia_vin = !empty($result) ? $result[0]['pk_materia_vin'] : 0;
     // inclui capítulo
     if (isset($_GET['pk_capitulo'])) {
         $sqlLivro = new SqlLivro();
         $result = $sqlLivro->get_capitulo((int) $_GET['pk_capitulo']);
         $capitulo_nome = $result[0]['capitulo_nome'];
         $sqlAula = new SqlAula();
         $result = $sqlAula->get_ultimo_capitulo($pk_livro, $pk_materia_vin);
         $proximo_sequencial_capitulo = !empty($result) ? substr($result[0]['capitulo_sequencial'], -1) + 1 : 1;
         try {
             $capitulo_sequencial = 'Capítulo ' . $proximo_sequencial_capitulo;
             $pk_capitulo_novo = $sqlAula->cadastrar_capitulo($capitulo_sequencial, $capitulo_nome, $pk_livro, $pk_materia_vin, $_GET['pk_capitulo']);
             $_SESSION['pk_capitulo_novo'] = $pk_capitulo_novo;
             $result = $sqlLivro->get_anexos_capitulos((int) $_GET['pk_capitulo']);
             foreach ($result as $row) {
                 $sqlLivro->cadastrar_anexo_vin($row['fk_anexo'], 0, $_SESSION['pk_serie'], $pk_capitulo_novo);
             }
             $this->session->set_flashdata('msg', '<p class="alert ok">Capítulo "' . $capitulo_nome . '" incluído com sucesso!</p>');
             redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']);
         } catch (Exception $e) {
             $this->session->set_flashdata('msg', '<p class="alert erro">' . $e->getMessage() . '</p>');
             redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']);
         }
     }
     // inclui tópico
     if (isset($_GET['pk_conteudo'])) {
         $sqlLivro = new SqlLivro();
         $result = $sqlLivro->get_topico((int) $_GET['pk_conteudo']);
         $conteudo_nome = $result[0]['conteudo_nome'];
         $pagina_inicial = $result[0]['pagina_inicial'];
         $pagina_final = $result[0]['pagina_final'];
         $paginas_trabalhadas = $result[0]['paginas_trabalhadas'];
         $total = $result[0]['total'];
         $sqlAulas = new SqlAulas();
         $result = $sqlAulas->get_ultimo_conteudo($_SESSION['pk_capitulo_novo']);
         $proximo_topico = !empty($result) && $result[0]['topico'] != '' ? $result[0]['topico'] + 1 : 1;
         try {
             $pk_conteudo = $sqlAulas->cadastrar_assunto($conteudo_nome, $_SESSION['pk_capitulo_novo'], $paginas_trabalhadas, $proximo_topico, $_GET['pk_conteudo'], $pagina_inicial, $pagina_final, $total);
             $result = $sqlLivro->get_anexos_conteudos((int) $_GET['pk_conteudo']);
             foreach ($result as $row) {
                 $sqlLivro->cadastrar_anexo_vin($row['fk_anexo'], $pk_conteudo, $_SESSION['pk_serie'], 0);
             }
             $this->session->set_flashdata('msg', '<p class="alert ok">Tópico "' . $conteudo_nome . '" incluído com sucesso!<br />Para concluir a etapa de inclusão de capítulos e tópicos, clique no botão "Concluir" no final da página.</p>');
             redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']);
         } catch (Exception $e) {
             $this->session->set_flashdata('msg', '<p class="alert erro">' . $e->getMessage() . '</p>');
             redirect(base_url() . 'aula/livro/importa_arvore?ano=' . $_GET['ano'] . '&pk_serie=' . $_GET['pk_serie'] . '&pk_livro_cat=' . $_GET['pk_livro_cat'] . '&area=' . $_GET['area'] . '&pk_materia_mae=' . $_GET['pk_materia_mae'] . '&pk_materia=' . $_GET['pk_materia'] . '&pk_livro=' . $_GET['pk_livro'] . '&volume=' . $_GET['volume']);
         }
     }
     $array_capitulos = array();
     $array_topicos = array();
     // ARVORE ATUAL
     if ($pk_livro > 0) {
         $result = $sqlLivro->get_capitulos($pk_livro, $pk_materia_vin);
         $data['livro_atual'] = count($result);
         $total_capitulos_livro_atual = count($result);
         $html = '<table class="table" style="max-width: 500px;">';
         $checa_topicos_incluidos = array();
         foreach ($result as $row) {
             $array_capitulos[] = $row['fk_capitulo_anterior'];
             $html .= '<tr class="par">
                     <td><strong>' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '</strong></td>
                     <td class="w20">
                         <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/editar_capitulo/' . $row['pk_capitulo'] . '?importa_arvore=1"><div class="tooltip icon_edit" data-tooltip="Edição de capítulo"></div></a>
                    </td>
                     <td class="w20">
                         <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/excluir_capitulo" ' . View::getParamExcluirItemTabela($row['pk_capitulo'], 0, 0, $data['urlAtual'], 'Excluir capítulo', 'Deseja excluir o capítulo ' . $row['capitulo_nome'] . '') . '   class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>
                     </td>
                 </tr>
                 <tr>
                     <td colspan="4">';
             $sqlLivro = new SqlLivro();
             $result = $sqlLivro->get_topicos_links($row['pk_capitulo']);
             $checa_topicos_incluidos[] = count($result);
             $html .= '<table class="w100per mb10">';
             foreach ($result as $item) {
                 $array_topicos[] = $item['fk_conteudo_anterior'];
                 $paginas = $item['paginas_trabalhadas'] != '' ? ' - pag(s): ' . $item['paginas_trabalhadas'] : '';
                 $html .= '<tr class="topico"><td class="w40 nowrap" >Tópico ' . $item['topico'] . ':</td><td>' . $item['conteudo_nome'] . ' ' . $paginas . '</td>' . '<td class="w20">
                                             <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/editar_assunto/' . $item['pk_conteudo'] . '/' . $row['pk_capitulo'] . '?importa_arvore=1"><div class="tooltip icon_edit" data-tooltip="Edição de assunto"></div></a>
                                         </td>
                                         <td class="w20">
                                             <a href="' . base_url() . $this->uri->segment(1) . '/conteudos/excluir_assunto" ' . View::getParamExcluirItemTabela($item['pk_conteudo'], 0, 0, $data['urlAtual'], 'Excluir tópico', 'Deseja excluir o tópico ' . $item['conteudo_nome'] . '') . '   class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>
                                         </td>
                                     </tr>';
             }
             $html .= '</table>';
             $ano_parametro = isset($_GET['ano']) ? $_GET['ano'] : $_SESSION['ano_letivo'];
             $html .= '<a class="link" style="margin-left:76px;" href="' . base_url() . 'aula/conteudos/cadastrar_assunto/' . $data['pk_livro'] . '/' . $row['pk_capitulo'] . '?ano=' . $ano_parametro . '&arvore=1">Incluir Tópico inédito neste Capítulo</a><br /><br />';
             $html .= '</td></tr>';
         }
         $html .= '<tr><td class="par" colspan="3"><strong><a class="link" href="' . base_url() . 'aula/conteudo/cadastrar_capitulo/' . $pk_livro . '?&' . $_SERVER['QUERY_STRING'] . '&arvore=1">Incluir novo Capítulo</a></strong></td></tr>';
         $html .= '</table>';
         $data['tabela2'] = $html;
     }
     $capitulo_sem_topico = 0;
     if (!isset($checa_topicos_incluidos)) {
         $capitulo_sem_topico = 1;
     } else {
         foreach ($checa_topicos_incluidos as $n_topicos) {
             if ($n_topicos == 0) {
                 $capitulo_sem_topico = 1;
                 break;
             }
         }
     }
     $data['checa_topicos_incluidos'] = $capitulo_sem_topico;
     // ARVORE ANTERIOR
     $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3);
     $sqlAulas = new SqlAulas();
     $data['anos'] = $sqlAulas->get_anos_livros();
     $ano = explode("ano=", $_SERVER['QUERY_STRING']);
     $data['ano_url'] = $config['base_url'] . '?' . $ano[0];
     $sqlLivro = new SqlLivro();
     $result = $sqlLivro->get_apostila_anterior_capitulos($data['ano'], $data['pk_serie'], $data['pk_livro_cat'], $data['pk_materia'], $data['volume']);
     $total_capitulos_livro_anterior = count($result);
     $data['livro_anterior'] = count($result);
     $data['pk_livro_anterior'] = !empty($result) ? $result[0]['pk_livro'] : 0;
     $html = '<table class="table w400">';
     foreach ($result as $row) {
         $html .= '<tr class="par">
                             <td><strong>' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '</strong></td>
                             <td class="w70 tcenter">';
         $linkCapitulo = '';
         if (empty($array_capitulos)) {
             $linkCapitulo = '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_capitulo=' . $row['pk_capitulo'] . '">Importar >></a>';
         } else {
             foreach ($array_capitulos as $cap) {
                 if ($cap == $row['pk_capitulo']) {
                     $linkCapitulo = '';
                     break;
                 } else {
                     $linkCapitulo = '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_capitulo=' . $row['pk_capitulo'] . '">Importar >></a>';
                 }
             }
         }
         $html .= $linkCapitulo;
         $html .= '  </td>';
         $html .= '</tr>
                           <tr>
                             <td colspan="2">';
         $sqlLivro = new SqlLivro();
         $result = $sqlLivro->get_apostila_anterior_topicos($row['pk_capitulo'], $array_topicos);
         $html .= '<table class="w100per">';
         foreach ($result as $item) {
             $html .= '<tr><td class="w40 nowrap" >Tópico ' . $item['topico'] . ':</td><td>' . $item['conteudo_nome'] . '</td>' . '<td class="w80 tcenter">';
             if (isset($_SESSION['pk_capitulo_novo'])) {
                 $html .= '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?' . $_SERVER['QUERY_STRING'] . '&pk_conteudo=' . $item['pk_conteudo'] . '">Importar >></a>';
             }
             $html .= '</td></tr>';
         }
         $html .= '</table>';
         $html .= '</td></tr>';
     }
     $html .= '</table>';
     $data['tabela1'] = $html;
     if ($total_capitulos_livro_atual == 0 && $total_capitulos_livro_anterior != 0) {
         $data['msg'] = '<div class="alert informacao">Clique em um dos links de capítulos listados abaixo para iniciar a estrutura do novo livro. Caso seja necessário incluir capítulos inéditos, clique no botão acima.</div>';
     } else {
         $data['msg'] = $data['livro_atual'] == 0 ? '<div class="alert atencao">Não constam dados de livros anteriores a serem importados. <a class="link" href="' . base_url() . 'aula/conteudo/cadastrar_capitulo/' . $_SESSION['pk_livro'] . '?&' . $_SERVER['QUERY_STRING'] . '&arvore=1"><strong>Clique aqui</strong></a> para cadastrar uma topificação inédita.</div>' : '';
     }
     $sqlGrade = new SqlGrade();
     $data['serie'] = $sqlGrade->filtro_series();
     $serie = explode("&pk_serie=", $_SERVER['QUERY_STRING']);
     $data['serie_url'] = $config['base_url'] . '?' . $serie[0];
     if (isset($_GET['pk_serie'])) {
         $sqlAulas = new SqlAulas();
         $data['livro'] = $sqlAulas->get_livros($_GET['pk_serie'], $ano_anterior, $this->uri->segment(3));
         $livro = explode("&pk_livro_cat=", $_SERVER['QUERY_STRING']);
         $data['livro_url'] = $config['base_url'] . '?' . $livro[0];
         $area = explode("&area=", $_SERVER['QUERY_STRING']);
         $data['area_url'] = $config['base_url'] . '?' . $area[0];
         if (isset($_GET['area'])) {
             $sqlAulas = new SqlAulas();
             $data['materias_mae'] = $sqlAulas->get_materias_mae($_GET['area']);
             $materias_mae = explode("&pk_materia_mae=", $_SERVER['QUERY_STRING']);
             $data['materias_mae_url'] = $config['base_url'] . '?' . $materias_mae[0];
             if (isset($_GET['pk_materia_mae'])) {
                 $sqlAulas = new SqlAulas();
                 $data['materias'] = $sqlAulas->get_frentes($_GET['pk_materia_mae'], $_GET['pk_serie']);
                 $materias = explode("&pk_materia=", $_SERVER['QUERY_STRING']);
                 $data['materias_url'] = $config['base_url'] . '?' . $materias[0];
                 if (isset($_GET['pk_materia'])) {
                     $sqlAulas = new SqlAulas();
                     $data['volume'] = $sqlAulas->get_volumes($_GET['pk_livro_cat'], $_GET['pk_serie'], $data['ano']);
                     $volume = explode("&volume=", $_SERVER['QUERY_STRING']);
                     $data['volume_url'] = $config['base_url'] . '?' . $volume[0];
                 }
             }
         }
     }
     $_SESSION['redirect_inclui_arvore'] = $data['urlAtual'];
     $this->load->view($this->load->getUrlTema(), $data);
 }