From c9a11cecec72e6adb43f78244f48dbb232c020ff Mon Sep 17 00:00:00 2001 From: julio Date: Fri, 17 Aug 2018 10:09:28 +0000 Subject: [PATCH] bug#11600 dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@84342 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioDevolucaoBilhetes.java | 391 +++++++++++++++--- 1 file changed, 338 insertions(+), 53 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java index d0d68e944..aa2ff0856 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java @@ -67,7 +67,12 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { } } - String sql = getSql(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos, isBpe); + String sql = null; + if (isBpe) + sql = getSqlBpe(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos); + else + sql = getSql(empresaId, puntoVentas, estados, dataVendaInicial, dataVendaFinal, dataDevolucaoInicial, dataDevolucaoFinal, isApenasBilhetesImpressos); + log.debug(sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); @@ -306,10 +311,13 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDev)); } - private String getSql(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos, Boolean isBpe) { + private String getSqlBpe(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) { StringBuilder sql = new StringBuilder(); sql.append("SELECT DISTINCT "); + sql.append(" BORI.BOLETO_ID, "); + sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, "); sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), "); sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, "); sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, "); @@ -321,50 +329,135 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append(" E.EMPRESA_ID AS EMPRESA_ID, "); sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, "); sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, "); - sql.append(" COALESCE(EST_BPE.NOMBESTADO, ESAIDF.NOMBESTADO, EOS.NOMBESTADO, EST.NOMBESTADO) AS ESTADO,"); - sql.append(" COALESCE(EST_BPE.CVEESTADO, ESAIDF.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS UF, "); - sql.append(" COALESCE(EST_BPE.ESTADO_ID, ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) AS ESTADO_ID, "); - sql.append(" COALESCE(EST_BPE.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, "); + sql.append(" EST_BPE.NOMBESTADO AS ESTADO, "); + sql.append(" EST_BPE.CVEESTADO AS UF, "); + sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, "); + sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, "); sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, "); sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, "); sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, "); sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, "); - sql.append(" TO_CHAR(BORI.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_VENTA, "); - sql.append(" TO_CHAR(B.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, "); sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, "); sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, "); sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, "); - sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) as ISENTA, "); + sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, "); sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, "); sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, "); sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, "); - sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL "); - - if (isBpe) { - sql.append(", ") - .append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' "); - sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 1 THEN 'REMARCACAO' "); - sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 2 THEN 'TRANSFERENCIA' "); - sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 3 THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, "); - sql.append(" BPE.CHBPE AS CHBPE, "); - sql.append(" BPE.CHBPE_SUBSTITUICAO AS CHBPE_SUBSTITUICAO, "); - sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000) AS XML_BPE, "); - sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000, 3001) AS XML_BPE_2, "); - sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000, 6001) AS XML_BPE_3 "); + sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL, "); + sql.append(" BPE.TIPOSUBSTITUICAO, "); + sql.append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 1 THEN 'REMARCACAO' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 2 THEN 'TRANSFERENCIA' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 3 THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, "); + sql.append(" BPEORI.CHBPE AS CHBPE, "); + sql.append(" BPE.CHBPE AS CHBPE_SUBSTITUICAO, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000) AS XML_BPE, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 3001) AS XML_BPE_2, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 6001) AS XML_BPE_3 "); + sql.append("FROM BOLETO BORI "); + sql.append(" INNER JOIN MARCA M ON M.MARCA_ID = BORI.MARCA_ID AND M.ACTIVO = 1 "); + sql.append(" INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); + sql.append(" INNER JOIN BPE BPE ON BPE.BOLETO_ID = BORI.BOLETO_ID "); + sql.append(" INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE "); + sql.append(" LEFT JOIN BPE BPEORI ON BPEORI.CHBPE = BPE.CHBPE_SUBSTITUICAO "); + sql.append(" LEFT JOIN BOLETO B ON B.BOLETO_ID = BPEORI.BOLETO_ID "); + sql.append(" INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID "); + sql.append(" INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); + sql.append(" INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); + sql.append(" INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); + sql.append(" INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); + sql.append(" INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); + sql.append(" LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID "); + sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) "); + sql.append(" AND S.RUTA_ID = B.RUTA_ID "); + sql.append(" LEFT JOIN PARADA POS ON POS.PARADA_ID = S.ALIASORIGEN_ID "); + sql.append(" LEFT JOIN CIUDAD COS ON COS.CIUDAD_ID = POS.CIUDAD_ID "); + sql.append(" LEFT JOIN ESTADO EOS ON EOS.ESTADO_ID = COS.ESTADO_ID "); + sql.append(" LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID "); + sql.append(" LEFT JOIN CIUDAD CDS ON CDS.CIUDAD_ID = PDS.CIUDAD_ID "); + sql.append(" LEFT JOIN ESTADO EDS ON EDS.ESTADO_ID = CDS.ESTADO_ID "); + sql.append(" JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID "); + sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 "); + sql.append(" JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID "); + sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 "); + sql.append(" LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 "); + sql.append(" LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID "); + sql.append(" LEFT JOIN BOLETO BANT ON BANT.BOLETO_ID = (CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) ELSE NULL END) "); + sql.append(" LEFT JOIN BPE BPEANT ON BPEANT.BOLETO_ID = BANT.BOLETO_ID "); + sql.append(" LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = COALESCE(BANT.PUNTOVENTA_ID, BORI.PUNTOVENTA_ID,B.PTOVTAVENTA_ID) "); + sql.append("WHERE (BPE.CHBPE_SUBSTITUICAO IS NOT NULL "); + sql.append(" OR (BPE.CODSTAT = 135 AND TO_CHAR(B.FECCREACION, 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) ) "); + sql.append(" AND (BPE.TIPOEVENTO <> 110115 OR BPE.TIPOEVENTO IS NULL) "); + sql.append(" AND (BPEORI.TIPOEVENTO <> 110115 OR BPEORI.TIPOEVENTO IS NULL) "); + if (dataDevolucaoInicial != null) { + sql.append("AND BORI.FECCREACION >= TO_DATE(:dataDevolucaoInicial,'DD/MM/YYYY HH24:MI') "); } - sql.append("FROM BOLETO B "); - sql.append("INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.ACTIVO = 1 "); - sql.append("INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); - sql.append("INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID "); - sql.append("INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); - sql.append("INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); - sql.append("INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); - sql.append("INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); - sql.append("INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); - sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = B.PTOVTAVENTA_ID "); + if (dataDevolucaoFinal != null) { + sql.append("AND BORI.FECCREACION <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') "); + } - /* JOIN COM TABELAS DE ALIAS */ + sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") "); + sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") "); + sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") "); + + sql.append(" UNION ALL "); + + sql.append("SELECT DISTINCT "); + sql.append(" BORI.BOLETO_ID, "); + sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + sql.append(" TO_CHAR(BORI.FECCREACION, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, "); + sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), "); + sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, "); + sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, "); + sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL "); + sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, "); + sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, "); + sql.append(" B.PRECIOBASE AS PRECIOBASE, "); + sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, "); + sql.append(" E.EMPRESA_ID AS EMPRESA_ID, "); + sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, "); + sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, "); + sql.append(" EST_BPE.NOMBESTADO AS ESTADO, "); + sql.append(" EST_BPE.CVEESTADO AS UF, "); + sql.append(" EST_BPE.ESTADO_ID AS ESTADO_ID, "); + sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, "); + sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, "); + sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, "); + sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, "); + sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, "); + sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, "); + sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, "); + sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, "); + sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) AS ISENTA, "); + sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, "); + sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, "); + sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, "); + sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL, "); + sql.append(" BPE.TIPOSUBSTITUICAO, "); + sql.append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 1 THEN 'REMARCACAO' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 2 THEN 'TRANSFERENCIA' "); + sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 3 THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, "); + sql.append(" BPEORI.CHBPE AS CHBPE, "); + sql.append(" '' AS CHBPE_SUBSTITUICAO, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000) AS XML_BPE, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 3001) AS XML_BPE_2, "); + sql.append(" DBMS_LOB.SUBSTR((CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN BPEANT.XMLREGULAR ELSE BPEORI.XMLREGULAR END), 3000, 6001) AS XML_BPE_3 "); + sql.append("FROM BOLETO BORI "); + sql.append(" INNER JOIN MARCA M ON M.MARCA_ID = BORI.MARCA_ID AND M.ACTIVO = 1 "); + sql.append(" INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); + sql.append(" INNER JOIN BPE BPE ON BPE.BOLETO_ID = BORI.BOLETO_ID "); + sql.append(" INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE "); + sql.append(" LEFT JOIN BOLETO B ON B.BOLETO_ID = BORI.BOLETOORIGINAL_ID "); + sql.append(" LEFT JOIN BPE BPEORI ON B.BOLETO_ID = BPEORI.BOLETO_ID "); + sql.append(" INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = BORI.PUNTOVENTA_ID "); + sql.append(" INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); + sql.append(" INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); + sql.append(" INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); + sql.append(" INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); + sql.append(" INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); sql.append("LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID "); sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) "); sql.append(" AND S.RUTA_ID = B.RUTA_ID AND S.ACTIVO = 1 "); @@ -380,30 +473,104 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 "); sql.append("LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 "); sql.append("LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID "); + sql.append("LEFT JOIN BOLETO BANT ON BANT.BOLETO_ID = (CASE WHEN BPEORI.TIPOEVENTO IS NOT NULL THEN COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) ELSE NULL END) "); + sql.append("LEFT JOIN BPE BPEANT ON BPEANT.BOLETO_ID = BANT.BOLETO_ID "); + sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = COALESCE(BANT.PUNTOVENTA_ID, BORI.PUNTOVENTA_ID,B.PTOVTAVENTA_ID) "); + sql.append("WHERE "); + sql.append(" (BPE.CODSTAT = 135 AND TO_CHAR(B.FECCREACION, 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) "); + sql.append(" AND (BPE.TIPOEVENTO <> 110115 OR BPE.TIPOEVENTO IS NULL) "); + sql.append(" AND (BPEORI.TIPOEVENTO <> 110115 OR BPEORI.TIPOEVENTO IS NULL) "); + if (dataDevolucaoInicial != null) { + sql.append("AND BORI.FECCREACION >= TO_DATE(:dataDevolucaoInicial,'DD/MM/YYYY HH24:MI') "); + } - sql.append(isBpe ? "INNER JOIN BPE BPE ON BPE.BOLETO_ID = B.BOLETO_ID " : ""); - sql.append(isBpe ? "INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE " : ""); + if (dataDevolucaoFinal != null) { + sql.append("AND BORI.FECCREACION <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') "); + } - sql.append("LEFT JOIN BOLETO BORI ON BORI.BOLETO_ID = ") - .append(isBpe ? " COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) " : " B.BOLETOORIGINAL_ID "); + sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") "); + sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") "); + sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") "); - sql.append(isBpe ? "LEFT JOIN BPE BPEORI ON BPEORI.BOLETO_ID = BORI.BOLETO_ID " : ""); -// sql.append(isBpe ? "LEFT JOIN TIPO_VENTA TP ON TP.TIPOVENTA_ID = B.TIPOVENTA_ID " : ""); + sql.append("ORDER BY NOMB_EMPRESA, ESTADO, UF, FECHOR_DEVOLUCAO, NUMFOLIOSISTEMA"); - sql.append("WHERE "); - sql.append(isBpe ? " " : " B.MOTIVOCANCELACION_ID IN (31,32,10,37,99,36) AND B.INDSTATUSBOLETO = 'C' AND B.INDCANCELACION = 1 "); - sql.append(isBpe ? " ( BPE.CHBPE_SUBSTITUICAO IS NOT NULL OR (BPE.CODSTAT = 135 AND TO_CHAR(BORI.FECHORVENTA, 'MM/YYYY') < TO_CHAR(B.FECHORVENTA, 'MM/YYYY'))) " : " "); - sql.append(isBpe ? " AND (BPE.TIPOEVENTO <> 110115 OR BPE.TIPOEVENTO IS NULL) " : " "); + return sql.toString(); + } + + private String getSql(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos) { + + StringBuilder sql = new StringBuilder(); + sql.append("SELECT DISTINCT "); + sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), "); + sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, "); + sql.append(" COALESCE(B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, "); + sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL "); + sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, "); + sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, "); + sql.append(" B.PRECIOBASE AS PRECIOBASE, "); + sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, "); + sql.append(" E.EMPRESA_ID AS EMPRESA_ID, "); + sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, "); + sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, "); + sql.append(" COALESCE(ESAIDF.NOMBESTADO, EOS.NOMBESTADO, EST.NOMBESTADO) AS ESTADO,"); + sql.append(" COALESCE(ESAIDF.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS UF, "); + sql.append(" COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) AS ESTADO_ID, "); + sql.append(" COALESCE(EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, "); + sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, "); + sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, "); + sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, "); + sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, "); + sql.append(" TO_CHAR(BORI.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + sql.append(" TO_CHAR(B.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, "); + sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, "); + sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, "); + sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, "); + sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) as ISENTA, "); + sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, "); + sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, "); + sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, "); + sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL "); + sql.append("FROM BOLETO B "); + sql.append("INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.ACTIVO = 1 "); + sql.append("INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); + sql.append("INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID "); + sql.append("INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); + sql.append("INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); + sql.append("INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); + sql.append("INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); + sql.append("INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); + sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = B.PTOVTAVENTA_ID "); + + /* JOIN COM TABELAS DE ALIAS */ + sql.append("LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID "); + sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) "); + sql.append(" AND S.RUTA_ID = B.RUTA_ID "); + sql.append("LEFT JOIN PARADA POS ON POS.PARADA_ID = S.ALIASORIGEN_ID "); + sql.append("LEFT JOIN CIUDAD COS ON COS.CIUDAD_ID = POS.CIUDAD_ID "); + sql.append("LEFT JOIN ESTADO EOS ON EOS.ESTADO_ID = COS.ESTADO_ID "); + sql.append("LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID "); + sql.append("LEFT JOIN CIUDAD CDS ON CDS.CIUDAD_ID = PDS.CIUDAD_ID "); + sql.append("LEFT JOIN ESTADO EDS ON EDS.ESTADO_ID = CDS.ESTADO_ID "); + sql.append("JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID "); + sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 "); + sql.append("JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID "); + sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 "); + sql.append("LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 "); + sql.append("LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID "); + sql.append("LEFT JOIN BOLETO BORI ON BORI.BOLETO_ID = B.BOLETOORIGINAL_ID "); + sql.append("WHERE B.MOTIVOCANCELACION_ID IN (31,32,10,37,99,36) "); + sql.append("AND B.INDSTATUSBOLETO = 'C' "); + sql.append("AND B.INDCANCELACION = 1 "); if (isApenasBilhetesImpressos) { sql.append("AND B.NUMFOLIOPREIMPRESO IS NOT NULL "); } - if (dataVendaInicial != null && !isBpe) { + if (dataVendaInicial != null) { sql.append("AND BORI.FECHORVENTA >= TO_DATE(:dataVendaInicial,'DD/MM/YYYY HH24:MI') "); } - if (dataVendaFinal != null && !isBpe) { + if (dataVendaFinal != null) { sql.append("AND BORI.FECHORVENTA <= TO_DATE(:dataVendaFinal,'DD/MM/YYYY HH24:MI') "); } @@ -415,14 +582,8 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append("AND B.FECHORVENTA <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') "); } - sql.append(isBpe ? "" : "AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); - - if (isBpe) { - sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") "); - } else { - sql.append(estados == null ? "" : "AND COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) IN (" + estados + ") "); - } - + sql.append("AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); + sql.append(estados == null ? "" : "AND COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) IN (" + estados + ") "); sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") "); sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") "); sql.append("ORDER BY NOMB_EMPRESA, ESTADO, UF, FECHOR_DEVOLUCAO, NUMFOLIOSISTEMA"); @@ -430,6 +591,130 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { return sql.toString(); } + // private String getSql(Integer empresaId, String puntoVentas, String estados, Date dataVendaInicial, Date dataVendaFinal, Date dataDevolucaoInicial, Date dataDevolucaoFinal, Boolean isApenasBilhetesImpressos, Boolean isBpe) { + // + // StringBuilder sql = new StringBuilder(); + // sql.append("SELECT DISTINCT "); + // sql.append(" COALESCE(AIDF.DOCFISCAL, COALESCE(BORI.SERIEIMPFISCALORIGINAL, B.SERIEIMPFISCALORIGINAL), "); + // sql.append(" COALESCE(BORI.SERIEIMPFISCAL, B.SERIEIMPFISCAL)) AS AIDF, "); + // sql.append(" COALESCE(B.NUM_BPE, B.NUMFOLIOSISTEMA, B.NUMOPERACION) AS NUMFOLIOSISTEMA, "); + // sql.append(" CASE WHEN COALESCE(BORI.SERIEIMPFISCALORIGINAL,BORI.SERIEIMPFISCAL) IS NOT NULL THEN NULL "); + // sql.append(" ELSE AIDF.SERIE || COALESCE(AIDF.SUBSERIE, '') END AS SERIE_SUBSERIE, "); + // sql.append(" B.NUMFOLIOPREIMPRESO AS FOLIO, "); + // sql.append(" B.PRECIOBASE AS PRECIOBASE, "); + // sql.append(" E.NOMBEMPRESA AS NOMB_EMPRESA, "); + // sql.append(" E.EMPRESA_ID AS EMPRESA_ID, "); + // sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, "); + // sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, "); + // sql.append(" COALESCE(EST_BPE.NOMBESTADO, ESAIDF.NOMBESTADO, EOS.NOMBESTADO, EST.NOMBESTADO) AS ESTADO,"); + // sql.append(" COALESCE(EST_BPE.CVEESTADO, ESAIDF.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS UF, "); + // sql.append(" COALESCE(EST_BPE.ESTADO_ID, ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) AS ESTADO_ID, "); + // sql.append(" COALESCE(EST_BPE.CVEESTADO, EOS.CVEESTADO, EST.CVEESTADO) AS UF_CORRIDA, "); + // sql.append(" COALESCE(EI.ICMS, EST.ICMS) AS ICMSINTERESTADUAL, "); + // sql.append(" NVL(EI.ICMSIM,0) AS ICMSINTERMUNICIPAL, "); + // sql.append(" EI.TRIBUTACAOIMPORTACAO AS TRIBUTACAOIMPORTACAO, "); + // sql.append(" NVL(EI.PORCREDBASEICMS,0) AS PORCREDBASEICMS, "); + // sql.append(" TO_CHAR(BORI.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + // sql.append(" TO_CHAR(B.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_DEVOLUCAO, "); + // sql.append(" (CASE WHEN COALESCE(COS.ESTADO_ID,CO.ESTADO_ID) <> COALESCE(CDS.ESTADO_ID,CD.ESTADO_ID) THEN 1 ELSE 0 END) IS_ESTADUAL, "); + // sql.append(" NVL(EI.PORCREDMUNICIPAL,0) AS PORC_MUNICIPAL, "); + // sql.append(" NVL(EI.PORCREDESTADUAL,0) AS PORC_ESTADUAL, "); + // sql.append(" (CASE WHEN NVL(COALESCE(POS.REGIONMETROPOLITANA_ID,ORI.REGIONMETROPOLITANA_ID) ,-1) = NVL(COALESCE(PDS.REGIONMETROPOLITANA_ID,DES.REGIONMETROPOLITANA_ID),-2) THEN 1 ELSE 0 END) as ISENTA, "); + // sql.append(" NVL(B.PRECIOPAGADO,0) AS PRECIOPAGADO, NVL(B.IMPORTEOUTROS,0) AS IMPORTEOUTROS, NVL(B.IMPORTEPEDAGIO,0) AS IMPORTEPEDAGIO, NVL(B.IMPORTESEGURO,0) AS IMPORTESEGURO, NVL(B.IMPORTETAXAEMBARQUE,0) AS IMPORTETAXAEMBARQUE, "); + // sql.append(" NVL(EI.INDTARIFAMUNICIPAL,0) AS INDTARIFAMUNICIPAL, NVL(EI.INDSEGUROMUNICIPAL,0) AS INDSEGUROMUNICIPAL, NVL(EI.INDTXEMBARQUEMUNICIPAL,0) AS INDTXEMBARQUEMUNICIPAL, NVL(EI.INDPEDAGIOMUNICIPAL,0) AS INDPEDAGIOMUNICIPAL, "); + // sql.append(" NVL(EI.INDTARIFAESTADUAL,0) AS INDTARIFAESTADUAL, NVL(EI.INDSEGUROESTADUAL,0) AS INDSEGUROESTADUAL, NVL(EI.INDTXEMBARQUEESTADUAL,0) AS INDTXEMBARQUEESTADUAL, NVL(EI.INDPEDAGIOESTDUAL,0) AS INDPEDAGIOESTDUAL, "); + // sql.append(" NVL(B.PRECIOPAGADO,0) + NVL(B.IMPORTEOUTROS,0) + NVL(B.IMPORTEPEDAGIO,0) + NVL(B.IMPORTESEGURO,0) + NVL(B.IMPORTETAXAEMBARQUE,0) AS TOTAL "); + // + // if (isBpe) { + // sql.append(", ") + // .append(" CASE WHEN BPE.TIPOEVENTO = 110111 THEN 'CANCELAMENTO' "); + // sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 1 THEN 'REMARCACAO' "); + // sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 2 THEN 'TRANSFERENCIA' "); + // sql.append(" WHEN BPE.TIPOEVENTO IS NULL AND BPE.CHBPE_SUBSTITUICAO IS NOT NULL AND BPE.TIPOSUBSTITUICAO = 3 THEN 'TRANSFERENCIA/REMARCACAO' ELSE '' END AS TIPO_SIT, "); + // sql.append(" BPE.CHBPE AS CHBPE, "); + // sql.append(" BPE.CHBPE_SUBSTITUICAO AS CHBPE_SUBSTITUICAO, "); + // sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000) AS XML_BPE, "); + // sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000, 3001) AS XML_BPE_2, "); + // sql.append(" DBMS_LOB.SUBSTR(COALESCE(BPE.XMLREGULAR, BPEORI.XMLREGULAR), 3000, 6001) AS XML_BPE_3 "); + // } + // + // sql.append("FROM BOLETO B "); + // sql.append("INNER JOIN MARCA M ON M.MARCA_ID = B.MARCA_ID AND M.ACTIVO = 1 "); + // sql.append("INNER JOIN EMPRESA E ON E.EMPRESA_ID = M.EMPRESA_ID "); + // sql.append("INNER JOIN PUNTO_VENTA PTV ON PTV.PUNTOVENTA_ID = B.PUNTOVENTA_ID "); + // sql.append("INNER JOIN PARADA ORI ON (B.ORIGEN_ID = ORI.PARADA_ID ) "); + // sql.append("INNER JOIN PARADA DES ON (B.DESTINO_ID = DES.PARADA_ID ) "); + // sql.append("INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORI.CIUDAD_ID ) "); + // sql.append("INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DES.CIUDAD_ID ) "); + // sql.append("INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); + // sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = B.PTOVTAVENTA_ID "); + // + // /* JOIN COM TABELAS DE ALIAS */ + // sql.append("LEFT JOIN ALIAS_SERVICO S ON S.ORIGEN_ID = B.ORIGEN_ID "); + // sql.append(" AND S.DESTINO_ID = B.DESTINO_ID AND (S.CORRIDA_ID = B.CORRIDA_ID OR S.CORRIDA_ID IS NULL) "); + // sql.append(" AND S.RUTA_ID = B.RUTA_ID AND S.ACTIVO = 1 "); + // sql.append("LEFT JOIN PARADA POS ON POS.PARADA_ID = S.ALIASORIGEN_ID "); + // sql.append("LEFT JOIN CIUDAD COS ON COS.CIUDAD_ID = POS.CIUDAD_ID "); + // sql.append("LEFT JOIN ESTADO EOS ON EOS.ESTADO_ID = COS.ESTADO_ID "); + // sql.append("LEFT JOIN PARADA PDS ON PDS.PARADA_ID = S.ALIASDESTINO_ID "); + // sql.append("LEFT JOIN CIUDAD CDS ON CDS.CIUDAD_ID = PDS.CIUDAD_ID "); + // sql.append("LEFT JOIN ESTADO EDS ON EDS.ESTADO_ID = CDS.ESTADO_ID "); + // sql.append("JOIN INSCRICAO_ESTADUAL IE ON E.EMPRESA_ID = IE.EMPRESA_ID "); + // sql.append(" AND IE.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND IE.ACTIVO = 1 "); + // sql.append("JOIN EMPRESA_IMPOSTO EI ON EI.EMPRESA_ID = E.EMPRESA_ID "); + // sql.append(" AND EI.ESTADO_ID = COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AND EI.ACTIVO = 1 "); + // sql.append("LEFT JOIN AIDF AIDF ON AIDF.AIDF_ID = B.AIDF_ID AND B.TIPOVENTA_ID = 3 "); + // sql.append("LEFT JOIN ESTADO ESAIDF ON ESAIDF.ESTADO_ID = AIDF.ESTADO_ID "); + // + // sql.append(isBpe ? "INNER JOIN BPE BPE ON BPE.BOLETO_ID = B.BOLETO_ID " : ""); + // sql.append(isBpe ? "INNER JOIN ESTADO EST_BPE ON BPE.UF = EST_BPE.CODIBGE " : ""); + // + // sql.append("LEFT JOIN BOLETO BORI ON BORI.BOLETO_ID = ") + // .append(isBpe ? " COALESCE(B.BOLETOANTERIOR_ID, B.BOLETOORIGINAL_ID) " : " B.BOLETOORIGINAL_ID "); + // + // sql.append(isBpe ? "LEFT JOIN BPE BPEORI ON BPEORI.BOLETO_ID = BORI.BOLETO_ID " : ""); + //// sql.append(isBpe ? "LEFT JOIN TIPO_VENTA TP ON TP.TIPOVENTA_ID = B.TIPOVENTA_ID " : ""); + // + // sql.append("WHERE "); + // sql.append(isBpe ? " " : " B.MOTIVOCANCELACION_ID IN (31,32,10,37,99,36) AND B.INDSTATUSBOLETO = 'C' AND B.INDCANCELACION = 1 "); + // sql.append(isBpe ? " ( BPE.CHBPE_SUBSTITUICAO IS NOT NULL OR (BPE.CODSTAT = 135 AND TO_CHAR(BORI.FECHORVENTA, 'MM/YYYY') < TO_CHAR(B.FECHORVENTA, 'MM/YYYY'))) " : " "); + // sql.append(isBpe ? " AND (BPE.TIPOEVENTO <> 110115 OR BPE.TIPOEVENTO IS NULL) " : " "); + // + // if (isApenasBilhetesImpressos) { + // sql.append("AND B.NUMFOLIOPREIMPRESO IS NOT NULL "); + // } + // + // if (dataVendaInicial != null && !isBpe) { + // sql.append("AND BORI.FECHORVENTA >= TO_DATE(:dataVendaInicial,'DD/MM/YYYY HH24:MI') "); + // } + // + // if (dataVendaFinal != null && !isBpe) { + // sql.append("AND BORI.FECHORVENTA <= TO_DATE(:dataVendaFinal,'DD/MM/YYYY HH24:MI') "); + // } + // + // if (dataDevolucaoInicial != null) { + // sql.append("AND B.FECHORVENTA >= TO_DATE(:dataDevolucaoInicial,'DD/MM/YYYY HH24:MI') "); + // } + // + // if (dataDevolucaoFinal != null) { + // sql.append("AND B.FECHORVENTA <= TO_DATE(:dataDevolucaoFinal,'DD/MM/YYYY HH24:MI') "); + // } + // + // sql.append(isBpe ? "" : "AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); + // + // if (isBpe) { + // sql.append(estados == null ? "" : "AND EST_BPE.ESTADO_ID IN (" + estados + ") "); + // } else { + // sql.append(estados == null ? "" : "AND COALESCE(ESAIDF.ESTADO_ID, EOS.ESTADO_ID, EST.ESTADO_ID) IN (" + estados + ") "); + // } + // + // sql.append(puntoVentas == null ? "" : "AND PTV.PUNTOVENTA_ID IN (" + puntoVentas + ") "); + // sql.append(empresaId == null ? "" : "AND E.EMPRESA_ID IN (" + empresaId + ") "); + // sql.append("ORDER BY NOMB_EMPRESA, ESTADO, UF, FECHOR_DEVOLUCAO, NUMFOLIOSISTEMA"); + // + // return sql.toString(); + // } + @Override protected void processaParametros() throws Exception { }