/**
  * 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());
 }
예제 #2
0
 /**
  * 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)"));
 }
예제 #3
0
 /**
  * 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);
     }
 }
예제 #4
0
 /**
  * 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"));
 }
예제 #5
0
 /**
  * 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);
     }
 }
예제 #6
0
 /**
  * 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);
     }
 }