From f08f19b739bc31c2411cf17e2a7140a811345620 Mon Sep 17 00:00:00 2001 From: Fabio Faria Date: Fri, 5 May 2023 16:27:08 -0300 Subject: [PATCH] =?UTF-8?q?Mudan=C3=A7a=20no=20layout=20do=20relatorio=20d?= =?UTF-8?q?e=20tabela=20de=20pre=C3=A7os=20feat=20#AL-2351?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../relatorios/impl/RelatorioTabelaPreco.java | 101 ++-- .../RelatorioTabelaPreco_es.properties | 14 +- .../RelatorioTabelaPreco_pt_BR.properties | 14 +- .../templates/RelatorioTabelaPreco.jasper | Bin 43267 -> 46502 bytes .../templates/RelatorioTabelaPreco.jrxml | 532 ++++++++++-------- .../RelatorioTabelaPrecoController.java | 38 +- 7 files changed, 419 insertions(+), 282 deletions(-) diff --git a/pom.xml b/pom.xml index af05899c1..d920c3cb5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.2.2 + 1.3.0 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java index 87ce73ec7..92b491d60 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java @@ -29,7 +29,7 @@ public class RelatorioTabelaPreco extends Relatorio { this.setCustomDataSource(new ArrayDataSource(this) { - @Override + @Override public void initDados() throws Exception { Connection conexao = this.relatorio.getConexao(); NamedParameterStatement stmt = new NamedParameterStatement(conexao, getSql()); @@ -47,24 +47,28 @@ public class RelatorioTabelaPreco extends Relatorio { series, (Integer) parametros.get(ORGAO_CONCEDENTE))); } + dataResult.put("cveorigem", rset.getString("cveorigem")); + dataResult.put("cvedestino", rset.getString("cvedestino")); dataResult.put("origem", rset.getString("origem")); dataResult.put("destino", rset.getString("destino")); + dataResult.put("aliasorigem", rset.getString("aliasorigem")); + dataResult.put("aliasdestino", rset.getString("aliasdestino")); dataResult.put("tarifa", rset.getBigDecimal("tarifa")); dataResult.put("pedagio", rset.getBigDecimal("pedagio")); dataResult.put("taxaEmbarque", rset.getBigDecimal("taxaEmbarque")); - dataResult.put("outros", rset.getBigDecimal("outros")); dataResult.put("tipoClasse", rset.getString("tipoClasse")); dataResult.put("empresa", rset.getString("empresa")); - - if (!isLayoutArtesp) { - dataResult.put("seguro", rset.getBigDecimal("seguro")); - dataResult.put("linha", rset.getString("linha")); - dataResult.put("dataVigenciaInicial", rset.getDate("dataVigenciaInicial")); - dataResult.put("dataVigenciaFinal", rset.getDate("dataVigenciaFinal")); - dataResult.put("idLinha", rset.getInt("idLinha")); - dataResult.put("idVigencia", rset.getInt("idVigencia")); - } + + dataResult.put("seguro", rset.getBigDecimal("seguro")); + dataResult.put("linha", rset.getString("linha")); + dataResult.put("prefixo", rset.getString("prefixo")); + dataResult.put("dataVigenciaInicial", rset.getDate("dataVigenciaInicial")); + dataResult.put("dataVigenciaFinal", rset.getDate("dataVigenciaFinal")); + dataResult.put("idLinha", rset.getInt("idLinha")); + dataResult.put("idVigencia", rset.getInt("idVigencia")); + dataResult.put("orgao", rset.getString("orgao")); + this.dados.add(dataResult); } @@ -96,33 +100,48 @@ public class RelatorioTabelaPreco extends Relatorio { if (isLayoutArtesp) { sql.append("SELECT DISTINCT origem,destino,tarifa,pedagio,taxaEmbarque,outros,tipoClasse,empresa,kmReal FROM ("); } - sql.append(" SELECT pOrigem.DESCPARADA as origem, "); - sql.append(" pDestino.DESCPARADA as destino, "); - sql.append(" COALESCE(t.precio,0) as tarifa, "); - sql.append(" COALESCE(t.IMPORTEPEDAGIO, 0) as pedagio, "); - sql.append(" COALESCE(t.IMPORTETAXAEMBARQUE, 0) as taxaEmbarque, "); - sql.append(" COALESCE(t.IMPORTESEGURO, 0) as seguro, "); - sql.append(" COALESCE(t.IMPORTEOUTROS, 0) as outros, "); - sql.append(" cs.DESCCLASE as tipoClasse, "); - sql.append(" r.DESCRUTA as linha, "); - sql.append(" e.NOMBEMPRESA as empresa, "); - sql.append(" vt.FECINICIOVIGENCIA as dataVigenciaInicial, "); - sql.append(" vt.FECFINVIGENCIA as dataVigenciaFinal, "); - sql.append(" vt.VIGENCIATARIFA_ID as idVigencia, "); - sql.append(" vt.FECINICIOVIGENCIA as dataVigenciaInicial, "); - sql.append(" r.RUTA_ID as idLinha, "); - sql.append(" tr.CANTKMREAL as kmReal "); - sql.append("FROM TARIFA t "); - sql.append("INNER JOIN PARADA pOrigem ON t.ORIGEN_ID = pOrigem.PARADA_ID "); - sql.append("INNER JOIN PARADA pDestino ON t.DESTINO_ID = pDestino.PARADA_ID "); - sql.append("INNER JOIN CLASE_SERVICIO cs ON cs.CLASESERVICIO_ID = t.CLASESERVICIO_ID "); - sql.append("INNER JOIN RUTA r ON r.RUTA_ID = t.RUTA_ID "); - sql.append("INNER JOIN MARCA m ON m.MARCA_ID = t.MARCA_ID "); - sql.append("INNER JOIN EMPRESA e ON e.EMPRESA_ID = m.EMPRESA_ID "); - sql.append("INNER JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID "); - sql.append("INNER JOIN RUTA_COMBINACION rc ON rc.RUTA_ID = r.RUTA_ID "); - sql.append("INNER JOIN TRAMO tr ON tr.TRAMO_ID = rc.TRAMO_ID "); - sql.append("INNER JOIN ORGAO_CONCEDENTE o ON o.ORGAOCONCEDENTE_ID = r.ORGAOCONCEDENTE_ID "); + sql.append(" SELECT "); + sql.append(" po.cveparada as cveorigem, "); + sql.append(" pd.cveparada as cvedestino, "); + sql.append(" po.DESCPARADA as origem, "); + sql.append(" pd.DESCPARADA as destino, "); + sql.append(" pos.DESCPARADA as aliasorigem, "); + sql.append(" pds.DESCPARADA as aliasdestino, "); + sql.append(" COALESCE(t.precio,0) as tarifa, "); + sql.append(" COALESCE(t.IMPORTEPEDAGIO, 0) as pedagio, "); + sql.append(" COALESCE(t.IMPORTETAXAEMBARQUE, 0) as taxaEmbarque, "); + sql.append(" COALESCE(t.IMPORTESEGURO, 0) as seguro, "); + sql.append(" COALESCE(t.IMPORTEOUTROS, 0) as outros, "); + sql.append(" cs.DESCCLASE as tipoClasse, "); + sql.append(" r.DESCRUTA as linha, "); + sql.append(" r.prefixo as prefixo, "); + sql.append(" e.NOMBEMPRESA as empresa, "); + sql.append(" vt.FECINICIOVIGENCIA as dataVigenciaInicial, "); + sql.append(" vt.FECFINVIGENCIA as dataVigenciaFinal, "); + sql.append(" vt.VIGENCIATARIFA_ID as idVigencia, "); + sql.append(" vt.FECINICIOVIGENCIA as dataVigenciaInicial, "); + sql.append(" r.RUTA_ID as idLinha, "); + sql.append(" tr.CANTKMREAL as kmReal, "); + sql.append(" o.descorgao as orgao "); + sql.append(" FROM TARIFA t "); + sql.append(" INNER JOIN PARADA po ON t.ORIGEN_ID = po.PARADA_ID "); + sql.append(" INNER JOIN PARADA pd ON t.DESTINO_ID = pd.PARADA_ID "); + sql.append(" INNER JOIN CLASE_SERVICIO cs ON cs.CLASESERVICIO_ID = t.CLASESERVICIO_ID "); + sql.append(" INNER JOIN RUTA r ON r.RUTA_ID = t.RUTA_ID "); + sql.append(" INNER JOIN MARCA m ON m.MARCA_ID = t.MARCA_ID "); + sql.append(" INNER JOIN EMPRESA e ON e.EMPRESA_ID = m.EMPRESA_ID "); + sql.append(" INNER JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID "); + sql.append(" INNER JOIN RUTA_COMBINACION rc ON rc.RUTA_ID = r.RUTA_ID "); + sql.append(" INNER JOIN TRAMO tr ON tr.TRAMO_ID = rc.TRAMO_ID "); + sql.append(" INNER JOIN ORGAO_CONCEDENTE o ON o.ORGAOCONCEDENTE_ID = r.ORGAOCONCEDENTE_ID "); + + sql.append(" LEFT JOIN alias_servico s ON s.ORIGEN_ID = t.ORIGEN_ID "); + sql.append(" AND s.DESTINO_ID = t.DESTINO_ID "); + sql.append(" AND s.RUTA_ID = r.RUTA_ID "); + sql.append(" AND s.activo = 1 "); + sql.append(" LEFT JOIN parada pos ON POS.PARADA_ID = S.ALIASORIGEN_ID "); + sql.append(" LEFT JOIN parada pds ON PDS.PARADA_ID = S.ALIASDESTINO_ID "); + sql.append("WHERE rc.INDVENTA = 1 "); sql.append("AND rc.ACTIVO = 1 "); sql.append("AND tr.ACTIVO = 1 "); @@ -131,8 +150,8 @@ public class RelatorioTabelaPreco extends Relatorio { sql.append(" AND rc.indexibetabela = 1 "); } - sql.append("AND tr.ORIGEN_ID = t.ORIGEN_ID "); - sql.append("AND tr.DESTINO_ID = t.DESTINO_ID "); + sql.append(" AND tr.ORIGEN_ID = t.ORIGEN_ID "); + sql.append(" AND tr.DESTINO_ID = t.DESTINO_ID "); sql.append(" AND vt.VIGENCIATARIFA_ID = " + parametros.get("VIGENCIA_ID")); sql.append(" AND e.empresa_id = " + parametros.get("EMPRESA_ID")); @@ -153,7 +172,7 @@ public class RelatorioTabelaPreco extends Relatorio { sql.append(" AND tr.DESTINO_ID= " + parametros.get("destinoId")); } - sql.append(" ORDER BY r.RUTA_ID, vt.FECINICIOVIGENCIA"); + sql.append(" ORDER BY r.DESCRUTA, vt.FECINICIOVIGENCIA"); if (isLayoutArtesp) { sql.append(") ORDER BY origem,destino"); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties index b6c693ebd..37510b651 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties @@ -15,14 +15,20 @@ cabecalho.filtros=Filtros: #Labels header label.origem=Origem label.destino=Destino +label.origemalias=Origem Alias +label.destinoalias=Destino Alias label.tarifa=Tarifa label.pedagio=Pedágio label.taxaEmbarque=Taxa label.seguro=Seguro label.outros=Outros label.tipoClasse=Classe -label.linha=Linha(s) -label.empresa=Empresa -label.dataVigencia=Vigência +label.linha=Linha: +label.linhas=Linhas: +label.empresa=Empresa: +label.dataVigencia=Vigência: label.total=Total -label.orgacaoConcedente=Orgão Concedente \ No newline at end of file +label.totalSeg=Total c/ Seg +label.cve=CVE +label.prefixo=Prefixo: +label.orgacaoConcedente=Orgão Concedente: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties index b6c693ebd..37510b651 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties @@ -15,14 +15,20 @@ cabecalho.filtros=Filtros: #Labels header label.origem=Origem label.destino=Destino +label.origemalias=Origem Alias +label.destinoalias=Destino Alias label.tarifa=Tarifa label.pedagio=Pedágio label.taxaEmbarque=Taxa label.seguro=Seguro label.outros=Outros label.tipoClasse=Classe -label.linha=Linha(s) -label.empresa=Empresa -label.dataVigencia=Vigência +label.linha=Linha: +label.linhas=Linhas: +label.empresa=Empresa: +label.dataVigencia=Vigência: label.total=Total -label.orgacaoConcedente=Orgão Concedente \ No newline at end of file +label.totalSeg=Total c/ Seg +label.cve=CVE +label.prefixo=Prefixo: +label.orgacaoConcedente=Orgão Concedente: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jasper index 6a58a3370f686da4ac6af378ab3c44af49706f7c..44e7cb8db6a53ac4ee13b5e57363c54860f0788c 100644 GIT binary patch literal 46502 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

