Beispiel #1
0
 public function detalhe_metas($pkusuarioAluno = 0)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 27;
     $data['abaPage'] = 'detalhe_metas';
     $data['alias'] = 'detalhe_metas';
     //Trecho modificado para um melhor controle de acesso
     $tipoLogado = (int) $data["idTipoUsuario"];
     $idUsuarioAluno = $data['idUsuarioAluno'];
     if ($tipoLogado == Kernel_Models_TiposUsuario::TIPO_ADMIN || $tipoLogado == Kernel_Models_TiposUsuario::TIPO_GESTOR || $tipoLogado == Kernel_Models_TiposUsuario::TIPO_COORDENADOR) {
         $idUsuarioAluno = (int) $pkusuarioAluno;
         //Apenas os tipos definidos acima pondem escolher alunos não logados
         $data['idUsuarioAluno'] = $idUsuarioAluno;
         //passando o aluno para a view
         if (!$idUsuarioAluno) {
             //Caso o código informado para o aluno seja inválido
             echo Javascript::alert("O aluno informado é inválido");
             echo Javascript::shadowboxClose();
             die(Javascript::history_back());
         }
     }
     $data["mes"] = filter_input(INPUT_GET, "mes");
     //Recebendo o mês via GET
     if (!isset($_GET['mes'])) {
         redirect(base_url() . 'metas/mtavan/detalhe_metas?mes=' . date('m'));
     }
     $mes = isset($_GET['mes']) ? $_GET['mes'] : date('m');
     $SqlOlimpica = new SqlOlimpica();
     $result = $SqlOlimpica->get_datas($data['idUsuarioAluno'], $mes, 2);
     //        $result = $SqlOlimpica->get_datas($data['idTurmaAluno'], $mes, 2);//Antes estava sendo passado o código da truma, a página não estava funcionando adequadamente
     $data['total'] = count($result);
     $html = '<table>';
     $html .= '<tr><th>Data</th><th style="width:40px;">Ordem</th><th style="width:70px;">Disciplina</th><th style="width:200px;">Professor</th><th>Conteúdo</th><th>Presença</th></tr>';
     foreach ($result as $row) {
         $SqlOlimpica = new SqlOlimpica();
         $result = $SqlOlimpica->get_aulas_calendario_aluno($data['idTurmaAluno'], $row['data_aula'], $data['idUsuarioAluno']);
         $aula = '<table>';
         foreach ($result['registros'] as $item) {
             $aula .= '<tr>
                         <td style="border-bottom: 0px; width: 40px;">Aula ' . $item['ordem'] . '</td>
                         <td style="border-bottom: 0px; width: 70px;">' . Mestre::materia($item['materia']) . '</td>
                         <td style="border-bottom: 0px; width: 200px;">' . $item['nome'] . '</td>
                         <td style="border-bottom: 0px;">' . $item['conteudo'] . '</td>
                       </tr>';
             $ordem = 'Aula ' . $item['ordem'];
             $materia = Mestre::materia($item['materia']);
             $nome = $item['nome'];
             $presenca = $item['presenca'] != null ? '<div class="icon_ok"></div>' : '';
         }
         $aula .= '</table>';
         $html .= '<tr><td>' . View::converteDataBr($row['data_aula']) . '</td><td colspan="4">' . $aula . '</td><td style="padding-left: 31px;">' . $presenca . '</td></tr>';
     }
     $html .= '</table>';
     $data['html'] = $html;
     $this->load->view($this->load->getUrlTema(), $data);
 }
Beispiel #2
0
 /**
  * Método que permite editar a conta selecionada
  * @param int $contaId
  */
 public function editar($contaId = FALSE)
 {
     $id = (int) $contaId;
     $this->contas->setId($id);
     $conta = $this->contas->getObject();
     if (!$id || !$conta) {
         echo Javascript::alert("A conta informada é inválida");
         echo Javascript::history_back();
         return;
     }
     //        $acao = $this->load->model('public_acao');
     $acao = new ModelBase("public.acao");
     $this->setData('conta', $conta)->setData('acao', $acao->select("", array(), "", array('modulo')))->printView();
 }
Beispiel #3
0
 public function detalhe_olimpica($pkUsuarioAluno = 0)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 19;
     $data['abaPage'] = 'detalhe_olimpica';
     $data['alias'] = 'detalhe_olimpica';
     $mes = isset($_GET['mes']) ? $_GET['mes'] : '';
     //Trecho modificado para um melhor controle de acesso
     $tipoLogado = (int) $data["idTipoUsuario"];
     $idUsuarioAluno = $data['idUsuarioAluno'];
     if ($tipoLogado == Kernel_Models_TiposUsuario::TIPO_ADMIN || $tipoLogado == Kernel_Models_TiposUsuario::TIPO_GESTOR || $tipoLogado == Kernel_Models_TiposUsuario::TIPO_COORDENADOR) {
         $idUsuarioAluno = (int) $pkUsuarioAluno;
         //Apenas os tipos definidos acima pondem escolher alunos não logados
         $data['idUsuarioAluno'] = $idUsuarioAluno;
         //passando o aluno para a view
         if (!$idUsuarioAluno) {
             //Caso o código informado para o aluno seja inválido
             echo Javascript::alert("O aluno informado é inválido");
             echo Javascript::shadowboxClose();
             die(Javascript::history_back());
         }
     }
     $data["mes"] = filter_input(INPUT_GET, "mes");
     //Recebendo o mês via GET
     $SqlOlimpica = new SqlOlimpica();
     $result = $SqlOlimpica->get_datas($idUsuarioAluno, $mes, 1);
     $data['total'] = count($result);
     $html = '<table><tr><th>Data</th><th>Conteúdo</th><th>Disciplina</th><th>Presença<br/>/ Nota</th></tr>';
     foreach ($result as $row) {
         $presenca = $row['presenca'] != null ? '<div class="icon_ok ml20"></div>' : '';
         $presenca_final = $row['nota'] != '' ? '<div class="ml20"><strong>' . number_format($row['nota']) . '</strong></div>' : $presenca;
         $conteudo = $row['prova'] != '' ? '<strong>PROVA</strong>' : $row['conteudo'];
         $materia = explode(' - ', $row['turma_nome']);
         $html .= '<tr>
                     <td>' . View::converteDataBr($row['data_aula']) . '</td>
                     <td>' . $conteudo . '</td>
                     <td>' . $materia[1] . '</td>
                     <td>' . $presenca_final . '</td>';
     }
     $html .= '</table>';
     $data['html'] = $html;
     $this->load->view($this->load->getUrlTema(), $data);
 }
