public function comboProfile(\Core_Dto_Mapping $dto, $inFuncionalidade = TRUE) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('p.sqPerfil', 'p.noPerfil')->from('app:Perfil', 'p')->innerJoin('p.sqSistema', 's')->where('p.stRegistroAtivo = :stRegistroAtivo')->setParameter('stRegistroAtivo', 'TRUE'); if ($inFuncionalidade) { $queryBuilder->leftJoin('p.sqPerfilFuncionalidade', 'pf'); } if ($dto->getSqSistema() !== '') { $queryBuilder->andWhere('p.sqSistema = :sqSistema')->setParameter('sqSistema', $dto->getSqSistema()); } if ($dto->getInPerfilExterno() == '1') { $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno')); $queryBuilder->setParameter('perfilExterno', 'TRUE'); } else { if ($dto->getInPerfilExterno() == '0') { $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno')); $queryBuilder->setParameter('perfilExterno', 'FALSE'); } } return $queryBuilder->getQuery()->getArrayResult(); }
public function findProfileByUnit(\Core_Dto_Mapping $dto) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('p.sqPerfil', 'p.noPerfil')->from('app:UsuarioPerfil', 'up')->innerJoin('up.sqPerfil', 'p')->innerJoin('up.sqUsuario', 'u')->where('up.sqUnidadeOrgPessoa = :sqUnidadeOrg')->setParameter('sqUnidadeOrg', $dto->getSqUnidadeOrgPessoa())->andWhere('p.sqSistema = :sqSistema')->setParameter('sqSistema', $dto->getSqSistema())->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':inPerfilExterno'))->setParameter('inPerfilExterno', 'FALSE')->andWhere($queryBuilder->expr()->eq('u.sqUsuario', ':sqUsuario'))->setParameter('sqUsuario', $dto->getSqUsuario())->andWhere($queryBuilder->expr()->eq('p.stRegistroAtivo', ':stRegistroAtivo'))->setParameter('stRegistroAtivo', TRUE)->groupBy('p.sqPerfil, p.noPerfil'); return $queryBuilder->getQuery()->getResult(); }
/** * * @param \Core_Dto_Mapping $dto */ public function order(\Core_Dto_Mapping $dto) { $entity = $this->_getRepository()->find($dto->getSqMenu()); if ($entity->getSqMenuPai() !== NULL) { $sqMenuPai = $entity->getSqMenuPai()->getSqMenu(); } else { $sqMenuPai = NULL; } $criteria = array('sqMenuPai' => $sqMenuPai, 'sqSistema' => $dto->getSqSistema()); if ($dto->getDirecao() == 'up') { $criteria['nuOrdemApresent'] = $entity->getNuOrdemApresent() - 1; $entity->setNuOrdemApresent($entity->getNuOrdemApresent() - 1); $entity2 = current($this->_getRepository()->findBy($criteria)); if ($entity2) { $entity2->setNuOrdemApresent($entity2->getNuOrdemApresent() + 1); } } else { if ($dto->getDirecao() == 'down') { $criteria['nuOrdemApresent'] = $entity->getNuOrdemApresent() + 1; $entity->setNuOrdemApresent($entity->getNuOrdemApresent() + 1); $entity2 = current($this->_getRepository()->findBy($criteria)); if ($entity2) { $entity2->setNuOrdemApresent($entity2->getNuOrdemApresent() - 1); } } } $entityManager = $this->getEntityManager(); $entityManager->persist($entity); if ($entity2) { $entityManager->persist($entity2); } $entityManager->flush(); $menusDown = $this->_getRepository()->findMenuBySystemAndPai($dto->getSqSistema(), NULL, $entity->getSqMenuPai() !== NULL ? $entity->getSqMenuPai()->getSqMenu() : NULL); $indice = 1; if ($menusDown) { foreach ($menusDown as $menu) { $menu->setNuOrdemApresent($indice); $this->_getRepository()->updateNuOrdem($menu); $indice++; } } }
public function saveBindProfile(\Core_Dto_Mapping $mapping, array $perfis) { $queryPerfis = $this->_em->createQueryBuilder(); $queryPerfis->select('p.sqPerfil')->from('app:Perfil', 'p')->where($queryPerfis->expr()->eq('p.sqSistema', ':sistema'))->setParameter('sistema', $mapping->getSqSistema()); $perfisFound = $queryPerfis->getQuery()->getArrayResult(); $inPerfil = array(); foreach ($perfisFound as $perfil) { $inPerfil[] = $perfil['sqPerfil']; } $criteria = array('sqUsuario' => $mapping->getUsuario(), 'sqUnidadeOrgPessoa' => $mapping->getUnidade()); if ($inPerfil) { $criteria['sqPerfil'] = $inPerfil; } $usuarioPerfil = $this->getEntityManager()->getRepository('app:UsuarioPerfil')->findBy($criteria); foreach ($usuarioPerfil as $usuarioPerf) { $this->getEntityManager()->remove($usuarioPerf); $this->getEntityManager()->flush(); } $unidade = $this->_em->getUnitOfWork()->createEntity('app:UnidadeOrg', array('sqPessoa' => $mapping->getUnidade())); $usuario = $this->_em->find('app:Usuario', $mapping->getUsuario()); foreach ($perfis as $perfil) { $entityPerfil = $perfil->getEntity(); $this->_em->getUnitOfWork()->registerManaged($entityPerfil, array('sqPerfil' => $entityPerfil->getSqPerfil()), array()); $usuarioPerfil = new \Sica\Model\Entity\UsuarioPerfil(); $usuarioPerfil->setSqPerfil($entityPerfil); $usuarioPerfil->setSqUnidadeOrgPessoa($unidade); $usuarioPerfil->setSqUsuario($usuario); $this->_em->persist($usuarioPerfil); } $this->_em->flush(); }