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); }
/** * 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(); }
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); }
/** * 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(); }
/** * 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); } }
/** * 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(); }
/** * 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()); } }
/** * 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(); }
/** * 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); }
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ível.<br /><br />Atenciosamente,<br />Colé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é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); }
/** * 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); }
/** * 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()); } }
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); } }
/** * 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()); } }
/** * 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()); } }
/** * 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); } }
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(); }
/** * 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()); } }
/** * 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); }
/** * 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(); }
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 */