/** * @param Schema $schema */ public function up(Schema $schema) { // this up() migration is auto-generated, please modify it to your needs $logger = $this->container->get('logger'); $em = $this->container->get('doctrine.orm.entity_manager'); $rootDir = $this->container->get('kernel')->getRootDir(); $upgrade1 = $rootDir . "/../src/Cacic/CommonBundle/Resources/data/upgrade-3.1.17.sql"; $upgradeSQL1 = file_get_contents($upgrade1); $upgrade2 = $rootDir . "/../src/Cacic/CommonBundle/Resources/data/upgrade-3.1.17-2.sql"; $upgradeSQL2 = file_get_contents($upgrade2); $logger->debug("Arquivo de atualização: {$upgrade1}"); // FIXME: Só funciona no PostgreSQL $this->addSql($upgradeSQL1); $this->addSql($upgradeSQL2); // Executa a atualização $this->addSql("SELECT upgrade_3117()"); $this->addSql("SELECT upgrade_31172()"); // Adiciona configuração $configuracao = $em->getRepository("CacicCommonBundle:ConfiguracaoPadrao")->findOneBy(array('idConfiguracao' => 'email_notifications')); if (empty($configuracao)) { $configuracao = new ConfiguracaoPadrao(); $configuracao->setIdConfiguracao('email_notifications'); $configuracao->setNmConfiguracao('email_notifications'); $configuracao->setVlConfiguracao('N'); $em->persist($configuracao); $em->flush(); } }
public function load(ObjectManager $manager) { foreach ($this->configuracoesPadrao as $conf) { $configuracaoPadrao = new ConfiguracaoPadrao(); $configuracaoPadrao->setIdConfiguracao($conf[0]); $configuracaoPadrao->setNmConfiguracao($conf[1]); $configuracaoPadrao->setVlConfiguracao($conf[2]); $manager->persist($configuracaoPadrao); } $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; }