/** * Metodo que lista as áreas de acordo com os filtros e usuário logado * @param Filtros $filtros Objeto do sistema de filtros * @return ResultSetHydrator Um objeto contendo as áreas encontradas */ public function listar(Filtros $filtros) { $sqlArea = new SqlAreaDaNatureza(); switch ($this->usuarioLogado->getPerfil()->getId()) { case Perfil::COORDENADOR: $coordenador = new Coordenador($this->usuarioLogado->getId()); return $sqlArea->deCoordenador($coordenador, $filtros); default: return $sqlArea->listarTodos($filtros); } }
/** * Método que gera um select básico para as consultas * @return Select Um objeto contendo uma consulta básica */ public function select() { $select = new Select($this->tg->getTabela()); $sqlArea = new SqlAreaDaNatureza(); return $select->columns(array("pk_materia_mae", "materia_mae_nome"))->join("public.area", array("pk_area" => "public.materia_mae.fk_area"))->import($sqlArea->select()); }