render( 'CacicCommonBundle:Configuracao:padrao.html.twig', array( 'configuracoes' => $this->getDoctrine()->getRepository( 'CacicCommonBundle:ConfiguracaoPadrao' )->getArrayChaveValor() ) ); } /** * * Tela de edição das configurações dos agentes, por local */ public function agenteAction() { $repository = $this->getDoctrine()->getRepository( 'CacicCommonBundle:ConfiguracaoLocal' ); /** * @todo no caso de ser um usuário administrativo, exibir lista com todos os locais cadastrados * @var int */ $local = $this->getUser()->getIdLocal(); // Recupera o Local da sessão do usuário logado /** * Verifica se o Local possui configurações próprias e, se não possuir, cria-as a partir das configurações-padrão */ if ( ! $repository->hasConfiguracoes($local) ) $repository->configurarLocalFromConfigPadrao( $local ); return $this->render( 'CacicCommonBundle:Configuracao:agente.html.twig', array( 'configuracoes' => $repository->getArrayChaveValor( $local ), 'local' => $local ) ); } /** * * Tela de edição das configurações do Gerente, por Local */ public function gerenteAction() { $repository = $this->getDoctrine()->getRepository( 'CacicCommonBundle:ConfiguracaoLocal' ); /** * * @todo no caso de ser um usuário administrativo, exibir lista com todos os locais cadastrados * @var int */ $local = $this->getUser()->getIdLocal(); // Recupera o Local da sessão do usuário logado /** * Verifica se o Local possui configurações próprias e, se não possuir, cria-as a partir das configurações-padrão */ if ( ! $repository->hasConfiguracoes($local) ) $repository->configurarLocalFromConfigPadrao( $local ); return $this->render( 'CacicCommonBundle:Configuracao:gerente.html.twig', array( 'configuracoes' => $repository->getArrayChaveValor( $local ), 'local' => $local ) ); } /** * * [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' ); if ( $request->get('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 = $this->getDoctrine()->getRepository('CacicCommonBundle:ConfiguracaoLocal') ->find( array( 'idConfiguracao' => $request->get('idConfiguracao'), 'idLocal' => $request->get('idLocal') ) ); } else // ... do contrário, altera a configuração padrão $configuracao = $this->getDoctrine()->getRepository('CacicCommonBundle:ConfiguracaoPadrao')->find( $request->get('idConfiguracao') ); if ( ! $configuracao ) throw $this->createNotFoundException( 'Configuração não encontrada' ); $em = $this->getDoctrine()->getManager(); $configuracao->setVlConfiguracao( $request->get('vlConfiguracao') ); $em->flush(); $response = new Response( json_encode( array('status' => 'ok') ) ); $response->headers->set('Content-Type', 'application/json'); return $response; } }