public function findMenu(\Core_Dto_Entity $dto) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('mh')->from('app:MenuHierarqManter', 'mh'); if ($dto->getSqSistema()->getSqSistema() !== '' && $dto->getSqSistema()->getSqSistema() !== NULL) { $queryBuilder->where('mh.sqSistema = :sqSistema')->setParameter('sqSistema', $dto->getSqSistema()->getSqSistema(), 'integer'); } if ($dto->getSqMenu() !== '' && $dto->getSqMenu() !== NULL) { $queryBuilder->andWhere('mh.sqMenu = :sqMenu')->setParameter('sqMenu', $dto->getSqMenu(), 'integer'); } if ($dto->getNuNivel() !== '' && $dto->getNuNivel() !== NULL) { $queryBuilder->andWhere('mh.nuNivel = :nuNivel')->setParameter('nuNivel', $dto->getNuNivel(), 'integer'); } if ($dto->getSqMenuPai()->getSqMenu() !== '' && $dto->getSqMenuPai()->getSqMenu() !== NULL) { $queryBuilder->andWhere('mh.sqMenuPai = :sqMenuPai')->setParameter('sqMenuPai', $dto->getSqMenuPai()->getSqMenu(), 'integer'); } if ($dto->getRemoveDaLista() && $dto->getSqMenuLista() !== '' && $dto->getSqMenuLista() !== NULL) { $queryBuilder->andWhere('mh.sqMenu != :sqMenu')->setParameter('sqMenu', $dto->getSqMenuLista(), 'integer'); } return $queryBuilder->getQuery()->getArrayResult(); }
public function menuFuncionality(\Core_Dto_Entity $dto) { $queryBuilder = $this->_em->createQueryBuilder(); $subQueryBuilder = $this->_em->createQueryBuilder(); $subQueryBuilder->select('m.noMenu')->from('app:MenuHierarqManter', 'm')->where($queryBuilder->expr()->eq('m.sqMenu', 'mhm.sqMenuPai'))->getDQL(); $queryBuilder->select('mhm.sqMenu', 'mhm.noMenu', 'f.noFuncionalidade', 'f.sqFuncionalidade', 'mhm.nuOrdemApresent', 'mhm.nuNivel', 'mhm.stRegistroAtivo')->addSelect('(' . $subQueryBuilder . ') noMenuPai')->from('app:Funcionalidade', 'f')->innerJoin('f.sqMenuHierarquico', 'mhm')->where($queryBuilder->expr()->eq('mhm.sqSistema', ':sqSistema'))->andWhere($queryBuilder->expr()->eq('f.stRegistroAtivo', ':stAtivo'))->setParameter('sqSistema', $dto->getSqSistema())->setParameter(':stAtivo', 'TRUE'); if ($dto->getSqMenu() != '0') { $queryBuilder->andWhere($queryBuilder->expr()->orX($queryBuilder->expr()->eq('mhm.sqMenu', ':sqMenu'), $queryBuilder->expr()->eq('mhm.sqMenuPai', ':sqMenuPai'))); $queryBuilder->setParameter('sqMenu', $dto->getSqMenu()); $queryBuilder->setParameter('sqMenuPai', $dto->getSqMenu()); } $queryBuilder->orderBy('mhm.sqMenu, mhm.nuNivel ,mhm.nuOrdemApresent'); return $queryBuilder->getQuery()->getArrayResult(); }