/** * Método contendo o modelo básico de consultas para uso da classe. * * @return Select */ public function select() { $select = new Select(); $sqlDisciplina = new SqlMateria(); $sqlSerie = new SqlSerie(); return $select->columns(array('pk_materia_vin', 'materia_vin_video_apresentacao'))->join('public.serie', array('pk_serie' => "{$this->tg->getTabela()}.fk_serie"))->import($sqlSerie->select())->join('public.materia', array('pk_materia' => "{$this->tg->getTabela()}.fk_materia"))->import($sqlDisciplina->select()); }
/** * Método que gera um Select genérico para uso interno da classe * * @return Select Retorna um objeto contendo a base para as consultas */ public function select() { $t = $this->tg->getTabela(); $sqlUnidade = new SqlUnidade(); $sqlSerie = new SqlSerie(); $sqlTurma = new SqlTurma(); $sqlUsuario = new SqlUsuario(); $select = new Select($t); return $select->columns(array("pk_area_transf_dest" => "cod", "area_transf_dest_tipo" => "(case " . "when {$t}.fk_unidade!=0 then '" . Destinatario::UNIDADE . "' " . "when {$t}.fk_serie!=0 then '" . Destinatario::SERIE . "' " . "when {$t}.fk_turma!=0 then '" . Destinatario::TURMA . "' " . "else '" . Destinatario::USUARIO . "' " . "end)", "area_transf_dest_alvo" => "(case " . "when {$t}.fk_unidade!=0 " . "then ({$sqlUnidade->select()->columnsReset()->columns("unidade||''")->where("pk_unidade={$t}.fk_unidade")->limit(1)}) " . "when {$t}.fk_serie!=0 " . "then ({$sqlSerie->select()->columnsReset()->columns("serie||''")->where("pk_serie={$t}.fk_serie")->limit(1)}) " . "when {$t}.fk_turma!=0 " . "then ({$sqlTurma->select()->columnsReset()->columns("turma||''")->where("pk_turma={$t}.fk_turma")->limit(1)}) " . "else ({$sqlUsuario->select()->columnsReset()->columns("usuario||''")->where("pk_usuario={$t}.fk_usuario " . "and {$t}.fk_tipo_usuario=pk_tipo_usuario")->limit(1)}) " . "end)")); }
/** * Método que lista as séries de acordo com os filtros informados * e usuário logado * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Objeto contendo as séries retornadas */ public function listar(Filtros $filtros, Usuario $usrFiltro = null) { $sqlSerie = new SqlSerie(); if ($usrFiltro instanceof Usuario) { $usuario = $usrFiltro; } else { $usuario = $this->usuarioLogado; } switch ($usuario->getPerfil()->getId()) { case Perfil::COORDENADOR: $coordenador = new Coordenador($usuario->getId()); return $sqlSerie->deCoordenador($coordenador, $filtros); case Perfil::PROFESSOR: $professor = new Professor($usrFiltro->getId()); return $sqlSerie->deProfessor($professor, $filtros); case Perfil::ALUNO: $aluno = new Aluno($usuario->getId()); return $sqlSerie->deAluno($aluno, $filtros); default: return $sqlSerie->listarTodos($filtros); } }
/** * Método que gera um select básico. Método auxiliar * @return Select Um select pre montado */ public function select() { $select = new Select($this->tg->getTabela()); $sqlSerie = new SqlSerie(); return $select->columns(array("turma_status" => "status", "turma_ano" => "ano", "pk_turma", "turma_nome"))->import($sqlSerie->select(), array("colunas"))->join("public.serie", array("pk_serie" => "public.turma.fk_serie"))->join("public.ensinos", array("pk_ensino" => "public.serie.ensino"))->join("public.curso", array("pk_curso" => "public.serie.fk_curso"))->join("public.unidade", array("pk_unidade" => "public.turma.fk_unidade")); }
/** * Método que gera a página de apresentação da disciplina. * * @param int $id O código da disciplina * @param int $serieId A série associada a disciplinna e ao vídeo */ public function apresentacaoDisciplina($id, $serieId) { $this->debug(); try { $sqlDisciplina = new SqlDisciplina(); $selSerie = new SqlSerie(); $serie = $selSerie->get((int) $serieId); $disciplina = $sqlDisciplina->getComSerie((int) $id, $serie); //Verificando se existe vídeo associado a disciplina if (!strlen($disciplina->getVideoApresentacao())) { throw new Exception('Esta disciplina não possue apresentação'); } $this->bowerLoad('jquery.proporcao'); $this->setData('disciplina', $disciplina); $this->setData('serie', $serie); $this->printView(); } catch (Exception $exc) { $this->close($exc); } }
/** * Método que gera o painel de acompanhamento do aluno * @param int $pkAluno O código do usuário referente ao aluno na * tabela de usuários */ public function painel_de_acompanhamento($pkAluno = 0) { if ($_SERVER['REQUEST_METHOD'] == "POST") { //Tratando a requisição POST $this->editarFoto($pkAluno); } if (!filter_input(INPUT_GET, "menu", FILTER_VALIDATE_BOOLEAN)) { //Definindo se deve ou não exibir o menu principal $this->setShadowBox(TRUE); } //Inicializando os objetos básicos $usrAux = new Usuarios(); $sqlUnidade = new SqlUnidade(); $sqlSerie = new SqlSerie(); $sqlTurmas = new SqlTurma(); $sqlResumo = new SqlResumoALuno(); $sqlAcomp = new SqlAcompanhamento(); $sqlAgenda = new SqlAgendaSemanalAluno(); $sqlRecuperacao = new SqlRecuperacao(); $centralNotifi = new Kernel_Models_Notificacoes(); //Refazer como lib $sqlPlantao = new SqlPlantaoPedagogico(); try { $aluno = $usrAux->getAluno((int) $pkAluno); $resumo = $sqlResumo->get($aluno->getId()); $alunoInfo = $sqlPlantao->get_aluno_info($aluno->getId()); // $videos = array(); $videos = array_merge($videos, $sqlAgenda->listarTodas($aluno)->fetchAll()); $videos = array_merge($videos, $sqlAcomp->videosAcompanahemto($aluno)->fetchAll()); //Definindo os parametros para as notificações $ids = array("aluno_conteudo_diario", "aluno_regs_afa", "aluno_aten_afa", "aluno_acao_afa", "aluno_novas_notas", "aluno_mensagens"); $parametros = array("idAluno" => (string) $aluno->getId()); $centralNotifi->getUltimos($ids, $parametros); $recParalela = $sqlRecuperacao->get_modulos_aluno($aluno->getIdEspecifico()); //Definindo os plugins usados na página e o template $this->definirTema("responsive"); if ($this->tipoLogado == Perfil::ALUNO || $this->tipoLogado == Perfil::RESPONSAVEL) { //As notificações só aparecem para o aluno ou responsável $this->loadPlugin("notif.center"); } $this->bowerLoad("jquery-form"); $this->loadPlugin("shadowbox"); $this->loadPlugin("file_upload"); //Passando os dados para a view e exibindo a página $this->setData("aluno", $aluno); $this->setData("resumo", $resumo); $this->setData("unidades", $sqlUnidade->deAluno($aluno)->fetchAll()); $this->setData("serie", $sqlSerie->deAluno($aluno)->fetch()); $this->setData("turma", $sqlTurmas->deALuno($aluno)->fetch()); $this->setData("estaRecparalela", (bool) count($recParalela)); $this->setData("turmaOlimAssoc", $sqlAcomp->pkAlunoTurmaOlimpica($aluno)); $this->setData("turmaAvancada", $sqlAcomp->pkAlunoTurmaAvancada($aluno)); $this->setData("centralNotifi", $centralNotifi); $this->setData("parametros", $parametros); $this->setData("mensagens", $sqlAcomp->listarMensagens($aluno)); $this->setData("videos", array()); $this->setData("arquivos", new Arquivos()); $this->setData("videos", $videos); $this->setData("alunoInfo", $alunoInfo); //Imprimindo a página $this->printView(); } catch (Exception $exc) { $this->close($exc); } }