Beispiel #4
0
 /**
  * Método que trabalha os dados para exibição dos indicadores dos professores
  * @param int $pkPesquisaCat O código da categoria da pesquisa
  * @param int $pkSerie O código da serie
  * @param int $pkTurma O código da turma
  */
 public function indicadores($pkPesquisaCat, $pkSerie, $pkTurma)
 {
     $sqlPesquisa = new SqlPesquisa();
     $pesquisaNome = $sqlPesquisa->get_pesquisa_nome((int) $pkPesquisaCat);
     if (!(int) $pkPesquisaCat || !(int) $pkSerie || !(int) $pkTurma || !count($pesquisaNome)) {
         echo Javascript::alert('Dados inválido. Os dados informados para a pesquisa são inválidos');
         echo Javascript::shadowboxClose();
         echo Javascript::history_back();
         return;
     }
     $turma = new Kernel_Models_Turma();
     //        $fapRankingPesqTurmaInd = $this->load->model('fap_ranking_pesquisa_turma_indicador');
     $fapRankingPesqTurmaInd = new ModelBase("fap.ranking_pesquisa_turma_indicador");
     $rankingTurma = $fapRankingPesqTurmaInd->select('fk_pesquisa_cat=' . $pkPesquisaCat . ' and fk_turma=' . $pkTurma, array(), '', array('indicador'), array(), 0, 0, 0);
     $lsita = array();
     $conteudo = $assiduidade = $disciplina = $envolvimento = array();
     $arrayTipos = array('', 'Conteúdo', 'Assiduidade', 'Disciplina', 'Envolvimento');
     while ($row = $rankingTurma->fetchObject()) {
         if (!isset($lsita[$row->fk_pes_questao_template][$row->fk_usuario_professor])) {
             $lsita[$row->fk_pes_questao_template][$row->fk_usuario_professor] = $row;
         }
         switch ($row->fk_pes_questao_template) {
             case 1:
                 $conteudo[] = $row->indicador;
                 break;
             case 2:
                 $assiduidade[] = $row->indicador;
                 break;
             case 3:
                 $disciplina[] = $row->indicador;
                 break;
             default:
                 $envolvimento[] = $row->indicador;
                 break;
         }
     }
     $conteudoMedia = Matematica::mediaAritimeticaArray($conteudo);
     $assiduidadeMedia = Matematica::mediaAritimeticaArray($assiduidade);
     $disciplinaMedia = Matematica::mediaAritimeticaArray($disciplina);
     $envolvimentoMedia = Matematica::mediaAritimeticaArray($envolvimento);
     $this->setData('sqlPesquisa', $sqlPesquisa)->setData('pkPesquisa', $pkPesquisaCat)->setData('pesquisaNome', $pesquisaNome)->setData('pkSerie', $pkSerie)->setData('pkTurma', $pkTurma)->setData('conteudoMedia', number_format($conteudoMedia, 1))->setData('conteudoConceito', View::bgConceito($conteudoMedia))->setData('assiduidadeMedia', number_format($assiduidadeMedia, 1))->setData('assiduidadeConceito', View::bgConceito($assiduidadeMedia))->setData('disciplinaMedia', number_format($disciplinaMedia, 1))->setData('disciplinaConceito', View::bgConceito($disciplinaMedia))->setData('envolvimentoMedia', number_format($envolvimentoMedia, 1))->setData('envolvimentoConceito', View::bgConceito($envolvimentoMedia))->setData('listaResumo', $lsita)->setData('arrayTipos', $arrayTipos)->setData('turma', $turma->getObject('pk_turma=' . (int) $pkTurma))->setData('pesquisaTurma', $sqlPesquisa->ranking_pesquisa_turma($pkPesquisaCat, $pkTurma, $this->getData('ano_letivo')))->setData('filtroTurmas', $sqlPesquisa->ranking_pesquisa_cat_fitro_turma($pkPesquisaCat, $pkSerie, $this->getData('ano_letivo')))->printView();
 }
Beispiel #5
0
 /**
  * Método qeu gera um alerta e redireciona o usuário para a tela de lohin
  */
 private function redirectToLogin()
 {
     //captura uri acessada pelo qrcode para reutilizar após o login
     $uriQrcode = $_SERVER['REQUEST_URI'];
     //explode a uri para capturar apenas a pk do anexo
     $explode = explode('/', $uriQrcode);
     if ($explode[3] == null) {
         //cria variavel de location associando a pk do anexo como parametro
         $location = base_url() . 'usuario/login_w';
         echo Javascript::alert("Desculpe, você não esta logado ou não possue acesso a URL informada");
         die(Javascript::window_location($location));
         // header('location:' . base_url() . 'usuario/login_w/' .$uriQrcode);
     } else {
         //cria variavel de location associando a pk do anexo como parametro
         $location = base_url() . 'conteudos_extras_do_livro/' . $explode[3];
         // echo Javascript::alert("Desculpe, você não esta logado ou não possue acesso a URL informada");
         // die(Javascript::window_location($location));
         // header('location:' . base_url() . 'usuario/login_w/' .$uriQrcode);
     }
 }
 /**
  * Método que gera a página de exibição do tópico acessado na home do estudo online.
  * Só é exibido o tópico já dado em sala de aula.
  *
  * @param int $topicoId O código do tópico
  */
 public function estudoOnlineTopico($topicoId)
 {
     $this->load->helper('link');
     $usrAux = new Usuarios();
     $sqlTurma = new SqlTurma();
     $sqlTopico = new SqlTopicoAula();
     $sqlAnexo = new SqlAnexosAula();
     $sqlQuestao = new SqlQuestaoAula();
     $sqlAcomp = new SqlAcompanhamento();
     $sqlLivreto = new SqlLivretoAula();
     $teste = false;
     try {
         $aluno = $usrAux->getAluno(false);
         $turma = $sqlTurma->deALuno($aluno)->fetch();
         $topico = $sqlTopico->get((int) $topicoId);
         $anexos = $sqlAnexo->deTopicoECapitulo($topico);
         $acomp = $sqlAcomp->deTopico($topico);
         $livreto = $sqlLivreto->deTopico($topico);
         if ($acomp->getStatus() == Acompanhamento::STATUS_CONCLUIDO || $acomp->getStatus() == Acompanhamento::STATUS_REVISADO) {
             //Criando um teste para o tópico
             $sqlTeste = new SqlTesteTopico();
             $teste = $sqlTeste->porAlunoTopico($aluno, $topico);
             if (!$teste) {
                 //Verificando se existem questões cadastrdas para realizar o teste
                 if ($sqlQuestao->temParaTopico($topico)) {
                     //Tem
                     //Gera o teste
                     $teste = new TesteTopico();
                 }
             }
         }
         //Passando os dados para o view
         $this->loadPlugin('shadowbox');
         $this->setData('aluno', $aluno);
         $this->setData('turma', $turma);
         $this->setData('livro', $livreto);
         $this->setData('topico', $topico);
         $this->setData('anexos', $anexos);
         $this->setData('teste', $teste);
         $this->printView();
     } catch (SqlException $sql) {
         echo $sql->getMessage();
         echo Javascript::alert('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.');
         //            $this->close(true);
     } catch (Exception $exc) {
         echo $exc->getMessage();
         //            $this->close(true);
     }
 }
Beispiel #7
0
 /**
  * Método que permite visualizar e editar uma categoria especifica
  * @param int $categoriaId O id da categoria no banco
  */
 public function ver_categoria($categoriaId = 0)
 {
     //Inicializando o objeto básico
     $ouvidoria = new eqpedagogica_models_Ouvidoria();
     //Verificando se a categria existe
     try {
         //Validando a categroia
         $categoria = $ouvidoria->getCategoriaBanco((int) $categoriaId);
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::history_back());
     }
     //fazendo a edição da categoria
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             //Recebendo os novos dados
             $categoriaNovoTitulo = filter_input(INPUT_POST, "categoria", FILTER_SANITIZE_MAGIC_QUOTES);
             //Editando a categoria
             $ouvidoria->editarCategoria($categoriaNovoTitulo);
             //Exibindo a mensagem de sucesso
             echo Javascript::alert("Categoria editada com sucesso");
             //Redirecionando para a listagem
             die(Javascript::window_location($this->rotas->rotaById(924)));
         } catch (Exception $exc) {
             echo Javascript::alert($exc->getMessage());
             die(Javascript::history_back());
         }
     }
     //Passando so dados para o view
     $this->setData("categoria", $categoria)->printView();
 }
