AcaoRepository.php
2.79 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
81
82
83
84
85
86
<?php
namespace Cacic\CommonBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
*
* Repositório de métodos de consulta em DQL
* @author lightbase
*
*/
class AcaoRepository extends EntityRepository
{
/**
*
* Lista as Ações opcionais (cs_opcional=S)
* @param int $idLocal
*/
public function listarModulosOpcionais($nivel, $idLocal = null )
{
// Monta a Consulta básica...
$query = $this->createQueryBuilder('acao')->select('acao', 'COUNT(acao_rede.rede) AS totalRedesAtivadas')
->leftJoin('acao.redes', 'acao_rede')
->where("acao.csOpcional = 'S'")
->groupBy('acao');
if($nivel[0]['teGrupoUsuarios'] !== "Administração"){
if ( $idLocal !== null )
{
$query->leftJoin('acao_rede.rede', 'rede')
->leftJoin('rede.idLocal', 'local')
->andWhere( 'local.idLocal = :idLocal OR local.idLocal IS NULL' )
->setParameter( 'idLocal', $idLocal );
}
}
return $query->getQuery()->execute();
}
public function listaAcaoRedeComputador( $idRede, $idSo )
{
// Monta a Consulta básica...
$_dql = "SELECT DISTINCT
a.idAcao,
a.teNomeCurtoModulo,
a.teDescricaoBreve,
ar.dtHrColetaForcada
FROM CacicCommonBundle:Acao a
INNER JOIN a.so aso
INNER JOIN aso.so so
INNER JOIN a.redes ar
INNER JOIN ar.rede r
WHERE r.idRede = :idRede
AND so.idSo = :idSo";
return $this->getEntityManager()
->createQuery( $_dql )
->setParameters( array('idRede'=>$idRede, 'idSo'=>$idSo) )
->getArrayResult();
}
public function listaAcaoComputador( $idRede, $idSo, $te_node_address )
{
// Monta a Consulta básica...
$_dql = "SELECT DISTINCT
a.idAcao,
a.teNomeCurtoModulo,
a.teDescricaoBreve,
ar.dtHrColetaForcada,
aso as acaoExcecao
FROM CacicCommonBundle:Acao a
INNER JOIN a.redes ar
INNER JOIN ar.rede r
LEFT JOIN CacicCommonBundle:AcaoSo aso WITH (a.idAcao = aso.acao AND aso.so = :idSo)
LEFT JOIN CacicCommonBundle:AcaoExcecao e
WITH (e.acao = a.idAcao AND e.rede = :idRede AND e.teNodeAddress = :te_node_address)
WHERE r.idRede = :idRede
AND e.acao IS NULL";
return $this->getEntityManager()
->createQuery( $_dql )
->setParameters( array('idRede'=>$idRede, 'idSo'=>$idSo, 'te_node_address' => $te_node_address) )
->getArrayResult();
}
};