From 50b0d138e3f26687276dd9a17dbd8da6a36c144b Mon Sep 17 00:00:00 2001 From: valdevir Date: Tue, 16 Mar 2021 12:27:04 +0000 Subject: [PATCH] fixes bug#21487 qua: dev:Valdir git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105781 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...LinhasAnaliticoSimplificadoSumarizado.java | 461 +++++++++--------- ...nhasAnaliticoSimplificadoSumarizado.jasper | Bin 70672 -> 74075 bytes ...inhasAnaliticoSimplificadoSumarizado.jrxml | 171 ++++--- .../RelatorioResumoLinhasBean.java | 34 ++ 4 files changed, 380 insertions(+), 286 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java index f7aa9126c..a09f1fc42 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java @@ -3,12 +3,13 @@ */ package com.rjconsultores.ventaboletos.relatorios.impl; -import java.math.BigDecimal; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Map; @@ -85,6 +86,12 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato } } + Collections.sort(lsDadosRelatorio, new Comparator() { + @Override + public int compare(RelatorioResumoLinhasBean rel1, RelatorioResumoLinhasBean rel2) { + return rel1.getDESCRUTA().compareTo(rel2.getDESCRUTA()); + } + }); if (lsDadosRelatorio.size() > 0) { setLsDadosRelatorio(lsDadosRelatorio); }else { @@ -110,6 +117,7 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato /** * Obtém SQL, necessário ordenar por prefixo. + * Obs.: Não deve será alterado ordenação pois impactará na lógica de agrupamento por ida/volta * * @param rutaId * @param grupoRutaId @@ -117,235 +125,244 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato */ private String getSql(Integer rutaId, Integer grupoRutaId) { StringBuilder sqlSb = new StringBuilder(); - sqlSb.append(" SELECT SUB.*, "); + sqlSb.append(" SELECT SUB.*, "); sqlSb.append(" (NVL(SUB.PASSAGEIROS,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPA, "); sqlSb.append(" ( ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPE, "); sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0))) RECEITA_KM, "); sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS RECEITA_VIAGEM, "); - sqlSb.append(" (ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) * NVL(SUB.EXTENSAO_KM,0)) AS PAX_KM, "); - sqlSb.append(" (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT TAB.INDSENTIDOIDA, "); - sqlSb.append(" TAB.RUTA_ID, "); - sqlSb.append(" TAB.NUMRUTA, "); - sqlSb.append(" TAB.PREFIXO, "); - sqlSb.append(" TAB.DESCRUTA, "); - sqlSb.append(" TAB.INTERESTADUAL, "); - sqlSb.append(" TAB.GRUPO_LINHA, "); - sqlSb.append(" TAB.EXTENSAO_KM, "); - sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_PEDAGIO,0)) AS RECEITA_PEDAGIO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_EMBARQUE,0)) AS RECEITA_EMBARQUE, "); - sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS_EXTRA,0)) AS VIAGENS_EXTRA, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS,0)) AS VIAGENS, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_TOTAL,0)) AS RECEITA_TOTAL, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, "); - sqlSb.append(" SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, "); - sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS_EQUIVALENTE,0)) AS PASSAGEIROS_EQUIVALENTE, "); - sqlSb.append(" TAB.ASSENTOS AS ASSENTOS "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT TAB1.*, "); - sqlSb.append(" (TAB1.RECEITA_TARIFA + RECEITA_SEGURO + RECEITA_EMBARQUE + RECEITA_PEDAGIO) RECEITA_TOTAL, "); - sqlSb.append(" (NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) VIAGENS_TOTAL, "); - sqlSb.append(" ((NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) * NVL(TAB1.EXTENSAO_KM,0)) KM_RODADO, "); - sqlSb.append(" (SELECT SUM(NVL(PE.EQUIVALENTE,0)) "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT CO.FECCORRIDA, "); - sqlSb.append(" CO.RUTA_ID, "); - sqlSb.append(" BO.PRECIOBASE, "); - sqlSb.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); - sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) "); - sqlSb.append(" FROM RUTA_COMBINACION RS, "); - sqlSb.append(" TRAMO TR "); - sqlSb.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); - sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); - sqlSb.append(" )), 2) EQUIVALENTE "); - sqlSb.append(" FROM CORRIDA CO, "); - sqlSb.append(" BOLETO BO "); - sqlSb.append(" WHERE CO.CORRIDA_ID = BO.CORRIDA_ID "); - sqlSb.append(" AND CO.FECCORRIDA = BO.FECCORRIDA "); - sqlSb.append(" AND BO.ACTIVO = 1 "); - sqlSb.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL "); - sqlSb.append(" OR BO.MOTIVOCANCELACION_ID = 0) "); - sqlSb.append(" GROUP BY CO.FECCORRIDA, "); - sqlSb.append(" CO.RUTA_ID, "); - sqlSb.append(" BO.PRECIOBASE, "); - sqlSb.append(" BO.NUMKMVIAJE "); - sqlSb.append(" ) PE "); - sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA "); - sqlSb.append(" AND PE.RUTA_ID = TAB1.RUTA_ID "); - sqlSb.append(" ) PASSAGEIROS_EQUIVALENTE, "); - sqlSb.append(" (SELECT SUM(NVL(DA.CANTASIENTOS,0)) FROM DIAGRAMA_AUTOBUS DA "); - sqlSb.append(" INNER JOIN ROL_OPERATIVO RO ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID) "); - sqlSb.append(" INNER JOIN CORRIDA CO ON (RO.ROLOPERATIVO_ID = CO.ROLOPERATIVO_ID) "); - sqlSb.append(" INNER JOIN RUTA RU ON (RU.RUTA_ID = CO.RUTA_ID) "); + sqlSb.append(" (ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) * NVL(SUB.EXTENSAO_KM,0)) AS PAX_KM, "); + sqlSb.append(" (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT TAB.INDSENTIDOIDA, "); + sqlSb.append(" TAB.PREFIXO, "); + sqlSb.append(" TAB.DESCRUTA, "); + sqlSb.append(" TAB.RUTA_ID, "); + sqlSb.append(" TAB.NUMRUTA, "); + sqlSb.append(" TAB.INTERESTADUAL, "); + sqlSb.append(" TAB.GRUPO_LINHA, "); + sqlSb.append(" TAB.EXTENSAO_KM, "); + sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); + sqlSb.append(" TAB.DESC_CLASE_SERVICIO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_PEDAGIO,0)) AS RECEITA_PEDAGIO, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_EMBARQUE,0)) AS RECEITA_EMBARQUE, "); + sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS_EXTRA,0)) AS VIAGENS_EXTRA, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS,0)) AS VIAGENS, "); + sqlSb.append(" SUM(NVL(TAB.RECEITA_TOTAL,0)) AS RECEITA_TOTAL, "); + sqlSb.append(" SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, "); + sqlSb.append(" SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, "); + sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS_EQUIVALENTE,0)) AS PASSAGEIROS_EQUIVALENTE, "); + sqlSb.append(" TAB.ASSENTOS AS ASSENTOS "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT TAB1.*, "); + sqlSb.append(" (TAB1.RECEITA_TARIFA + RECEITA_SEGURO + RECEITA_EMBARQUE + RECEITA_PEDAGIO) RECEITA_TOTAL, "); + sqlSb.append(" (NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) VIAGENS_TOTAL, "); + sqlSb.append(" ((NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) * NVL(TAB1.EXTENSAO_KM,0)) KM_RODADO, "); + sqlSb.append(" (SELECT SUM(NVL(PE.EQUIVALENTE,0)) "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT CO.FECCORRIDA, "); + sqlSb.append(" CO.RUTA_ID, "); + sqlSb.append(" BO.PRECIOBASE, "); + sqlSb.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); + sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) "); + sqlSb.append(" FROM RUTA_COMBINACION RS, "); + sqlSb.append(" TRAMO TR "); + sqlSb.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); + sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); + sqlSb.append(" )), 2) EQUIVALENTE "); + sqlSb.append(" FROM CORRIDA CO, "); + sqlSb.append(" BOLETO BO "); + sqlSb.append(" WHERE CO.CORRIDA_ID = BO.CORRIDA_ID "); + sqlSb.append(" AND CO.FECCORRIDA = BO.FECCORRIDA "); + sqlSb.append(" AND BO.ACTIVO = 1 "); + sqlSb.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL "); + sqlSb.append(" OR BO.MOTIVOCANCELACION_ID = 0) "); + sqlSb.append(" GROUP BY CO.FECCORRIDA, "); + sqlSb.append(" CO.RUTA_ID, "); + sqlSb.append(" BO.PRECIOBASE, "); + sqlSb.append(" BO.NUMKMVIAJE "); + sqlSb.append(" ) PE "); + sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA "); + sqlSb.append(" AND PE.RUTA_ID = TAB1.RUTA_ID "); + sqlSb.append(" ) PASSAGEIROS_EQUIVALENTE, "); + sqlSb.append(" (SELECT SUM(NVL(DA.CANTASIENTOS,0)) FROM DIAGRAMA_AUTOBUS DA "); + sqlSb.append(" INNER JOIN ROL_OPERATIVO RO ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID) "); + sqlSb.append(" INNER JOIN CORRIDA CO ON (RO.ROLOPERATIVO_ID = CO.ROLOPERATIVO_ID) "); + sqlSb.append(" INNER JOIN RUTA RU ON (RU.RUTA_ID = CO.RUTA_ID) "); sqlSb.append(" WHERE CO.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') "); - sqlSb.append(" AND RU.RUTA_ID = TAB1.RUTA_ID "); - sqlSb.append(" AND DA.ACTIVO = 1 "); - sqlSb.append(" AND RO.ACTIVO = 1 "); - sqlSb.append(" AND CO.ACTIVO = 1 "); - sqlSb.append(" AND RU.ACTIVO = 1) ASSENTOS "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT RUTA_ID, "); - sqlSb.append(" INDSENTIDOIDA, "); - sqlSb.append(" NUMRUTA, "); - sqlSb.append(" PREFIXO, "); - sqlSb.append(" FECCORRIDA, "); - sqlSb.append(" DESCRUTA, "); - sqlSb.append(" INTERESTADUAL, "); - sqlSb.append(" GRUPO_LINHA, "); - sqlSb.append(" EXTENSAO_KM, "); - sqlSb.append(" RECEITA_SEGURO, "); - sqlSb.append(" RECEITA_BAGAGEM, "); - sqlSb.append(" RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" RECEITA_PEDAGIO, "); - sqlSb.append(" RECEITA_EMBARQUE, "); - sqlSb.append(" SUM(PASSAGEIROS) AS PASSAGEIROS, "); - sqlSb.append(" VIAGENS_EXTRA, "); - sqlSb.append(" VIAGENS, "); - sqlSb.append(" CVE_CLASE_SERVICIO, "); - sqlSb.append(" SUM(PRECIOPAGADO) AS RECEITA_TARIFA "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT RT.RUTA_ID, "); - sqlSb.append(" BL.BOLETO_ID, "); - sqlSb.append(" SUM(BL.PRECIOPAGADO) AS preciototal, "); - sqlSb.append(" BL.preciopagado AS PRECIOPAGADO, "); - sqlSb.append(" RT.INDSENTIDOIDA, "); - sqlSb.append(" RT.NUMRUTA, "); - sqlSb.append(" RT.PREFIXO, "); - sqlSb.append(" CR.FECCORRIDA, "); - sqlSb.append(" RT.DESCRUTA, "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID "); - sqlSb.append(" THEN 'S' "); - sqlSb.append(" ELSE 'N' "); - sqlSb.append(" END INTERESTADUAL, "); - sqlSb.append(" NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA, "); - sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) "); - sqlSb.append(" FROM RUTA_SECUENCIA RS, "); - sqlSb.append(" TRAMO TR "); - sqlSb.append(" WHERE RS.RUTA_ID = RT.RUTA_ID "); - sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); - sqlSb.append(" AND RS.ACTIVO = 1 "); - sqlSb.append(" ) EXTENSAO_KM, "); - sqlSb.append(" NVL(SUM(NVL(BL.IMPORTESEGURO,0)), 0) RECEITA_SEGURO, "); - sqlSb.append(" 0 RECEITA_BAGAGEM, "); - sqlSb.append(" 0 RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" SUM(NVL(BL.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO, "); - sqlSb.append(" SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE, "); - sqlSb.append(" COUNT(DISTINCT BOLETO_ID) PASSAGEIROS, "); - sqlSb.append(" COUNT(DISTINCT "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CR.TIPOSERVICIO_ID = 2 "); - sqlSb.append(" THEN CR.FECCORRIDA "); - sqlSb.append(" || CR.CORRIDA_ID "); - sqlSb.append(" ELSE NULL "); - sqlSb.append(" END) VIAGENS_EXTRA, "); - sqlSb.append(" COUNT(DISTINCT "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CR.TIPOSERVICIO_ID <> 2 "); - sqlSb.append(" THEN CR.FECCORRIDA "); - sqlSb.append(" || CR.CORRIDA_ID "); - sqlSb.append(" ELSE NULL "); - sqlSb.append(" END) VIAGENS, "); - sqlSb.append(" NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO "); - sqlSb.append(" FROM RUTA RT, "); - sqlSb.append(" BOLETO BL, "); - sqlSb.append(" CORRIDA CR, "); - sqlSb.append(" TRAMO TR, "); - sqlSb.append(" VIGENCIA_TARIFA VT, "); - sqlSb.append(" GRUPO_RUTA GR, "); - sqlSb.append(" PARADA PO, "); - sqlSb.append(" PARADA PD, "); - sqlSb.append(" CIUDAD CO, "); - sqlSb.append(" CIUDAD CD, "); - sqlSb.append(" CLASE_SERVICIO CS "); - sqlSb.append(" WHERE RT.RUTA_ID = CR.RUTA_ID "); - sqlSb.append(" AND CS.CLASESERVICIO_ID = RT.CLASESERVICIO_ID "); - sqlSb.append(" AND CR.FECCORRIDA = BL.FECCORRIDA "); + sqlSb.append(" AND RU.RUTA_ID = TAB1.RUTA_ID "); + sqlSb.append(" AND DA.ACTIVO = 1 "); + sqlSb.append(" AND RO.ACTIVO = 1 "); + sqlSb.append(" AND CO.ACTIVO = 1 "); + sqlSb.append(" AND RU.ACTIVO = 1) ASSENTOS "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT RUTA_ID, "); + sqlSb.append(" INDSENTIDOIDA, "); + sqlSb.append(" NUMRUTA, "); + sqlSb.append(" PREFIXO, "); + sqlSb.append(" FECCORRIDA, "); + sqlSb.append(" DESCRUTA, "); + sqlSb.append(" INTERESTADUAL, "); + sqlSb.append(" GRUPO_LINHA, "); + sqlSb.append(" EXTENSAO_KM, "); + sqlSb.append(" RECEITA_SEGURO, "); + sqlSb.append(" RECEITA_BAGAGEM, "); + sqlSb.append(" RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" RECEITA_PEDAGIO, "); + sqlSb.append(" RECEITA_EMBARQUE, "); + sqlSb.append(" SUM(PASSAGEIROS) AS PASSAGEIROS, "); + sqlSb.append(" VIAGENS_EXTRA, "); + sqlSb.append(" VIAGENS, "); + sqlSb.append(" CVE_CLASE_SERVICIO, "); + sqlSb.append(" DESC_CLASE_SERVICIO, "); + sqlSb.append(" SUM(PRECIOPAGADO) AS RECEITA_TARIFA "); + sqlSb.append(" FROM "); + sqlSb.append(" (SELECT RT.RUTA_ID, "); + sqlSb.append(" BL.BOLETO_ID, "); + sqlSb.append(" SUM(BL.PRECIOPAGADO) AS preciototal, "); + sqlSb.append(" BL.preciopagado AS PRECIOPAGADO, "); + sqlSb.append(" RT.INDSENTIDOIDA, "); + sqlSb.append(" RT.NUMRUTA, "); + sqlSb.append(" RT.PREFIXO, "); + sqlSb.append(" CR.FECCORRIDA, "); + sqlSb.append(" RT.DESCRUTA, "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID "); + sqlSb.append(" THEN 'S' "); + sqlSb.append(" ELSE 'N' "); + sqlSb.append(" END INTERESTADUAL, "); + sqlSb.append(" NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA, "); + sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) "); + sqlSb.append(" FROM RUTA_SECUENCIA RS, "); + sqlSb.append(" TRAMO TR "); + sqlSb.append(" WHERE RS.RUTA_ID = RT.RUTA_ID "); + sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); + sqlSb.append(" AND RS.ACTIVO = 1 "); + sqlSb.append(" ) EXTENSAO_KM, "); + sqlSb.append(" NVL(SUM(NVL(BL.IMPORTESEGURO,0)), 0) RECEITA_SEGURO, "); + sqlSb.append(" 0 RECEITA_BAGAGEM, "); + sqlSb.append(" 0 RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" SUM(NVL(BL.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO, "); + sqlSb.append(" SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE, "); + sqlSb.append(" COUNT(DISTINCT BOLETO_ID) PASSAGEIROS, "); + sqlSb.append(" COUNT(DISTINCT "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CR.TIPOSERVICIO_ID = 2 "); + sqlSb.append(" THEN CR.FECCORRIDA "); + sqlSb.append(" || CR.CORRIDA_ID "); + sqlSb.append(" ELSE NULL "); + sqlSb.append(" END) VIAGENS_EXTRA, "); + sqlSb.append(" COUNT(DISTINCT "); + sqlSb.append(" CASE "); + sqlSb.append(" WHEN CR.TIPOSERVICIO_ID <> 2 "); + sqlSb.append(" THEN CR.FECCORRIDA "); + sqlSb.append(" || CR.CORRIDA_ID "); + sqlSb.append(" ELSE NULL "); + sqlSb.append(" END) VIAGENS, "); + sqlSb.append(" NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO ,"); + sqlSb.append(" NVL(CS.DESCCLASE, ' ') DESC_CLASE_SERVICIO "); + sqlSb.append(" FROM RUTA RT, "); + sqlSb.append(" BOLETO BL, "); + sqlSb.append(" CORRIDA CR, "); + sqlSb.append(" TRAMO TR, "); + sqlSb.append(" VIGENCIA_TARIFA VT, "); + sqlSb.append(" GRUPO_RUTA GR, "); + sqlSb.append(" PARADA PO, "); + sqlSb.append(" PARADA PD, "); + sqlSb.append(" CIUDAD CO, "); + sqlSb.append(" CIUDAD CD, "); + sqlSb.append(" CLASE_SERVICIO CS "); + sqlSb.append(" WHERE RT.RUTA_ID = CR.RUTA_ID "); + sqlSb.append(" AND CS.CLASESERVICIO_ID = RT.CLASESERVICIO_ID "); + sqlSb.append(" AND CR.FECCORRIDA = BL.FECCORRIDA "); if (rutaId != null) { - sqlSb.append(" AND CR.RUTA_ID = NVL(:RUTA_ID, CR.RUTA_ID) "); + sqlSb.append(" AND CR.RUTA_ID = NVL(:RUTA_ID, CR.RUTA_ID) "); } if (grupoRutaId != null) { - sqlSb.append(" AND DECODE(:GRUPORUTA_ID, NULL, 1, RT.GRUPORUTA_ID) = DECODE(:GRUPORUTA_ID, NULL, 1, :GRUPORUTA_ID) "); + sqlSb.append(" AND DECODE(:GRUPORUTA_ID, NULL, 1, RT.GRUPORUTA_ID) = DECODE(:GRUPORUTA_ID, NULL, 1, :GRUPORUTA_ID) "); } - sqlSb.append(" AND CR.CORRIDA_ID = BL.CORRIDA_ID "); - sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID "); - sqlSb.append(" AND CR.ORIGEN_ID = PO.PARADA_ID "); - sqlSb.append(" AND CR.DESTINO_ID = PD.PARADA_ID "); - sqlSb.append(" AND PO.CIUDAD_ID = CO.CIUDAD_ID "); - sqlSb.append(" AND PD.CIUDAD_ID = CD.CIUDAD_ID "); - sqlSb.append(" AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+) "); - sqlSb.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); - sqlSb.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); - sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL "); - sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' "); - sqlSb.append(" AND VT.ACTIVO = 1 "); - sqlSb.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); - sqlSb.append(" AND CR.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') "); - sqlSb.append(" AND CR.ACTIVO = 1 "); - sqlSb.append(" GROUP BY RT.RUTA_ID, "); - sqlSb.append(" RT.NUMRUTA, "); - sqlSb.append(" RT.PREFIXO, "); - sqlSb.append(" CR.FECCORRIDA, "); - sqlSb.append(" RT.DESCRUTA, "); - sqlSb.append(" GR.DESCGRUPO, "); - sqlSb.append(" CO.ESTADO_ID, "); - sqlSb.append(" CD.ESTADO_ID, "); - sqlSb.append(" RT.INDSENTIDOIDA, "); - sqlSb.append(" CS.CVECLASE, "); - sqlSb.append(" BL.BOLETO_ID, "); - sqlSb.append(" BL.preciopagado "); - sqlSb.append(" ) DADOS "); - sqlSb.append(" GROUP BY RUTA_ID, "); - sqlSb.append(" INDSENTIDOIDA, "); - sqlSb.append(" NUMRUTA, "); - sqlSb.append(" PREFIXO, "); - sqlSb.append(" FECCORRIDA, "); - sqlSb.append(" DESCRUTA, "); - sqlSb.append(" INTERESTADUAL, "); - sqlSb.append(" GRUPO_LINHA, "); - sqlSb.append(" EXTENSAO_KM, "); - sqlSb.append(" RECEITA_SEGURO, "); - sqlSb.append(" RECEITA_BAGAGEM, "); - sqlSb.append(" RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" RECEITA_PEDAGIO, "); - sqlSb.append(" RECEITA_EMBARQUE, "); - sqlSb.append(" PASSAGEIROS, "); - sqlSb.append(" VIAGENS_EXTRA, "); - sqlSb.append(" VIAGENS, "); - sqlSb.append(" CVE_CLASE_SERVICIO "); - sqlSb.append(" ) TAB1 "); - sqlSb.append(" )TAB "); - sqlSb.append(" GROUP BY TAB.RUTA_ID, "); - sqlSb.append(" TAB.NUMRUTA, "); - sqlSb.append(" TAB.PREFIXO, "); - sqlSb.append(" TAB.DESCRUTA, "); - sqlSb.append(" TAB.INTERESTADUAL, "); - sqlSb.append(" TAB.GRUPO_LINHA, "); - sqlSb.append(" TAB.EXTENSAO_KM, "); - sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); - sqlSb.append(" TAB.INDSENTIDOIDA, "); - sqlSb.append(" TAB.ASSENTOS "); - sqlSb.append(" ) SUB "); - sqlSb.append(" WHERE (DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0) "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" ORDER BY SUB.PREFIXO, "); - sqlSb.append(" SUB.INDSENTIDOIDA DESC "); + sqlSb.append(" AND CR.CORRIDA_ID = BL.CORRIDA_ID "); + sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID "); + sqlSb.append(" AND CR.ORIGEN_ID = PO.PARADA_ID "); + sqlSb.append(" AND CR.DESTINO_ID = PD.PARADA_ID "); + sqlSb.append(" AND PO.CIUDAD_ID = CO.CIUDAD_ID "); + sqlSb.append(" AND PD.CIUDAD_ID = CD.CIUDAD_ID "); + sqlSb.append(" AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+) "); + sqlSb.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); + sqlSb.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); + sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL "); + sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' "); + sqlSb.append(" AND VT.ACTIVO = 1 "); + sqlSb.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); + sqlSb.append(" AND CR.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') "); + sqlSb.append(" AND CR.ACTIVO = 1 "); + sqlSb.append(" GROUP BY RT.RUTA_ID, "); + sqlSb.append(" RT.NUMRUTA, "); + sqlSb.append(" RT.PREFIXO, "); + sqlSb.append(" CR.FECCORRIDA, "); + sqlSb.append(" RT.DESCRUTA, "); + sqlSb.append(" GR.DESCGRUPO, "); + sqlSb.append(" CO.ESTADO_ID, "); + sqlSb.append(" CD.ESTADO_ID, "); + sqlSb.append(" RT.INDSENTIDOIDA, "); + sqlSb.append(" CS.CVECLASE, "); + sqlSb.append(" CS.DESCCLASE, "); + sqlSb.append(" BL.BOLETO_ID, "); + sqlSb.append(" BL.preciopagado "); + sqlSb.append(" ) DADOS "); + sqlSb.append(" GROUP BY RUTA_ID, "); + sqlSb.append(" INDSENTIDOIDA, "); + sqlSb.append(" NUMRUTA, "); + sqlSb.append(" PREFIXO, "); + sqlSb.append(" FECCORRIDA, "); + sqlSb.append(" DESCRUTA, "); + sqlSb.append(" INTERESTADUAL, "); + sqlSb.append(" GRUPO_LINHA, "); + sqlSb.append(" EXTENSAO_KM, "); + sqlSb.append(" RECEITA_SEGURO, "); + sqlSb.append(" RECEITA_BAGAGEM, "); + sqlSb.append(" RECEITA_SEGURO_OUTROS, "); + sqlSb.append(" RECEITA_PEDAGIO, "); + sqlSb.append(" RECEITA_EMBARQUE, "); + sqlSb.append(" PASSAGEIROS, "); + sqlSb.append(" VIAGENS_EXTRA, "); + sqlSb.append(" VIAGENS, "); + sqlSb.append(" CVE_CLASE_SERVICIO, "); + sqlSb.append(" DESC_CLASE_SERVICIO "); + sqlSb.append(" ) TAB1 "); + sqlSb.append(" )TAB "); + //Obs.: Não deve será alterado ordenação pois impactará na lógica de agrupamento por ida/volta + sqlSb.append(" GROUP BY "); + sqlSb.append(" TAB.PREFIXO, "); + sqlSb.append(" TAB.DESCRUTA, "); + sqlSb.append(" TAB.RUTA_ID, "); + sqlSb.append(" TAB.NUMRUTA, "); + sqlSb.append(" TAB.INTERESTADUAL, "); + sqlSb.append(" TAB.GRUPO_LINHA, "); + sqlSb.append(" TAB.EXTENSAO_KM, "); + sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); + sqlSb.append(" TAB.DESC_CLASE_SERVICIO, "); + sqlSb.append(" TAB.INDSENTIDOIDA, "); + sqlSb.append(" TAB.ASSENTOS "); + sqlSb.append(" ) SUB "); + sqlSb.append(" WHERE (DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0) "); + sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); + sqlSb.append(" AND DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0)) != 0 "); + sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); + sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); + sqlSb.append(" ORDER BY SUB.PREFIXO, "); + sqlSb.append(" SUB.INDSENTIDOIDA DESC "); return sqlSb.toString(); } /** - * Preenche objeto de relatório caso seja Ida criar novo objeto e preenche com dados, caso seja Volta concantena/agrupa com o objeto de linha da Ida + * Preenche objeto de relatório caso seja Ida criar novo objeto e preenche com dados, caso seja Volta concantena/agrupa com o objeto de linha da Ida. + * Obs.: Não deve será alterado ordenação pois impactará na lógica abaixo. * * @param rset * @param relatorioBean @@ -360,7 +377,7 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID")); relatorioBean.setNUMRUTA(rset.getString("NUMRUTA")); relatorioBean.setPREFIXO(rset.getString("PREFIXO")); - relatorioBean.setDESCRUTA(rset.getString("DESCRUTA") + (BigDecimal.ZERO.equals(rset.getBigDecimal("INDSENTIDOIDA")) ? " - VOLTA " : " - IDA")); + relatorioBean.setDESCRUTA(rset.getString("DESCRUTA")); relatorioBean.setINTERESTADUAL(rset.getString("INTERESTADUAL")); relatorioBean.setGRUPO_LINHA(rset.getString("GRUPO_LINHA")); relatorioBean.setEXTENSAO_KM(rset.getBigDecimal("EXTENSAO_KM")); @@ -368,12 +385,15 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRECEITA_BAGAGEM(rset.getBigDecimal("RECEITA_BAGAGEM")); relatorioBean.setRECEITA_SEGURO_OUTROS(rset.getBigDecimal("RECEITA_SEGURO_OUTROS")); relatorioBean.setRECEITA_TARIFA(rset.getBigDecimal("RECEITA_TARIFA")); + relatorioBean.setRECEITA_TARIFA_SEGURO(rset.getBigDecimal("RECEITA_SEGURO") !=null ? + rset.getBigDecimal("RECEITA_TARIFA").add(rset.getBigDecimal("RECEITA_SEGURO")) : rset.getBigDecimal("RECEITA_TARIFA") ); relatorioBean.setRECEITA_PEDAGIO(rset.getBigDecimal("RECEITA_PEDAGIO")); relatorioBean.setRECEITA_EMBARQUE(rset.getBigDecimal("RECEITA_EMBARQUE")); relatorioBean.setPASSAGEIROS(rset.getBigDecimal("PASSAGEIROS")); relatorioBean.setVIAGENS_EXTRA(rset.getBigDecimal("VIAGENS_EXTRA")); relatorioBean.setVIAGENS(rset.getBigDecimal("VIAGENS")); relatorioBean.setCVE_CLASE_SERVICIO(rset.getString("CVE_CLASE_SERVICIO")); + relatorioBean.setDESC_CLASE_SERVICIO(rset.getString("DESC_CLASE_SERVICIO")); relatorioBean.setRECEITA_TOTAL(rset.getBigDecimal("RECEITA_TOTAL")); relatorioBean.setVIAGENS_TOTAL(rset.getBigDecimal("VIAGENS_TOTAL")); relatorioBean.setKM_RODADO(rset.getBigDecimal("KM_RODADO")); @@ -384,12 +404,13 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRECEITA_VIAGEM(rset.getBigDecimal("RECEITA_VIAGEM")); relatorioBean.setPAX_KM(rset.getBigDecimal("PAX_KM")); relatorioBean.setPAX_OFERTADO(rset.getBigDecimal("PAX_OFERTADO")); + relatorioBean.setASSENTOS(rset.getBigDecimal("ASSENTOS")); } else { //Volta relatorioBean.setRUTA_ID(rset.getBigDecimal("RUTA_ID")); relatorioBean.setNUMRUTA(relatorioBean.getNUMRUTA() + rset.getString("NUMRUTA")); relatorioBean.setPREFIXO(rset.getString("PREFIXO")); - relatorioBean.setDESCRUTA(relatorioBean.getDESCRUTA() + (BigDecimal.ZERO.equals(rset.getBigDecimal("INDSENTIDOIDA")) ? " - VOLTA " : " - IDA")); + relatorioBean.setDESCRUTA(relatorioBean.getDESCRUTA()); relatorioBean.setINTERESTADUAL(rset.getString("INTERESTADUAL")); relatorioBean.setGRUPO_LINHA(rset.getString("GRUPO_LINHA")); relatorioBean.setEXTENSAO_KM(relatorioBean.getEXTENSAO_KM().add(rset.getBigDecimal("EXTENSAO_KM"))); @@ -397,12 +418,15 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRECEITA_BAGAGEM(relatorioBean.getRECEITA_BAGAGEM().add(rset.getBigDecimal("RECEITA_BAGAGEM"))); relatorioBean.setRECEITA_SEGURO_OUTROS(relatorioBean.getRECEITA_SEGURO_OUTROS().add(rset.getBigDecimal("RECEITA_SEGURO_OUTROS"))); relatorioBean.setRECEITA_TARIFA(relatorioBean.getRECEITA_TARIFA().add(rset.getBigDecimal("RECEITA_TARIFA"))); + relatorioBean.setRECEITA_TARIFA_SEGURO(rset.getBigDecimal("RECEITA_SEGURO") !=null ? + relatorioBean.getRECEITA_TARIFA_SEGURO().add(rset.getBigDecimal("RECEITA_SEGURO")) : rset.getBigDecimal("RECEITA_TARIFA")); relatorioBean.setRECEITA_PEDAGIO(relatorioBean.getRECEITA_PEDAGIO().add(rset.getBigDecimal("RECEITA_PEDAGIO"))); relatorioBean.setRECEITA_EMBARQUE(relatorioBean.getRECEITA_EMBARQUE().add(rset.getBigDecimal("RECEITA_EMBARQUE"))); relatorioBean.setPASSAGEIROS(relatorioBean.getPASSAGEIROS().add(rset.getBigDecimal("PASSAGEIROS"))); relatorioBean.setVIAGENS_EXTRA(relatorioBean.getVIAGENS_EXTRA().add(rset.getBigDecimal("VIAGENS_EXTRA"))); relatorioBean.setVIAGENS(relatorioBean.getVIAGENS().add(rset.getBigDecimal("VIAGENS"))); relatorioBean.setCVE_CLASE_SERVICIO(rset.getString("CVE_CLASE_SERVICIO")); + relatorioBean.setDESC_CLASE_SERVICIO(rset.getString("DESC_CLASE_SERVICIO")); relatorioBean.setRECEITA_TOTAL(relatorioBean.getRECEITA_TOTAL().add(rset.getBigDecimal("RECEITA_TOTAL"))); relatorioBean.setVIAGENS_TOTAL(relatorioBean.getVIAGENS_TOTAL().add(rset.getBigDecimal("VIAGENS_TOTAL"))); relatorioBean.setKM_RODADO(relatorioBean.getKM_RODADO().add(rset.getBigDecimal("KM_RODADO"))); @@ -413,6 +437,7 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRECEITA_VIAGEM(relatorioBean.getRECEITA_VIAGEM().add(rset.getBigDecimal("RECEITA_VIAGEM"))); relatorioBean.setPAX_KM(relatorioBean.getPAX_KM().add(rset.getBigDecimal("PAX_KM"))); relatorioBean.setPAX_OFERTADO(relatorioBean.getPAX_OFERTADO().add(rset.getBigDecimal("PAX_OFERTADO"))); + relatorioBean.setASSENTOS(relatorioBean.getASSENTOS().add(rset.getBigDecimal("ASSENTOS"))); } return relatorioBean; diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jasper index 6e256ffb999d8f5de58d12c3eb7fdef49e57b817..93963dde0408e8ef1cb08690763df8fcb15c4bb7 100644 GIT binary patch literal 74075 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 literal 70672 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%0ALi=IY|lFmsX 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 z zlk-b*o+amba$X?kC31d4&hN;1m7Leed4rrkkn<)veLt z=>x@QTPo=m4zI&;T?GD>Q{zo0$)6Io4yU zu@ZA6)?kjo>PsDBH)6%58EY-r=?x3@6bNq~I~{8(>#&+~9@bGV!V1de$n7eunp}tV zlAEwnavRo2HX`@?urBf-Rzx1dTFBE_1$hpoy~Og_D{MA<1M41Ju;TG9O8*;HIX=ev z#ur%G_!?^(+fbYD*Mhp=)!f>rQQ>~OvZtK@sJDn5}_^C@fr-=8hS zKIbF&Oty#@up@afTg=PY5?;lQ;)~eP{AhLzU&?CuGIlI)VzvAPwv?}6b^OPyo}b3z zd@XC>=dxw|Le|JHV+npGJC0w=j_2!H6Tg);^IxzQelKg~n^_xwl%2qzV(t7{*1=z7 zN&Y*woWIUi@Hg2?{tjEk-(#!!N9;uYIr}mH2Rn&>3#Ioz*cXoFLJ?u7i5NRw3}$P@ zaCU~+m7OVa*jlkCTPG&4v&3X}w%CuIBMxTgiW%S~=k+|U1`JSIz1Rm$n7ElICQRDQ zn9^xwndy=ol ze;RxM`mq68L!grl(3u1})c~y{(CG%~YyzEOfX*e*S_5=GfzC2OKOxXL2IwLJoo9e9 zASh>>DFdiYIPTik#Zx|=aB+``tfTOn_^u{+r9>~XlSushj%>=*2x zY$NZ>?&71_-RP(H@Hy;WzL4F=6YPF|5_1bWK=y+@#T4AA=o`m+K0 zkU)PmKpzw6ZwBa70)1eBK2OPJJKk}OJqy`<4zl??Wb@aM%@-h>FG4n7f^5DF+58Qp z^0$zt-$6ECfo#4C+58{K=4+76*CCs4KsJ95+57`!^N*0tHzAu_Ae(=JY`z8Ad>gX) z4rKFP$mX9RlUV6gGU=2nnY7EPmLKU_e)1&$gj5%RJ~KdH5$Fp8^fiJ0Zh*ED=pP2? zTLOJ!fW9NpKMl~o3AD`seNUi&1wl}i0Q!#sl0E7N17stX;0DMgkY#|P1ab^eUjju8 zP>eu*4A1}q^)o<&2-M#I4I$7#1GE!?1{qYcm)0_|>qeng->4A5Q#8f$>Y5ok{XG=V^S8=y%98gGDd2{h3FO(D=e252gQ zCL5sr2$W}l4j|CJ2IwFH?Qeh%A<%&aXgYxoHb657G|d3bBG91*Xf}an8lVCKxr=p^h$!VzaV+m6I(T2Pj`tH+@)%5r{lyb}fOwS; z6o2D`#J7B~)sGLccH={>Jie1vz=v5!@Zr{Re1vr}A8B30ced8^U93%fSL@e&l=UY* z+WLa;W(&T%J&fnrz z_XPY-#Si7Wm*aOmep~Q+AHToj_XB9&A3w-q1cy^2N8lI7uLHl+@w*T|@F8*sFTKUh zc|_D7X>S(G;NL0WkEZ<2zsYaOIL?;=_x|GUBXk@>ANw(nGD2lWXcj_G`Z1>(p&uEc z;RrqM$BYI;)^|qeQ-t30Vp?w-q2C#yrxAM7k9ofly4eU_fzTiPnCBXylZ;Tyz2bxk z_w(FMq8&oANvybv?T+wp6;5HC$R=^(EzCvq(p#*9RH`YRQjPReX^fc)YbsRM)J~~( z@l$DxkxCH%U-jA|i2tb&@jn$J{=etyD#Q#)?`2U(8llY$s5&u&m;{QuB=1HZu z2;#pE4Hc(s5~p6t`V1APgDykG8NfsSIaAF+2=dQ0ArON6^9m2gA^-d+KLq*b$NC|X z|IfWLIki6(qV|99$3*)*)|KAE(SBayE7( ziF4tt0pfm%I3JrMMqn*zz@Ji zyaV|?d>XdBP3MpCS=f!1&wtGeu}7?kzs~1l)7D}9&%7MFrYiVnyc%1W7VvHSNNgWk zEF69ecJ9=O!MqN;YU;&k-iZAz2{E2GWA90e*q^tHS-eBcfdQ1E=_PAAf7zPJU$N%%SFKY1hP8J#fy{)Kfd|I)gFe{J2#zp?J(+pLHAch+P4d+T}rgY}}YtT%*h{ZT}%_e3A-1JU35 zN(`{R5kqVyhT4`GVGj@^?ZIM{JxYwWcNcru6T}#MAF-Exkl5RvCMMcNVv=1frr6aY z&ptxzZ=Wj;urCmY*iVXS_A_Fpy;aPzw}}GB7KKhk6gxx2d}o*_b8$1=>1+@` zcJ3A@IroXvoX5rK&QoHo^O9KS{8pUnyeZCe-Vzr&ABu~dPsC-;R&lwrOH zu62iq>)c^ty_+L$a>t5W-CS{-n9nc`k|zPQgV6`S2f;z4(bc+{;EkGT!v zDfa~Nw3`&qx~Gcg+%@7w_gwLkdx7|!d%1YUy+XY1UN7Eo*NZpZEnXuj?h(bl3%7nEa8)Y5D_O=dY6Rbm7t~G<@S+m)}PyTE{bx5n}Iz;*aRCpaCH4SRI4w0Ic3Xz(U3TZW6$JA=N4rw)A zhqRimLt0JOA+4tCkXF-mNUP~8t)}acR?`s*sOc2Sq^46N zQfj&mX*FGiJT+a1w3@C%T1{7FdTP23X*FHP)M~m8q5Y($>k!&cYPt@g{iLSr5VikW zPiy@@q^6_j9ipaFK08KDS0we+bcDb(Pfgb$t)}acR?`&`JvCj2w3@DCYBgQsq?-O@ zKp#+Qx>W^zU;)40I+EXLE#@1nWB5j^hTmh=@rSK?D7TILStzT&wwj^Dw(!@jcK){2 zAr;q;tyTOp>mo{Z#C4 zT_t8&KNoYX>qMD#y*S*uNgQQu5H;3q;yCMe(QIuLtE{`kkFEQ}I_rLMj`g6p%z8-t z%z8}RXgw}ASWk<)t!Ko2)^p-<>v{2%^^$nWdRhF|dPTfxy(->uJxsrXMJr=x4yAvTHCDo)^}E^^}V&o z`oUUaTULW@TM0XACG9@eO1rM?Ge_s_DJgndz5vjJ=(g<-otv> z9%DUb?`1u2?`^$kPqf~!Cs}{Ar&#aVdDaK^{?=Fa0oFJ6AvUw8*_J)i9$?S12ipbq zD7(@xcxyBsm9>>|4w&_!^Mw2!clw$HVXu`jTf+E3bb_A~Y}d#l}O zZ?l^m+s4RfpWqC!+nr(d3Ma>2>5R31?Bv=fIeGSJ&UE{9XQsW@nQyOiO6_xpp8w>eMQzi?i% zH#)zy?{(g^?{nU=H#;BN4?3UNk2+iJ$DD2UQ?6}4?MCcp-68gK?lAjBH^+X-9c%y2 z&9z@~^X%8%>Gm7$O#4lDzP-gQwcl|U+3&hb?DyO{`)_W8{gHcu{jr<0KX*^Hzi`*s z|8UQ>zjiOMzjZISx4Bo?|8cLkzjxO=!rkIn?%Phpecy??A2~7i?@oXBYiF?ggEJ%| zoZ*rF&WOk$XV=IyXH;Z{lM^X+_K1`?dq$3M_KGZaCPd=S#7LtvInv=wiL7w;i=6K4 zA34)GIC7zLNaPY{M&uf2X5@NjPUH@!AhOY!7kS7jjy&p=MxJ&Khk}kBpS@Ajb#LrW zO?MVE;T*+AImfcSomw`*iL+c-h4Y-_*uhRa)byv)tMR{T`v0owDeL=os_Fl0O}Dk0 zt|(z^HC>0anyy1yP1hlFKFb zYPyjMYPwDZH9akrr=}~KduqB4X*FGkw3@C%T20p>t)}acR?~GztLZwV)pQ-wYC1vz zHJw74)O2b@N=?@xt){Dxr>5(WR?~GT3v0TLsnv8H(rUU6X*FGkw3@C%|9`0ID0+ve z>6FioQPUMuJvCi1+*8waDAby+i0G;5IuvS6*Ep%BKbNMaJ3od#a5BH%Ii26=tl=A+ zb$p|97Qe?ik3a03&mVIx;?Fu4^Itoc^H-gp^4FcK_}k9U`JbKZ_{Yxm{4?h!zSY^l zw>h^7;oL49XQLS4+$9FX4!etUzZmU2DE4w5662l6#8lX2_jjHavz%wd9OpUMeV-SH z!$y0Q^RlRMUJ=JRucD8?AyzrRhb?ytY`1?B=Q!`eUi)Y9Gv{yOM(2I8!TDI+4IA!# z&KKfw=S%UF^R;-%`9}N}_S`p}@5Ecq_u@n62l0t(iLJ2jZgZoS?e?)EZhvctJHQ&| z4zY6Fq1IS;gq7=#wDR0h)^vBYHPhY0n(vOWO5MGzMeg3#5_h82;7+mNwSa-UG)?IF~^{_kNddw}eo_EWw7u_oB4Y%6* zqr1p@&pp!mz&+af%00&V#$9S-1>LsXW%dBK(H`tJ*`wTMdv_?Q6Wn%tA9sa)kh{{J z=Kk0&a!<00-P7!9_jLORcddP{yUxA<%IlNvdG<5zh4xnWA}FwzIktN_l-4VqA?{Vq zF!x#~$Gy%O3xzhdN2UpVvKjZUe1ud~R#&spMbb{gCVorL?SlXM?* zR=Q6)Yuu-uweGXdjqY>K2KPnhZuceUKKFOdI!xO-}3gu5oPt9x!_lzTxW$GtqVhkHe2 zPxt!BUhewH1b0hhqWgAavip8yiu+MyKlksE{oSu42fIH+4vC1!j7a~;%*dd~oXE6D z0YdX4#rRheDUBQvDT^$QR7T>Fsz@V39g#(m6_KMNr$>&CoEfQ&To_pzxg^pMxhAqK za((3Z$Q_ZU$i_%ptk)N=<$R+IH$W>6&u{i`Le4b>(La(?@vZ-0!{W~8Qz|`scd)xm%B_!02 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jrxml index 76573a306..6645aef14 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.jrxml @@ -1,8 +1,8 @@ - - + +