Ejemplo n.º 1
0
 /**
  * @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();
 }
Ejemplo n.º 3
0
 /**
  * 
  * [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;
 }