Example #1
0
 /**
  * Método que lista os ensino de acordo com os filtros e com o 
  * usuário logado
  * 
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * 
  * @return ResultSetHydrator Um objeto contendo os ensinos 
  * relacionados a consulta feita
  */
 public function listar(Filtros $filtros, Usuario $usrFiltro = null)
 {
     $sqlEnsino = new SqlEnsino();
     if ($usrFiltro instanceof Usuario) {
         $usuario = $usrFiltro;
     } else {
         $usuario = $this->usuarioLogado;
     }
     switch ($usuario->getPerfil()->getId()) {
         case Perfil::COORDENADOR:
             $coordenador = new Coordenador($usuario->getId());
             return $sqlEnsino->deCoordenador($coordenador, $filtros);
         case Perfil::ALUNO:
             $coordenador = new Aluno($usuario->getId());
             return $sqlEnsino->deAluno($coordenador, $filtros);
         case Perfil::PROFESSOR:
             $professor = new Professor($usuario->getId());
             return $sqlEnsino->deProfessor($professor, $filtros);
         default:
             return $sqlEnsino->listarTodos($filtros);
     }
 }