From a6eba89978a747962fe859697ca164c99fb64dac Mon Sep 17 00:00:00 2001 From: julio Date: Fri, 23 Aug 2019 23:36:20 +0000 Subject: [PATCH] fixes bug#15483 dev: julio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@96957 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioDevolucaoBilhetes.java | 117 ++++++++++-------- 1 file changed, 63 insertions(+), 54 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java index dc7013b5a..2b8372da4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java @@ -267,14 +267,23 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { db.setValorContabil(valorContabil); BigDecimal valorIsenta = BigDecimal.ZERO; - valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndPedadioEstdual() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO); - valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndPedagioMunicipal() ? new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) : BigDecimal.ZERO); - valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndTxEmbarqueEstadual() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO); - valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndTxEmbarqueMunicipal() ? new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()) : BigDecimal.ZERO); + BigDecimal pedagio = new BigDecimal(db.getVcomp02() == null ? "0.0" : db.getVcomp02()) ; + BigDecimal pedagioIsento = isInterEstadual && !db.getIndPedadioEstdual() ? pedagio : BigDecimal.ZERO; + if (pedagioIsento.compareTo(BigDecimal.ZERO) == 0) + pedagioIsento = !isInterEstadual && !db.getIndPedagioMunicipal() ? pedagio : BigDecimal.ZERO; - valorIsenta = valorIsenta.add(isInterEstadual && !db.getIndSeguroEstadual() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO); - valorIsenta = valorIsenta.add(!isInterEstadual && !db.getIndSeguroMunicipal() ? new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) : BigDecimal.ZERO); + BigDecimal taxaEmbarque = new BigDecimal(db.getVcomp03() == null ? "0.0" : db.getVcomp03()); + BigDecimal taxaEmbarqueIsento = isInterEstadual && !db.getIndTxEmbarqueEstadual() ? taxaEmbarque : BigDecimal.ZERO; + if (taxaEmbarqueIsento.compareTo(BigDecimal.ZERO) == 0) + taxaEmbarqueIsento = !isInterEstadual && !db.getIndTxEmbarqueMunicipal() ? taxaEmbarque : BigDecimal.ZERO; + + BigDecimal seguro = new BigDecimal(db.getVcomp04() == null ? "0.0" : db.getVcomp04()) ; + BigDecimal seguroIsento = isInterEstadual && !db.getIndSeguroEstadual() ? seguro : BigDecimal.ZERO; + if (seguroIsento.compareTo(BigDecimal.ZERO) == 0) + seguroIsento = isInterEstadual && !db.getIndSeguroMunicipal() ? seguro : BigDecimal.ZERO; + + valorIsenta = MoneyHelper.somar(valorIsenta, pedagioIsento, taxaEmbarqueIsento, seguroIsento); BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC); db.setBaseCalculoIcms(baseCalculoICMS); @@ -377,8 +386,8 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); if (pRedBC != null) { - outras = valorContabil.subtract(baseCalculoICMS); - outras = outras.subtract(valorIsenta); + outras = MoneyHelper.subtrair(valorContabil, baseCalculoICMS); + outras = MoneyHelper.subtrair(outras, valorIsenta); } db.setValorOutras(outras); @@ -442,15 +451,15 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { StringBuilder sql = new StringBuilder(); sql.append("SELECT DISTINCT "); - sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + sql.append(" TO_CHAR(COALESCE(BANT.FECCREACION, 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(" COALESCE(BANT.NUM_BPE, 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(" COALESCE(BANT.NUMFOLIOPREIMPRESO, B.NUMFOLIOPREIMPRESO) AS FOLIO, "); + sql.append(" COALESCE(BANT.PRECIOBASE ,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, "); @@ -554,15 +563,15 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append(" UNION ALL "); sql.append("SELECT DISTINCT "); - sql.append(" TO_CHAR(B.FECCREACION, 'DD/MM/YYYY') AS FECHOR_VENTA, "); + sql.append(" TO_CHAR(COALESCE(BANT.FECCREACION, 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(" COALESCE(BANT.NUM_BPE, 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(" COALESCE(BANT.NUMFOLIOPREIMPRESO, B.NUMFOLIOPREIMPRESO) AS FOLIO, "); + sql.append(" COALESCE(BANT.PRECIOBASE ,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, "); @@ -590,42 +599,42 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { 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(" '' AS CHBPE_SUBSTITUICAO, "); - sql.append(" COALESCE(BPEORI.CMUNINI, BPE.CMUNINI, BPEANT.CMUNINI) AS CMUNINI, "); - sql.append(" COALESCE(BPEORI.CMUNFIM, BPE.CMUNFIM, BPEANT.CMUNFIM) AS CMUNFIM, "); - sql.append(" COALESCE(BPEORI.UFINI, BPE.UFINI, BPEANT.UFINI) AS UFINI, "); - sql.append(" COALESCE(BPEORI.UFFIM, BPE.UFFIM, BPEANT.UFFIM) AS UFFIM, "); - sql.append(" COALESCE(BPEORI.NBP, BPE.NBP, BPEANT.NBP) AS NBP, "); - sql.append(" COALESCE(BPEORI.DHEMB, BPE.DHEMB, BPEANT.DHEMB) AS DHEMB, "); - sql.append(" COALESCE(BPEORI.CST00, BPE.CST00, BPEANT.CST00) AS CST00, "); - sql.append(" COALESCE(BPEORI.CST20, BPE.CST20, BPEANT.CST20) AS CST20, "); - sql.append(" COALESCE(BPEORI.CST45, BPE.CST45, BPEANT.CST45) AS CST45, "); - sql.append(" COALESCE(BPEORI.CST90, BPE.CST90, BPEANT.CST90) AS CST90, "); - sql.append(" COALESCE(BPEORI.CSTOUTRAUF, BPE.CSTOUTRAUF, BPEANT.CSTOUTRAUF) AS CSTOUTRAUF, "); - sql.append(" COALESCE(BPEORI.CSTSN, BPE.CSTSN, BPEANT.CSTSN) AS CSTSN, "); - sql.append(" COALESCE(BPEORI.VBC00, BPE.VBC00, BPEANT.VBC00) AS VBC00, "); - sql.append(" COALESCE(BPEORI.PICMS00, BPE.PICMS00, BPEANT.PICMS00) AS PICMS00, "); - sql.append(" COALESCE(BPEORI.VICMS00, BPE.VICMS00, BPEANT.VICMS00) AS VICMS00, "); - sql.append(" COALESCE(BPEORI.VBC20, BPE.VBC20, BPEANT.VBC20) AS VBC20, "); - sql.append(" COALESCE(BPEORI.PICMS20, BPE.PICMS20, BPEANT.PICMS20) AS PICMS20, "); - sql.append(" COALESCE(BPEORI.VICMS20, BPE.VICMS20, BPEANT.VICMS20) AS VICMS20, "); - sql.append(" COALESCE(BPEORI.VBP, BPE.VBP, BPEANT.VBP) AS VBP, "); - sql.append(" COALESCE(BPEORI.VDESCONTO, BPE.VDESCONTO, BPEANT.VDESCONTO) AS VDESCONTO, "); - sql.append(" COALESCE(BPEORI.VPGTO, BPE.VPGTO, BPEANT.VPGTO) AS VPGTO, "); - sql.append(" COALESCE(BPEORI.TPCOMP01, BPE.TPCOMP01, BPEANT.TPCOMP01) AS TPCOMP01, "); - sql.append(" COALESCE(BPEORI.TPCOMP02, BPE.TPCOMP02, BPEANT.TPCOMP02) AS TPCOMP02, "); - sql.append(" COALESCE(BPEORI.TPCOMP03, BPE.TPCOMP03, BPEANT.TPCOMP03) AS TPCOMP03, "); - sql.append(" COALESCE(BPEORI.TPCOMP04, BPE.TPCOMP04, BPEANT.TPCOMP04) AS TPCOMP04, "); - sql.append(" COALESCE(BPEORI.TPCOMP05, BPE.TPCOMP05, BPEANT.TPCOMP05) AS TPCOMP05, "); - sql.append(" COALESCE(BPEORI.TPCOMP06, BPE.TPCOMP06, BPEANT.TPCOMP06) AS TPCOMP06, "); - sql.append(" COALESCE(BPEORI.TPCOMP99, BPE.TPCOMP99, BPEANT.TPCOMP99) AS TPCOMP99, "); - sql.append(" COALESCE(BPEORI.VCOMP01, BPE.VCOMP01, BPEANT.VCOMP01) AS VCOMP01, "); - sql.append(" COALESCE(BPEORI.VCOMP02, BPE.VCOMP02, BPEANT.VCOMP02) AS VCOMP02, "); - sql.append(" COALESCE(BPEORI.VCOMP03, BPE.VCOMP03, BPEANT.VCOMP03) AS VCOMP03, "); - sql.append(" COALESCE(BPEORI.VCOMP04, BPE.VCOMP04, BPEANT.VCOMP04) AS VCOMP04, "); - sql.append(" COALESCE(BPEORI.VCOMP05, BPE.VCOMP05, BPEANT.VCOMP05) AS VCOMP05, "); - sql.append(" COALESCE(BPEORI.VCOMP06, BPE.VCOMP06, BPEANT.VCOMP06) AS VCOMP06, "); - sql.append(" COALESCE(BPEORI.VCOMP99, BPE.VCOMP99, BPEANT.VCOMP99) AS VCOMP99, "); - sql.append(" COALESCE(BPEORI.PREDBC, BPE.PREDBC, BPEANT.PREDBC) AS PREDBC "); + sql.append(" COALESCE(BPEANT.CMUNINI, BPE.CMUNINI, BPEORI.CMUNINI) AS CMUNINI, "); + sql.append(" COALESCE(BPEANT.CMUNFIM, BPE.CMUNFIM, BPEORI.CMUNFIM) AS CMUNFIM, "); + sql.append(" COALESCE(BPEANT.UFINI, BPE.UFINI, BPEORI.UFINI) AS UFINI, "); + sql.append(" COALESCE(BPEANT.UFFIM, BPE.UFFIM, BPEORI.UFFIM) AS UFFIM, "); + sql.append(" COALESCE(BPEANT.NBP, BPE.NBP, BPEORI.NBP) AS NBP, "); + sql.append(" COALESCE(BPEANT.DHEMB, BPE.DHEMB, BPEORI.DHEMB) AS DHEMB, "); + sql.append(" COALESCE(BPEANT.CST00, BPE.CST00, BPEORI.CST00) AS CST00, "); + sql.append(" COALESCE(BPEANT.CST20, BPE.CST20, BPEORI.CST20) AS CST20, "); + sql.append(" COALESCE(BPEANT.CST45, BPE.CST45, BPEORI.CST45) AS CST45, "); + sql.append(" COALESCE(BPEANT.CST90, BPE.CST90, BPEORI.CST90) AS CST90, "); + sql.append(" COALESCE(BPEANT.CSTOUTRAUF, BPE.CSTOUTRAUF, BPEORI.CSTOUTRAUF) AS CSTOUTRAUF, "); + sql.append(" COALESCE(BPEANT.CSTSN, BPE.CSTSN, BPEORI.CSTSN) AS CSTSN, "); + sql.append(" COALESCE(BPEANT.VBC00, BPE.VBC00, BPEORI.VBC00) AS VBC00, "); + sql.append(" COALESCE(BPEANT.PICMS00, BPE.PICMS00, BPEORI.PICMS00) AS PICMS00, "); + sql.append(" COALESCE(BPEANT.VICMS00, BPE.VICMS00, BPEORI.VICMS00) AS VICMS00, "); + sql.append(" COALESCE(BPEANT.VBC20, BPE.VBC20, BPEORI.VBC20) AS VBC20, "); + sql.append(" COALESCE(BPEANT.PICMS20, BPE.PICMS20, BPEORI.PICMS20) AS PICMS20, "); + sql.append(" COALESCE(BPEANT.VICMS20, BPE.VICMS20, BPEORI.VICMS20) AS VICMS20, "); + sql.append(" COALESCE(BPEANT.VBP, BPE.VBP, BPEORI.VBP) AS VBP, "); + sql.append(" COALESCE(BPEANT.VDESCONTO, BPE.VDESCONTO, BPEORI.VDESCONTO) AS VDESCONTO, "); + sql.append(" COALESCE(BPEANT.VPGTO, BPE.VPGTO, BPEORI.VPGTO) AS VPGTO, "); + sql.append(" COALESCE(BPEANT.TPCOMP01, BPE.TPCOMP01, BPEORI.TPCOMP01) AS TPCOMP01, "); + sql.append(" COALESCE(BPEANT.TPCOMP02, BPE.TPCOMP02, BPEORI.TPCOMP02) AS TPCOMP02, "); + sql.append(" COALESCE(BPEANT.TPCOMP03, BPE.TPCOMP03, BPEORI.TPCOMP03) AS TPCOMP03, "); + sql.append(" COALESCE(BPEANT.TPCOMP04, BPE.TPCOMP04, BPEORI.TPCOMP04) AS TPCOMP04, "); + sql.append(" COALESCE(BPEANT.TPCOMP05, BPE.TPCOMP05, BPEORI.TPCOMP05) AS TPCOMP05, "); + sql.append(" COALESCE(BPEANT.TPCOMP06, BPE.TPCOMP06, BPEORI.TPCOMP06) AS TPCOMP06, "); + sql.append(" COALESCE(BPEANT.TPCOMP99, BPE.TPCOMP99, BPEORI.TPCOMP99) AS TPCOMP99, "); + sql.append(" COALESCE(BPEANT.VCOMP01, BPE.VCOMP01, BPEORI.VCOMP01) AS VCOMP01, "); + sql.append(" COALESCE(BPEANT.VCOMP02, BPE.VCOMP02, BPEORI.VCOMP02) AS VCOMP02, "); + sql.append(" COALESCE(BPEANT.VCOMP03, BPE.VCOMP03, BPEORI.VCOMP03) AS VCOMP03, "); + sql.append(" COALESCE(BPEANT.VCOMP04, BPE.VCOMP04, BPEORI.VCOMP04) AS VCOMP04, "); + sql.append(" COALESCE(BPEANT.VCOMP05, BPE.VCOMP05, BPEORI.VCOMP05) AS VCOMP05, "); + sql.append(" COALESCE(BPEANT.VCOMP06, BPE.VCOMP06, BPEORI.VCOMP06) AS VCOMP06, "); + sql.append(" COALESCE(BPEANT.VCOMP99, BPE.VCOMP99, BPEORI.VCOMP99) AS VCOMP99, "); + sql.append(" COALESCE(BPEANT.PREDBC, BPE.PREDBC, BPEORI.PREDBC) AS PREDBC "); 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 "); @@ -644,8 +653,8 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append(" COALESCE(BORI.BOLETOANTERIOR_ID, B.BOLETOANTERIOR_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 IN ('101','135') AND TO_CHAR(B.FECCREACION, 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) "); + sql.append("WHERE (BPE.CODSTAT IN ('101','135') "); + sql.append(" AND TO_CHAR(COALESCE(BANT.FECCREACION, B.FECCREACION), 'MM/YYYY') < TO_CHAR(BORI.FECCREACION, 'MM/YYYY')) "); sql.append(" AND (BPE.CODSTAT IN ('-1','100','101','102','135','150') AND BPE.TIPOEVENTO not in('110115','110116') OR BPE.TIPOEVENTO IS NULL) "); sql.append(" AND (BPEORI.CODSTAT IN ('-1','100','101','102','135','150') AND BPEORI.TIPOEVENTO not in('110115','110116') OR BPEORI.TIPOEVENTO IS NULL) "); if (dataDevolucaoInicial != null) {