diff --git a/pom.xml b/pom.xml index bad86a0bc..c21b156bf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.19.0 + 1.19.1 war diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamentoFinanceiroTrecho.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamentoFinanceiroTrecho.java index 73e940b62..f2a414fa0 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamentoFinanceiroTrecho.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamentoFinanceiroTrecho.java @@ -8,11 +8,14 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.Timestamp; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.TreeSet; @@ -39,137 +42,188 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); - String sqlCombinacoes = gerarCombinacaoTrechos(parametros); - StringBuilder sql = getSQL(parametros, sqlCombinacoes); - - NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString()); - - stmt.setInt("EMPRESA_ID", Integer.valueOf(parametros.get("EMPRESA_ID").toString())); - stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); - stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); - - ResultSet rset = stmt.executeQuery(); + StringBuilder paradasIds = new StringBuilder(); + @SuppressWarnings("unchecked") + Map> mapRutaTrecho = (Map>) parametros.get("MAPRUTATRECHO"); - rset.setFetchSize(500); + for (Entry> entry : mapRutaTrecho.entrySet()) { + if(entry.getValue() != null && !entry.getValue().isEmpty()) { + paradasIds.append(entry.getValue().get(0).getOrigenId()+","+entry.getValue().get(entry.getValue().size()-1).getOrigenId()+","); + } + if (paradasIds.length() > 0) { + paradasIds.delete(paradasIds.length() - 1, paradasIds.length()); + } - while (rset.next()) { + String sqlCombinacoes = gerarCombinacaoTrechos(parametros); + StringBuilder sql = getSQL(parametros, sqlCombinacoes, paradasIds, entry.getKey() ); + paradasIds = new StringBuilder(); - Map dataResult = new HashMap(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString()); - dataResult.put("LINHA", rset.getString("linha")); - dataResult.put("NUMLINHA", rset.getString("numLinha")); - dataResult.put("SENTIDO", rset.getString("sentido")); - dataResult.put("SERVICO", rset.getString("servico")); - dataResult.put("HORARIO", rset.getString("horario")); - dataResult.put("ORIGEM", rset.getString("origem")); - dataResult.put("DESTINO", rset.getString("destino")); - //Quantidade de assentos do diagrana autobus - BigDecimal assentos = limpaNulo(rset.getBigDecimal("assentos")); - BigDecimal tarifa = limpaNulo(rset.getBigDecimal("tarifa")); - BigDecimal totPassageiros = BigDecimal.ZERO; - BigDecimal totReceita = BigDecimal.ZERO; - Integer viagens =0; - - BigDecimal segReceitaOpe = limpaNulo(rset.getBigDecimal("'2'_RECEITA_OPE")); - Integer segQtde = rset.getInt("'2'_QTDE"); - BigDecimal segTot = limpaNulo(rset.getBigDecimal("'2'_TOT")); - totPassageiros = totPassageiros.add(segTot); - totReceita = totReceita.add(segReceitaOpe); - viagens = viagens + segQtde; - - BigDecimal terReceitaOpe = limpaNulo(rset.getBigDecimal("'3'_RECEITA_OPE")); - Integer terQtde = rset.getInt("'3'_QTDE"); - BigDecimal terTot = limpaNulo(rset.getBigDecimal("'3'_TOT")); - totPassageiros = totPassageiros.add(terTot); - totReceita = totReceita.add(terReceitaOpe); - viagens = viagens .intValue() + terQtde.intValue(); - - BigDecimal quaReceitaOpe = limpaNulo(rset.getBigDecimal("'4'_RECEITA_OPE")); - Integer quaQtde = rset.getInt("'4'_QTDE"); - BigDecimal quaTot = limpaNulo(rset.getBigDecimal("'4'_TOT")); - totPassageiros = totPassageiros.add(quaTot); - totReceita = totReceita.add(quaReceitaOpe); - viagens = viagens.intValue() + quaQtde.intValue(); - - BigDecimal quiReceitaOpe = limpaNulo(rset.getBigDecimal("'5'_RECEITA_OPE")); - Integer quiQtde = rset.getInt("'5'_QTDE"); - BigDecimal quiTot = limpaNulo(rset.getBigDecimal("'5'_TOT")); - totPassageiros = totPassageiros.add(quiTot); - totReceita = totReceita.add(quiReceitaOpe); - viagens = viagens.intValue() + quiQtde.intValue(); - - BigDecimal sexReceitaOpe = limpaNulo(rset.getBigDecimal("'6'_RECEITA_OPE")); - Integer sexQtde = rset.getInt("'6'_QTDE"); - BigDecimal sexTot = limpaNulo(rset.getBigDecimal("'6'_TOT")); - totPassageiros = totPassageiros.add(sexTot); - totReceita = totReceita.add(sexReceitaOpe); - viagens = viagens.intValue() + sexQtde.intValue(); - - BigDecimal sabReceitaOpe = limpaNulo(rset.getBigDecimal("'7'_RECEITA_OPE")); - Integer sabQtde = rset.getInt("'7'_QTDE"); - BigDecimal sabTot = limpaNulo(rset.getBigDecimal("'7'_TOT")); - totPassageiros = totPassageiros.add(sabTot); - totReceita = totReceita.add(sabReceitaOpe); - viagens = viagens.intValue() + sabQtde.intValue(); - - BigDecimal domReceitaOpe = limpaNulo(rset.getBigDecimal("'1'_RECEITA_OPE")); - Integer domQtde = rset.getInt("'1'_QTDE"); - BigDecimal domTot = limpaNulo(rset.getBigDecimal("'1'_TOT")); - totPassageiros = totPassageiros.add(domTot); - totReceita = totReceita.add(domReceitaOpe); - viagens = viagens.intValue() + domQtde.intValue(); - dataResult.put("VIAGENS", new BigDecimal(viagens)); - log.info("VIAGENS: " + viagens ); - dataResult.put("ASSENTOS", assentos); - dataResult.put("TARIFA", tarifa); - dataResult.put("TOT_PASSAGEIROS", totPassageiros); - dataResult.put("TOT_RECEITA", totReceita); - - dataResult.put("SEG_RECEITA_OPE", segReceitaOpe); - dataResult.put("SEG_QTDE", new BigDecimal(segQtde)); - dataResult.put("SEG_TOT", segTot); - dataResult.put("SEG_FIN", calculaMedia(segReceitaOpe, tarifa, segQtde, assentos)); - - dataResult.put("TER_RECEITA_OPE", terReceitaOpe); - dataResult.put("TER_QTDE", new BigDecimal(terQtde)); - dataResult.put("TER_TOT", terTot); - dataResult.put("TER_FIN", calculaMedia(terReceitaOpe, tarifa, terQtde, assentos)); - - dataResult.put("QUA_RECEITA_OPE", quaReceitaOpe); - dataResult.put("QUA_QTDE", new BigDecimal(quaQtde)); - dataResult.put("QUA_TOT", quaTot); - dataResult.put("QUA_FIN", calculaMedia(quaReceitaOpe, tarifa, quaQtde, assentos)); - - dataResult.put("QUI_RECEITA_OPE", quiReceitaOpe); - dataResult.put("QUI_QTDE", new BigDecimal(quiQtde)); - dataResult.put("QUI_TOT", quiTot); - dataResult.put("QUI_FIN", calculaMedia(quiReceitaOpe, tarifa, quiQtde, assentos)); - - dataResult.put("SEX_RECEITA_OPE", sexReceitaOpe); - dataResult.put("SEX_QTDE", new BigDecimal(sexQtde)); - dataResult.put("SEX_TOT", sexTot); - dataResult.put("SEX_FIN", calculaMedia(sexReceitaOpe, tarifa, sexQtde, assentos)); - - dataResult.put("SAB_RECEITA_OPE", sabReceitaOpe); - dataResult.put("SAB_QTDE", new BigDecimal(sabQtde)); - dataResult.put("SAB_TOT", sabTot); - dataResult.put("SAB_FIN", calculaMedia(sabReceitaOpe, tarifa, sabQtde, assentos)); - - dataResult.put("DOM_RECEITA_OPE", domReceitaOpe); - dataResult.put("DOM_QTDE", new BigDecimal(domQtde)); - dataResult.put("DOM_TOT", domTot); - dataResult.put("DOM_FIN", calculaMedia(domReceitaOpe, tarifa, domQtde, assentos)); + stmt.setInt("EMPRESA_ID", Integer.valueOf(parametros.get("EMPRESA_ID").toString())); - this.dados.add(dataResult); + + stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); + stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); + + ResultSet rset2 = stmt.executeQuery(); + while (rset2.next()) { + + Map dataResult = new HashMap(); + dataResult.put("LINHA", rset2.getString("linha")); + dataResult.put("NUMLINHA", rset2.getString("numLinha")); + dataResult.put("SENTIDO", rset2.getString("sentido")); + dataResult.put("SERVICO", rset2.getString("servico")); + dataResult.put("HORARIO", rset2.getString("horario")); + dataResult.put("ORIGEM", rset2.getString("origem")); + dataResult.put("DESTINO", rset2.getString("destino")); + //Quantidade de assentos do diagrana autobus + BigDecimal assentos = limpaNulo(rset2.getBigDecimal("assentos")); + BigDecimal tarifa = limpaNulo(rset2.getBigDecimal("tarifa")); + BigDecimal totPassageiros = BigDecimal.ZERO; + BigDecimal totReceita = BigDecimal.ZERO; + Integer viagens =0; + + BigDecimal segReceitaOpe = limpaNulo(rset2.getBigDecimal("'2'_RECEITA_OPE")); + Integer segQtde = rset2.getInt("'2'_QTDE"); + BigDecimal segTot = limpaNulo(rset2.getBigDecimal("'2'_TOT")); + totPassageiros = totPassageiros.add(segTot); + totReceita = totReceita.add(segReceitaOpe); + viagens = viagens + segQtde; + + BigDecimal terReceitaOpe = limpaNulo(rset2.getBigDecimal("'3'_RECEITA_OPE")); + Integer terQtde = rset2.getInt("'3'_QTDE"); + BigDecimal terTot = limpaNulo(rset2.getBigDecimal("'3'_TOT")); + totPassageiros = totPassageiros.add(terTot); + totReceita = totReceita.add(terReceitaOpe); + viagens = viagens .intValue() + terQtde.intValue(); + + BigDecimal quaReceitaOpe = limpaNulo(rset2.getBigDecimal("'4'_RECEITA_OPE")); + Integer quaQtde = rset2.getInt("'4'_QTDE"); + BigDecimal quaTot = limpaNulo(rset2.getBigDecimal("'4'_TOT")); + totPassageiros = totPassageiros.add(quaTot); + totReceita = totReceita.add(quaReceitaOpe); + viagens = viagens.intValue() + quaQtde.intValue(); + + BigDecimal quiReceitaOpe = limpaNulo(rset2.getBigDecimal("'5'_RECEITA_OPE")); + Integer quiQtde = rset2.getInt("'5'_QTDE"); + BigDecimal quiTot = limpaNulo(rset2.getBigDecimal("'5'_TOT")); + totPassageiros = totPassageiros.add(quiTot); + totReceita = totReceita.add(quiReceitaOpe); + viagens = viagens.intValue() + quiQtde.intValue(); + + BigDecimal sexReceitaOpe = limpaNulo(rset2.getBigDecimal("'6'_RECEITA_OPE")); + Integer sexQtde = rset2.getInt("'6'_QTDE"); + BigDecimal sexTot = limpaNulo(rset2.getBigDecimal("'6'_TOT")); + totPassageiros = totPassageiros.add(sexTot); + totReceita = totReceita.add(sexReceitaOpe); + viagens = viagens.intValue() + sexQtde.intValue(); + + BigDecimal sabReceitaOpe = limpaNulo(rset2.getBigDecimal("'7'_RECEITA_OPE")); + Integer sabQtde = rset2.getInt("'7'_QTDE"); + BigDecimal sabTot = limpaNulo(rset2.getBigDecimal("'7'_TOT")); + totPassageiros = totPassageiros.add(sabTot); + totReceita = totReceita.add(sabReceitaOpe); + viagens = viagens.intValue() + sabQtde.intValue(); + + BigDecimal domReceitaOpe = limpaNulo(rset2.getBigDecimal("'1'_RECEITA_OPE")); + Integer domQtde = rset2.getInt("'1'_QTDE"); + BigDecimal domTot = limpaNulo(rset2.getBigDecimal("'1'_TOT")); + totPassageiros = totPassageiros.add(domTot); + totReceita = totReceita.add(domReceitaOpe); + viagens = viagens.intValue() + domQtde.intValue(); + dataResult.put("VIAGENS", new BigDecimal(viagens)); + log.info("VIAGENS: " + viagens ); + dataResult.put("ASSENTOS", assentos); + dataResult.put("TARIFA", tarifa); + dataResult.put("TOT_PASSAGEIROS", totPassageiros); + dataResult.put("TOT_RECEITA", totReceita); + + dataResult.put("SEG_RECEITA_OPE", segReceitaOpe); + dataResult.put("SEG_QTDE", new BigDecimal(segQtde)); + dataResult.put("SEG_TOT", segTot); + dataResult.put("SEG_FIN", calculaMedia(segReceitaOpe, tarifa, segQtde, assentos)); + + dataResult.put("TER_RECEITA_OPE", terReceitaOpe); + dataResult.put("TER_QTDE", new BigDecimal(terQtde)); + dataResult.put("TER_TOT", terTot); + dataResult.put("TER_FIN", calculaMedia(terReceitaOpe, tarifa, terQtde, assentos)); + + dataResult.put("QUA_RECEITA_OPE", quaReceitaOpe); + dataResult.put("QUA_QTDE", new BigDecimal(quaQtde)); + dataResult.put("QUA_TOT", quaTot); + dataResult.put("QUA_FIN", calculaMedia(quaReceitaOpe, tarifa, quaQtde, assentos)); + + dataResult.put("QUI_RECEITA_OPE", quiReceitaOpe); + dataResult.put("QUI_QTDE", new BigDecimal(quiQtde)); + dataResult.put("QUI_TOT", quiTot); + dataResult.put("QUI_FIN", calculaMedia(quiReceitaOpe, tarifa, quiQtde, assentos)); + + dataResult.put("SEX_RECEITA_OPE", sexReceitaOpe); + dataResult.put("SEX_QTDE", new BigDecimal(sexQtde)); + dataResult.put("SEX_TOT", sexTot); + dataResult.put("SEX_FIN", calculaMedia(sexReceitaOpe, tarifa, sexQtde, assentos)); + + dataResult.put("SAB_RECEITA_OPE", sabReceitaOpe); + dataResult.put("SAB_QTDE", new BigDecimal(sabQtde)); + dataResult.put("SAB_TOT", sabTot); + dataResult.put("SAB_FIN", calculaMedia(sabReceitaOpe, tarifa, sabQtde, assentos)); + + dataResult.put("DOM_RECEITA_OPE", domReceitaOpe); + dataResult.put("DOM_QTDE", new BigDecimal(domQtde)); + dataResult.put("DOM_TOT", domTot); + dataResult.put("DOM_FIN", calculaMedia(domReceitaOpe, tarifa, domQtde, assentos)); + + this.dados.add(dataResult); + } + + this.resultSet = rset2; } - - this.resultSet = rset; + + Collections.sort(dados, new Comparator> () { + public int compare(Map m1, Map m2) { + return ((String) m1.get("NUMLINHA")).compareTo((String) m2.get("NUMLINHA")); + } + }); + } - private StringBuilder getSQL(Map parametros, String sqlCombinacoes) { + private StringBuilder getSQL(Map parametros, String sqlCombinacoes, StringBuilder paradasIds, Integer rutaId) { StringBuilder sql = new StringBuilder(); - sql.append(" select TB.*, "); + + sql.append("select CASE "); + sql.append("WHEN TB2.TARIFA2 <= TB2.TARIFA THEN TB2.TARIFA2 "); + sql.append(" ELSE TB2.TARIFA "); + sql.append("END AS TARIFA, TB2.* from (SELECT TB.*, "); + sql.append("(SELECT MAX (TF.PRECIO) as tarrifa "); + sql.append("FROM CORRIDA CR, "); + sql.append(" TRAMO TR, "); + sql.append(" RUTA R, "); + sql.append(" RUTA_COMBINACION RC, "); + sql.append(" TARIFA TF, "); + sql.append(" VIGENCIA_TARIFA VT "); + sql.append(" WHERE "); + sql.append(" CR.CORRIDA_ID = TB.SERVICO "); + sql.append(" AND CR.FECCORRIDA BETWEEN :DATA_INICIAL and :DATA_FINAL "); + sql.append(" AND CR.RUTA_ID = TB.RUTAID "); + sql.append(" AND CR.RUTA_ID = R.RUTA_ID AND R.ACTIVO = 1 "); + sql.append(" AND CR.RUTA_ID = RC.RUTA_ID AND RC.ACTIVO = 1 "); + sql.append(" AND RC.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND TF.TRAMO_ID = TR.TRAMO_ID "); + sql.append(" AND TF.MARCA_ID = CR.MARCA_ID "); + sql.append(" AND TF.RUTA_ID = CR.RUTA_ID "); + sql.append(" AND TF.STATUSTARIFA = 'A' "); + sql.append(" AND CR.ACTIVO <> 0 "); + sql.append(" AND TF.ACTIVO = 1 "); + sql.append(" AND TR.ORIGEN_ID in ("+paradasIds+") "); + sql.append(" AND TR.DESTINO_ID in ("+paradasIds+") "); + sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID "); + sql.append(" AND TF.ORGAOCONCEDENTE_ID = R.ORGAOCONCEDENTE_ID "); + sql.append(" AND VT.ACTIVO = 1 "); + sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); + sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); + sql.append(" ) TARIFA, "); sql.append(" (SELECT "); sql.append(" max (TF.PRECIO) "); sql.append(" FROM "); @@ -191,15 +245,15 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { sql.append(" AND TF.RUTA_ID = CR.RUTA_ID "); sql.append(" AND TF.STATUSTARIFA = 'A' "); sql.append(" AND CR.ACTIVO <> 0 "); - sql.append(" AND TF.ACTIVO = 1 "); - sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); - sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); + sql.append(" AND TF.ACTIVO = 1 "); + sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); + sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID "); sql.append(" AND TF.ORGAOCONCEDENTE_ID = R.ORGAOCONCEDENTE_ID "); sql.append(" AND VT.ACTIVO = 1 "); sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID "); - sql.append(" ) TARIFA "); + sql.append(" ) TARIFA2 "); sql.append(" from "); sql.append(" ( "); sql.append(" select * from ( "); @@ -218,7 +272,9 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { sql.append(" TO_CHAR(co.fechorsalidaoriginal ,'HH24:mi') as horario, "); sql.append(" co.CORRIDA_ID as servico, "); sql.append(" ORI.descparada as origem, "); - sql.append(" DES.descparada as destino "); + sql.append(" DES.descparada as destino, "); + sql.append(" ORI.parada_id as ORIGENID, "); + sql.append(" DES.parada_id as DESTINOID "); sql.append(" FROM boleto c "); sql.append(" RIGHT OUTER JOIN corrida co "); sql.append(" on c.CORRIDA_ID = co.CORRIDA_ID "); @@ -243,7 +299,7 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { sql.append(" and co.FECCORRIDA <= :DATA_FINAL "); if (parametros.get("LINHAS") != null && !possuiFiltroTodos("LINHAS")) { - sql.append(" and co.ruta_id IN (" + parametros.get("LINHAS").toString() + ")"); + sql.append(" and co.ruta_id IN (" + rutaId + ")"); } if (sqlCombinacoes != null && !sqlCombinacoes.isEmpty()) { sql.append(" " +sqlCombinacoes+ " "); @@ -252,7 +308,7 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { sql.append(" and c.MOTIVOCANCELACION_ID is null "); sql.append(" GROUP by r.DESCRUTA, r.ruta_id, r.indsentidoida, r.NUMRUTA, da.cantasientos, "); sql.append(" to_char( co.FECCORRIDA, 'D'), TO_CHAR(co.fechorsalidaoriginal ,'HH24:mi'), "); - sql.append(" co.CORRIDA_ID, ORI.descparada, DES.descparada "); + sql.append(" co.CORRIDA_ID, ORI.descparada, DES.descparada, ORI.parada_id, DES.parada_id "); sql.append(" ORDER by r.DESCRUTA, r.indsentidoida desc, to_char( co.FECCORRIDA, 'D') "); sql.append(" ) "); sql.append("PIVOT "); @@ -262,7 +318,8 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { sql.append(" max(passageiros) tot "); sql.append(" for dia in ('1', '2', '3', '4', '5', '6', '7') "); sql.append(") "); - sql.append(") TB"); + sql.append(") TB "); + sql.append(")TB2 "); System.out.println(sql); return sql; } @@ -314,13 +371,6 @@ public class RelatorioAproveitamentoFinanceiroTrecho extends Relatorio { private String gerarCombinacaoTrechos(Map parametros) { - String linhas = (String) parametros.get("LINHAS"); - String[] arrayLinhas = null; - - if(linhas != null) { - arrayLinhas = linhas.split(";"); - } - @SuppressWarnings("unchecked") List trechos = (List) parametros.get("TRECHOS"); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jasper index e47611daf..aee616eac 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jrxml index 797292fa3..2b244eb3d 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioAproveitamentoFinanceiroTrecho.jrxml @@ -1,9 +1,9 @@ - + - - + +