Beispiel #8
0
 /**
  * Método responsável pela exibição da mensagem.
  * OBS: O método esta incompleto pois não esta fazendo a busca correta para o destinatário especifico
  * @param int $mensagemId
  */
 public function ver_mensagem($mensagemId = 0)
 {
     //Inicializando os objetos básicos
     $usrValidar = new Kernel_Models_ValidarUsuarios();
     $agenda = new alunos_models_AgendaSemanal();
     try {
         $usrValidar->getCoordenador();
         $mensagem = $agenda->getMensagem((int) $mensagemId);
         die(stripslashes($mensagem->getConteudo()));
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
 }
Beispiel #9
0
 /**
  * Método que permite ver a conversa de um determinado chamado
  * @param int $chamadoId O id do chamado
  */
 public function ver_mensagens($chamadoId = FALSE)
 {
     $usrValidar = new Kernel_Models_ValidarUsuarios();
     //Inicializando os objetos básicos
     $ouvidoria = new eqpedagogica_models_Ouvidoria();
     $chamado = $ouvidoria->getChamado((int) $chamadoId);
     //validando o chamado
     if (!$chamado) {
         echo Javascript::alert("O chamado informado é inválido");
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
     //Definindo os dados do coordenador
     $coordenador = $usrValidar->coordenador($chamado->destinatario);
     $responsavel = $usrValidar->responsavel($chamado->user_insert);
     //Passando os dados para o view
     $this->setUsuarioFiltros($coordenador)->setData("coordenador", $coordenador)->setData("responsavel", $responsavel)->setData("chamados", $chamado)->setData("mensagens", $chamado->getMensagens())->printView();
 }
Beispiel #10
0
 /**
  * Método de envio de mensagens(envio geral)
  */
 public function contatenos()
 {
     $data = $this->getParametroVisao();
     $msg = '';
     //
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         ini_set('default_charset', 'utf8');
         //Executando o cadastro da mensagem
         $titulo = filter_input(INPUT_POST, 'assunto', FILTER_SANITIZE_MAGIC_QUOTES);
         $mensagem = filter_input(INPUT_POST, 'mensagem', FILTER_SANITIZE_MAGIC_QUOTES);
         $destinatario = filter_input(INPUT_POST, 'destinatario', FILTER_SANITIZE_MAGIC_QUOTES);
         if (!$destinatario) {
             echo Javascript::alert("O destinatário informado é invalido. Selecione um na lista");
             echo Javascript::history_back();
             exit;
         }
         if (!$titulo) {
             echo Javascript::alert("O assunto informado é inválido");
             echo Javascript::history_back();
             exit;
         }
         if (!$mensagem) {
             echo Javascript::alert("A mensagem informada é inválida");
             echo Javascript::history_back();
             exit;
         }
         $novaMensagem = "<p>Mensagem para {$destinatario}</p>";
         $novaMensagem .= "<div>Assunto:{$titulo}</div>";
         $novaMensagem .= "<div>Mensagem</div><div>{$mensagem}</div>";
         if (!Mail::envioSimples($novaMensagem, "Mensagem enviada pela áres restrita", "*****@*****.**", "Colégio GGE")) {
             echo Javascript::alert("Ocorreu um erro ao tentar enviar a mensagem. Tente novamente mais tarde");
             echo Javascript::history_back();
             exit;
         }
         echo Javascript::alert("Mensagem enviada com sucesso");
         echo Javascript::window_location(base_url() . 'transf/mensagem/contatenos/');
         exit;
     }
     //Exibindo a página
     if ($data['mobile']) {
         $data['usuario'] = unserialize($_SESSION['usuario']);
         $data['page'] = 'default';
         $data['tema'] = $this->load->setTheme('responsive');
     } else {
         $data['page'] = 'home';
         $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     }
     $data['msg'] = $msg;
     $data['abaAtiva'] = 10;
     $data['alias'] = $data['abaPage'] = __FUNCTION__;
     $data["js"] = array("/js/plugins/filtros/filtros.min.js");
     //
     $data["arrayFiltros"] = array("unidade", "serie", "turma");
     $filtrosSistema = new FiltrosSistema();
     $data["filtros"] = $filtrosSistema;
     //        $tipo_usuario = $this->load->model('public_tipo_usuario');
     $tipo_usuario = new ModelBase("public.tipo_usuario");
     $data['pk_tipo_usuario'] = filter_input(INPUT_GET, 'tipousuario', FILTER_VALIDATE_INT);
     $data['tipo_usuario'] = $tipo_usuario->select("pk_tipo_usuario=3 or pk_tipo_usuario=15 and pk_tipo_usuario!=11");
     //
     switch ($data['pk_tipo_usuario']) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             $usuarios = new Kernel_Models_Coordenador();
             $data['destinatarios'] = $usuarios->listarTodos($filtrosSistema);
             $data["arrayFiltros"] = array("unidade");
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             $usuarios = new Kernel_Models_Professor();
             $data['destinatarios'] = $usuarios->listarTodos($filtrosSistema);
             $data["arrayFiltros"] = array("unidade", "serie", "turma");
             break;
         default:
             $data['destinatarios'] = FALSE;
             break;
     }
     $filtrosSistema->init($data["arrayFiltros"]);
     $this->load->view($this->load->getUrlTema(), $data);
 }
Beispiel #11
0
 public function faleconosco()
 {
     $msg = null;
     $data = $this->getParametroVisao();
     // $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaPage'] = 'faleconosco';
     $data['alias'] = 'faleconosco';
     if ($data['mobile']) {
         $data['page'] = __FUNCTION__;
         $data['tema'] = '../../themes/responsive/limpo/default';
         $data['titulo'] = 'Fale conosco';
     } else {
         $data['page'] = 'default';
         $data['tema'] = '../../themes/default/default';
     }
     $data['largura_percent'] = 90;
     $data['altura'] = 30;
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             header('Content-Type: text/html; charset=UTF-8');
             // View::validarFormAntInjection($alias);
             if ($data['mobile']) {
                 //Validação dos dados para a página mobile
                 if (!filter_input(INPUT_POST, 'destinatario', FILTER_VALIDATE_EMAIL) || !filter_input(INPUT_POST, 'remetente_email', FILTER_VALIDATE_EMAIL) || !filter_input(INPUT_POST, 'remetente_nome', FILTER_SANITIZE_MAGIC_QUOTES) || !filter_input(INPUT_POST, 'mensagem', FILTER_SANITIZE_MAGIC_QUOTES)) {
                     echo Javascript::alert("Os dados informados são inválidos");
                     echo Javascript::history_back();
                     exit;
                 }
             }
             $emailDestinatario = $this->input->post('destinatario');
             $assunto = "Fale Conosco - Agenda Infantil";
             $headers = 'MIME-Version: 1.0' . "\r\n";
             $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
             $headers .= "From: " . $this->input->post('remetente_nome') . " <" . $this->input->post('remetente_email') . ">" . "\r\n";
             $headers .= "Bcc: <*****@*****.**>\n";
             $mensagem = $this->input->post('mensagem');
             $enviar = mail($emailDestinatario, $assunto, $mensagem, $headers);
             if ($data['mobile']) {
                 $msg = "Mensagem enviada com sucesso! Responderemos o mais breve possível. Atenciosamente, Colégio GGE";
                 if (!$enviar) {
                     $msg = "O servidor de email não conseguiu entregar sua mensagem. Por favor, envie sua mensagem para \"webmaster@gge.com.br\" e a encaminharemos ao respectivo destinatário. Atenciosamente, Colégio GGE";
                 }
                 echo Javascript::alert($msg);
                 echo Javascript::history_back();
                 exit;
             } else {
                 if ($enviar == 1) {
                     $data['msg'] = '<div class="alert ok">Mensagem enviada com sucesso!<br />Responderemos o mais breve poss&iacute;vel.<br /><br />Atenciosamente,<br />Col&eacute;gio GGE</div>';
                 } else {
                     $data['msg'] = '<div class="alert erro">O servidor de email não conseguiu entregar sua mensagem. Por favor, envie sua mensagem para "*****@*****.**" e a encaminharemos ao respectivo destinatário.<br /><br />Atenciosamente,<br />Col&eacute;gio GGE</div>';
                 }
             }
             $this->load->view($data['tema'], $data);
             return false;
         } catch (Exception $e) {
             if ($data['mobile']) {
                 echo Javascript::alert($e->getMessage());
                 echo Javascript::history_back();
                 exit;
             } else {
                 $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
             }
         }
     }
     $this->load->view($data['tema'], $data);
 }
Beispiel #12
0
 /**
  * Método que edita os anexos
  * @param int $pk_anexo
  */
 public function editar_anexo($pk_anexo = 0)
 {
     if (!(int) $pk_anexo) {
         echo Javascript::alert('O dados informados são inválidos');
         echo Javascript::history_back();
         return;
     }
     $data = $this->getParametroVisao();
     $data['abaAtiva'] = 7;
     $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
     if ($data['mobile']) {
         $data['usuario'] = unserialize($_SESSION['usuario']);
         $data['tema'] = $this->load->setTheme('responsive');
     } else {
         $data['page'] = 'home';
         $data['msg'] = $this->getMsg();
     }
     $sqlLivro = new SqlLivro();
     $data['video'] = $sqlLivro->get_anexo($pk_anexo);
     $this->load->view($this->load->getUrlTema(), $data);
 }
