public function saveSistemas($entity, $dto) { $data = $dto->getSistemas(); $this->_getRepository()->deletePerfilPadraoUsuario($entity->getSqUsuarioExterno()); $entityManager = $this->getEntityManager(); foreach ($data['sqPerfil'] as $sqPerfil) { $entityPerfil = $entityManager->getPartialReference('app:Perfil', $sqPerfil); $entityUsuarioPerfilExterno = new \Sica\Model\Entity\UsuarioExternoPerfil(); $entityUsuarioPerfilExterno->setSqUsuarioExterno($entity); $entityUsuarioPerfilExterno->setSqPerfil($entityPerfil); $entityManager->persist($entityUsuarioPerfilExterno); } }
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('sqUsuarioExterno' => $mapping->getUsuario()); if ($inPerfil) { $criteria['sqPerfil'] = $inPerfil; } $usuarioExtPerfil = $this->getEntityManager()->getRepository('app:UsuarioExternoPerfil')->findBy($criteria); foreach ($usuarioExtPerfil as $usuarioPerfil) { $this->getEntityManager()->remove($usuarioPerfil); $this->getEntityManager()->flush(); } $usuario = $this->_em->find('app:UsuarioExterno', $mapping->getUsuario()); foreach ($perfis as $perfil) { $entityPerfil = $perfil->getEntity(); $this->_em->getUnitOfWork()->registerManaged($entityPerfil, array('sqPerfil' => $entityPerfil->getSqPerfil()), array()); $usuarioPerfil = new \Sica\Model\Entity\UsuarioExternoPerfil(); $usuarioPerfil->setSqPerfil($entityPerfil); $usuarioPerfil->setSqUsuarioExterno($usuario); $this->_em->persist($usuarioPerfil); } $this->_em->flush(); }