From 18f8295e7491530f4028242c9ca144ef3a65e3cc Mon Sep 17 00:00:00 2001 From: celio Date: Mon, 1 Jul 2024 13:27:41 -0300 Subject: [PATCH] fixes bug #AL-4121 --- pom.xml | 2 +- .../RelatorioVendasRequisicaoDetalhado.java | 218 + ...rioVendasRequisicaoDetalhado_en.properties | 28 + ...rioVendasRequisicaoDetalhado_es.properties | 28 + ...rioVendasRequisicaoDetalhado_fr.properties | 28 + ...VendasRequisicaoDetalhado_pt_BR.properties | 28 + .../RelatorioVendasInternetPTA.jrxml.bak | 384 + .../RelatorioVendasRequisicaoDetalhado.jasper | Bin 0 -> 42113 bytes .../RelatorioVendasRequisicaoDetalhado.jrxml | 298 + .../RelatorioVendasRequisicaoBean.java | 23 + .../RelatorioVendasRequisicaoController.java | 25 +- web/WEB-INF/i3-label_en.label | 8112 +++++++++-------- web/WEB-INF/i3-label_es_MX.label | 2 + web/WEB-INF/i3-label_fr_FR.label | 2 + web/WEB-INF/i3-label_pt_BR.label | 1 + .../filtroRelatorioVendasRequisicao.zul | 2 + 16 files changed, 5435 insertions(+), 3746 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasRequisicaoDetalhado.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_en.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_fr.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasInternetPTA.jrxml.bak create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jrxml diff --git a/pom.xml b/pom.xml index a866012fe..9a8244bcc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.96.0 + 1.97.0 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasRequisicaoDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasRequisicaoDetalhado.java new file mode 100644 index 000000000..5b768ee99 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasRequisicaoDetalhado.java @@ -0,0 +1,218 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasRequisicaoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioVendasRequisicaoDetalhado extends Relatorio { + + private static Logger log = LogManager.getLogger(RelatorioVendasRequisicaoDetalhado.class); + + private List lsDadosRelatorio; + + private String fecInicio; + private String fecFinal; + private Integer empresaId; + private Integer puntoventaId; + private Integer secretariaId; + private boolean agruparCliente; + + public RelatorioVendasRequisicaoDetalhado(Map parametros, Connection conexao, boolean agruparCliente) throws Exception { + super(parametros, conexao); + + this.agruparCliente = agruparCliente; + + this.setCustomDataSource(new DataSource(this) { + + @Override + public void initDados() throws Exception { + Map parametros = this.relatorio.getParametros(); + fecInicio = parametros.get("dataFiltroInicial").toString(); + fecFinal = parametros.get("dataFiltroFinal").toString(); + if(parametros.get("EMPRESA_ID")!=null){ + empresaId = Integer.valueOf(parametros.get("EMPRESA_ID").toString()); + } + if(parametros.get("PUNTOVENTA_ID")!=null){ + puntoventaId = Integer.valueOf(parametros.get("PUNTOVENTA_ID").toString()); + } + if(parametros.get("SECRETARIA_ID")!=null){ + secretariaId = Integer.valueOf(parametros.get("SECRETARIA_ID").toString()); + } + + Connection conexao = this.relatorio.getConexao(); + processarVendasRequisicao(conexao); + + setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + } + + }); + } + + private void processarVendasRequisicao(Connection conexao) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + + try { + + stmt = carregarNamedParameterStatement(conexao); + rset = stmt.executeQuery(); + processarResultado(rset); + fecharConexaoBanco(conexao, stmt, rset); + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + } + + private void fecharConexaoBanco(Connection conexao, NamedParameterStatement stmt, ResultSet rset) { + try { + if(rset != null && !rset.isClosed()) { + rset.close(); + } + if(stmt != null && !stmt.isClosed()) { + stmt.close(); + } + if(conexao != null && !conexao.isClosed()) { + conexao.close(); + } + } catch (SQLException e) { + log.error(e.getMessage(), e); + } + } + + private void processarResultado(ResultSet rset) throws SQLException { + if(lsDadosRelatorio == null) { + lsDadosRelatorio = new ArrayList(); + } + + while (rset.next()) { + RelatorioVendasRequisicaoBean bean = new RelatorioVendasRequisicaoBean(); + bean.setNumdocumento(rset.getString("REQUISICAO")); + bean.setSecretariaId(rset.getInt("SECRETARIA_ID")); + bean.setDescsecretaria(rset.getString("DESCSECRETARIA")); + bean.setPuntoventaId(rset.getInt("PUNTOVENTA_ID")); + bean.setBpe(rset.getInt("BPE")); + bean.setPassageiro(rset.getString("nombpasajero")); + bean.setDataVenda(rset.getDate("FECHORVENTA")); + bean.setNombpuntoventa(rset.getString("NOMBPUNTOVENTA")); + bean.setNombempresa(rset.getString("NOMBEMPRESA")); + bean.setEmpresaId(rset.getInt("EMPRESA_ID")); + bean.setOrigemId(rset.getString("ORIGEM_ID")); + bean.setOrigem(rset.getString("ORIGEM")); + bean.setDestinoId(rset.getString("DESTINO_ID")); + bean.setDestino(rset.getString("DESTINO")); + bean.setImporte(rset.getBigDecimal("IMPORTE")); + + if (agruparCliente) { + bean.setDescricaogrupo(bean.getSecretariaId() + "- " + bean.getDescsecretaria()); + } else { + bean.setDescricaogrupo(bean.getNombpuntoventa()); + } + + lsDadosRelatorio.add(bean); + } + + } + + private NamedParameterStatement carregarNamedParameterStatement(Connection conexao) throws SQLException { + String sql = getSql(); + log.info(sql); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + if(fecInicio != null) { + stmt.setString("fecInicio", fecInicio); + } + if(fecFinal != null) { + stmt.setString("fecFinal", fecFinal); + } + if(empresaId != null) { + stmt.setInt("EMPRESA_ID", empresaId); + } + if(puntoventaId != null && puntoventaId > -1) { + stmt.setInt("PUNTOVENTA_ID", puntoventaId); + } + if(secretariaId != null && secretariaId > -1) { + stmt.setInt("SECRETARIA_ID", secretariaId); + } + + return stmt; + } + + protected String getSql() { + + StringBuilder sQuery = new StringBuilder(); + sQuery.append("SELECT CDP.NUMDOCUMENTO AS REQUISICAO, SEC.CVESECRETARIA AS SECRETARIA_ID, SEC.DESCSECRETARIA, ORI.CVEPARADA AS ORIGEM_ID, ORI.DESCPARADA AS ORIGEM, DES.CVEPARADA AS DESTINO_ID, DES.DESCPARADA AS DESTINO, PV.PUNTOVENTA_ID AS PUNTOVENTA_ID, PV.NOMBPUNTOVENTA, E.NOMBEMPRESA, E.EMPRESA_ID, FP.DESCPAGO AS DESCPAGO, CFP.FORMAPAGO_ID, bpe.nbp as BPE, c.nombpasajero, C.FECHORVENTA, ") + .append(" CASE WHEN C.MOTIVOCANCELACION_ID IS NULL THEN COUNT(*) ELSE COUNT(*) * -1 end AS qtde, ") + .append(" SUM( CASE WHEN C.MOTIVOCANCELACION_ID IS NULL THEN cfp.importe ELSE cfp.importe * -1 end) AS importe ") + .append("FROM CAJA C ") + .append("JOIN PARADA ORI ON ORI.PARADA_ID = C.ORIGEN_ID ") + .append("JOIN PARADA DES ON DES.PARADA_ID = C.DESTINO_ID ") + .append("JOIN CAJA_FORMAPAGO CFP ON CFP.CAJA_ID = C.CAJA_ID AND CFP.ACTIVO = 1 ") + .append("LEFT JOIN CAJA_DET_PAGO CDP ON CDP.CAJAFORMAPAGO_ID = CFP.CAJAFORMAPAGO_ID AND CDP.ACTIVO = 1 ") + .append("JOIN SECRETARIA SEC ON CDP.OPCIONAL1 = SEC.SECRETARIA_ID ") + .append("JOIN FORMA_PAGO FP ON FP.FORMAPAGO_ID = CFP.FORMAPAGO_ID ") + .append("JOIN MARCA M ON C.MARCA_ID = M.MARCA_ID ") + .append("JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID ") + .append("JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = C.PUNTOVENTA_ID ") + .append("LEFT JOIN BPE bpe on ( c.transacao_id = bpe.boleto_id ) ") + .append("WHERE (FP.FORMAPAGO_ID = 11 OR FP.TIPO_PAGO = 6) ") + .append("AND C.ACTIVO = 1 ") + .append("AND C.INDREIMPRESION = 0 "); + + if(fecInicio != null) { + sQuery.append("AND NVL(C.FECHORVENTA_H,C.FECHORVENTA) >= TO_DATE(:fecInicio, 'dd/mm/yyyy hh24:mi') "); + } + if(fecFinal != null) { + sQuery.append("AND NVL(C.FECHORVENTA_H,C.FECHORVENTA) <= TO_DATE(:fecFinal, 'dd/mm/yyyy hh24:mi') "); + } + if(empresaId != null) { + sQuery.append("AND E.EMPRESA_ID = :EMPRESA_ID "); + } + if(puntoventaId != null && puntoventaId > -1) { + sQuery.append("AND C.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + } + if(secretariaId != null && secretariaId > -1) { + sQuery.append("AND SEC.SECRETARIA_ID = :SECRETARIA_ID "); + } + + sQuery.append("GROUP BY CDP.NUMDOCUMENTO, SEC.CVESECRETARIA, SEC.DESCSECRETARIA,PV.NOMBPUNTOVENTA, PV.NOMBPUNTOVENTA, E.NOMBEMPRESA, E.EMPRESA_ID, FP.DESCPAGO, CFP.FORMAPAGO_ID, ORI.DESCPARADA, DES.DESCPARADA, CFP.IMPORTE, ORI.CVEPARADA, DES.CVEPARADA, PV.PUNTOVENTA_ID, C.MOTIVOCANCELACION_ID, bpe.NBP, c.nombpasajero, C.FECHORVENTA "); + + if (agruparCliente) { + sQuery.append("ORDER BY SEC.DESCSECRETARIA, PV.NOMBPUNTOVENTA, FP.DESCPAGO"); + } else { + sQuery.append("ORDER BY PV.NOMBPUNTOVENTA, SEC.DESCSECRETARIA, ori.cveparada, des.cveparada "); + } + + return sQuery.toString(); + + } + + @Override + protected void processaParametros() throws Exception { + } + + public List getLsDadosRelatorio() { + return lsDadosRelatorio; + } + + @Override + public String getNome() { + return super.getNome(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_en.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_en.properties new file mode 100644 index 000000000..c58ffc3c5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_en.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=It was not possible to obtain data with the provided parameters. + +#Labels cabeçalho +cabecalho.nome=Request Sales Report +cabecalho.relatorio=Report: +cabecalho.periodo=Period: +cabecalho.periodoA=to +cabecalho.dataHora=Date/Time: +cabecalho.impressorPor=Printed by: +cabecalho.pagina=Page +cabecalho.de=of +cabecalho.filtros=Filters: +cabecalho.usuario=User: +label.date=Date +label.COD = COD +label.empresa = Company +label.REQ = REQ. No +label.origem = Origin +label.destino = Destination +label.bpe = BPe +label.nome = Passenger Name +label.nombPuntoVenta=Agency +label.total=Total +label.puntoVenta=Agency: +label.diferenca=Difference +label.cliente=Client +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_es.properties new file mode 100644 index 000000000..e14b54e3e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_es.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=No fue posible obtener datos con los parámetros informados. + +#Labels cabeçalho +cabecalho.nome=Informe de Ventas de Requisición +cabecalho.relatorio=Informe: +cabecalho.periodo=Período: +cabecalho.periodoA=a +cabecalho.dataHora=Fecha/Hora: +cabecalho.impressorPor=Impreso por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuario: +label.data=Fecha +label.COD = COD +label.empresa = Empresa +label.REQ = REQ. N +label.origem = Origen +label.destino = Destino +label.bpe = BPe +label.nome = Nombre del Pasajero +label.nombPuntoVenta=Agencia +label.total=Total +label.puntoVenta=Agencia: +label.diferenca=Diferencia +label.cliente=Cliente +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_fr.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_fr.properties new file mode 100644 index 000000000..b49facb42 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_fr.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=Impossible d'obtenir des données avec les paramètres informés. + +#Labels cabeçalho +cabecalho.nome=Rapport de Ventes de Requête +cabecalho.relatorio=Rapport: +cabecalho.periodo=Période: +cabecalho.periodoA=à +cabecalho.dataHora=Date/Heure: +cabecalho.impressorPor=Imprimé par: +cabecalho.pagina=Page +cabecalho.de=de +cabecalho.filtros=Filtres: +cabecalho.usuario=Utilisateur: +label.data=Date +label.COD = COD +label.empresa = Entreprise +label.REQ = REQ. N +label.origem = Origine +label.destino = Destination +label.bpe = BPe +label.nome = Nom du Passager +label.nombPuntoVenta=Agence +label.total=Total +label.puntoVenta=Agence: +label.diferenca=Différence +label.cliente=Client +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_pt_BR.properties new file mode 100644 index 000000000..7dd5ac5b7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasRequisicaoDetalhado_pt_BR.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas Requisição +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuário: +label.data=Data +label.COD = COD +label.empresa = Empresa +label.REQ = REQ. N +label.origem = Origen +label.destino = Destino +label.bpe = BPe +label.nome = Nome Passageiro +label.nombPuntoVenta=Agência +label.total=Total +label.puntoVenta=Agência: +label.diferenca=Diferença +label.cliente=Cliente +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasInternetPTA.jrxml.bak b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasInternetPTA.jrxml.bak new file mode 100644 index 000000000..e337a398b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasInternetPTA.jrxml.bak @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="32"> + <textField> + <reportElement x="191" y="5" width="382" height="27" uuid="766b74e4-28c9-4045-8538-343a8bc8e665"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="18" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.nome}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jasper new file mode 100644 index 0000000000000000000000000000000000000000..4f832697534e346f93ce322dd18e569dcc39ecdc GIT binary patch literal 42113 zcmeHw37AyHwSU#U1Jeu*3=E5iD5xl#44}AxiOvcGJqt4fDj0`mriW?i>2A7vU_dlz z)TbbB(L{|giz4nZN^nbzV$hh~Eio?9#Au#Ajfv4{jGF)NRMow=s{2lNUuVt-0+jHYlB9Q{$1$taSIR)5GaxB$bLJ6RAvkRwTYA8js9cEP$;7 z$i%R4n!h>cX)n!>%2 zw!ZG}Xn%%{l9^-S_?pVLOez{*gN(ye##Bu#oKCM}XECck#g52_+v;!{2)0(^k&WQ= z1~$H>t!`Oub4OcUYeQA2V|iU`TSIeG$Fhdn1{PeM$Yc_|jo}nJ*+6}X_4USU5`FPZ z17SjMZOL#aP;*mHigsmsRayI94M8M9nm(P&Lp`Q3j{0Lo$h^Q`_(jJ&|}*f;iZ| zF&PQ5ven_vwQEu!Lsy0!8UpPr)7_PZTvSTAs3fw-yTG>*l3KOVRHT#8%CIBz7R;cf z%GSQPTc9r9*Nb|BvK~nXVtV-}%-ho9R_YnDQte%l?r>i$ z)0Wv7i)7f80tH1j6dT+X$%LaZh0ZYf*5-8d@Itl7jHqW+cOumr&eVrHGl|qjPr^a+ zXs;M=ZIMidjgSMQFB6Sn91-3D8YF$-tQZg>HXMT^LxN+_X=raa8dsgoutI2gR4IvL zRH~W>$AuuMu9jwt zSMv(@>Lg=8ik|f+8QWVA%{v-DE>*C7uzX6O)y9~;m>`s8G=oZ?QKZ_WF)XVhtzMd6 zX%6m*kS1BdprhK7v1q0$7E5f1bcI-j;2&!SxE7 zgJ)5dv#L_5@J6b)|Li9xUj113>o(&JtRx-X6d{3PY(oi!u5dA)OeW7tv03@LNK~0+ zP=)HCf1^-UiVYX-lg64wB$G)p5gaXTYj3S0~@5hRoDq5 zMYum@@#__3KM=hm3gzvdW=<#-FIy$%@s(`QY77?WhAD+~gP0imlYJ?bbzs{{&Y@Sn zc-EU2{p7rPmgEQHS-lz}dNl;-&(23T4gK~=f2KYfiD_edO#ZPwY;_{B7PiXTP-J~1 zR?UV-)wa^dcgctEE-?i4x=fOsb<4G2$EK?G0+N`R3y{cL&i<>`ber9 z>LJ8NhvS_+i4+-t-iRlrjDqptH6un#;h9-v!+@^vN)m#_tJpfDV`6Ay7RIPhdP`w8 z-tAqLKtBidac%~hjWjrPtU_0#s5BCe1DP^U2B;)yH30$Q z>b*1>&Y-(-^*U0$W+4Q9F?S!tS!p|OL>`t;pkcYKPLTOaIE=<(MZUp6$J)lxz2Oa+ zN&!Ky)PkT|FEmmv5+qDyq}t|Uu968Y;jS($5KKZf#50jKkrb*7bi)`XsaJFm?`=@P z^nRpDCxx70BQ;8kl>~}cV9Z1}p^9*c!2Qmq&c5Pu;T3RkSlQsFhJaIz=Ersd_%;#L~;A}isW z1i|B-2@)|?GlA+&p^}R`gN)^3y_ZYJpn#i%45SirF{vmr%z0PjsLYG75T{mEgQ5kk zFAa2ty8wL%l>us^G7=L;Cfb=R?PGHi6mmxuMsB%Yr@#GGLeqblACN)>`QMAY|sYUu4rJqAHR*Tk7;S&N&1gi4J9^OUlGHa zULVEy%&`1K#gbZEM?0k;twG&(r55%>lUVdd^d{}Kk&Q}}OL`MsLK9#Z4xzZ>>5RfW zZA5M*Y(p`&pcaL?p^8gGY(EV|%GaGSRl_57qNzrU*sy5PNUa+8Tl7#PFl)xR>mgyT z)bzk4jtHyni0qXPm8gKZpq4)yy;-stb3v_wv{K+jxh4pzhefD0WxJ8|s1BC&^+AT5 z*;1@jmSOh{YYlfrs@9|ID_EL}1%*(8<FycU;+;e&!V>>b?Fesu zBxd>N-g^Ao&maGnH?h2^XM@($HVf2KxtFV{4>NA+{M)XaIP{8_w~6&Z6_A$|I<*$7 z&PaP;&h#v(q1l!Uks7n>5M|!bGBy8rq$LOK1Sa}hB4iuFit4W+lLbvdmlRsTqMVzX zW<0-%p633DFeRIFrdB)Yrua{8v|Ztq&Yg1x(=4Rw=oc(1c8L$vtHl;FihC5LMR2h@ z){YySNkRuziL5?tx5okYO?s{J!)D^?<5R)5V#mjXF z6ooM14M?_;eGJM9agt{#&gusOF$(jvv~^uZ7usUh>|?hKsSRP*8fXO5vc0NqtV4;d zKz5jdRY%AyQNUm(yt)laz!g0_=G7`1tZf5vYZ#Olcv=1Z2vp_r_IL!W-(^HO9&LjjV~?zkBR3U z`N5mlr~ejver?kTr{8Ev;|7$*QTc>X3~Qe)8bX8q(M~({947Ig)`o?P+TD(bM*O&Y z5#<-b`4SU@yE0WK7~Itp4DRX)26t70(_xpp=eszn2qBc0y9c}6m7C$j-BNi{8gVMa zupa4|%GGj%^5>IMTb{Z0!#~5MUg4P3Nt|t9pdK>wkV9tAnmv0UZa)rg&ma;P#qD#a zKEj?|du`^he{LVlhty&Lm$cF7Cj%$;DAc3X=X% zAJPYL*4CBi?4uoGm-tlERaEN$4Cn*#G20X=?N|5zA@KXZU0iWf@Zm8Vr_}vWV*oXD zi`I_;seM1?6v4ed)Rw6})YcOWYU>FGwN--CcbD4tYFLVBL26I&q4sc0Af4$*Cr-M; z@N{zOEJW|AAocvB>3#EW|GupD-2=Y$+BaXH^80ktsvLS#bGJHeORD*){>Lbv2=@BW zT&DWaTu(4)t|u5YR|&w#l<>VSjw(`+=7;&vJm}H8q06bU5XA+xi>CNx2YtEb>8d)V3sU-U zA4(4)@2cgIc$X{Ks42tBy1FVG8!I>BpX@}gMz4hF`ccv3zG2nlJAQF}`0DqQj~!c) zY&^ptH(_3caQ}hwiQr`)lFL*dlIsZu$@K(-I8E8%*86<>LGG=>GZx2Piej6zLo$TOyxnw-;q&rxk9c|Cdu z>eCCYLuo@poW27e)5nOAset3wy1qziV`0aGrId}9vG5ZR#Hogtr1bd0q2KUyXDXV6 z2Ux~)?gOeW6rC-IYMWEV0xF4vYC*@MN;;W=pV+mhzE#1cZ9Ppk{gZlGowtqzI03Dn`^I=ZGd(i!ay$GkSwPKZ_@4?@mLy|~;Z>oQ;~QA6Ub zEe(}RhKGi^XH&4BS=$N)^9MbqtDT6#C>a(`k=@9$M72_RsA?=0iYp@8N#STdu_o1r z<5Q2wdD_v|gT)n~X;90VkAI$#q7~52>@fL7JZ=wBLap%vJ>W+r$wRN80+KV(iPv{* z3Vq!FhNFP^J}4kjgEySZ^G(EXyz3U94>%{HE7*8C{TJuS(ha^jUKj2Z-wv!`BPk6I z?&N_c&kE&d2UwY8@BsmidGH;B^w(7&%DI9C*G3}A_5|Gcdgu#*alO&_BH`QHo@moD zLalVtClSuf0FV2;ntyStlM{1Du1j5o*)=tp6yX&u{l^`Ws3WGK!iX?j%SUM-<-tj^ z8i2|dDcW}gIDpVVW@c|Pa4j*(KJu)tEOOd$DB&?auLTD84Y25oj$yj0*$^n|h)9K@rIl4=E#kz##%oZ~G?!JqZZ0g9gZA92kVy*k~N?FyWZMC(GzG zr}#2KJH1C_)k$iq-V|}@DTW>qK=ou_Z3MV0|CwC+u_avCg&~VsN+6Bx;F{)TP3=M> z(gt}Td#Qn=iT&b{4U@b*Q#CP8oihzneNm@bISll{qok?1sZK4G2$3PhBQhI^WY`#Q zwJ*kKhv*pT>^dNs*WH1nY?i?n9|Q+2Y;9iFLiHUhX9>b`cs7>Uan73fiae9c)mA<@ z3~p*}ZLA8(_T@Gc?GR%>8(2o*~1bxYEB_=h=GBk8F=pJj$gCl^%IBO8kz9(3&xzdE0=+)7qU|WGLd}nxCl1* zFj1!ZFi}r1n5ZWhOjHR#N8sWzaf3s3=Sg^Xf-P-*t21yXjmkeq;{ojGo$gYw}FDZ(yFj3`8|k`!0y=6B5! z^KCtHtI0{YOv9}v!wxB6!yyyQH^;YXv^Z^CphTBDqH9lLiV>N8wrs?TuM6O7@iCm6$3B>*3DxL%rtY0~lk6a>#cm>=QlTXisR;roWFg{{k4 zsv2=F*W3}Rs;&!(7RXzoY|@NL2hX2$Fdh=-H}7f)h)fzwxO73qd7?O~9}UeRSAzJu zW0vr9<2%NEsr-^7`z$u79-ElhkLU@*KYBg6TZWj`iM_E2^7{+=Af%IAq~&KJuD!cyb)h+Ai-knU-$739D*DgxH(KkO=b!W-KW5AuFRXpP;W1azNVSIJY5Fw3TQYY^ z)g(1^ZzZI!5@h`r zC*o>lkI4iCEo?WFmLNuAuZuJx(UksabRFE*(6lgACp!Es!6`aIPR^M-Z?40)ygr@M z=G4A|kS!Q(D4Q5KgJ^6uK3;@kQaV*+&mKkP?kG|Y5QDHo7YnbB#Ab;ZQecLFsuOk# zlcdfa8ID`SXkyn6$}c69UT+i?a2!JuJX>*nZ$xDtfEG z98r=KAQ2Np%_~K8aL7gQBOfV}sXkJqCm2$sCm2$s5(GxOWQ~v^YW*G&{z#CN-tTi` z4^WIiKgh?ckv_aClf1&7s(ZGBdWcn2-6OL7TxL0kX#38rZ~gJ>M;!8t)9YuHeQ@Z` zXO_T;O!=cwd;eX`dWI?!fzKhQOnAnJS+bZ+Fqow$7|c=$f>?gcl82py&Au{gR3AzS zzcFuM4Ux>!&fzFeAzod9g%^GEu!fz`mjq+Fou?%V6aOi49G6n(CnQ z!>(bHU0F_-#qi7V5Zm|Rb#Y|l?#R=x?oDlY=<4qI)i-@6!|PwfFA;p?!!McY!!JF- z;Fq3Y@Jl5O$ght+HNVFA@Jp$}*1DylS}6$yRiWcdw(q?9;jpQHSyA%p%q!nvH(lD^ z{N!iBD{B~dC4;hDUa8bvUKt5GuZ#qpS5Cq}yt2wZHLu3{@Jfv>b-cAN{GzQ!a*x_~ zetrA7+BbG@IBRlW;=7&qMi-y?neb}@@k<2z`S44o`tVCnF!-e>82nNR1M+LXPtC7! zKKxQ+tEO2P+EjHhdeCuW+jm}F)cw|?3tu@uwr&1JuP@zNb@*q(t7*h55gg{jE1BxU zD?P#Bm7ZYmN+k@)tHVAuulDodm9pQ-8&1@l%`A66X{y*yg2P4Dp+$y`Z;jwI4~9xY z_|xH}c3odIO~>dscb3jTc^qFnzomm&aQpN}R!w%!o)5qlN8WX>wmIt7g29e|v@bnG zoCnt@QgAovg%3=8P44L;&eGJ^;bN~b=Pa#&2hH#}9FB1R0}f-fQ#@bqt9?B);~+N< zW?Ji7np@j(Fa$^MliQ_yNhgcETP*U{F8X*3TlJ!pb*!v$jH(gaE7+!j_jp@JV^xb@ z@i1|2CcX)VLyb{*?Bc4nmbzAao=jM^`Jt7UVfr15X+P|S84c)I6@7Q3f$&I=eob{X z?YI_EuTx$lm0lOa{#iUO@31q9m#gB9RVT}{Ij=OdfjU)lC_74JuB~dX>S$|T)>>2N zWrs&WzAZ6%gI}9)xAVoIt){i1r9D(pE7@ zQL2W+D6a~-^=O5&9p+%+h;cogF1B~nSJkvPx1OTckoWjhbPlS)yQN3p8g^s6qh;X*8A{MCe?}Git16bYhB_8i5rta)u#|_?BpS#_U+;%|7vTbp znCl{7R61H!THg?=!ys&H4&ky-9kIOoce2yC$&{E9!(}5z-7Y)o8e4GrKwX<&uXJ}4 z6=175<}*}=wvnEyZ>S5^8YMMvCGz4knjDON(Dy4EW%Ft^U}uWOXM&TXpY9_n1S z&70pl2!{_C>UAAW%NnbpL+BKPuR!%u@zR@grSUKT%(_3fUB0jF4y$PnEo*GbZn=ce z8K7M*PZz11*1k0-78g31?BdHy-=&~4MUpQTRcAe17|W94TM@2WRHKgNpyJC*EXxEl zg1Drpsr%8!hng3-+cdJQ6ADy( z&f)EGs7nSFa%Ry_4pgd4(0%fZ1bqj_NYHm+oCF{waBytMw30BNhKYEet9f_zqWJc4=U zG{il(OM8k$nL3_*ivGZU!~1Lc{%~P(|0_S9*>~c@279T%RtiKnsgeQNO#5H92oCpQ zvrP42vz}nESx+$7tP&htTs9vr`>2J~6^E`uA8Ge<9OSaNRCK8qEQXu<>IhcOJ&9RK z@#hm{3QUh7n69Qfi~l2cq9`TucMF4b`4O8T21@h)+5WjH1=cT&l;XbUadzJ}|>u~>9-oHz@AFb}KgWD)x z`FV7YpXYN$IpDXNbJH%taXHvv z*vrRA%j^G3>aDWPtwnhc>vzklivPzh`la^fD+|C-+;YnCE(#cU?rcCEwg?va%$+jT zXYSM!jJZ=!Fy>B~AULl3HQS2>;`qx)HK{~8jSJ=`(Wc!b`eHz~>&~(=XI4MutEkp9 zQnYVF_McGk7~J06UKN@zGHaH*vR>#r4D&;pe8k$a zwIq7?_1l*oJ$Tc#|9NNgvAM)@*(cibGul@Xp+s<+?14cjnd(C*J;5N9o?sA4CFBt5 zG#5vmQ28vnX|6@5Jm+Afnd>yICfKvaw>0Q3KU>wF?<0bIbl>r(k1kwdE!lJX6UUtT z(vh{_8{i`XJ0|_psmZPG%0c)0_r_4ESkOreHAgJ0m}}gU6qOUp)cs2Io;`-{95&_k zIe)q~Q*+mz?F&~ex>OSjAqGpTR*@$-6)kM-XQ(j|tn-l%nd&1SdV(PzdV(PzDuK2s z4CiWrsJ$**N+f9&U9xTd{j((m_W5wnKG&ULMZE)z#v3pi&!Q&0b#xxGZ~w{9jt@#K8!;v(4MLvfkvLvcO9ptzo3P+TQ|0;2z}>e{kTw4RVn zYpi-kyPtQ8Ep_?~eky(1>HNbA%)7^D(xOH4dwV4g1B-q|Q9QV1`3J8)^~hn{J|6Ug zd9#1Jh!JxlN08vc(t50|wV&SRum5}yqSwFy~ zzqh^}>B&0&R!%h0CGSe`TaeA+RjsN9aD4L9n&xQ*4_mZcQ!VfOm>?S*!fL)H&gv0*y+Pynd-w}J;7kG zo?tLoB>*Fn!8=_Xok%_gPjnfqraMsAJs5N0fcgy)aU>`{#fB*`%8f zT6Olq6PxgXoO_*Qc3XZoxZ1mkxFXo)LtL5aLtH(=9H4uV_okXT1e2=u_lTBs;)Z9nRwwx=6k z`Q`kkw&l--1oM``({19biXp1pdN<^g)syPdF3K zdn+_{6Y*D<@aJV6r!n`h-Abt?UpidPRMDwcbT!_e!zIi=!7Ul&J&0Q+a#O}?f3Gtu zmG=u7v~EA)MA1&UIO8s-ct0`5HvyZB*2?PJ{xoLXI1TQhiwSwcX z0lHZFc@A-QP)-KZFOZ8rGow1{p7;u1M9wDW6xRKvI6ELGU2~1&?9iNKA73e>4}R`A z9Dh;9?WF5(<3}~uiI20XVbhg1sqYhyz^gN#@FGv^B5wdC@Ed< z{0OD_F>(Bn9k+v;lND!EJh(qb;sa#AZn@rsh5&i|Rlbs(m3vJ{UoFlic_2gbU2jl7 zsWRR4IK!XHbB2#{K{6^2E+#Bc#)WKeLh1yB&AXD`#i`|;c3-jE5sgH-;vYw}P zLl<}lFQZIB9RN(%t6LJu_092z;RW_o zHHy0qJe-Ynt1?_%AlPn#D|&Dy!H9O@p8JNLTX&d%f^c(t^wO@=0hQbguGa%d?gFJS zj4<9i=IF&-ZvY(${otOn!N=2`OrPh>o;qzgXC*cG+g(9+BC9Hc+g44G4Pt|bFpJd% zS*eUI46=ZXH3ZoZ8Cw!$Wir+nWJ6`FImm)Cwlv6w$yi&E4VSTHK{i6hP71Pe89OD& zM#|XAAWnfryI%;h3K{DNve7aY4ze*a)){1DWehlvld&~Hwx5hegKWHvtqrpMWvn;I zCdgPK$PSRPbwM^!#?nD{pp5ke*+DY4A;>1l*v256EMsQ`*}?1(qRW{+k@OH^@$qvAZ#d>2rR0(_K5=Yl;Ee z*_X~Fdf}wn1)tIkXS1iu%N%G6q>`?_%>PPaSw=$ILaH|n`OYpsZF!L0%kC>fFYi}* z>q$v~o!^(>A8`D^OjNNvoC5HN68I1XlQ9zn*dBn${io8wt(5%;Lj%|Fadwz$mb_Uj zn^&I>U*ZMRv_A`~Ktc8>du%A%%YKZW7Ga(l7F8+x2}qb_Nd?%?phT6XaZRWI`vnwa zj_nj+zk&`_nGJXA0DBT@K&6=0Qh+@TKDoL~m`MTlYbZ1arumZx*t6h)O3)0W0DBHo zwu1XuL;>~!F!M8o0_=A*DLFpJ0rs-jU)T5vus?ve-i#4ofAn&>=1zdUhH2d2s&E}{ z1MEK`4~~HoU~hoy3U6uI1lXHi7d4Y6!2Zmc?l2x;e}N_9-<&XF0_+_ROV@e{uy?^b zhqld4%4`X+ze6EQdnLd=zyxH7r)#JL*oPh`O$#N!KH}~sNPvBUI#e@RHc5c?_#Mx# z0Jn-;OOUXNp;gLDFj>(265xX&JEkoX;Hcia12n+PR2I()3Gg5W7EF);A5M84`y;^1 zF{SIqM}Ut)Y18ru@X^3t6$t7cmS_+eZ)q!e0+5%Hja#C6Z5d@6*_Fe?IlI*@dQ z0tQ8Z&qOyoQzF1;A%|{61o&)7g4cD;dU&l|nnxpBvsl+P{>a06`ZTRU{}+ z$5LJe=|QDX+$ZvyGG5JV(IC{UI01*6nCjDBkk|8tWqc4{gbboiy2iNDyT-VbFUDZ= zT9fXZr96aDkPWTw>&74IF6B*S?59*=DRnl|++A4D%UTx%`BL6m#v6GX(MOvHRJ!cj zvNGPxmvd&#pA_IHg9G?54R`lrwD}dusYPOmwpQ?!RMV-TQU*7`(#6o(RC4h;jdxJq zRS;A8ZGVOwLIZp?23$Im%IcwmZcf{1wTnkEsd5lSyDcTadmugTg&YBXI;2Ox^C7@v zkZt2yfdG%YW$@*CfG6D??tlYg-uJfwo^czc1x74XUsLnAR|LDAP^B_BFHb5!hadj;WBj1$y$fMsD*(L zL4lDd;J&J2S5mQQ{3~coex?UC6oDaYiO({Q#S@Wm76y?Da77f+b>;t9iE zJYm+0CyaXWgh?-+FzCe-=Dc{qm={l&^5O|YUOZvOizkeD@q`I4o-p9W6Xv^k!gv=? znC{{U!(BXKwu>i>cJYMCE}k&h#S`YbcurPNnCjvkhPrsdOczfW>Ea0!T|8l+izm!; z@q}?Mo-obD6Nb5X!Ymh080F##lUzJukc%hGaq)yPE}k&O#S@0Oc)|=9PZ;6i2@_mA zVStM#%y038@hzS(y~PuTw|K(r7Ec)6cm^F_=!6pheQ*agqTPQe(f^#W2pMnc0*h;}g6kJTfr4(FF!4(vIg@UUnxQ2pjDY%Y; zZ&L7W3T~j_Mhb4C;1&vQqu>q-?xf%@3U+-LWaI362;UHwER4cX7>~8={#cz(zDsM4To3XNM$C~aGtmaO`I<6DB zd$4xv#i|XSs%!&RYMW8|Y^=`C$GU7AR%DlgbyuRcYp@dg2G(FVVD)t~aJd7u-;K4_ zy;x=a0PCwgSXn)W)_w*CKLG~+n$@u9SuJ}Rt-s3Zf&W7GHe1BrWew~fz~&RSgxf5{ z1FVq`V@-S%Yv$uv3qJtsY0h@Dd!(2E13CQ5r_Z>DJurRdJ?z2hN8H06_9#O%VeC{W zhc94le;QWn9VmlUmaM@#hv5S-knzLmGe$jfAA8(l53!%(f0DQvqke8c76I~01F{&9 zCk#jkkf#ht6ClqRkQP9GV?bH~`Ky-L1M-#u=>gEU6K>lVx;()woK$3vGZ$MIj z{KJ4`0Qsi@Sr5p^2BaU5e;JTX(`Qt0Zh$s>va%jyg|Rh|u^x<#DCGKd$mCkKg2nJ( zFV0%xkoW}qHcPTyY#kQJDfTQ&LwYmpBi6@8s2 zh@Hu=!}0B%?2CL4+rpn_XY<$CIs6~&OOQV-@1;EQZz_4LB}{FJDIfF@A4F;gpi%?0 zg+N0L&^ZJeYJkoq&@cmZK7mFUpbH2z(g1BGP=x`yh(Kcu(8UBAXMipx(0BuMIe{h^ zpeqP8(ExpgKnEG1s|YmN09`|%Lk!Th1e#)iuJbs%7(8XrSQYFdXuIvuQWvujy9B!6 zQt@n2cglPz~7nwBl{|QpIybv*wuU@yN1tZU*k3GT5t>dE{a=Y zCAZj<)cWD7^=S|BX{65qnqh#xO`szT&u6ZpM| z-|P6j2fa*2z%cyA<2MDrIryD`ADlus4#{~GzYX~9!0%4{9>DKW{7?^n0lz=t_YQs^ z!>9=02TuTNGJbGGvNqv&0e-uI3uXy>E`F=}|VwzvvdI`D>KR14mg;_V#w ztp;zGi#G@sn}@e^#oK1Q9gepP+_dp{+vRYM4F%^eMt>V;Vh}<(!YJjd8C;EFs#zG^ z--j8v7wX~1Fa@7rkFcj<4!(%DmthjV&VJ6`1oS=jB>MonwVeG1*Iho3VgCXz#~$i< z_Int9uVVPW#;3A3paTAjAI08=8u$yZ#tvj7dyluUe?T34$WOyoVU+y~D|ef3z~0^_ z?BMO-L-OE{seaz=zF*47>c9S)f&$q_%1=e_ef;E|+XdTLHt(m;es^ksUCcfA@lQ&rx z@MdcpZ?ksucI!TVvR%SYu}k?E?793jdmdkHui~9{CtqX7d5^u0$L!6#*Zv}3XK&>x zdplomU&S}rU*l)kH}cK)&3uc!i=Pc;a-O}1pKtHwTkT)*ZT3_A68m}nRp`e{{!h`8 zGXC#Yw3i!-7H^uORc}hss+>yE;;kq}OZl9!{XeK^zx?l@Xwiv6idJRGQM5$%Tt%xh zgK3J^CpQ$Wky|NRz%Va6ik5QVO(|OSrWCDuQ;HUEnxe&a9b?VC`v zZ$Z)i6^iy9DB8b6(Y_Bw`%fs^kNAU7osU|aKW+`;PgsNb(^eUO0c!LmYXtw3RnFhA zM)P;9G5kHK)Q_$GEoL2P1+0Utq1GYRSnE)0yfxLDY)wP#2y3P_%c`{ITAQpRtuw7- ztP8ATt!>uv)^6)_)_qo$U1C++rB=N?*IH=LvzFMatdQMlwb*fMslCoxW^cBZ+h4R+ z*jufY_I9hozRFrIzErR`r?8T%=#-+tcO0!4ep z|0&wfLec)4TC`vNcTlwGL?K11vg9aQ9~}BgZ_PX^A_NH|`d(XOoePG?hxpgxyv2N$XtUGwQbr&CR-OUfM z?%`9cd-+uB`>-#6z>l&XhE2JLS6h$rM(Z)&V*Qk_w0_1+))PEtJ;OIxzvi2) z=lBlmd47}i62H@Wncr>wkw0L)3Pt-m6zv;Ow10-8eH)7QZ&0-FLeYKzMf(pZ+K-`V zKjH7$7XR3`;Zj^`1?+$|)DBu>?P1n1IW*=_bc_DS|0`(%5seX9K{`wR9{cG!O2jzZC5$&EDw fzA_r)>oA;QbMxK8g2Qy_O}!ZYFP+NgIraYl22;}N literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jrxml new file mode 100644 index 000000000..aa2a2938e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasRequisicaoDetalhado.jrxml @@ -0,0 +1,298 @@ + + + + + +