V 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 R%TSwq7Q$b$MQ_E4|3Bz(n7RM} literal 43267 zcmeHw33wdEv48i>SXxVK`NSv2!dyP(lOvb_I&ImykYpR1L#(BhwOG=M-IXmH0+=g= z`!wbzoG*#F@&E&d#Dp^h9(Mu`kc1;434|*c2n7DW>h788-W{*j!1uoY`@ZPY^vrbi zSyf$K)m_uO={+_enP8K;qp6Z)d&#kpWKT4ai1x%2sbopCdu6OUTCz|?Hi}3l{`Ps< zVs;HHY>jvI#5$uDkyIqbM%Ek~Ssj@Xi_d6^CSsA!*t*Dy&gi@vHdH06i*!YsdfVG$ zeJM6fChm-Mubk18O2oQXBH!NFrJi43}dr?bcsSb);5RJ4&6Q$j4ZmyzOvN@LOjH*16D zH1>9T87jMbyHHM8mLu^%G9k(t)*erEMN(Cf)>J&P*5`1b zJk}+~TT?WZVuR(t=uO2sF^;I+AsQsTpsW}WHLM7OBSnm3;Hj`H66;o-O|kx(bf-Cm!k1Jf_<|pOw6wNq-4NOJ5dO9O1Dq}`}Wk`9`ta5-*15z|p3yOW@VF`M5~hY zA?TJkj4{aFA`<5%#C#>x3LV&!g7|N4?4du*9wpgo(j>GRHL@g{L--MFzzWC^pnI?W z&@E(5Ur%pBCEf9KCB@REubuerIZvLxuZ7M4e~hD{Q*&%6)#bM`Kl?i6STtE10otec zles}pj{F0Y)FKk?DK*!V&~mm5I4zZkrdm5l ziKt&4O|*mMYS@TKcWXyHL5h~oMI?~MVUqT%5ftcu1{BG_B*Xoj)WFt{pe%5)+z?T@(AQnPvKpi9 zQLtoddVMu)te2)a9`8)WdeT}{!~6!DgWn}ZELjG*x=M)p-p87C4_X;UHpB%mSE)&@n~L{xQmD!MY7K#`$# zD4oRh3J>DF34@y6r-6epC}Qi7Cem5j3FV!{kZSJe0FdJF{jy3LAqy9n1AXJ2 zZB)Z#G%l8`M#ZsK^*$(;Y-nq*>{=0RYm2&x28$6LTNQ2YfOuTlq0)va8ahoIi5V4F z7)vhh2EM@xqJOAD7zhSJ2b0N=iOxcbR>-8{fSY_Orz{SetUsl(MkWNl3n`B>j;I)r zeTWvN@Rx(ONJXl0T-=dl?Cqga!SCR2L3q_x7&wW@%0#56BL&QYrL)*3G^#~XYHtq^ z-rX7}9#SP!RF%m!(n>PWI7ApunRpC~coUJKL|j^B3L}HucZH4_SsN_asZo`na6yKe z(VQYLLLVaqh&7us6f;69)|$!fBQpT1adZ1`+!DP^(L%_TTvfjenKCY$OsQs`QZ)*r zh4lRD?y4BX`qB;vM^ewkBq$)z!=q5y+eA;2%h_0!gQRPPu-)7V5L_s@ zr4WL+jD>sR$r#zLq}ag7PRi+(-m2MvHDvc!Gv0@5EtD#Xt#?`Q0JSAG_Bjp`1 zNTOnKXzz6Om~!k2eL(5VYyD|37kxmf&RQ_L7V$N$Xoc@db5Qacgd@Y%X5_MOvDXLi?s3KXAGI>Bg?pXF%~^ z$ih%`lBuTH%CcB0xsVlh#l5$_p7m{$r)>UWOvA#We_wa!utP5*L`gh|md?$l(TJ7? zOwIwV%`300Yp#^GEESI?=PJ}lhG6EDg_12(n69u8!ZF7VR9XyKIN3)fSV zLie|TyRgw~otKBCh){NoW`vWnzS4GBpF~zPc94oIi;}LQBEzZ3iYCYe!MQ3fq~Zh* z6hlfV#ye0v>4BOX2~}JO{j9=72>r}82Z?B=Pk?q^{nDLaZC{V@iRM%@E7pcJ=hlwi z?p4q)X7;z<;FnTPS%BE0)wHZGwgNQcb(kO97>#s#5V1ft73-g}rY!59={0pNd*=1n zq8k?LOQHMaC<)Wb@)2N_F^4c-gPSr=t-c;R#qwYiuf(dj{wGMiSD>mx>Q1JrL#%QT zl|T=Ni0q|jyvMgcVwKPRq~b5JL(VBfK3^fAWEEbGB7KzzMaPV1%j2%flzYXy4q z+ps$k>yEqm#a%!%@mq?F=OA}(`2EE`U;W^qGdDeY?}Xos-ednt>?HX3J&_txo?-(U ztLHE9)G*n(AVjaB^dd;gLb22*$cE^W07U2aMBA{Hu5)y5n6@s+ z8PnI^yGLaGD~HaBufA}4(fj3BeFIEiOqdqIg#nnB&;U&900YxHz`(QuWMKM27s1{= z8>VLjU^*|}n@Ys>p^+n^i*iQv-Di#6bmQgI@7Z+ed3E>Ry6}N-fao6+qD63R0HP%{ z0MRGyvT?z(BVSFwm_4KtqzM^yb7{H3Z4WZ0Md9 zfbP6xbY(AgKK;KO5RD0zm*kA-OFvmK?SEEuEgJgq^ytPt=WkC(bPmeLgVbvgYzaWL zga#m52N;Of0S2NK0N5}Qy~W3mddi0A*#U?yz;0JuD6BeHt9mkLLrnVCb2+2Q0=wq%|Z`E*aFA$|M z(Bn|jO7fb>r6hOP-goReg1iL%jqxe{8LG4hAa>Ew9@GDX8nY`LoiM2-*7ol}a2O>c zI~V)?0y$;yDwG~l*xM^gwkBdd@R&;Z&Twd|7mLpJ+tenvhFG}#o!2m1)!RQpI#ts=F3gq+oYX@Aiv#T2zvuf!8 zP0i}5g>@?3&B<>me3BhnYg2q$q&9-!JVib~6kD9$SkvPYK2}%_#UHk6eD^nOd0AW zw25EKlm$lvuqxRR$t`U@R*N7aa!ftE4KBS)u*B5e8jDnS#}IaE^=SJ|kmyk#twZ&E zRq))-DOcvanG=EwVr^~{wYClQc}h92_|40YwPF3&Kv_U?@_+1C0>~-g&>LFT)%?5f zZ>|Kec0vM(68v#BB-=~~54LvU@9yqAE@xwCmtE}JO26&;?#f83aCTqLh7t@O+2qPq z*9$KgkG#xFkLTe5?>*aoh3a6PgEArYgpOhv-CtL-F zd9lQ zfxw;KBT}m*HdSwO*j5xnj}V}Gva^#kV{85ayP4(WDv(Aj#gO_&%z*Ox#dXa>LehG7 z$g_vkdN=H!(cRHC#TjyQ(yYnSXvpf=NCYg&AYec{oVxnDN@d1ULk8yFkeO&miWMY! zQ;`cTtGiMN~Z+$tAVM3OeqA_X6ccO+(LJ6&U7yxv;xiff$-Y2wz8#&Lww0(sz9} ze|79`OQ-#{>dlA7ZEc)fEsB$=A=xr9GwhA)Zv1rp4-de{1#sM2O&e_3_tz8^Ip>_Q z>C*9qm;CW;cXAA)PeyTN(hK+L;>5`>UG=Yjpt$93aXn*q-0^ z-mkC!{XrkRi$bd0La5ir90E+x19^eU;3$b=eYZqGB|zUTF#!6qg#pl)EnEN^FPiQy z!SSPHe^RVyL9}yqlza!LlMAbirZC$|(V#3m=$9a?%wPxRZc>c|=A`llZ{ZT*P{D5+ zb?T7w=k!`^KoyK>D9IfWm#Q_)YK4t9PWnQSgK;Z)*+FTbC$oZY-^9 zYA9`lt5GnQZ+P&TBYVzXQuxB`x6Z!qw(?WFwXYN#*c9nb(kGSeqGc^8x_G22oeG8CZPfBrUMLi(*Xv%DFEc7(;e?tx;U6Fr`dzN zA&8DJy=bx$I5p9l*Hm3Mzot_3DIo|26SBN#*6e*}yJXAiJ0!@a``iZ9p=Jir=KklJ z3?JEm5^Z?fX`=}o26AYdzD4PyX+R2&a*-9$&JuG+QqegDCKaPu8(Lh}>$(z-6jcnN z3|S=Y>D$^jZQW(Tyrmc1_td`I>Va{0Hf6@6@34HMD2!wGZAg+WT{8@TNBAE_mmL@CWx<_2Q?8{q@7A z)?WK|Q*Gr*K?s+F-0g*+bI_2!iTWpk8v+n6p#ccj0S3Z#fPruY$UyiFZWG;mI>Iyf zd`JMo3l*Qk55ChaNZivIT#YNt9Tx3P=7#T^KluAi&)oIK#7&DIJL~W_7sb8>zJE^L z6Tuw;_?FNBeCq%M-#Wm+w*mkO0tFs}-(jE!Fa6?sXaK&4xpF0Nw^G%q$rTOlv`3j6 z+Bf`Q>wVXJymkI-kFM)_X;tZ2-vaHwq+W{P!2q;NXaL%EfPr=$V4z(AGSL3uPNRKT z0NRx}&)Buhig0pv$PwYKFE;O*Ty^h@*Ax%m_DbEhZ-MZq2;m}lG63Nc8h~&eU?5xv z7zkH@41_NvuV{zM}OfLBxFt;~=T}6LH^jm+dIG z^roe?qk{Cx`&n+I+*OK~D1Tw@`Q<8E(Q37AzQVHZX2Eoa$B^|!$%vhcZ69zJGwcd=*! zRw{PJ-(PH|OL~xB!9cOQQ58>M7qhDezPu|l*UGUntiCA}Yr7dM!~JZ?7IkC)8ea`# z{Zm_$4&2P&*%e?8j>9@pV`W2qV>9T8kEafAmK2aXV_8>9b|XrI7X8rM8Vj0U*KZLY4ZY*|k0 z_F5Z;`9;uK70caKC$|+YmsQbvc5_QrX?b&f<1)R3tX@c>a~Qe)K~6@~hO0i7*OWFj zwbay?R^Y=zt#!Nj3&XbwE$m5 zcY6C#Mxi5Ap;gs2l^7#U^))yOO>bD%Wir`mobyIR!RoNtV2>P?wGH^9w6aMrSNbi8 z0%O#z~9Tc~{ow^dLOAYAL} z!P?>j-TKDrdcB|8Muz5<0`3+W^A|TQF5S5tgv!Qx1NGVKC;*+oLZvO$6?((8F6pif zUdvQ2Jxlg_@*5XJ9_~~nc{SB_3rcsQFGH48&#$a2uSPv})wrn*E-B754)h#J-0l>4 z8LL3voU;{r*>}~|UOpC~alRiN zR9CVt9`AxW@4n*b5bqgYfrkc9SbZXEUnh>0>}&1pZHt!BvTCfmg#0>6#P^RSbQW02 z>~CMhtUhluPspAHkz@x{h5`B89(s7>G0)k|s=~LG5WaHr9w#TJIug+&&X#EF>pA35 zp{nJr3E@uH0LWn9xC`F6paar0Yhg19WPZW9GuMN#}1p7$P*wA6fOc8>#^y1%*{mlvge0KM( z7rlS_#dFK{f|4vfAhRgRuFJ^06@NbUgpJcSSGYQIK9$Km!$Vki2g6EgTGrHDSt}KH z-IieKDt~rcB*h9LS}R-X7T1Z>FY75-LF@1?p6iMt>B!oMC zd+gLyRy9+(bduUmtryzl9w7qjvrINr&`dTo06H5Q0G$n8Kn5F9i^X~&8bE*FbiHtN zI%`^)=7Oj|&UD^_VK8yY_eOj~%fy%-f>v7FWp+Gf2#3o~-SYXF7Z1JYCodlN#ctzk zukZ*bP$z^#NEAek?0?zarut+sD1a&w8bB2tU{FN|7*tUJ^i1Hv-9)tqDOCBlY+_+d zI_@DBhP7f*5o;YC@e*<`$B{!=nbQ7tfOj~6h!5kKVDs-{Q2qS)t$(?Ff%TI?#rX|C z{bkLG9&PkNMfe`vgV6d)P>2FCk;#A{Sv`mBVx*A4xB!YtXaL1@fI%@GU{Fi}c07*k zaRSTVbR3OMrzOfM7Kw!=# zLW`gzfY1^eKxiFc5LyQqgjRqogf0>I|E7c<=Mj2<7>lhKv~WFl2Q7>5lkg1di+;^qum@sm%vXNR{^B#lbrys}Swqbi}V9vWg(U2U!AE1dMo@O#%$E>HveR3Xp}Y(i{1kj`;B&F|oV> zdeev>=?_x;*aDV%@U3V=JP|mip;3A3sEY7J$zW9q;+}(n@CUMpzj0!04MCP{s?>Rh zUV7F;hwWC-X05qw#jAB#HPL)6F+K&SLgyX0aB)*}HI~Qwx3>hpwNo32l5{SP43d&K z#weB00CMU8gPc0RAg2NVQv#cwZlz8c*|AGGAywZShy8>o%@KAtkC2u}NVPYve=yhz zxt&)$wRqxz>X=MLG?6EBTD}AbB3k7}rwzaF`qA3M&V1p47f%{}$*Z*(*e0D^$)I{4 z;F@WlNt6)583B}#&;Uy40D}@bz@UTzWKiM^zme*RdO?grf9Y7C;9)&aVjbf_Tl1H3 zK>5hx?|;9z8>g2SA5t)}Io=jYPAopKU{dxxB`JKYM<3JDK?cPWi>Kq7TI}V?SGxpW zCEU}$M9W3IM$)vQHz}u~cj=v*N+!H9Z-}#T_WRrCmVKTmrPof~J?o8T=PXSosOyuUy3 zV)&BeqCc$qQPswC=4uy>skO)*m0gWBQ1m91Zv$UK5nI0?`^KLsV@H`vO(pJQUffMFWd> zmr_^?N}{7WE%C-J?@p?%i!VF$k>iu^pRs6lAjw^7OUwq1s^1coMevkNWatqRDgg$S zb$~%-9biyd0Wzrkl-EZ0K^s*Wv)7&;I{i_Vxy$R8MC)(`zCADdq0KL#5B(7>dvV{v zSo3JPmsk0BOv@jiw#U!s-BkFSVN2>~zj8*^%_c1e``y_w9p5E7ir|d^I!b5&9d&>~ zM;&0$Q322Y1gbN6?(M92hmyC_a1@- zB?3mbV-q2|NaQ6l>@g?4{Q?V22g z>ZEUrcBR^82-Q1ZA9~%RJ&!&4?!5D}=Xmq$U-mv=mEOrN|7~5< zH$c$@LXil@2cSqo15l&`3>4`A14Rme4j5eNjQ3FEJ}6ccQX<`An%qm>Cs%wm$f3yv z`Q3;*Xwu##$aM0ppiFlkw-t0xCz7&(uBcFyk3YEUlT&a1+1s!F z;eyiQ3?d=zPS`-sOrn?w0+x#vG=O36u`xUs|z}Ekr>nYjy_?s8xP$S# z8q!Hvx+KGiDC;TS_<#Vvb%kHYb)BxgAL|95;E#OKabni+RvZbN#F^~n{;&BGt9*$w zQ%DQO86%mHk=oCVra?J=bPxHhtCS;ESU6G*p&I*k2!OAVbwt^wk4Jr$7i#{aaw3{J z>dCL}{{`}u@M}1m9OTH~GHdPubLQ+fXXgHM_uX%9%l>ocd~f#bd|H$v|EeASJQPmZ z>%`A&sKespiF{^rHp)9Cuf=dD=l%TdsVWTarJepa1DuWZi&H*0p2sq0yJY|k-(1e{ zQ*P=Mz81A8!r25rPL*gn%X2ouPvN_18cp#%5T(Z>7r*i&&-+vE^R81rXXE|iTsI=k zvzfC!GvEPk%be|+kxcV-H*gW;IBPUN-JQ_@sy2FF_d!57pGh}m1I5bM)If&mgv;?m zL>@(aBvu$~qZ%Mx<2f7R=a8PML8#DNkBvGszi6XbUfsg;G^mT7&p*d(;I-K$V11qX zqQPjN^r#MEG1F7tz?$+lHuxl+K=3y;@+f~}&WbadmiA=;XJgvw_{SpMH#M+;7$+VF%z5$IUDZ9`)+)CYTa>8Pwk(X1SEN7xSwvxFK0N*JBZH6I+!zi z(&QzaIpz4xvM@V{eZPP??2s@U!14w%i`7}Sw3glCDm=(&W zMPU|}Pqkq-NIunvS&@7?EX)SWr=~C)BA*tA*--hkG>r3IL>}^65umHcdXA9cI(z)45?*BA?C=vl;T~!Z4dDpDqrwS@P-9FqeJco)9UXoK8HaW-?3JS~X)J7&;XpV?oD-3o~L8c2#JAw$yh zPhJvco7k-dX#H&}Z54?bkmL>-eJ95cfTD;ckpv?DTSnf6;cTcFA$AX<=vZrk$N zyTs*^CoM*0i~kC?0&YTkln`~Ku>efehh^rpZx-|O^s_$ zQ3Leld7!cztBO&$#>hUHq_1#5?JqdDoQbl}I z7-COBSh#VT-VtK|gK19z0u+uAdlsZpa81()vFFj5AQdCTUPPnPr>+qDt&b8{ax})E`3Zbx3r--xVSDN03~#Qfdq#_6EeAR24$(Ex!|*ju2vh zMmd^t5MuA3GOu8v6@=K|{5E>(K#0AIsn|uRrw4@CKTxYw07C2opOEIvA7US&hib|X zv44U#=?KGIA7a~)N=@=1_8DdqRbkrf9%BDO3HqFfAxcNNhS-<6DeuI-VzA}2uP`0z z6MKkbrA|AtHpDHoN=@k@?%+ku=OLa)^k?S~pNJItyd2_tB85LAhxp!LD|0Rm@kx+oQ93~l zzHwlbN!0;j2*p(PwMOw_bG#ceQ+zBtLx?W=ZR0g0n)CT|AXA7t0Z?CzOp)~0iVfdqe93)@ewoz@1%hG!h9~@w}5@k_XE%SWy*c#e0~5r>Yj2#`dNq{2)UX} zCDP=oOmE0l6&2EDG^53|hA~|4f|_ukfz67oDy=J7JT!Um+_%G;=*XaOHjeK&INu!&mk4$2(^ZT!BsMMHcQ z_|WxTNasVZn_aw{a>s#HKez606ynEur1Jy<#t1(!#Cstx#42ovuOZGyDR%L6AY+}! zW5N;$@e@2A)5TGUpJ{3aS&97Tqq$l$%IY*!!~a$JeZ zg8CgSf+T5O>%O;ts1p++j0_ zJ1hoqhrJ-~uolD}wt~3BQV@683E~bbLEK>@h&wC$ate;5 z;Ajetp<6$~ZgwePU%*AP7{#kh2560m3M%AR9o?6<6({hn2@Kce=xvC;lFHlMxE7O;P^ zYW6u=^A%gfZC1lW=o4o@Wj~WFAciar-62z^Zf3VnnYNkze9H9A>~0?ugagJ7$G~0& z(;p|Sup_`WFxF%V*24^+0b|6^m@;+P=KI)#7Td~xiGSjzsly&JVk!{xun|**m`9D6 z1&Ddvh*^l3UmGzsi202XQ-_$RjhF_+JY&Q(BIY?GrWr9W7%@u_^O6yBIAVTh#4Jb5 zD@M$bi21z{b2MUJGh&WG%pZ)H6^Qwh5z~g4H;tHf#Jp|9bRgz0M$EB@`KuAriI~3| zG2MuH&xq+k%=<=60x=&NF)74+Y{aZa%qK=nA7VZ=V%8z%b0g*i#C&1Ioai&yDHui! zgJT$L!vKnc`P;#`E5T|VtdqsCgK{i}#VU3^-tNNSd5m?lmsuPv-ow6R$MGVT;KeM- zXR{QqV7+_^Tg^Mz8orM8@pIT(ehpj4?_kICU$GPTi|hyd&)C8GjGbf^u#>G_*?Oyl zodO2NGJ|AjoKGznnirta|5lCudMo>yWYE;%oEuT6P?T*%okmdujHojxD&L4YlcEM1 zQD;$9p%HZsMGZ2d&ZDToM$`oqHPnc@h@yrYQI}BEE=JS_iW+4^ZKS9%M${EPtq#WU zXY4G{>TC$Qb0DD3WsBH(5O3$hTlxZa8oLnZpj`w3b1}r!CG1%Uvp3lWww+zZ2eOU8 zGgfYt=(%6w8KN9Dj*~U=@mu+L64Qv9U_@O*QM(&a*HP3SM%48bwU-ffBSr0FMBPkL zlZ_}%^iLFr6U9>mh(|U^NiLE$k+U?VH)@>=x{cP2p2v$xH(_9K4m#e46(> zo^3>I} zwrI+5KJOlW2mpuTu~a_pi^p>LI0cWD@^Jzl=gY?tc&wI>1M#>>JX&Aju~t5QjK_NU z_zo&OSyX>m?Jd?eysfy0H;TqsPa#>eO!m+ge%P|jd@<78vxP5R2FNl%?&U{q=En@@ z$kUFjSKY%`ZsjxY;m4||;k*;60KA9yAnWmd8oYI>f)bep^~pAP8Ov1Cl$Lb02i+6J z)`%Q4A7=xH^S)cyOp(EhzK5@Mn|i!#>H@O{{zp~A4}xmozd{WiE?)RuD(y*uX*X=) z>xqnQvPF-veCHPCfSXRMy@js@piTgQZoVp8(mEvV_L3f&E$JR6@NuKcJe0Few#CKH zAVe(}QQ$fDw(8CqLET}GBkdI~f3o}VcAoe4GrXN6-p)ihSK|$3fRpL%e7s%ay{*UF zDc)NWZx?xQQM{cd-l#Q8@uteWho6HNRU}?o@umtkXWrmCa2d-;VZs}O8@F?v-y z?G8vVp&(-xU5n@2A<^$-Z?U@}+wNf>VB!38wgt2DFCpW$LfL!-a_&(+g8dq@?nz#Z z1?S1^8A#0+AoE`22Ve=fl)Zvk`!&eE*LefhZI`h(`H}1|kb&=D7JnCV@I83?d_+b7B77-uEis3VS7ydjS z!?$5g@HMRGz0D`^claLs1FX}1jCHuL_+*Ro=~kGRScCa&YZRYjjph4W6ZrwwUi={I zDE@ux7+z|v;$>Dhud+7q`PSupk#!fZu{QGt>k)pK^(1e!KE?BAyvh24FSSSV!|gHr zNPACyl)Vp+*kyc$UCG<+7QWJ6!B^Q`ywk>yU)X2y#F@@7b!PI*oq7BU=U{$~ zQ_Zh+YWNM#QhuYeod1^-Oa3#{{r@=AU1rR5>g|7TrbC6_%}lp3hnbGj z{AZ^7zctfIj&x@_^`>SzylFF?dQ&rKVj~91Djoc=0o{kFyH(g%cJk| zV$3g-`GqqWh# z(z?pN+q&Am*ZQ&jymh_(l6ABFhINbm5$+#b|7CBtHaSDBTb&Wsoz4X7=gvgy9%s6> z*_ml=apqYMI0su>ooeeLr^b5JS!zAzEVrI?qSkMm4(k~wX+7(#wqA7BTQ51MS+6)3 zTHBm!aKG02y|W4TTdh}}`*Gi5z2-cD`_tCz&a>7V&db){FwtkkFpRl*A&)Iv{zt{)XSL}1^ zYxbpW^8vQQLw1M{wFmMM_8>mqF5<=ZFh1EH&ZpU<_`ddNet^9zFSW<>3VU~6Yft12 z_TGFMte_+9sXS^=;~n-)SUt0N%H9{2&VKw9`#^rKJ&#{tAHp}}!3Vs8urJL<) zew)3J-)YzJ`|NuDfZfC&v77nh_Tl^)dl`S;K8kO%kLItzqI%nIYgx#~Err - - + + - - - + + + + + + @@ -17,102 +20,210 @@ + + + + + + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -120,215 +231,176 @@ - <band height="69"> + <band height="67"> <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="136a5066-d141-4362-af36-0780f0d16542" mode="Transparent" x="0" y="0" width="563" height="25" forecolor="#000000" backcolor="#FFFFFF"/> - <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> - <font fontName="SansSerif" size="14" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> - <paragraph lineSpacing="Single"/> - </textElement> - <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> - </textField> - <textField> - <reportElement uuid="a9d471fb-1e1d-4d9a-9783-bbf988931192" x="656" y="0" width="65" height="25"/> - <textElement textAlignment="Right"> - <font size="8" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{cabecalho.dataHora}]]></textFieldExpression> - </textField> - <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> - <reportElement uuid="0d200750-aabf-4c7e-b27b-c0e7af4802a9" mode="Transparent" x="721" y="0" width="80" height="25" forecolor="#000000" backcolor="#FFFFFF"/> - <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> - <font fontName="SansSerif" size="8" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> - <paragraph lineSpacing="Single"/> - </textElement> - <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> - </textField> - <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="bae9bec6-8c42-4bee-a070-34b0a7f1aee4" mode="Transparent" x="711" y="27" width="70" height="13" forecolor="#000000" backcolor="#FFFFFF"/> + <reportElement uuid="0f6ea959-18ce-45fc-be6c-a814a0476c4e" mode="Transparent" x="963" y="15" width="270" height="16" forecolor="#000000" backcolor="#FFFFFF"/> <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> </textElement> <textFieldExpression><![CDATA[$R{cabecalho.pagina}+" "+$V{PAGE_NUMBER}+" "+$R{cabecalho.de}]]></textFieldExpression> </textField> - <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> - <reportElement uuid="314e312c-8f24-42de-8354-3c1f7241a985" mode="Transparent" x="781" y="27" width="20" height="13" forecolor="#000000" backcolor="#FFFFFF"/> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="038efca4-bebf-4d0e-9486-3bfb9680faf7" mode="Transparent" x="0" y="0" width="963" height="46" forecolor="#000000" backcolor="#FFFFFF"/> <textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="16" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement uuid="ad4046fb-5ef4-410f-85a5-17cca2f7cf4c" stretchType="RelativeToBandHeight" mode="Transparent" x="963" y="31" width="296" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.impressorPor}+" "+$P{USUARIO_NOME}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="1e11c007-fe9f-4ae1-b7dd-5b3574ef9cee" x="963" y="0" width="214" height="15"/> + <textElement textAlignment="Right"> + <font size="9" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.dataHora}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement uuid="9eee37bf-9dc9-441c-96f7-01562efffce8" x="0" y="46" width="1259" height="21"/> + <box leftPadding="2"> + <topPen lineWidth="0.75"/> + <bottomPen lineWidth="0.75"/> + </box> + <textElement verticalAlignment="Middle"> + <font size="12" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$P{FILTROS}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement uuid="d925825f-4cfd-4dd0-8088-20a6810f1a48" mode="Transparent" x="1179" y="0" width="80" height="15" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> + <reportElement uuid="27212e2f-7312-4bd4-b218-d9aef0e24a14" mode="Transparent" x="1233" y="15" width="26" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> </textElement> <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> </textField> - <textField pattern="" isBlankWhenNull="false"> - <reportElement uuid="4e030613-9cee-443e-9eaa-b19fa3090976" mode="Transparent" x="563" y="0" width="93" height="25" forecolor="#000000" backcolor="#FFFFFF"/> - <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> - <font fontName="SansSerif" size="8" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> - <paragraph lineSpacing="Single"/> - </textElement> - <textFieldExpression><![CDATA[$R{cabecalho.impressorPor}+" "+$P{USUARIO}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="64027797-62dc-4e02-8e40-958ac1511e0a" x="0" y="27" width="62" height="13" isPrintWhenDetailOverflows="true"/> - <box> - <bottomPen lineWidth="0.0"/> - </box> - <textElement textAlignment="Justified" verticalAlignment="Top"> - <font size="9" isBold="true" pdfFontName="Helvetica-Bold"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.empresa} + ":"]]></textFieldExpression> - </textField> - <textField> - <reportElement uuid="bcd47f18-94dc-4d33-96db-6d89795188d3" x="62" y="27" width="148" height="13"/> - <textElement> - <font size="9"/> - </textElement> - <textFieldExpression><![CDATA[$P{EMPRESA_ID} == null ? -"Todas" : -($P{EMPRESA_ID}.toString() + " - " + $P{EMPRESA})]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="049832ef-f634-42f9-95b1-ac2e1fe23b10" x="0" y="40" width="62" height="13" isPrintWhenDetailOverflows="true"/> - <box> - <bottomPen lineWidth="0.0"/> - </box> - <textElement verticalAlignment="Top"> - <font size="9" isBold="true" pdfFontName="Helvetica-Bold"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.linha} + ":"]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="df6b8946-988c-479c-8eeb-c8d40c94734b" x="62" y="40" width="739" height="13"/> - <textElement> - <font size="9"/> - </textElement> - <textFieldExpression><![CDATA[$P{LINHAS}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="2d048310-1ec5-4711-b402-75ef3d3500d4" x="210" y="27" width="75" height="13" isPrintWhenDetailOverflows="true"/> - <box> - <bottomPen lineWidth="0.0"/> - </box> - <textElement textAlignment="Right" verticalAlignment="Top"> - <font size="9" isBold="true" pdfFontName="Helvetica-Bold"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.dataVigencia} + ":"]]></textFieldExpression> - </textField> - <textField pattern="dd/MM/yyyy"> - <reportElement uuid="40c47b73-ef86-4b76-a4bb-ec284d4e6f59" x="285" y="27" width="70" height="13"> - <printWhenExpression><![CDATA[new Boolean($P{VIGENCIA_ID} != null)]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Right"> - <font size="9"/> - </textElement> - <textFieldExpression><![CDATA[$P{VIGENCIA_INICIAL}]]></textFieldExpression> - </textField> - <textField pattern="dd/MM/yyyy"> - <reportElement uuid="12564f32-d986-46a6-a184-23b23ba50bcb" x="373" y="27" width="70" height="13"> - <printWhenExpression><![CDATA[new Boolean($P{VIGENCIA_ID} != null)]]></printWhenExpression> - </reportElement> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{VIGENCIA_FINAL}]]></textFieldExpression> - </textField> - <staticText> - <reportElement uuid="bdfc1a2c-9e77-418f-8169-50c67ad7f116" x="355" y="27" width="18" height="12"> - <printWhenExpression><![CDATA[new Boolean($P{VIGENCIA_ID} != null)]]></printWhenExpression> - </reportElement> - <textElement textAlignment="Center"> - <font size="9"/> - </textElement> - <text><![CDATA[à]]></text> - </staticText> - <staticText> - <reportElement uuid="1bba53bd-7d81-491b-b1de-11a0c570c5c7" x="285" y="27" width="158" height="13"> - <printWhenExpression><![CDATA[new Boolean($P{VIGENCIA_ID} == null)]]></printWhenExpression> - </reportElement> - <textElement> - <font size="9"/> - </textElement> - <text><![CDATA[Todas]]></text> - </staticText> - <textField> - <reportElement uuid="0241b100-99d6-4e53-abd1-0154defc75bc" x="537" y="27" width="174" height="13"/> - <textElement> - <font size="9"/> - </textElement> - <textFieldExpression><![CDATA[$P{ORGAO_CONCEDENTE_ID} == null ? -"Todas" : $P{ORGAO_CONCEDENTE}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement uuid="afabe5dc-df90-4120-a42a-af1d3e6df583" x="444" y="27" width="93" height="13" isPrintWhenDetailOverflows="true"/> - <box> - <bottomPen lineWidth="0.0"/> - </box> - <textElement verticalAlignment="Top"> - <font size="9" isBold="true" pdfFontName="Helvetica-Bold"/> - </textElement> - <textFieldExpression><![CDATA[$R{label.orgacaoConcedente} + ":"]]></textFieldExpression> - </textField> </band> - - - - + + + + + + - - - + + + + + - - - + + + + + - - - + + + + + - - - + + + + + - - - + + + + + - - - + + + + + - - - + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java index 228b7db4f..1f58a1f80 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -102,39 +103,67 @@ public class RelatorioTabelaPrecoController extends MyGenericForwardComposer { private void executarRelatorio() throws Exception { Map parametros = new HashMap(); + StringBuilder filtro = new StringBuilder(); parametros.put("NOME_RELATORIO", Labels.getLabel(TITULO)); parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); parametros.put("USUARIO_NOME", UsuarioLogado.getUsuarioLogado().getNombusuario()); Comboitem itemVigencia = cmbVigencia.getSelectedItem(); + filtro.append("Vigencia: "); if (itemVigencia != null) { + VigenciaTarifa vigencia = (VigenciaTarifa) itemVigencia.getValue(); parametros.put("VIGENCIA_ID", vigencia.getVigenciatarifaId()); parametros.put("VIGENCIA_INICIAL", vigencia.getFeciniciovigencia()); parametros.put("VIGENCIA_FINAL", vigencia.getFecfinvigencia()); + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + filtro.append( sdf.format(vigencia.getFeciniciovigencia()) ); + filtro.append( " à " ); + filtro.append( sdf.format(vigencia.getFecfinvigencia()) ); + }else { + filtro.append(" Todas;"); } Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + filtro.append(" Empresa: "); if (itemEmpresa != null) { Empresa empresa = (Empresa) itemEmpresa.getValue(); parametros.put("EMPRESA_ID", empresa.getEmpresaId()); parametros.put("EMPRESA", empresa.getNombempresa()); parametros.put("MARCA",marcaService.buscarMarcaPorEmpresa(Arrays.asList(empresa)).get(0)); + + filtro.append(empresa.getNombempresa() + ";"); + }else { + filtro.append(" Todas;"); } + filtro.append(" Orgão Concedente: "); if (cmbOrgaoConcedente.getSelectedItem() != null) { OrgaoConcedente orgaoConcedente = (OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue(); parametros.put("ORGAO_CONCEDENTE_ID", orgaoConcedente.getOrgaoConcedenteId()); parametros.put("ORGAO_CONCEDENTE", orgaoConcedente.getDescOrgao()); + + filtro.append(orgaoConcedente.getDescOrgao() + ";"); + }else { + filtro.append(" Todos;"); } + filtro.append(" Origem: "); if (cmbOrigem.getSelectedItem() != null) { parametros.put("origemId", cmbOrigem.getSelectedObject().getParadaId()); + filtro.append(cmbOrigem.getSelectedObject().getDescparada()); + }else { + filtro.append(" Todas;"); } + filtro.append(" Destino: "); if (cmbDestino.getSelectedItem() != null) { parametros.put("destinoId", cmbDestino.getSelecteObject(Parada.class).getParadaId()); + filtro.append(cmbDestino.getSelecteObject(Parada.class).getDescparada()); + }else { + filtro.append(" Todos;"); } parametros.put("isLayoutArtesp", chkLayoutArtesp.isChecked()); @@ -143,8 +172,9 @@ public class RelatorioTabelaPrecoController extends MyGenericForwardComposer { String rutas = ""; List lsLinhasSelecionadas = convertTypedList(linhaSelList.getData()); + filtro.append(" Linhas: "); if (lsLinhasSelecionadas.isEmpty()) { - rutas = "Todas"; + rutas = " Todas;"; } else { for (int i = 0; i < lsLinhasSelecionadas.size(); i++) { Ruta ruta = lsLinhasSelecionadas.get(i); @@ -155,10 +185,14 @@ public class RelatorioTabelaPrecoController extends MyGenericForwardComposer { rutaIds = rutaIds.substring(0, rutaIds.length() - 1); rutas = rutas.substring(0, rutas.length() - 2); parametros.put("LINHAS_ID", rutaIds); + } + filtro.append( rutas); parametros.put("LINHAS", rutas); - Relatorio relatorio = new RelatorioTabelaPreco(parametros, dataSourceRead.getConnection(), segVKMService); + parametros.put("FILTROS", filtro.toString()); + + Relatorio relatorio = new RelatorioTabelaPreco(parametros, dataSourceRead.getConnection(), segVKMService); Map args = new HashMap(); args.put("relatorio", relatorio);