getEntityManager() ->createQuery( $_dql ) ->setParameter( 'idLocal', $idLocal ) ->getArrayResult(); } /** * * Recupera um array na forma [idConfiguracao] => [vlConfiguracao] * @param int $idLocal * @return array */ public function getArrayChaveValor( $idLocal ) { $configuracoes = $this->listarPorLocal( $idLocal ); $return = array(); foreach ( $configuracoes as $config ) { $return[ $config['idConfiguracao'] ] = $config[ 'vlConfiguracao' ]; } return $return; } /** * Verifica se o Local parametrizado possui configurações * @param Cacic\CommonBundle\Entity\Local $local * @return boolean */ public function hasConfiguracoes( $local ) { $qb = $this->createQueryBuilder('cl') ->select('COUNT(cl.idConfiguracao) AS numConfig') ->where('cl.idLocal = :local') ->setParameter('local', $local) ->groupBy('cl.idLocal'); return (bool) $qb->getQuery()->getOneOrNullResult(); } /** * * 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(); } /** * * Remove as configurações aplicadas ao Local parametrizado * @param Cacic\CommonBundle\Entity\Local $local */ public function removerConfiguracoesDoLocal( $local ) { $em = $this->getEntityManager(); $confs = $this->findBy( array('idLocal'=>$local) ); // Recupera todas as configurações relacionadas ao Local foreach ( $confs as $conf ) $em->remove($conf); // Remove todas as configurações $em->flush(); } /** * * Lista Email's cadastrados para serem notificados, caso haja alteração de hardware * @param string $idLocal * @return Cacic\CommonBundle\Entity\ConfiguracaoLocal */ public function listarNotificacaoEmailLocal( $idLocal ) { $_dql = "SELECT cl, cp FROM CacicCommonBundle:ConfiguracaoLocal cl JOIN cl.idConfiguracao cp WHERE cl.idLocal = :idLocal AND cp.nmConfiguracao = 'te_notificar_mudancas_emails' AND cl.vlConfiguracao IS NOT NULL"; return $this->getEntityManager() ->createQuery( $_dql ) ->setMaxResults(1) ->setParameter( 'idLocal', $idLocal ) ->getSingleResult(); } /** * * Lista Propiedades a serem verificadas caso haja alteração * @param string $idLocal * @return Cacic\CommonBundle\Entity\ConfiguracaoLocal */ public function listarNotificacaoPropertyLocal( $idLocal, $nmConfiguracao ) { $_dql = "SELECT cl, cp FROM CacicCommonBundle:ConfiguracaoLocal cl JOIN cl.idConfiguracao cp WHERE cl.idLocal = :idLocal AND cp.nmConfiguracao = :nmConfiguracao AND cl.vlConfiguracao IS NOT NULL"; return $this->getEntityManager() ->createQuery( $_dql ) ->setMaxResults(1) ->setParameters( array( 'idLocal'=> $idLocal, 'nmConfiguracao' => $nmConfiguracao ) ) ->getSingleResult(); } }