Beispiel #13
0
 /**
  * Método que gera a página genérica do historico do fap
  * @param int $pkUsuario O código do coordenador
  * @param int $tipo O filtro de tipo
  * @param int $subtipo O filtro de subtipo
  */
 private function historicoGeral($pkUsuario, $tipo = FALSE, $subtipo = FALSE)
 {
     try {
         $usr = new Usuarios();
         $sqlfap = new SqlFapEqPedagogica();
         //Definindo os filtros
         $this->initGets(array("de", "ate", "professor", "coordenador"));
         if (is_int($tipo)) {
             $this->filtro->setGet(array("tipo_fap" => $tipo));
         }
         if (is_int($subtipo)) {
             $this->filtro->setGet(array("subtipo_fap" => $subtipo));
         }
         if ($this->filtro->issetGet('coordenador')) {
             $sqlCoord = new SqlCoordenador();
             $coordenador = $sqlCoord->get($this->filtro->get('coordenador'));
         } else {
             $coordenador = $usr->getCoordenador((int) $pkUsuario);
         }
         //
         $registros = $sqlfap->deCoordenador($coordenador, $this->filtro);
         //Passando os dados para o view
         $this->loadPlugin("jquery.tablesorter")->loadPlugin("conceitos")->setData("tipo", $tipo)->setData("subtipo", $subtipo)->setData("coordenador", $coordenador)->setData("registros", $registros)->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde");
         die(Javascript::shadowboxClose());
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::shadowboxClose());
     }
 }
 /**
  * Método que valida um usuário do tipo responsável
  * @param int $pkUsuario O código do usuário a ser testado
  * @param string $objetoHerdado Caso seja informado, será usado um objeto que herde as
  * caracteristicas do objeto principal
  * @return Kernel_Models_Responsavel Um objeto contendo os dados do usuário responsável informado
  */
 public function responsavel($pkUsuario = 0, $objetoHerdado = FALSE)
 {
     try {
         return $this->getResponsavel($pkUsuario, $objetoHerdado);
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
 }
Beispiel #15
0
 public function acompanhamento_professor_detalhe()
 {
     $data = $this->getParametroVisao();
     if ($data['idTipoUsuario'] == 15) {
         $pkUsuarioProfessor = filter_input(INPUT_GET, 'pk_usuario_professor', FILTER_VALIDATE_INT);
         $professorTmp = new Kernel_Models_Professor();
         $professorTmp = $professorTmp->selectUsuarioProfessor($pkUsuarioProfessor);
         if ($data['idUsuarioProfessor'] != $pkUsuarioProfessor || !$professorTmp) {
             ini_set('default_charset', 'utf8');
             echo Javascript::alert('Desculpe, você não tem acesso a este relátorio');
             echo Javascript::history_back();
             echo Javascript::close();
             echo Javascript::shadowboxClose();
             return;
         }
         $professor = $professorTmp->fetchObject('public_usuario_professor');
         $data['professorObj'] = $professor;
     }
     $data['abaAtiva'] = 7;
     $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
     $data['page'] = 'home';
     $data['msg'] = $this->getMsg();
     $data['total'] = 0;
     $data['pk_livro'] = isset($_GET['pk_livro']) ? (int) $_GET['pk_livro'] : 0;
     $data['pk_turma'] = isset($_GET['pk_turma']) ? (int) $_GET['pk_turma'] : 0;
     $data['pk_unidade'] = isset($_GET['pk_unidade']) ? (int) $_GET['pk_unidade'] : 0;
     $ano_letivo = isset($_GET['ano']) ? $_GET['ano'] : $data['ano_letivo'];
     $_SESSION['relat_data_aula'] = '';
     $_SESSION['relat_back'] = '';
     $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/';
     $sqlAulas = new SqlAulas();
     $result = $sqlAulas->get_serie_livro($_GET['pk_livro']);
     $data['pk_serie'] = $result[0]['fk_serie'];
     $data['serie_nome'] = $result[0]['serie_nome'];
     $data['livro'] = $sqlAulas->get_livros($data['pk_serie'], $ano_letivo);
     $livro = explode("&pk_livro=", $_SERVER['QUERY_STRING']);
     $data['livro_url'] = $config['base_url'] . '?' . $livro[0];
     if (isset($_GET['pk_livro'])) {
         $result = $sqlAulas->get_media_geral($data['ano_letivo'], $data['pk_livro']);
         $data['media_geral_professores'] = !empty($result) ? number_format($result[0]['media_geral'], 1) : '';
         $data['turma'] = $sqlAulas->get_turmas_apostila($data['pk_serie'], $ano_letivo);
         var_dump($data['turma']);
         die;
         $turma = explode("&pk_turma=", $_SERVER['QUERY_STRING']);
         $data['turma_url'] = $config['base_url'] . '?' . $turma[0];
         if (isset($_GET['pk_turma'])) {
             $sqlAula = new SqlAula();
             $data['professor'] = $sqlAula->get_professores_apostila_turma($_SESSION['pk_livro'], $_GET['pk_turma']);
             $professor = explode("&pk_usuario_professor=", $_SERVER['QUERY_STRING']);
             $data['professor_url'] = $config['base_url'] . '?' . $professor[0];
             if (isset($_GET['pk_usuario_professor'])) {
                 $sqlAula = new SqlAula();
                 $result = $sqlAula->get_conteudos_apostila_professor($_SESSION['pk_livro'], $_GET['pk_materia_vin'], $_GET['pk_usuario_professor'], $_GET['pk_turma']);
                 $data['total'] = count($result);
                 if ($data['total'] > 0) {
                     $count = 0;
                     $html = '<table class="tabela_relatorio mt20"><tr>
                         <td class="titulo_relatorio tcenter"><strong>Data</strong></td>
                         <td class="titulo_relatorio tcenter"><strong>Aula</strong></td>
                         <td class="titulo_relatorio tcenter"><strong>Assunto</strong></td>
                         <td class="titulo_relatorio tcenter"><strong>%</strong></td>
                         <td class="titulo_relatorio tcenter"><strong>Status</strong></td>
                         <td class="titulo_relatorio tcenter"><strong>Tarefas de casa</strong></td>';
                     if ($data['idTipoUsuario'] != 15) {
                         //Ajuste para um melhor controle de acesso
                         $html .= '<td></td>' . '<td></td>' . '<td></td>';
                     }
                     $i = 0;
                     foreach ($result as $row) {
                         $statusCor = '';
                         if ($row['status'] == 1) {
                             $status = "Em andamento";
                             $statusCor = "status1";
                         } else {
                             if ($row['status'] == 2) {
                                 $status = "Concluído";
                                 $statusCor = "status2";
                             } else {
                                 if ($row['status'] == 3) {
                                     $status = "Revisado";
                                     $statusCor = "status3";
                                 }
                             }
                         }
                         $sqlAula = new SqlAula();
                         $result = $sqlAula->get_grade_aula($_SESSION['pk_livro'], $_GET['pk_materia_vin'], $_GET['pk_usuario_professor'], $_GET['pk_turma'], $row['data_aula']);
                         $editar = !empty($result) ? '<a class="link" href="' . base_url() . 'aula/conteudo/cadastrar_conteudo_form_apostila/' . $result[0]['fk_materia_vin'] . '/' . $result[0]['fk_usuario_professor'] . '/' . $result[0]['fk_grade'] . '/0/' . $result[0]['data_aula'] . '/' . $result[0]['pk_aula'] . '/' . $row['aula'] . '?pk_livro=' . $_GET['pk_livro'] . '"><div class="tooltip icon_edit" data-tooltip="Edição"></div></a>' : '';
                         $excluir = !empty($result) ? '<a href="' . base_url() . 'aula/conteudo/excluir_conteudo_professor_aula"  ' . View::getParamExcluirItemTabela($result[0]['fk_materia_vin'] . '/' . $result[0]['fk_usuario_professor'] . '/' . $result[0]['fk_grade'] . '/' . $result[0]['data_aula'] . '/' . $result[0]['pk_aula'] . '/' . $row['aula'] . '/' . $_GET['pk_livro'] . '/' . $row['pk_conteudo'] . '/' . $_GET['pk_turma'] . '/' . $row['status'], 0, 0, '', 'Excluir registro', 'Deseja excluir o registro ' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '<br />Tópico: ' . $row['conteudo_nome'] . '') . '   class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>' : '<a href="' . base_url() . 'aula/conteudo/excluir_conteudo_professor_aula_cod"  ' . View::getParamExcluirItemTabela($row['cod'], 0, 0, '', 'Excluir registro', 'Deseja excluir o registro ' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '<br />Tópico: ' . $row['conteudo_nome'] . '') . '   class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>';
                         if ($_SESSION['relat_data_aula'] != $row['data_aula'] . $row['aula']) {
                             $data_aula = View::converteDataBr($row['data_aula']);
                             $aula = 'Aula ' . $row['aula'];
                             $excluir_aula = !empty($result) ? '<a href="' . base_url() . 'aula/conteudo/excluir_aula"  ' . View::getParamExcluirItemTabela($result[0]['fk_materia_vin'] . '/' . $result[0]['fk_usuario_professor'] . '/' . $result[0]['fk_grade'] . '/' . $result[0]['data_aula'] . '/' . $result[0]['pk_aula'] . '/' . $row['aula'] . '/' . $_GET['pk_livro'] . '/' . $_GET['pk_turma'], 0, 0, '', 'Excluir aula', 'Deseja excluir todos os conteúdos da aula ' . $row['aula'] . ' do dia ' . View::converteDataBr($result[0]['data_aula']) . ' do(a) professor(a) ' . $result[0]['nome']) . '   class="excluirItemTabela link">Excluir aula</a>' : '';
                             $i++;
                         } else {
                             $data_aula = '';
                             $aula = '';
                             $excluir_aula = '';
                         }
                         $background = Util::zebrarGeralClass($i, $data['total']);
                         $html .= '<tr>
                                     <td class="' . $background . '" nowrap="nowrap">' . $data_aula . '</td>
                                     <td class="' . $background . ' w40" nowrap="nowrap">' . $aula . '</td>
                                     <td class="' . $background . '">' . $row['capitulo_sequencial'] . ': ' . $row['capitulo_nome'] . '<br />Tópico: ' . $row['conteudo_nome'] . ' - Página(s): ' . $row['paginas_trabalhadas'] . '</td>
                                     <td class="' . $background . '">' . number_format($row['percentual'], 1) . '%</td>
                                     <td class="' . $statusCor . '">' . $status . '</td>
                                     <td class="' . $background . '">' . $row['exercicios_casa'] . '</td>';
                         if ($data['idTipoUsuario'] != 15) {
                             //Ajuste para um melhor controle de acesso
                             $html .= '<td class="' . $background . '">' . $editar . '</td>
                                     <td class="' . $background . '">' . $excluir . '</td>
                                     <td class="' . $background . '">' . $excluir_aula . '</td>';
                         }
                         $_SESSION['relat_data_aula'] = $row['data_aula'] . $row['aula'];
                     }
                     $html .= '</tr></table>';
                     $data['html'] = $html;
                     $_SESSION['redirect'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '?&pk_livro=' . $_GET['pk_livro'] . '&pk_turma=' . $_GET['pk_turma'] . '&pk_usuario_professor=' . $_GET['pk_usuario_professor'] . '&pk_materia_vin=' . $_GET['pk_materia_vin'];
                 } else {
                     $data['msg'] = '<div class="alert atencao">Não há registros com o parâmetro selecionado.</div>';
                 }
             }
         }
     }
     if ($this->input->is_ajax_request()) {
         $this->load->view($this->uri->segment(3), $data);
     } else {
         $this->load->view($this->load->getUrlTema(), $data);
     }
 }
Beispiel #16
0
 /**
  * Método que gera a página que permite trocar a senha do usuário.
  *
  * @param string $token
  */
 public function nova_senha($token = false)
 {
     if (!$token) {
         echo Javascript::alert('Usuário não encontrado');
         echo Javascript::window_location('/btalento/curriculos/login/');
         return;
     }
     $curriculo = $this->objCurriculo->getObject("token = '" . addslashes($token) . "'");
     if (!$curriculo) {
         echo Javascript::alert('Usuário não encontrado');
         echo Javascript::window_location('/btalento/curriculos/login/');
         return;
     }
     $agora = new DateTime(Data::sqlAgora());
     $diferenca = $agora->diff(new DateTime($curriculo->dt_update));
     if ($diferenca->y > 0 || $diferenca->m > 0 || $diferenca->d > 2) {
         echo Javascript::alert('O link informado já expirou. Acesse a página de login e solicite um novo link');
         echo Javascript::window_location('/btalento/curriculos/login/');
         return;
     }
     $this->setData('curriculo', $curriculo)->setData('token', $token)->printView();
 }
 /**
  * Método que gera a página de edição da questão
  * @param int $id O código da questão a ser editada
  */
 public function editarAction($id)
 {
     $sqlQuestao = new SqlQuestao();
     $sqlTopicos = new SqlTopico();
     try {
         $questao = $sqlQuestao->get((int) $id);
         if ($this->getRequest()->isPost()) {
             //Tratando a requisição post feita a página
             $this->setData("msg", $this->editarPost($questao));
         }
         $this->filtro->setGet(array("tipo_questao" => $questao->getTipo()));
         $topicos = $sqlTopicos->deQuestao($questao);
         $this->loadPlugin("filtrosAjax");
         $this->loadPlugin("tiny_mce");
         $this->setData("questao", $questao);
         $this->setData("tipos", $questao->getTiposAceitos());
         $this->setData("topicos", $topicos);
         $this->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde");
         die(Javascript::history_back());
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::history_back());
     }
 }
Beispiel #18
0
 /**
  * Método que gera a página de edição do vídeo de apresentação do livro na disciplina
  * 
  * @param int $livroId O códgio do livro
  * @param int $disciplinaId O código da disciplina
  * @param int $serieId O código da série.
  *                     Não obrigatório pois a série esta associada ao livro
  */
 public function video_livro_digital($livroId, $disciplinaId, $serieId = 0)
 {
     $data = $this->getParametroVisao();
     //Tratando as requisição POST da página
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         $data["msg"] = $this->videoLivroDigitalPost($livroId, $disciplinaId, $serieId);
     }
     try {
         $sqlDsic = new aula\models\dao\SqlDisciplinaAula();
         $sqlLivro = new \aula\models\dao\SqlLivretoAula();
         //            $sqlSerie         = new aula\models\dao\SqlSerieAula();
         //Buscando o livreto
         //            $serie            = $sqlSerie->get((int) $serieId);
         $disciplina = $sqlDsic->get((int) $disciplinaId);
         $data["livreto"] = $sqlLivro->getComDisciplina((int) $livroId, $disciplina);
         //Passando os dados para o view
         $data['abaAtiva'] = 7;
         $data['page'] = 'home';
         $data['abaPage'] = strtolower(__CLASS__ . "/admin/" . __FUNCTION__);
         $data['alias'] = __FUNCTION__;
         $data["js"] = array("js/plugins/file_upload/1.0/js/file_upload.min.js");
         $this->load->view($this->load->getUrlTema(), $data);
     } catch (GGE\Lib\Sql\Exception\SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro desconhecido. " . "Tente novamente mais tarde");
         die(Javascript::history_back());
     } catch (GGE\Lib\Base\Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::history_back());
     }
 }
