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 | 270 | if ( array_key_exists('conf', $filtros) && !empty($filtros['conf']) ) |
271 | 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 | 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 | 15 | public function listar() |
16 | 16 | { |
17 | 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 | 21 | return $this->getEntityManager()->createQuery( $_dql )->getArrayResult(); |
21 | 22 | } | ... | ... |
src/Cacic/RelatorioBundle/Controller/DefaultController.php
... | ... | @@ -30,15 +30,13 @@ class DefaultController extends Controller |
30 | 30 | { |
31 | 31 | $locais = $this->getDoctrine()->getRepository('CacicCommonBundle:Local')->listar(); |
32 | 32 | $so = $this->getDoctrine()->getRepository('CacicCommonBundle:So')->listar(); |
33 | - $sw = $this->getDoctrine()->getRepository('CacicCommonBundle:Software')->listarSoftware(); | |
34 | 33 | $uorg = $this->getDoctrine()->getRepository('CacicCommonBundle:Uorg')->listar(); |
35 | 34 | $conf = $this->getDoctrine()->getRepository('CacicCommonBundle:ComputadorColeta')->listarPropriedades('Patrimonio'); |
36 | -// | |
35 | + | |
37 | 36 | |
38 | 37 | return $this->render( |
39 | 38 | 'CacicRelatorioBundle:Default:patrimonio.html.twig', |
40 | 39 | array( |
41 | - 'sw' => $sw, | |
42 | 40 | 'locais' => $locais, |
43 | 41 | 'so' => $so, |
44 | 42 | 'conf' => $conf, |
... | ... | @@ -51,22 +49,26 @@ class DefaultController extends Controller |
51 | 49 | */ |
52 | 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 | 66 | return $this->render( |
62 | 67 | 'CacicRelatorioBundle:Default:rel_patrimonio.html.twig', |
63 | 68 | array( |
64 | 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 | 14 | <script src="{{ asset('bundles/cacicrelatorio/libs/bootstrap-transfer-master/js/bootstrap-transfer.js') }}" type="text/javascript"></script> |
15 | 15 | <script type="text/javascript"> |
16 | 16 | $(document).ready(function(){ |
17 | - var tSW = $('#transferSW').bootstrapTransfer({'target_id':'tSw'}); | |
18 | 17 | var tLoc = $('#transferLocais').bootstrapTransfer({'target_id':'tLoc'}); |
19 | 18 | var tSO = $('#transferSO').bootstrapTransfer({'target_id':'tSo'}); |
20 | 19 | var tConf = $('#transferConf').bootstrapTransfer({'target_id':'tConf'}); |
21 | 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 | 22 | tLoc.populate([ // Popula o TRANSFER com Locais |
31 | 23 | {% for l in locais %} |
32 | 24 | {value: "{{ l[0]['idLocal'] }}", content:"{{ l[0]['nmLocal'] ~ '/' ~ l[0]['sgLocal'] }}"}{% if loop.last != true %},{% endif %} |
... | ... | @@ -60,7 +52,6 @@ |
60 | 52 | 'form' : $('#frmFiltroRelatorioPatrimonio'), |
61 | 53 | 'fieldsPrefix' : 'rel_filtro_patrimonio', |
62 | 54 | 'elms' : [ |
63 | - { 'transferElement' : tSW , 'inputHiddenName' : 'softwares' }, | |
64 | 55 | { 'transferElement' : tLoc , 'inputHiddenName' : 'locais' }, |
65 | 56 | { 'transferElement' : tSO , 'inputHiddenName' : 'so' }, |
66 | 57 | { 'transferElement' : tUorg , 'inputHiddenName' : 'uorg' }, |
... | ... | @@ -101,9 +92,6 @@ |
101 | 92 | <h4>{{ 'Selecione as informações que deseja exibir'|trans }}</h4> |
102 | 93 | <div id="transferConf"></div> |
103 | 94 | |
104 | - <h4>{{ 'Selecione os Softwares que deseja exibir'|trans }}</h4> | |
105 | - <div id="transferSW"></div> | |
106 | - | |
107 | 95 | <h4>{{ 'Selecione os Locais'|trans }}</h4> |
108 | 96 | <div id="transferLocais"></div> |
109 | 97 | ... | ... |
src/Cacic/RelatorioBundle/Resources/views/Default/rel_patrimonio.html.twig
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | |
8 | 8 | <hr /> |
9 | 9 | |
10 | - <table class="table table-striped table-bordered"> | |
10 | + <table class="display datatable" id="datatable"> | |
11 | 11 | <thead> |
12 | 12 | <tr> |
13 | 13 | <th width="5%" style="text-align: center"></th> |
... | ... | @@ -15,9 +15,11 @@ |
15 | 15 | <th width="10%">{{ "S.O"|trans }}</th> |
16 | 16 | <th width="20%">{{ "Sub-rede"|trans }}</th> |
17 | 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 | 25 | </tr> |
... | ... | @@ -39,16 +41,17 @@ |
39 | 41 | {{ reg['teIpRede'] }}/{{ reg['nmRede'] }} |
40 | 42 | </a></td> |
41 | 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 | 48 | {% endif %} |
45 | 49 | |
46 | - | |
47 | 50 | </tr> |
48 | 51 | |
49 | 52 | {% else %} |
50 | 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 | 55 | </tr> |
53 | 56 | {% endfor %} |
54 | 57 | ... | ... |