From e46b836e6c710c3f965df36d4b3a4831bf057e25 Mon Sep 17 00:00:00 2001 From: emerson Date: Mon, 1 Jul 2019 13:07:28 +0000 Subject: [PATCH] =?UTF-8?q?fixes=20bug#0014812=20dev:=20daniel=20qua:=20wa?= =?UTF-8?q?llysson=20Implementa=C3=A7=C3=A3o=20efetuada.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@95252 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/negocio/CalculoImposto.java | 78 ++++++------------- 1 file changed, 24 insertions(+), 54 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/negocio/CalculoImposto.java b/src/java/com/rjconsultores/ventaboletos/relatorios/negocio/CalculoImposto.java index df86be6b2..53f586ad8 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/negocio/CalculoImposto.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/negocio/CalculoImposto.java @@ -50,11 +50,7 @@ public class CalculoImposto { else porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDMUNICIPAL"); - // Criação da base de calculo - baseCalculo = indBaseTarifa && tarifa != null ? baseCalculo.add(tarifa) : baseCalculo; - baseCalculo = indBaseSeguro && seguro != null ? baseCalculo.add(seguro) : baseCalculo; - baseCalculo = indBaseEmbarque && embarque != null ? baseCalculo.add(embarque) : baseCalculo; - baseCalculo = indBasePedagio && pedagio != null ? baseCalculo.add(pedagio) : baseCalculo; + baseCalculo = obtemBaseCalculoICMS(tarifa, seguro, embarque, pedagio, indBaseTarifa, indBaseSeguro, indBaseEmbarque, indBasePedagio); baseCalculo = indBaseBagagem && bagagem != null ? baseCalculo.add(bagagem) : baseCalculo; //System.out.println("baseCalculo="+baseCalculo); @@ -166,27 +162,14 @@ public class CalculoImposto { } - public static BigDecimal getValorImposto(Connection conexao, Integer idEstado, Integer empresaId, String indInterestadual, BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) throws Exception { - HashMap configImposto = new HashMap(); - + public static BigDecimal getValorImposto(Connection conexao, Integer idEstado, Integer empresaId, String indInterestadual, + BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) throws SQLException, ExceptionConfiguracao { BigDecimal baseCalculo = BigDecimal.ZERO; BigDecimal icms; - BigDecimal porcRedEstadualMunicipal; - + BigDecimal porcRed; BigDecimal porcRedBaseIcms; - BigDecimal valorIcms = BigDecimal.ZERO; - - Boolean indTarifaMunicipal; - Boolean indSeguroMunicipal; - Boolean indTxEmbarqueMunicipal; - Boolean indPedagioMunicipal; - Boolean indTarifaEstadual; - Boolean indSeguroEstadual; - Boolean indTxEmbarqueEstadual; - Boolean indPedagioEstadual; - - configImposto = (HashMap) getConfigImpostoByEstadoOrigem(conexao, idEstado, empresaId); + HashMap configImposto = (HashMap) getConfigImpostoByEstadoOrigem(conexao, idEstado, empresaId); if (configImposto == null) return BigDecimal.ZERO; @@ -194,48 +177,35 @@ public class CalculoImposto { icms = (BigDecimal) configImposto.get("ICMS"); porcRedBaseIcms = (BigDecimal) configImposto.get("PORCREDBASEICMS"); - if (indInterestadual.equals("S")) { - porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDESTADUAL"); - - indTarifaEstadual = (Boolean) configImposto.get("INDTARIFAESTADUAL"); - indSeguroEstadual = (Boolean) configImposto.get("INDSEGUROESTADUAL"); - indTxEmbarqueEstadual = (Boolean) configImposto.get("INDTXEMBARQUEESTADUAL"); - indPedagioEstadual = (Boolean) configImposto.get("INDPEDAGIOESTDUAL"); - - // Criação da base de calculo - baseCalculo = indTarifaEstadual && tarifa != null ? baseCalculo.add(tarifa) : baseCalculo; - baseCalculo = indSeguroEstadual && seguro != null ? baseCalculo.add(seguro) : baseCalculo; - baseCalculo = indTxEmbarqueEstadual && embarque != null ? baseCalculo.add(embarque) : baseCalculo; - baseCalculo = indPedagioEstadual && pedagio != null ? baseCalculo.add(pedagio) : baseCalculo; - } else { - porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDMUNICIPAL"); - - indTarifaMunicipal = (Boolean) configImposto.get("INDTARIFAMUNICIPAL"); - indSeguroMunicipal = (Boolean) configImposto.get("INDSEGUROMUNICIPAL"); - indTxEmbarqueMunicipal = (Boolean) configImposto.get("INDTXEMBARQUEMUNICIPAL"); - indPedagioMunicipal = (Boolean) configImposto.get("INDPEDAGIOMUNICIPAL"); - - baseCalculo = indTarifaMunicipal && tarifa != null ? baseCalculo.add(tarifa) : baseCalculo; - baseCalculo = indSeguroMunicipal && seguro != null ? baseCalculo.add(seguro) : baseCalculo; - baseCalculo = indTxEmbarqueMunicipal && embarque != null ? baseCalculo.add(embarque) : baseCalculo; - baseCalculo = indPedagioMunicipal && pedagio != null ? baseCalculo.add(pedagio) : baseCalculo; - } + porcRed = "S".equals(indInterestadual) ? (BigDecimal) configImposto.get("PORCREDESTADUAL") : (BigDecimal) configImposto.get("PORCREDMUNICIPAL"); + // Criação da base de calculo + baseCalculo = tarifa != null ? baseCalculo.add(tarifa) : baseCalculo; + baseCalculo = seguro != null ? baseCalculo.add(seguro) : baseCalculo; + baseCalculo = embarque != null ? baseCalculo.add(embarque) : baseCalculo; + baseCalculo = pedagio != null ? baseCalculo.add(pedagio) : baseCalculo; // Redução da base de calculo if (porcRedBaseIcms != null && !porcRedBaseIcms.equals(BigDecimal.ZERO)) // BASE DE CALCULO = BASE DE CALCULO - ((PERCENTUAL DE REDUÇÃO / 100) * BASE DE CALCULO )) baseCalculo = baseCalculo.subtract(porcRedBaseIcms.divide(BigDecimal.valueOf(100)).multiply(baseCalculo)); - // Calcula o valor do ICMS - valorIcms = baseCalculo.multiply(icms.divide(BigDecimal.valueOf(100))); - + BigDecimal valorIcms = baseCalculo.multiply(icms.divide(BigDecimal.valueOf(100))); // Redução estadual/municipal - if (porcRedEstadualMunicipal != null && !porcRedEstadualMunicipal.equals(BigDecimal.ZERO)) - valorIcms = valorIcms.subtract(porcRedEstadualMunicipal.divide(BigDecimal.valueOf(100)).multiply(valorIcms)); - + if (porcRed != null && !porcRed.equals(BigDecimal.ZERO)) + valorIcms = valorIcms.subtract(porcRed.divide(BigDecimal.valueOf(100)).multiply(valorIcms)); return valorIcms; } + + private static BigDecimal obtemBaseCalculoICMS(BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio, + Boolean indTarifa, Boolean indSeguro, Boolean indTxEmbarque, Boolean indPedagio) { + BigDecimal baseCalculo = BigDecimal.ZERO; + baseCalculo = indTarifa && tarifa != null ? baseCalculo.add(tarifa) : baseCalculo; + baseCalculo = indSeguro && seguro != null ? baseCalculo.add(seguro) : baseCalculo; + baseCalculo = indTxEmbarque && embarque != null ? baseCalculo.add(embarque) : baseCalculo; + baseCalculo = indPedagio && pedagio != null ? baseCalculo.add(pedagio) : baseCalculo; + return baseCalculo; + } }