AcaoRepository.php
1.8 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
<?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();
}
};