Beispiel #19
0
 /**
  * Método qeu gera um alerta e redireciona o usuário para a tela de lohin
  */
 private function redirectToLogin()
 {
     echo Javascript::alert("Desculpe, você não esta logado ou não possue acesso a URL informada");
     die(Javascript::window_location(base_url("logout")));
 }
 /**
  * Método que gera a página de apresentação da disciplina
  * @param int $id O código da disciplina
  */
 public function apresentacaoDisciplina($id)
 {
     try {
         $sqlDisciplina = new SqlDisciplina();
         $disciplina = $sqlDisciplina->get((int) $id);
         //Verificando se existe vídeo associado a disciplina
         if (!strlen($disciplina->getVideoApresentacao())) {
             throw new \GGE\Lib\Base\Exception("Esta disciplina não possue apresentação");
         }
         $this->loadPlugin("proporcao");
         $this->setData("disciplina", $disciplina);
         $this->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro interno. Tente novamente mais tarde.");
         $this->close(true);
     } catch (\GGE\Lib\Base\Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         $this->close(true);
     }
 }
Beispiel #21
0
 public function cadastrar_parecer()
 {
     try {
         $idSerieAluno = (int) $this->getData("idSerieAluno");
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
     //Inicializando os objetos básicos da página
     $sqlPareceres = new SqlPareceres();
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             // View::validarFormAntInjection($data['alias']);
             $sqlPareceres->reset_respostas_usuario($this->input->post('pk_pes_pesquisa'), $this->input->post('pk_usuario'));
             $result = $sqlPareceres->get_questoes($this->input->post('pk_pes_pesquisa'));
             $i = 0;
             foreach ($result as $item) {
                 $i++;
                 if ($item['tipo_questao'] == 1 || $item['tipo_questao'] == 2) {
                     $divide = explode('#', $this->input->post('alternativa_' . $i));
                     $pk_pes_questao = $divide[0];
                     $pk_pes_alternativa = $divide[1];
                     $sqlPareceres->cadastrar_resposta($this->input->post('pk_pes_pesquisa'), $pk_pes_questao, $pk_pes_alternativa, $this->input->post('pk_unidade'), $this->input->post('pk_serie'), $this->input->post('pk_usuario'), $this->input->post('pk_tipo_usuario'), $item['tipo_questao']);
                 } else {
                     $resultAlternativas = $sqlPareceres->get_alternativas_pesquisa($item['pk_pes_questao']);
                     $i2 = 0;
                     foreach ($resultAlternativas as $alt) {
                         $i2++;
                         if ($item['tipo_questao'] == 3 || $item['tipo_questao'] == 4) {
                             $divide = explode('#', $this->input->post('alternativa_' . $i . '_' . $i2));
                             $pk_pes_questao = $divide[0];
                             $pk_pes_alternativa = $divide[1];
                             $sqlPareceres->cadastrar_resposta($this->input->post('pk_pes_pesquisa'), $pk_pes_questao, $pk_pes_alternativa, $this->input->post('pk_unidade'), $this->input->post('pk_serie'), $this->input->post('pk_usuario'), $this->input->post('pk_tipo_usuario'), $item['tipo_questao'], $this->input->post('alternativa_' . $i . '_' . $i2 . '_valor'));
                         }
                     }
                 }
             }
             unset($_SESSION['pesquisa']);
             $this->session->set_flashdata('msg', '<div class="alert ok">Obrigado por sua participação!</div>');
             redirect(current_url());
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     $result = $sqlPareceres->get_ultima_pesquisa($idSerieAluno);
     $pk_pes_pesquisa = $result[0]['pk_pes_pesquisa'];
     $html = '';
     $resultQuestoes = $sqlPareceres->get_questoes($pk_pes_pesquisa);
     $i = 0;
     foreach ($resultQuestoes as $item) {
         $i++;
         $classe = $item['tipo_questao'] == 3 ? "div-ordenar" : "div-nota";
         $html .= "<div class=\"passos\" data-questao=\"{$item['pes_questao']}\">";
         $html .= "<p style=\"font-size:16px;\">{$item['pes_questao']}</p>";
         $html .= "<div class=\"mb20 {$classe}\">";
         $resultAlternativas = $sqlPareceres->get_alternativas_pesquisa($item['pk_pes_questao']);
         $i2 = 0;
         foreach ($resultAlternativas as $alt) {
             $i2++;
             //Tipo de ordenação
             $html .= "<div>";
             if ($item['tipo_questao'] == 3) {
                 // Questão para gerar ranking de prioridades
                 $html .= "<input type=\"hidden\" name=\"alternativa_{$i}_{$i2}\" value=\"{$item['pk_pes_questao']}#{$alt['pk_pes_alternativa']}\" />";
                 $html .= "<select name=\"alternativa_{$i}_{$i2}_valor\" class=\"mr10\" /></select>";
             } else {
                 if ($item['tipo_questao'] == 4) {
                     //Questão para gerar indicador a partir de notas dadas pelo usuário
                     $html .= "<input class=\"item-preen\" type=\"hidden\" name=\"alternativa_{$i}_{$i2}\" " . "value=\"{$item['pk_pes_questao']}#{$alt['pk_pes_alternativa']}\" />";
                     $html .= '<select name="alternativa_' . $i . '_' . $i2 . '_valor" class="mr10" />' . '<option value=""></option>' . '<option value="1">1,0</option>' . '<option value="2">2,0</option>' . '<option value="3">3,0</option>' . '<option value="4">4,0</option>' . '<option value="5">5,0</option>' . '<option value="6">6,0</option>' . '<option value="7">7,0</option>' . '<option value="8">8,0</option>' . '<option value="9">9,0</option>' . '<option value="10">10,0</option>' . '</select>';
                 } else {
                     $html .= '<input class=\\"item-preen\\" type="radio" name="alternativa_' . $i . '" value="' . $item['pk_pes_questao'] . '#' . $alt['pk_pes_alternativa'] . '" />';
                 }
             }
             $html .= $alt['pes_alternativa_nome'];
             $html .= "</div>";
         }
         $html .= '</div>';
         $html .= "<div class=\"passos-btn\">";
         if ($i > 1) {
             $html .= "<button class=\"submit btn-voltar\" form=\"\">VOLTAR</button>";
         }
         if (count($resultQuestoes) == $i) {
             $html .= "<button type=\"submit\" name=\"cadastrar\" form=\"\" class=\"submit btn-cadastrar\">Incluir<?button>";
         } else {
             $html .= "<button class=\"submit btn-proximo\" form=\"\" >PRÓXIMO</button>";
         }
         $html .= '</div>';
         $html .= '</div>';
     }
     $html .= '<br />';
     //Passadno so dados para o view e carregando os plugins exigidos pela página
     $this->automSelectMenu()->setData("html", $html)->setData("pk_pes_pesquisa", $pk_pes_pesquisa)->printView();
 }
Beispiel #22
0
 /**
  * Método que exibe o feedback ao professor
  */
 public function feedback($pk_usuario_professor = 0, $pk_usuario = 0)
 {
     ini_set('error_reporting', E_ALL);
     ini_set('display_errors', TRUE);
     $data = $this->getParametroVisao();
     $data['abaAtivaMae'] = 1;
     $data['abaAtiva'] = 8;
     $data['abaPage'] = $data['alias'] = __FUNCTION__;
     $data['page'] = 'home';
     $data['msg'] = $this->getMsg();
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $this->load->helper("formatar_numero");
     try {
         //Configurando o filtro de professores
         $filtros = new GGE\Lib\Filter\Filtros();
         $filtros->initGets("professor");
         if ($filtros->issetGet("professor")) {
             $sqlProfessor = new docentes\models\Sql\SqlResumoProfessor();
             $data["professorResumo"] = $sqlProfessor->get($filtros->get("professor"));
         }
         $data["filtro"] = $filtros;
         $data["js"] = array("js/plugins/filtros/js/filtros.min.js");
         $data["css"] = array("js/plugins/filtros/css/filtros.min.css");
         $this->load->view($this->load->getUrlTema(), $data);
     } catch (Kernel\Exception\UsuarioException $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::history_back());
     } catch (\GGE\Lib\Sql\Exception\SqlException $exc) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde");
         die(Javascript::history_back());
     } catch (\GGE\Lib\Base\Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::history_back());
     }
 }
 /**
  * Método auxiliar usado na centralização das exceções
  * 
  * @param Exception $exc A exceção a ser tratada
  */
 protected function close(Exception $exc)
 {
     //A exibição de erros esta ativa, exibe o erro e para a execução
     if ((bool) ini_get("display_errors")) {
         die(TratarErros::exibeException($exc));
     }
     //Exibe a mensagem de acordo com a exceção
     if ($exc instanceof SqlException) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde");
     } elseif ($exc instanceof SqlException) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Por favor, tente novamente mais tarde");
     } else {
         echo Javascript::alert($exc->getMessage());
     }
     //Definindo se a janela será fechada o irá voltar
     if ($this->data["shadowbox"]) {
         echo Javascript::shadowboxClose();
         die(Javascript::close());
     } else {
         die(Javascript::history_back());
     }
 }
