Commit bf562750d3b08312487dd3347534a11c8cb531fa
1 parent
7e120ab0
Exists in
master
and in
1 other branch
Correçao de relatorio de patrimonio.
http://dev.lightbase.cc/issues/56
Showing
5 changed files
with
98 additions
and
35 deletions
Show diff stats
src/Cacic/CommonBundle/Entity/ComputadorColetaRepository.php
@@ -270,7 +270,76 @@ class ComputadorColetaRepository extends EntityRepository | @@ -270,7 +270,76 @@ class ComputadorColetaRepository extends EntityRepository | ||
270 | if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) ) | 270 | if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) ) |
271 | $qb->andWhere('property.idClassProperty IN (:conf)')->setParameter('conf', explode( ',', $filtros['conf'] )); | 271 | $qb->andWhere('property.idClassProperty IN (:conf)')->setParameter('conf', explode( ',', $filtros['conf'] )); |
272 | 272 | ||
273 | + return $qb->getQuery()->execute(); | ||
274 | + } | ||
275 | + | ||
276 | + public function gerarRelatorioPatrimonio($filtros) | ||
277 | + { | ||
278 | + // Monta a Consulta básica... | ||
279 | + $qb = $this->createQueryBuilder('coleta') | ||
280 | + ->select( 'DISTINCT(comp.nmComputador), so.sgSo, class.nmPropertyName, coleta.teClassPropertyValue, | ||
281 | + r.teIpRede, r.idRede, r.nmRede, l.nmLocal, comp.idComputador,so.inMswindows, u.nmUorg') | ||
282 | + ->innerJoin('CacicCommonBundle:Computador', 'comp','WITH','coleta.computador = comp.idComputador') | ||
283 | + ->innerJoin('CacicCommonBundle:PropriedadeSoftware', 'prop', 'WITH', 'comp.idComputador = prop.computador') | ||
284 | + ->innerJoin('CacicCommonBundle:ClassProperty', 'class','WITH', 'coleta.classProperty = class.idClassProperty') | ||
285 | + ->innerJoin('CacicCommonBundle:Classe', 'classe','WITH', 'class.idClass = classe.idClass') | ||
286 | + ->leftJoin('CacicCommonBundle:So', 'so','WITH','comp.idSo = so.idSo') | ||
287 | + ->leftJoin('CacicCommonBundle:Rede', 'r','WITH', 'comp.idRede = r.idRede') | ||
288 | + ->innerJoin('CacicCommonBundle:Uorg','u','WITH', 'r.idRede = u.rede') | ||
289 | + ->innerJoin('CacicCommonBundle:Local','l','WITH', 'r.idLocal = l.idLocal') | ||
290 | + ->groupBy('comp.nmComputador,r.idRede, class.nmPropertyName, u.nmUorg, coleta.teClassPropertyValue,so.sgSo, r.teIpRede, l.nmLocal, r.nmRede, comp.idComputador,so.inMswindows') | ||
291 | + ->orderBy('r.teIpRede, l.nmLocal'); | ||
292 | + | ||
293 | + /* | ||
294 | + * Verifica os filtros que foram parametrizados | ||
295 | + */ | ||
296 | + | ||
297 | + if ( array_key_exists('locais', $filtros) && !empty($filtros['locais']) ) | ||
298 | + $qb->andWhere('l.idLocal IN (:locais)')->setParameter('locais', explode( ',', $filtros['locais'] )); | ||
299 | + | ||
300 | + if ( array_key_exists('so', $filtros) && !empty($filtros['so']) ) | ||
301 | + $qb->andWhere('comp.idSo IN (:so)')->setParameter('so', explode( ',', $filtros['so'] )); | ||
302 | + | ||
303 | + if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) ) | ||
304 | + $qb->andWhere('class.idClassProperty IN (:conf)')->setParameter('conf', explode( ',', $filtros['conf'] )); | ||
305 | + | ||
306 | + if ( array_key_exists('uorg', $filtros) && !empty($filtros['uorg']) ) | ||
307 | + $qb->andWhere('u.idUorg IN (:uorg)')->setParameter('uorg', explode( ',', $filtros['uorg'] )); | ||
273 | 308 | ||
274 | return $qb->getQuery()->execute(); | 309 | return $qb->getQuery()->execute(); |
275 | } | 310 | } |
311 | + | ||
312 | + public function gerarRelatorioSemPatrimonio($filtros) | ||
313 | + { | ||
314 | + // Monta a Consulta básica... | ||
315 | + $qb = $this->createQueryBuilder('coleta') | ||
316 | + ->select( 'DISTINCT(comp.nmComputador), so.sgSo, | ||
317 | + r.teIpRede, r.idRede, r.nmRede, l.nmLocal, comp.idComputador,so.inMswindows, u.nmUorg') | ||
318 | + ->innerJoin('CacicCommonBundle:Computador', 'comp','WITH','coleta.computador = comp.idComputador') | ||
319 | + ->innerJoin('CacicCommonBundle:PropriedadeSoftware', 'prop', 'WITH', 'comp.idComputador = prop.computador') | ||
320 | + ->innerJoin('CacicCommonBundle:ClassProperty', 'class','WITH', 'coleta.classProperty = class.idClassProperty') | ||
321 | + ->innerJoin('CacicCommonBundle:Classe', 'classe','WITH', 'class.idClass = classe.idClass') | ||
322 | + ->leftJoin('CacicCommonBundle:So', 'so','WITH','comp.idSo = so.idSo') | ||
323 | + ->leftJoin('CacicCommonBundle:Rede', 'r','WITH', 'comp.idRede = r.idRede') | ||
324 | + ->innerJoin('CacicCommonBundle:Uorg','u','WITH', 'r.idRede = u.rede') | ||
325 | + ->innerJoin('CacicCommonBundle:Local','l','WITH', 'r.idLocal = l.idLocal') | ||
326 | + ->groupBy('comp.nmComputador,r.idRede, u.nmUorg,so.sgSo, r.teIpRede, l.nmLocal, r.nmRede, comp.idComputador,so.inMswindows') | ||
327 | + ->orderBy('r.teIpRede, l.nmLocal'); | ||
328 | + | ||
329 | + /* | ||
330 | + * Verifica os filtros que foram parametrizados | ||
331 | + */ | ||
332 | + | ||
333 | + if ( array_key_exists('locais', $filtros) && !empty($filtros['locais']) ) | ||
334 | + $qb->andWhere('l.idLocal IN (:locais)')->setParameter('locais', explode( ',', $filtros['locais'] )); | ||
335 | + | ||
336 | + if ( array_key_exists('so', $filtros) && !empty($filtros['so']) ) | ||
337 | + $qb->andWhere('comp.idSo IN (:so)')->setParameter('so', explode( ',', $filtros['so'] )); | ||
338 | + | ||
339 | + | ||
340 | + if ( array_key_exists('uorg', $filtros) && !empty($filtros['uorg']) ) | ||
341 | + $qb->andWhere('u.idUorg IN (:uorg)')->setParameter('uorg', explode( ',', $filtros['uorg'] )); | ||
342 | + | ||
343 | + return $qb->getQuery()->execute(); | ||
344 | + } | ||
276 | } | 345 | } |
src/Cacic/CommonBundle/Entity/UorgRepository.php
@@ -15,7 +15,8 @@ class UorgRepository extends EntityRepository | @@ -15,7 +15,8 @@ class UorgRepository extends EntityRepository | ||
15 | public function listar() | 15 | public function listar() |
16 | { | 16 | { |
17 | $_dql = "SELECT uorg.idUorg, uorg.nmUorg | 17 | $_dql = "SELECT uorg.idUorg, uorg.nmUorg |
18 | - FROM CacicCommonBundle:Uorg uorg"; | 18 | + FROM CacicCommonBundle:Uorg uorg |
19 | + ORDER BY uorg.uorgPai DESC, uorg.idUorg DESC "; | ||
19 | 20 | ||
20 | return $this->getEntityManager()->createQuery( $_dql )->getArrayResult(); | 21 | return $this->getEntityManager()->createQuery( $_dql )->getArrayResult(); |
21 | } | 22 | } |
src/Cacic/RelatorioBundle/Controller/DefaultController.php
@@ -30,15 +30,13 @@ class DefaultController extends Controller | @@ -30,15 +30,13 @@ class DefaultController extends Controller | ||
30 | { | 30 | { |
31 | $locais = $this->getDoctrine()->getRepository('CacicCommonBundle:Local')->listar(); | 31 | $locais = $this->getDoctrine()->getRepository('CacicCommonBundle:Local')->listar(); |
32 | $so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->listar(); | 32 | $so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->listar(); |
33 | - $sw = $this->getDoctrine()->getRepository('CacicCommonBundle:Software')->listarSoftware(); | ||
34 | $uorg = $this->getDoctrine()->getRepository('CacicCommonBundle:Uorg')->listar(); | 33 | $uorg = $this->getDoctrine()->getRepository('CacicCommonBundle:Uorg')->listar(); |
35 | $conf = $this->getDoctrine()->getRepository('CacicCommonBundle:ComputadorColeta')->listarPropriedades('Patrimonio'); | 34 | $conf = $this->getDoctrine()->getRepository('CacicCommonBundle:ComputadorColeta')->listarPropriedades('Patrimonio'); |
36 | -// | 35 | + |
37 | 36 | ||
38 | return $this->render( | 37 | return $this->render( |
39 | 'CacicRelatorioBundle:Default:patrimonio.html.twig', | 38 | 'CacicRelatorioBundle:Default:patrimonio.html.twig', |
40 | array( | 39 | array( |
41 | - 'sw' => $sw, | ||
42 | 'locais' => $locais, | 40 | 'locais' => $locais, |
43 | 'so' => $so, | 41 | 'so' => $so, |
44 | 'conf' => $conf, | 42 | 'conf' => $conf, |
@@ -51,22 +49,26 @@ class DefaultController extends Controller | @@ -51,22 +49,26 @@ class DefaultController extends Controller | ||
51 | */ | 49 | */ |
52 | public function patrimonioRelatorioAction( Request $request ) | 50 | public function patrimonioRelatorioAction( Request $request ) |
53 | { | 51 | { |
54 | - $filtros = $request->get('rel_filtro_patrimonio'); | ||
55 | - $locale = $request->getLocale(); | ||
56 | - $dados = $this->getDoctrine() | ||
57 | - ->getRepository('CacicCommonBundle:Software') | ||
58 | - ->gerarRelatorioPatrimonio( $filtros ); | 52 | + $filtros = $request->get('rel_filtro_patrimonio'); |
53 | + $locale = $request->getLocale(); | ||
54 | + | ||
55 | + if($filtros['conf'] <> ""){ | ||
56 | + $dados = $this->getDoctrine() | ||
57 | + ->getRepository('CacicCommonBundle:ComputadorColeta') | ||
58 | + ->gerarRelatorioPatrimonio( $filtros ); | ||
59 | + } | ||
60 | + else{ | ||
61 | + $dados = $this->getDoctrine() | ||
62 | + ->getRepository('CacicCommonBundle:ComputadorColeta') | ||
63 | + ->gerarRelatorioSemPatrimonio( $filtros ); | ||
64 | + } | ||
59 | 65 | ||
60 | - // Debug::dump($filtros);die; | ||
61 | return $this->render( | 66 | return $this->render( |
62 | 'CacicRelatorioBundle:Default:rel_patrimonio.html.twig', | 67 | 'CacicRelatorioBundle:Default:rel_patrimonio.html.twig', |
63 | array( | 68 | array( |
64 | 'idioma'=>$locale, | 69 | 'idioma'=>$locale, |
65 | - 'dados' => $dados,/* | ||
66 | - 'menu' => (bool) strlen( $filtros['pci']),*/ | ||
67 | - 'exibirColunaSoftware' => (bool) strlen( $filtros['softwares'] | ||
68 | - | ||
69 | - ) | 70 | + 'dados' => $dados, |
71 | + 'menu' => (bool) strlen( $filtros['conf']) | ||
70 | ) | 72 | ) |
71 | ); | 73 | ); |
72 | } | 74 | } |
src/Cacic/RelatorioBundle/Resources/views/Default/patrimonio.html.twig
@@ -14,19 +14,11 @@ | @@ -14,19 +14,11 @@ | ||
14 | <script src="{{ asset('bundles/cacicrelatorio/libs/bootstrap-transfer-master/js/bootstrap-transfer.js') }}" type="text/javascript"></script> | 14 | <script src="{{ asset('bundles/cacicrelatorio/libs/bootstrap-transfer-master/js/bootstrap-transfer.js') }}" type="text/javascript"></script> |
15 | <script type="text/javascript"> | 15 | <script type="text/javascript"> |
16 | $(document).ready(function(){ | 16 | $(document).ready(function(){ |
17 | - var tSW = $('#transferSW').bootstrapTransfer({'target_id':'tSw'}); | ||
18 | var tLoc = $('#transferLocais').bootstrapTransfer({'target_id':'tLoc'}); | 17 | var tLoc = $('#transferLocais').bootstrapTransfer({'target_id':'tLoc'}); |
19 | var tSO = $('#transferSO').bootstrapTransfer({'target_id':'tSo'}); | 18 | var tSO = $('#transferSO').bootstrapTransfer({'target_id':'tSo'}); |
20 | var tConf = $('#transferConf').bootstrapTransfer({'target_id':'tConf'}); | 19 | var tConf = $('#transferConf').bootstrapTransfer({'target_id':'tConf'}); |
21 | var tUorg = $('#transferUorg').bootstrapTransfer({'target_id':'tUorg'}); | 20 | var tUorg = $('#transferUorg').bootstrapTransfer({'target_id':'tUorg'}); |
22 | 21 | ||
23 | - tSW.populate([ // Popula o TRANSFER com Softwares | ||
24 | - {% for sw in sw %} | ||
25 | - {value: "{{ sw['idSoftware'] }}", content:"{{ sw['nmSoftware'] }}"}{% if loop.last != true %},{% endif %} | ||
26 | - | ||
27 | - {% endfor %} | ||
28 | - ]); | ||
29 | - | ||
30 | tLoc.populate([ // Popula o TRANSFER com Locais | 22 | tLoc.populate([ // Popula o TRANSFER com Locais |
31 | {% for l in locais %} | 23 | {% for l in locais %} |
32 | {value: "{{ l[0]['idLocal'] }}", content:"{{ l[0]['nmLocal'] ~ '/' ~ l[0]['sgLocal'] }}"}{% if loop.last != true %},{% endif %} | 24 | {value: "{{ l[0]['idLocal'] }}", content:"{{ l[0]['nmLocal'] ~ '/' ~ l[0]['sgLocal'] }}"}{% if loop.last != true %},{% endif %} |
@@ -60,7 +52,6 @@ | @@ -60,7 +52,6 @@ | ||
60 | 'form' : $('#frmFiltroRelatorioPatrimonio'), | 52 | 'form' : $('#frmFiltroRelatorioPatrimonio'), |
61 | 'fieldsPrefix' : 'rel_filtro_patrimonio', | 53 | 'fieldsPrefix' : 'rel_filtro_patrimonio', |
62 | 'elms' : [ | 54 | 'elms' : [ |
63 | - { 'transferElement' : tSW , 'inputHiddenName' : 'softwares' }, | ||
64 | { 'transferElement' : tLoc , 'inputHiddenName' : 'locais' }, | 55 | { 'transferElement' : tLoc , 'inputHiddenName' : 'locais' }, |
65 | { 'transferElement' : tSO , 'inputHiddenName' : 'so' }, | 56 | { 'transferElement' : tSO , 'inputHiddenName' : 'so' }, |
66 | { 'transferElement' : tUorg , 'inputHiddenName' : 'uorg' }, | 57 | { 'transferElement' : tUorg , 'inputHiddenName' : 'uorg' }, |
@@ -101,9 +92,6 @@ | @@ -101,9 +92,6 @@ | ||
101 | <h4>{{ 'Selecione as informações que deseja exibir'|trans }}</h4> | 92 | <h4>{{ 'Selecione as informações que deseja exibir'|trans }}</h4> |
102 | <div id="transferConf"></div> | 93 | <div id="transferConf"></div> |
103 | 94 | ||
104 | - <h4>{{ 'Selecione os Softwares que deseja exibir'|trans }}</h4> | ||
105 | - <div id="transferSW"></div> | ||
106 | - | ||
107 | <h4>{{ 'Selecione os Locais'|trans }}</h4> | 95 | <h4>{{ 'Selecione os Locais'|trans }}</h4> |
108 | <div id="transferLocais"></div> | 96 | <div id="transferLocais"></div> |
109 | 97 |
src/Cacic/RelatorioBundle/Resources/views/Default/rel_patrimonio.html.twig
@@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
7 | 7 | ||
8 | <hr /> | 8 | <hr /> |
9 | 9 | ||
10 | - <table class="table table-striped table-bordered"> | 10 | + <table class="display datatable" id="datatable"> |
11 | <thead> | 11 | <thead> |
12 | <tr> | 12 | <tr> |
13 | <th width="5%" style="text-align: center"></th> | 13 | <th width="5%" style="text-align: center"></th> |
@@ -15,9 +15,11 @@ | @@ -15,9 +15,11 @@ | ||
15 | <th width="10%">{{ "S.O"|trans }}</th> | 15 | <th width="10%">{{ "S.O"|trans }}</th> |
16 | <th width="20%">{{ "Sub-rede"|trans }}</th> | 16 | <th width="20%">{{ "Sub-rede"|trans }}</th> |
17 | <th width="10%">{{ "Local"|trans }}</th> | 17 | <th width="10%">{{ "Local"|trans }}</th> |
18 | - {% if ( exibirColunaSoftware ) %} | ||
19 | - <th width="20%">{{ "Software"|trans }}</th> | ||
20 | - {% endif %} | 18 | + <th width="5%">{{ "Unidade" }}</th> |
19 | + {% if menu %} | ||
20 | + <th width="10%">{{ "Propriedade"|trans }}</th> | ||
21 | + <th width="10%">{{ "Valor"|trans }}</th> | ||
22 | + {% endif %} | ||
21 | 23 | ||
22 | 24 | ||
23 | </tr> | 25 | </tr> |
@@ -39,16 +41,17 @@ | @@ -39,16 +41,17 @@ | ||
39 | {{ reg['teIpRede'] }}/{{ reg['nmRede'] }} | 41 | {{ reg['teIpRede'] }}/{{ reg['nmRede'] }} |
40 | </a></td> | 42 | </a></td> |
41 | <td>{{ reg['nmLocal'] }}</td> | 43 | <td>{{ reg['nmLocal'] }}</td> |
42 | - {% if ( exibirColunaSoftware ) %} | ||
43 | - <td>{{ reg['nmSoftware'] }}</td> | 44 | + <td>{{ reg['nmUorg'] }}</td> |
45 | + {% if ( menu ) %} | ||
46 | + <td>{{ reg['nmPropertyName'] }}</td> | ||
47 | + <td>{{ reg['teClassPropertyValue'] }}</td> | ||
44 | {% endif %} | 48 | {% endif %} |
45 | 49 | ||
46 | - | ||
47 | </tr> | 50 | </tr> |
48 | 51 | ||
49 | {% else %} | 52 | {% else %} |
50 | <tr> | 53 | <tr> |
51 | - <td style="text-align: center" colspan="{% if ( exibirColunaSoftware ) %}5{% else %}4{% endif %}"><b>{{ "NENHUM REGISTRO ENCONTRADO!"|trans }}</b></td> | 54 | + <td style="text-align: center" colspan="{% if ( menu ) %}6{% else %}5{% endif %}"><b>{{ "NENHUM REGISTRO ENCONTRADO!"|trans }}</b></td> |
52 | </tr> | 55 | </tr> |
53 | {% endfor %} | 56 | {% endfor %} |
54 | 57 |