diff --git a/src/Cacic/CommonBundle/Entity/ComputadorColetaRepository.php b/src/Cacic/CommonBundle/Entity/ComputadorColetaRepository.php
index 1ba62c3..87263e7 100644
--- a/src/Cacic/CommonBundle/Entity/ComputadorColetaRepository.php
+++ b/src/Cacic/CommonBundle/Entity/ComputadorColetaRepository.php
@@ -270,7 +270,76 @@ class ComputadorColetaRepository extends EntityRepository
if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) )
$qb->andWhere('property.idClassProperty IN (:conf)')->setParameter('conf', explode( ',', $filtros['conf'] ));
+ return $qb->getQuery()->execute();
+ }
+
+ public function gerarRelatorioPatrimonio($filtros)
+ {
+ // Monta a Consulta básica...
+ $qb = $this->createQueryBuilder('coleta')
+ ->select( 'DISTINCT(comp.nmComputador), so.sgSo, class.nmPropertyName, coleta.teClassPropertyValue,
+ r.teIpRede, r.idRede, r.nmRede, l.nmLocal, comp.idComputador,so.inMswindows, u.nmUorg')
+ ->innerJoin('CacicCommonBundle:Computador', 'comp','WITH','coleta.computador = comp.idComputador')
+ ->innerJoin('CacicCommonBundle:PropriedadeSoftware', 'prop', 'WITH', 'comp.idComputador = prop.computador')
+ ->innerJoin('CacicCommonBundle:ClassProperty', 'class','WITH', 'coleta.classProperty = class.idClassProperty')
+ ->innerJoin('CacicCommonBundle:Classe', 'classe','WITH', 'class.idClass = classe.idClass')
+ ->leftJoin('CacicCommonBundle:So', 'so','WITH','comp.idSo = so.idSo')
+ ->leftJoin('CacicCommonBundle:Rede', 'r','WITH', 'comp.idRede = r.idRede')
+ ->innerJoin('CacicCommonBundle:Uorg','u','WITH', 'r.idRede = u.rede')
+ ->innerJoin('CacicCommonBundle:Local','l','WITH', 'r.idLocal = l.idLocal')
+ ->groupBy('comp.nmComputador,r.idRede, class.nmPropertyName, u.nmUorg, coleta.teClassPropertyValue,so.sgSo, r.teIpRede, l.nmLocal, r.nmRede, comp.idComputador,so.inMswindows')
+ ->orderBy('r.teIpRede, l.nmLocal');
+
+ /*
+ * Verifica os filtros que foram parametrizados
+ */
+
+ if ( array_key_exists('locais', $filtros) && !empty($filtros['locais']) )
+ $qb->andWhere('l.idLocal IN (:locais)')->setParameter('locais', explode( ',', $filtros['locais'] ));
+
+ if ( array_key_exists('so', $filtros) && !empty($filtros['so']) )
+ $qb->andWhere('comp.idSo IN (:so)')->setParameter('so', explode( ',', $filtros['so'] ));
+
+ if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) )
+ $qb->andWhere('class.idClassProperty IN (:conf)')->setParameter('conf', explode( ',', $filtros['conf'] ));
+
+ if ( array_key_exists('uorg', $filtros) && !empty($filtros['uorg']) )
+ $qb->andWhere('u.idUorg IN (:uorg)')->setParameter('uorg', explode( ',', $filtros['uorg'] ));
return $qb->getQuery()->execute();
}
+
+ public function gerarRelatorioSemPatrimonio($filtros)
+ {
+ // Monta a Consulta básica...
+ $qb = $this->createQueryBuilder('coleta')
+ ->select( 'DISTINCT(comp.nmComputador), so.sgSo,
+ r.teIpRede, r.idRede, r.nmRede, l.nmLocal, comp.idComputador,so.inMswindows, u.nmUorg')
+ ->innerJoin('CacicCommonBundle:Computador', 'comp','WITH','coleta.computador = comp.idComputador')
+ ->innerJoin('CacicCommonBundle:PropriedadeSoftware', 'prop', 'WITH', 'comp.idComputador = prop.computador')
+ ->innerJoin('CacicCommonBundle:ClassProperty', 'class','WITH', 'coleta.classProperty = class.idClassProperty')
+ ->innerJoin('CacicCommonBundle:Classe', 'classe','WITH', 'class.idClass = classe.idClass')
+ ->leftJoin('CacicCommonBundle:So', 'so','WITH','comp.idSo = so.idSo')
+ ->leftJoin('CacicCommonBundle:Rede', 'r','WITH', 'comp.idRede = r.idRede')
+ ->innerJoin('CacicCommonBundle:Uorg','u','WITH', 'r.idRede = u.rede')
+ ->innerJoin('CacicCommonBundle:Local','l','WITH', 'r.idLocal = l.idLocal')
+ ->groupBy('comp.nmComputador,r.idRede, u.nmUorg,so.sgSo, r.teIpRede, l.nmLocal, r.nmRede, comp.idComputador,so.inMswindows')
+ ->orderBy('r.teIpRede, l.nmLocal');
+
+ /*
+ * Verifica os filtros que foram parametrizados
+ */
+
+ if ( array_key_exists('locais', $filtros) && !empty($filtros['locais']) )
+ $qb->andWhere('l.idLocal IN (:locais)')->setParameter('locais', explode( ',', $filtros['locais'] ));
+
+ if ( array_key_exists('so', $filtros) && !empty($filtros['so']) )
+ $qb->andWhere('comp.idSo IN (:so)')->setParameter('so', explode( ',', $filtros['so'] ));
+
+
+ if ( array_key_exists('uorg', $filtros) && !empty($filtros['uorg']) )
+ $qb->andWhere('u.idUorg IN (:uorg)')->setParameter('uorg', explode( ',', $filtros['uorg'] ));
+
+ return $qb->getQuery()->execute();
+ }
}
diff --git a/src/Cacic/CommonBundle/Entity/UorgRepository.php b/src/Cacic/CommonBundle/Entity/UorgRepository.php
index 14e91df..0b64b78 100644
--- a/src/Cacic/CommonBundle/Entity/UorgRepository.php
+++ b/src/Cacic/CommonBundle/Entity/UorgRepository.php
@@ -15,7 +15,8 @@ class UorgRepository extends EntityRepository
public function listar()
{
$_dql = "SELECT uorg.idUorg, uorg.nmUorg
- FROM CacicCommonBundle:Uorg uorg";
+ FROM CacicCommonBundle:Uorg uorg
+ ORDER BY uorg.uorgPai DESC, uorg.idUorg DESC ";
return $this->getEntityManager()->createQuery( $_dql )->getArrayResult();
}
diff --git a/src/Cacic/RelatorioBundle/Controller/DefaultController.php b/src/Cacic/RelatorioBundle/Controller/DefaultController.php
index 9cd7110..a3de0f5 100644
--- a/src/Cacic/RelatorioBundle/Controller/DefaultController.php
+++ b/src/Cacic/RelatorioBundle/Controller/DefaultController.php
@@ -30,15 +30,13 @@ class DefaultController extends Controller
{
$locais = $this->getDoctrine()->getRepository('CacicCommonBundle:Local')->listar();
$so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->listar();
- $sw = $this->getDoctrine()->getRepository('CacicCommonBundle:Software')->listarSoftware();
$uorg = $this->getDoctrine()->getRepository('CacicCommonBundle:Uorg')->listar();
$conf = $this->getDoctrine()->getRepository('CacicCommonBundle:ComputadorColeta')->listarPropriedades('Patrimonio');
-//
+
return $this->render(
'CacicRelatorioBundle:Default:patrimonio.html.twig',
array(
- 'sw' => $sw,
'locais' => $locais,
'so' => $so,
'conf' => $conf,
@@ -51,22 +49,26 @@ class DefaultController extends Controller
*/
public function patrimonioRelatorioAction( Request $request )
{
- $filtros = $request->get('rel_filtro_patrimonio');
- $locale = $request->getLocale();
- $dados = $this->getDoctrine()
- ->getRepository('CacicCommonBundle:Software')
- ->gerarRelatorioPatrimonio( $filtros );
+ $filtros = $request->get('rel_filtro_patrimonio');
+ $locale = $request->getLocale();
+
+ if($filtros['conf'] <> ""){
+ $dados = $this->getDoctrine()
+ ->getRepository('CacicCommonBundle:ComputadorColeta')
+ ->gerarRelatorioPatrimonio( $filtros );
+ }
+ else{
+ $dados = $this->getDoctrine()
+ ->getRepository('CacicCommonBundle:ComputadorColeta')
+ ->gerarRelatorioSemPatrimonio( $filtros );
+ }
- // Debug::dump($filtros);die;
return $this->render(
'CacicRelatorioBundle:Default:rel_patrimonio.html.twig',
array(
'idioma'=>$locale,
- 'dados' => $dados,/*
- 'menu' => (bool) strlen( $filtros['pci']),*/
- 'exibirColunaSoftware' => (bool) strlen( $filtros['softwares']
-
- )
+ 'dados' => $dados,
+ 'menu' => (bool) strlen( $filtros['conf'])
)
);
}
diff --git a/src/Cacic/RelatorioBundle/Resources/views/Default/patrimonio.html.twig b/src/Cacic/RelatorioBundle/Resources/views/Default/patrimonio.html.twig
index 021e804..36a484e 100644
--- a/src/Cacic/RelatorioBundle/Resources/views/Default/patrimonio.html.twig
+++ b/src/Cacic/RelatorioBundle/Resources/views/Default/patrimonio.html.twig
@@ -14,19 +14,11 @@