PatrimonioConfigInterfaceRepository.php
2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
namespace Cacic\CommonBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
*
* Repositório de métodos de consulta em DQL
* @author lightbase
*
*/
class PatrimonioConfigInterfaceRepository extends EntityRepository
{
/*
* Método de listagem dos Patrimonio de conf de interface cadastrados e respectivas informações
*/
public function listar()
{
$_dql = "SELECT pci.teEtiqueta, pci.idEtiqueta
FROM CacicCommonBundle:PatrimonioConfigInterface pci
ORDER BY pci.idEtiqueta ASC";
return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
}
/**
*
* Método de listagem das OPÇÕES DE CONFIGURAÇÃO DE INTERFACE de dado Local
* @param int $idLocal
*/
public function listarPorLocal( $idLocal )
{
$_dql = "SELECT pci.inDestacarDuplicidade
FROM CacicCommonBundle:PatrimonioConfigInterface pci
WHERE pci.idLocal = :idLocal";
$query = $this->getEntityManager()->createQuery( $_dql )->setParameter('idLocal', $idLocal);
return $query->getArrayResult();
}
/**
*
* Recupera um array com as OPÇÕES DE CONFIGURAÇÃO DO APP COLETOR DE INFORMAÇÕES DE PATRIMÔNIO
* @param int|Cacic\CommonBundle\Entity\Local $local
*/
public function getOpcoesDestaqueDuplicidade( $local = null )
{
$query = $this->createQueryBuilder( 'pci' )
->select( 'pci.idEtiqueta', 'pci.teEtiqueta', 'pci.inDestacarDuplicidade' )
->join('pci.local', 'l')
->where('pci.inDestacarDuplicidade IS NOT NULL');
if ( null !== $local ) $query->andWhere( 'l.idLocal = :idLocal' )->setParameter('idLocal', $local);
return $query->getQuery()->execute();
}
/**
*
* Configura as etiquetas para destacar duplicidade ou não
* @param array $opcoesDestacar
* @param int|Cacic\CommonBundle\Entity\Local $local
*/
public function atualizarOpcoesDestacarDuplicidade( $opcoesDestacar, $local )
{
$_opcoes = $this->getOpcoesDestaqueDuplicidade( $local ); // Recupera todas as etiquetas
foreach ( $_opcoes as $conf )
{ // Verifica se cada Etiqueta está na lista de etiquetas a destacar, marcando 'S' se estiver e 'N' caso não esteja
$conf = $this->find( array( 'idEtiqueta'=> $conf['idEtiqueta'], 'local' => $local ) );
$conf->setInDestacarDuplicidade( in_array( $conf->getIdEtiqueta(), $opcoesDestacar ) ? 'S' : 'N' );
$this->getEntityManager()->persist($conf); // Salva as alterações na opção
}
$this->getEntityManager()->flush();
}
}