diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java index 3ac3a36a7..69ae79e23 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetes.java @@ -100,7 +100,11 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { db.setEstadoId(rset.getInt("ESTADO_ID")); db.setFechorVenta((String) rset.getObject("FECHOR_VENTA")); db.setFechorDevolucao((String) rset.getObject("FECHOR_DEVOLUCAO")); - db.setIcms(rset.getBigDecimal("ICMS")); + + db.setIcmsInterestadual(rset.getObject("ICMSINTERESTADUAL") != null ? rset.getBigDecimal("ICMSINTERESTADUAL") : BigDecimal.ZERO); + db.setIcmsIntermunicipal(rset.getObject("ICMSINTERMUNICIPAL") != null ? rset.getBigDecimal("ICMSINTERMUNICIPAL") : BigDecimal.ZERO); + db.setTributacaoimportacao(rset.getObject("TRIBUTACAOIMPORTACAO") != null ? rset.getBigDecimal("TRIBUTACAOIMPORTACAO") : null); + db.setPorcredbaseicms(rset.getBigDecimal("PORCREDBASEICMS")); db.setPrecioBase(rset.getBigDecimal("PRECIOBASE")); db.setPrecioPagado(rset.getBigDecimal("PRECIOPAGADO")); @@ -162,8 +166,15 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { db.setValorContabil(valorContabil); BigDecimal valorIcms = BigDecimal.ZERO; - valorIcms = db.getValorContabil().multiply(db.getIcms().divide(UtiliteriasFiscal.CEM)); - //valorIcms = valorIcms.multiply(db.getPorcredbaseicms().divide(UtiliteriasFiscal.CEM)); + if(isEstadual) { + if(db.getTributacaoimportacao() == null) { + valorIcms = db.getValorContabil().multiply(db.getIcmsInterestadual().divide(UtiliteriasFiscal.CEM)); + } else { + valorIcms = db.getValorContabil().multiply(db.getTributacaoimportacao().divide(UtiliteriasFiscal.CEM)); + } + } else { + valorIcms = db.getValorContabil().multiply(db.getIcmsIntermunicipal().divide(UtiliteriasFiscal.CEM)); + } if(db.isIsenta()) { db.setValorIsenta(valorIcms); } else { @@ -210,15 +221,17 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append(" PTVO.NUMPUNTOVENTA AS NUMPUNTOVENTAORIGEM, "); sql.append(" EST.NOMBESTADO AS ESTADO, "); sql.append(" EST.CVEESTADO AS UF, "); - sql.append(" NVL(EST.ESTADO_ID,0) AS ESTADO_ID, "); - sql.append(" NVL(EI.ICMS,0) AS ICMS, "); + sql.append(" COALESCE(EOS.ESTADO_ID, EST.ESTADO_ID) AS ESTADO_ID, "); + 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 CO.ESTADO_ID <> CD.ESTADO_ID THEN 1 ELSE 0 END) IS_ESTADUAL, "); + 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(ORI.REGIONMETROPOLITANA_ID ,-1) = NVL(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, "); @@ -234,9 +247,21 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { sql.append("INNER JOIN ESTADO EST ON EST.ESTADO_ID = CO.ESTADO_ID "); sql.append("LEFT JOIN FISCAL_R4 R4 ON R4.BOLETO_ID = B.BOLETOORIGINAL_ID "); sql.append("LEFT JOIN PUNTO_VENTA PTVO ON PTVO.PUNTOVENTA_ID = B.PTOVTAVENTA_ID "); - sql.append("LEFT JOIN EMPRESA_IMPOSTO EI ON EST.ESTADO_ID = EI.ESTADO_ID "); - sql.append(" AND EI.EMPRESA_ID = M.EMPRESA_ID "); - sql.append(" AND EI.ACTIVO = 1 "); + + 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 "); 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) "); @@ -264,7 +289,7 @@ public class RelatorioDevolucaoBilhetes extends Relatorio { } sql.append("AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); - sql.append(estados == null ? "" : "AND EST.ESTADO_ID IN (" + estados + ") "); + sql.append(estados == null ? "" : "AND COALESCE(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_VENTA, NUMFOLIOSISTEMA"); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesConsolidado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesConsolidado.java index 2fcca9b5a..2abbeee79 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesConsolidado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesConsolidado.java @@ -91,7 +91,6 @@ public class RelatorioDevolucaoBilhetesConsolidado extends Relatorio { DevolucaoBilhetes db = new DevolucaoBilhetes(); db.setFechorVenta((String) rset.getObject("FECHOR_VENTA")); - db.setIcms((BigDecimal) rset.getObject("ICMS")); db.setEmpresaId(rset.getObject("EMPRESA_ID") == null ? null : ((BigDecimal) rset.getObject("EMPRESA_ID")).intValue()); db.setEmpresa((String) rset.getObject("NOMB_EMPRESA")); db.setNumpuntoventa((String) rset.getObject("NUMPUNTOVENTA")); @@ -100,11 +99,8 @@ public class RelatorioDevolucaoBilhetesConsolidado extends Relatorio { db.setTotalQtdeBilhetes(rset.getInt("TOTAL_QTDE_BILHETE")); db.setPrecioBase((BigDecimal) rset.getObject("PRECIOBASE")); db.setPrecioPagado((BigDecimal) rset.getObject("PRECIOPAGADO")); - - BigDecimal valorIcms = BigDecimal.ZERO; - valorIcms = db.getPrecioPagado().multiply(db.getIcms().divide(BigDecimal.valueOf(100))); - db.setValorIcms(valorIcms); - + db.setValorContabil(db.getTotalBilhete()); + lsDev.add(db); } @@ -125,7 +121,7 @@ public class RelatorioDevolucaoBilhetesConsolidado extends Relatorio { sql.append(" E.EMPRESA_ID AS EMPRESA_ID, "); sql.append(" PTV.NUMPUNTOVENTA AS NUMPUNTOVENTA, "); sql.append(" PTV.NOMBPUNTOVENTA AS NOMBPUNTOVENTA, "); - sql.append(" NVL(EI.PORCREDBASEICMS,0) AS ICMS, "); + sql.append(" TO_CHAR(BORI.FECHORVENTA, 'DD/MM/YYYY') AS FECHOR_VENTA, "); sql.append(" SUM(NVL(B.PRECIOBASE,0)) AS PRECIOBASE, "); sql.append(" SUM(NVL(B.PRECIOPAGADO,0)) AS PRECIOPAGADO, "); @@ -135,15 +131,27 @@ public class RelatorioDevolucaoBilhetesConsolidado extends Relatorio { 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 ORIGEM ON (B.ORIGEN_ID = ORIGEM.PARADA_ID ) "); - sql.append("INNER JOIN PARADA DESTINO ON (B.DESTINO_ID = DESTINO.PARADA_ID ) "); - sql.append("INNER JOIN CIUDAD CO ON (CO.CIUDAD_ID = ORIGEM.CIUDAD_ID ) "); - sql.append("INNER JOIN CIUDAD CD ON (CD.CIUDAD_ID = DESTINO.CIUDAD_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 FISCAL_R4 R4 ON R4.BOLETO_ID = B.BOLETOORIGINAL_ID "); - sql.append("LEFT JOIN EMPRESA_IMPOSTO EI ON EST.ESTADO_ID = EI.ESTADO_ID "); - sql.append(" AND EI.EMPRESA_ID = M.EMPRESA_ID "); - sql.append(" AND EI.ACTIVO = 1 "); + + 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 "); 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) "); @@ -171,14 +179,13 @@ public class RelatorioDevolucaoBilhetesConsolidado extends Relatorio { } sql.append("AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); - sql.append(estados == null ? "" : "AND EST.ESTADO_ID IN (" + estados + ") "); + sql.append(estados == null ? "" : "AND COALESCE(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("GROUP BY E.NOMBEMPRESA, "); sql.append(" E.EMPRESA_ID, "); sql.append(" PTV.NUMPUNTOVENTA, "); sql.append(" PTV.NOMBPUNTOVENTA, "); - sql.append(" NVL(EI.PORCREDBASEICMS,0), "); sql.append(" TO_CHAR(BORI.FECHORVENTA, 'DD/MM/YYYY') "); sql.append("ORDER BY NOMB_EMPRESA, FECHOR_VENTA "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesFinanceiro.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesFinanceiro.java index 7889c9afb..234d3946a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesFinanceiro.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioDevolucaoBilhetesFinanceiro.java @@ -141,6 +141,21 @@ public class RelatorioDevolucaoBilhetesFinanceiro extends Relatorio { 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 "); sql.append("LEFT JOIN BOLETO BORI ON BORI.BOLETO_ID = B.BOLETOORIGINAL_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("JOIN USUARIO U ON U.USUARIO_ID = B.USUARIO_ID "); sql.append("WHERE B.MOTIVOCANCELACION_ID IN (31,32,10,37,99,36) "); sql.append("AND B.INDSTATUSBOLETO = 'C' "); @@ -167,7 +182,7 @@ public class RelatorioDevolucaoBilhetesFinanceiro extends Relatorio { } sql.append("AND B.CATEGORIA_ID NOT IN (SELECT VALORCONSTANTE FROM CONSTANTE WHERE NOMBCONSTANTE = 'GRATUIDADE_CRIANCA') "); - sql.append(estados == null ? "" : "AND EST.ESTADO_ID IN (" + estados + ") "); + sql.append(estados == null ? "" : "AND COALESCE(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, FECHOR_VENTA"); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jasper index c22d9dafe..311cf7759 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jrxml index 601ee46de..321252c51 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioDevolucaoBilhetes.jrxml @@ -1,7 +1,7 @@ - - + +