/** * * Cria as configurações locais à partir da configuração padrão do CACIC * @param Cacic\CommonBundle\Entity\Local $local */ public function configurarLocalFromConfigPadrao($local) { $em = $this->getEntityManager(); $padrao = $em->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->findAll(); // Recupera todas as Configurações-Padrão foreach ($padrao as $confPadrao) { $confLocal = new ConfiguracaoLocal(); $confLocal->setIdLocal($local); $confLocal->setIdConfiguracao($confPadrao); $confLocal->setVlConfiguracao($confPadrao->getVlConfiguracao()); $em->persist($confLocal); } $em->flush(); }
public function load(ObjectManager $manager) { $em = $this->container->get('doctrine')->getManager(); $configuracoesPadrao = $em->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->findAll(); $local = $this->getReference('local'); // Recupera o Local criado via data-fixture foreach ($configuracoesPadrao as $conf) { $configuracaoLocal = new ConfiguracaoLocal(); $configuracaoLocal->setIdConfiguracao($conf); $configuracaoLocal->setIdLocal($local); $configuracaoLocal->setVlConfiguracao($conf->getVlConfiguracao()); $manager->persist($configuracaoLocal); } $manager->flush(); }
/** * * [AJAX] Salva a configuração padrão parametrizada via POST */ public function salvarconfiguracaoAction(Request $request) { if (!$request->isXmlHttpRequest()) { throw $this->createNotFoundException('Página não encontrada'); } $idConfiguracao = $request->get('idConfiguracao'); if (empty($idConfiguracao)) { $this->get('session')->getFlashBag()->add('error', 'Erro na alteração da configuração.'); throw $this->createNotFoundException('Configuração não encontrada'); } $vlConfiguracao = $request->get('vlConfiguracao'); $nmConfiguracao = $request->get('nmConfiguracao'); $idLocal = $request->get('idLocal'); $em = $this->getDoctrine()->getManager(); if (!empty($idLocal)) { // No caso de ter sido parametrizado um Local, trata-se de edição do local informado /** * @todo Checar se o usuário tem privilégios para alterar o local parametrizado */ $configuracao_local = $em->getRepository('CacicCommonBundle:ConfiguracaoLocal')->findOneBy(array('idConfiguracao' => $idConfiguracao, 'idLocal' => $idLocal)); if (empty($configuracao_local)) { if (!$this->get('security.context')->isGranted('ROLE_ADMIN')) { $this->get('session')->getFlashBag()->add('error', 'Erro na alteração da configuração.'); throw $this->createNotFoundException('Configuração não encontrada'); } else { $configuracao = $em->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->find($idConfiguracao); if (empty($configuracao)) { $configuracao = new ConfiguracaoPadrao(); $configuracao->setIdConfiguracao($idConfiguracao); $configuracao->setVlConfiguracao($vlConfiguracao); if (empty($nmConfiguracao)) { $configuracao->setNmConfiguracao($idConfiguracao); } else { $configuracao->setNmConfiguracao($nmConfiguracao); } $em->persist($configuracao); } $local = $em->getRepository("CacicCommonBundle:Local")->find($idLocal); $configuracao_local = new ConfiguracaoLocal(); $configuracao_local->setIdConfiguracao($idConfiguracao); $configuracao_local->setIdLocal($local); } } $configuracao_local->setVlConfiguracao($vlConfiguracao); $em->persist($configuracao_local); } else { // ... do contrário, altera a configuração padrão $configuracao = $em->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->find($idConfiguracao); if (empty($configuracao)) { if (!$this->get('security.context')->isGranted('ROLE_ADMIN')) { $this->get('session')->getFlashBag()->add('error', 'Erro na alteração da configuração.'); throw $this->createNotFoundException('Configuração não encontrada'); } else { $configuracao = new ConfiguracaoPadrao(); $configuracao->setIdConfiguracao($idConfiguracao); if (empty($nmConfiguracao)) { $configuracao->setNmConfiguracao($idConfiguracao); } else { $configuracao->setNmConfiguracao($nmConfiguracao); } } } $configuracao->setVlConfiguracao($request->get('vlConfiguracao')); $em->persist($configuracao); // E atualiza o padrão para todos os locais $locais_list = $em->getRepository('CacicCommonBundle:Local')->findAll(); foreach ($locais_list as $local) { $configuracao_local = $em->getRepository('CacicCommonBundle:ConfiguracaoLocal')->findOneBy(array('idConfiguracao' => $request->get('idConfiguracao'), 'idLocal' => $local->getIdLocal())); if (empty($configuracao_local)) { $configuracao_local = new ConfiguracaoLocal(); $configuracao_local->setIdLocal($local); $configuracao_local->setIdConfiguracao($configuracao); } $configuracao_local->setVlConfiguracao($vlConfiguracao); $em->persist($configuracao_local); } } $em->flush(); $this->get('session')->getFlashBag()->add('success', 'Configuração alterada com sucesso.'); $response = new Response(json_encode(array('status' => 'ok'))); $response->headers->set('Content-Type', 'application/json'); return $response; }