Beispiel #24
0
 /**
  * Método que gera a planilha de acompnahamento do livro e disciplinas informadas
  * @param int $livro O código do livro
  * @param int $materia O código da máteria
  */
 public function acompanhamento()
 {
     //Inicializando os filtros usados na página
     $this->filtro->initGets(array("livro", "disciplina"));
     //Inicializando os objeto básicos
     $sqlTopico = new SqlTopico();
     //Buscando os tópicos
     $topicosLista = $sqlTopico->listarTodos($this->filtro);
     //Verificando se o livro é válido
     if (!$topicosLista->rowCount()) {
         echo Javascript::alert("Não foi encontrado conteúdo " . "associado ao livro e disciplina informados");
         die(Javascript::close());
     }
     $topicos = $topicosLista->fetchAll();
     //Array com os contepudos do livro
     //
     $topicoInicia = $topicos[0];
     //Primeiro item do array com os dados básicos
     //Variáveis iniciais básicas
     $xBase = 1;
     //Coluna inicial da impressão
     $yBase = 1;
     //Linha de início da impressão
     $nColunasCapitulos = 5;
     //Número de colunas da culuna inicial
     $nColunasPaginas = 1;
     //Número de colunas da culuna de páginas
     $nColunasAulas = 10;
     //Número de colunas referentes ao número máximo de aulas
     $nColunasMax = 0;
     //Define o número máximo de colunas da planilha
     $indiceUltColuna = 0;
     //Define o indice da ultima coluna da planilha
     $colecao = $topicoInicia->getCapitulo()->getLivro()->getColecao()->getNome();
     //Nome da coleção a qual o livro pertence
     $tituloPlanilha = "PLANILHA DE ACOMPANHAMENTO PROGRAMÁTICO ({$this->data["ano_letivo"]})";
     $textoAula = "Aula ";
     //Define o texto das celulas "aula"
     $textoData = "Data:";
     //Define o texto das celulas "data"
     $alturaLinha = 40;
     //Define a autura minima das linhas
     $larguraLegenda = 5;
     //Define a largura de cada coluna das legendas em pixels
     $textoPaguinas = "PÁGINAS";
     //Define o texto da coluna de páginas
     $textoPaguinasVertical = FALSE;
     //Define se o texto sobre a coluna páginas ficará na vertical ou não
     //Coluna da esquerda
     $arrayExplicativo = array("Preenchimento", "O status do andamento dos assuntos do livro da coleção {$colecao} " . "deve ser atualizado a cada aula ministrada pelo professor, " . "independente se na aula foi utilizado ou não o livro didático.");
     $arrayDadosProfessor = array("PROFESSOR:", "", "", "SÉRIE:", "TURMA:", "UNIDADE:");
     //Coluna da direita
     $arrayDadosLivro = array("", "{$topicoInicia->getCapitulo()->getLivro()->getTitulo()} ({$topicoInicia->getSequencial()} º Bimestre)", $topicoInicia->getCapitulo()->getDisciplina()->getNome(), "Livro Didático: {$topicoInicia->getCapitulo()->getLivro()->getTitulo()}", "");
     $arrayColunaAulaData = array($textoAula, $textoData, "");
     //
     $arrayLegenda = array("A" => "EM ANDAMENTO", "C" => "CONCLUÍDO", "R" => "REVISADO");
     //Início da execução
     //Verificação de erros de configuração
     if (count($arrayExplicativo) + count($arrayDadosProfessor) != count($arrayDadosLivro) + count($arrayColunaAulaData)) {
         //As somas de itens entre os pares de arrays acima devem ser iguais
         die("Planilha mal configurada");
     }
     //Variaveis dinâmicas usadas na execução
     $x = $xBase;
     $y = $yBase + 1;
     $nColunasMax += $xBase + $nColunasCapitulos + $nColunasPaginas + $nColunasAulas * count($arrayLegenda);
     $indiceUltColuna += $xBase + $nColunasMax;
     //Inserindo os dados na planilha
     //
     $this->workSheet->setCellValueByColumnAndRow($x, $y, $tituloPlanilha);
     $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
     $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(20);
     $this->workSheet->getStyle(ExcelAux::indiceParaColuna($x + 1) . $y . ":" . ExcelAux::indiceParaColuna($indiceUltColuna + 1) . $y)->applyFromArray(array("font" => array("bold" => TRUE), "borders" => array("top" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")), "left" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")), "right" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")), "bottom" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("argb" => "000000")))));
     $this->workSheet->mergeCellsByColumnAndRow($x, $y, $indiceUltColuna, $y);
     $this->workSheet->getRowDimension($y++)->setRowHeight($alturaLinha);
     //Variaveis de indices e contadores
     $linhaExpl = 0;
     $linhaProf = 0;
     $linhaLivro = 0;
     $linhaAulaData = 0;
     $colunaLegenda = 0;
     $colunaLegendaChave = array_keys($arrayLegenda);
     foreach (range(0, count($arrayExplicativo) + count($arrayDadosProfessor) - 1) as $value) {
         $x = $xBase;
         //Preenchendo a coluna da esquerda
         if (isset($arrayExplicativo[$linhaExpl])) {
             $this->workSheet->setCellValueByColumnAndRow($x, $y, $arrayExplicativo[$linhaExpl++]);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setWrapText(TRUE);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(12);
             if ($linhaExpl == count($arrayExplicativo)) {
                 $this->workSheet->getRowDimension($y)->setRowHeight($alturaLinha + 25);
                 $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . $y . ":" . ExcelAux::indiceParaColuna($xBase + $nColunasCapitulos + 2) . $y)->applyFromArray(array("borders" => array("bottom" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000")))));
             }
         } else {
             $this->workSheet->setCellValueByColumnAndRow($x, $y, $arrayDadosProfessor[$linhaProf++]);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(14);
         }
         $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "FFFFFF"))));
         $this->workSheet->getStyleByColumnAndRow($xBase + $nColunasCapitulos + 1, $y)->applyFromArray(array("borders" => array("right" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000")))));
         $this->workSheet->mergeCellsByColumnAndRow($xBase, $y, $nColunasCapitulos + $xBase + 1, $y);
         //Preenchendo as colunas das legendas
         if (isset($colunaLegendaChave[$colunaLegenda])) {
             $x += $nColunasCapitulos + $nColunasPaginas + $colunaLegenda + $xBase;
             $this->workSheet->setCellValueByColumnAndRow($x, $y, $textoPaguinas);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(14);
             if ((bool) $textoPaguinasVertical) {
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setTextRotation(90);
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
             } else {
                 $this->workSheet->getColumnDimensionByColumn($x)->setWidth(13);
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_BOTTOM)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
             }
             $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array("font" => array("italic" => TRUE, "bold" => TRUE)));
             $this->workSheet->mergeCellsByColumnAndRow($x, $y, $x, $y + count($arrayExplicativo) + count($arrayDadosProfessor) - 1);
             foreach ($arrayLegenda as $legenda) {
                 $x = $xBase + $nColunasCapitulos + $nColunasPaginas + $colunaLegenda + 2;
                 $this->workSheet->setCellValueByColumnAndRow($x, $y, $arrayLegenda[$colunaLegendaChave[$colunaLegenda]]);
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "EFAC86"))));
                 $this->workSheet->getStyle(ExcelAux::indiceParaColuna($x) . $y . ":" . ExcelAux::indiceParaColuna($x) . ($y + count($arrayDadosLivro) - 1))->applyFromArray(array("borders" => array("right" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000"))), "font" => array("italic" => TRUE)));
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setTextRotation(90);
                 $this->workSheet->mergeCellsByColumnAndRow($x, $y, $x, $y + count($arrayDadosLivro) - 1);
                 $colunaLegenda++;
             }
         }
         //Preenchendo a coluna da direita
         $x = $xBase;
         if (isset($arrayDadosLivro[$linhaLivro])) {
             $x += $nColunasCapitulos + $nColunasPaginas + count($arrayLegenda) + 2;
             $this->workSheet->setCellValueByColumnAndRow($x, $y, $arrayDadosLivro[$linhaLivro++]);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setWrapText(TRUE);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(18);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "FFFFFF")), "borders" => array("left" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000"))), "font" => array("bold" => TRUE)));
             $this->workSheet->mergeCellsByColumnAndRow($x, $y, $indiceUltColuna, $y);
         } else {
             $x = $xBase + $nColunasCapitulos + $nColunasPaginas - (count($arrayLegenda) - 2);
             $colorir = FALSE;
             foreach (range(1, $nColunasAulas) as $value) {
                 $this->workSheet->setCellValueByColumnAndRow($x += count($arrayLegenda), $y, $arrayColunaAulaData[$linhaAulaData] . (!$linhaAulaData ? str_pad($value, 2, 0, STR_PAD_LEFT) : ""));
                 $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => ($colorir = !$colorir) ? "EFAC86" : "FFFFFF")), "borders" => array("left" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000"))), "font" => array("underline" => TRUE)));
                 if (!$linhaAulaData) {
                     //Centralizando a primeira palavra do bloco
                     $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                     $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(16);
                     $this->workSheet->getStyle(ExcelAux::indiceParaColuna($x) . $y . ":" . ExcelAux::indiceParaColuna($x + count($arrayLegenda)) . $y)->applyFromArray(array('borders' => array('top' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('argb' => '000000'))), "font" => array("bold" => TRUE, "underline" => FALSE)));
                 }
                 $this->workSheet->mergeCellsByColumnAndRow($x, $y, $x + count($arrayLegenda) - 1, $y);
             }
             $linhaAulaData++;
         }
         $y++;
     }
     //Preenchendo o resto da planilha
     $capituloTitulo = "";
     foreach ($topicos as $topico) {
         $x = $xBase;
         if ($capituloTitulo != $topico->getCapitulo()->getSequencial()) {
             $capituloTitulo = $topico->getCapitulo()->getSequencial();
             $tituloCapitulo = "{$topico->getCapitulo()->getSequencial()}: {$topico->getCapitulo()->getNome()}";
             $this->workSheet->setCellValueByColumnAndRow($x, $y, $tituloCapitulo);
             $this->workSheet->getRowDimension($y)->setRowHeight($alturaLinha);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(16);
             $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setWrapText(TRUE);
             $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . $y . ":" . ExcelAux::indiceParaColuna($xBase + $nColunasCapitulos + $nColunasPaginas + 2) . $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "9BC2E6")), 'font' => array('bold' => true), "borders" => array("top" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000")))));
             $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . $y . ":" . ExcelAux::indiceParaColuna($indiceUltColuna + 1) . $y)->applyFromArray(array("borders" => array("top" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000")))));
             $this->workSheet->mergeCellsByColumnAndRow($xBase, $y, $nColunasCapitulos + $xBase + 1, $y);
             $this->workSheet->mergeCellsByColumnAndRow($xBase + $nColunasCapitulos + 2, $y, $indiceUltColuna, $y++);
         }
         $topicoDesc = "Tópico {$topico->getSequencial()} : {$topico->getNome()}";
         $pagina = "{$topico->getPaginaInicial()} a {$topico->getPaginaFinal()}";
         $this->workSheet->setCellValueByColumnAndRow($x, $y, $topicoDesc);
         $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(14);
         $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . $y . ":" . ExcelAux::indiceParaColuna($xBase + $nColunasCapitulos + $nColunasPaginas + 2) . $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "F2F2F2")), 'font' => array("italic" => TRUE), "borders" => array("top" => array("style" => PHPExcel_Style_Border::BORDER_THIN, "color" => array("rgb" => "000000")))));
         $this->workSheet->getRowDimension($y)->setRowHeight($alturaLinha);
         $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
         $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setWrapText(TRUE);
         $this->workSheet->setCellValueByColumnAndRow($x += $nColunasCapitulos + $xBase + 1, $y, $pagina);
         $this->workSheet->getStyleByColumnAndRow($x, $y)->getFont()->setSize(14);
         $this->workSheet->getStyleByColumnAndRow($x, $y)->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => "FFFFFF")), 'borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('argb' => '000000')))));
         $this->workSheet->getStyleByColumnAndRow($x, $y)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
         $this->workSheet->mergeCellsByColumnAndRow($xBase, $y, $nColunasCapitulos + $xBase + 1, $y);
         //            $x++;
         $colorir = TRUE;
         foreach (range(1, $nColunasAulas) as $colAula) {
             foreach ($colunaLegendaChave as $value) {
                 $this->workSheet->setCellValueByColumnAndRow($x + 1, $y, $value);
                 $this->workSheet->getStyleByColumnAndRow($x + 1, $y)->getFont()->setSize(14);
                 $this->workSheet->getStyleByColumnAndRow($x + 1, $y)->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN, 'color' => array('argb' => '000000'))), 'fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => $colorir ? "EFAC86" : "FFFFFF"))));
                 $this->workSheet->getStyleByColumnAndRow(++$x, $y)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER)->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
             }
             $colorir = !$colorir;
         }
         $y++;
     }
     //Definindo a largura das páginas como autosize
     //        $this->workSheet
     //                ->getColumnDimensionByColumn($xBase + $nColunasCapitulos + $nColunasPaginas)
     //                ->setAutoSize(TRUE);
     //Definindo a largura das colunas das legendas
     foreach (range($xBase + $nColunasCapitulos + $nColunasPaginas + 2, $indiceUltColuna) as $value) {
         $this->workSheet->getColumnDimensionByColumn($value)->setWidth($larguraLegenda);
     }
     //Definindo as bordas em volta da planilha
     $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . --$y . ":" . ExcelAux::indiceParaColuna($indiceUltColuna + 1) . $y)->applyFromArray(array("borders" => array("bottom" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")))));
     $this->workSheet->getStyle(ExcelAux::indiceParaColuna($xBase + 1) . ($yBase + 1) . ":" . ExcelAux::indiceParaColuna($xBase + 1) . $y)->applyFromArray(array("borders" => array("left" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")))));
     $this->workSheet->getStyle(ExcelAux::indiceParaColuna($indiceUltColuna + 1) . ($yBase + 1) . ":" . ExcelAux::indiceParaColuna($indiceUltColuna + 1) . $y)->applyFromArray(array("borders" => array("right" => array("style" => PHPExcel_Style_Border::BORDER_MEDIUM, "color" => array("argb" => "000000")))));
     //Imprimindo a planilha
     $this->printPlanilha($colecao);
 }
Beispiel #25
0
 /**
  * Método que faz a edição de um registro
  * @param int $registroCod O código de identificação do registro
  */
 public function edit_registro($registroCod = FALSE)
 {
     $codRegistro = (int) $registroCod;
     if (!$codRegistro && !$this->getFiltros()->shadowbox) {
         echo Javascript::alert('O registro informado é inválido');
         echo Javascript::close();
         echo Javascript::shadowboxClose();
         return;
     }
     $fapRegistro = new Kernel_Models_Fap();
     $fapSubTipo = new Kernel_Models_Fap();
     $registro = $fapRegistro->getObject('pk_fap_registro=' . $codRegistro);
     if (!$registro) {
         echo Javascript::alert('O registro informado é inválido');
         echo Javascript::close();
         echo Javascript::shadowboxClose();
         return;
     }
     $this->setData('tiposRegistros', $fapSubTipo->selectAll("fap.fap_tipo.pk_fap_tipo < 7 " . "or fap.fap_tipo.pk_fap_tipo = 16 or fap.fap_tipo.pk_fap_tipo > 22"))->setData('registro', $registro)->setData('professor', $this->professores->selectUsuarioProfessor($registro->fk_usuario_professor)->fetchObject())->printView();
 }
Beispiel #26
0
include dirname(__FILE__) . '/../application/libraries/Matematica.php';
include dirname(__FILE__) . '/../application/libraries/Javascript.php';
include dirname(__FILE__) . '/../application/modules/fap/models/dao/SqlRankingProfessor.php';
include dirname(__FILE__) . '/../application/models/Materias.php';
/**
 * @var int Variavel que determina qual a unidade
 */
$unidade = filter_input(INPUT_GET, 'unidade', FILTER_VALIDATE_INT);
/**
 * @var int Variavel que determina o ano
 */
$ano = filter_input(INPUT_GET, 'ano', FILTER_VALIDATE_INT);
//Verificando se os dados básicos foram informados
if (!$unidade) {
    header('Content-Type: text/html; charset=UTF-8');
    echo Javascript::alert('A unidade informada é inválida');
    echo Javascript::close();
    exit;
}
//Validando o ano
if (!$ano) {
    $ano = date('Y');
}
//Funções auxiliares
/**
 * Função que verifica se uma váriavel esta setada, caso nao, retorna um valor default
 * @param void $value O valor a ser testado
 * @param void $chave A chave do array
 * @param type $default Um valor padrão
 * @return void
 */