fixes bug#0014812
dev: daniel qua: wallysson Implementação efetuada. git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@95252 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
984122c39a
commit
e46b836e6c
|
@ -50,11 +50,7 @@ public class CalculoImposto {
|
||||||
else
|
else
|
||||||
porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDMUNICIPAL");
|
porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDMUNICIPAL");
|
||||||
|
|
||||||
// Criação da base de calculo
|
baseCalculo = obtemBaseCalculoICMS(tarifa, seguro, embarque, pedagio, indBaseTarifa, indBaseSeguro, indBaseEmbarque, indBasePedagio);
|
||||||
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 = indBaseBagagem && bagagem != null ? baseCalculo.add(bagagem) : baseCalculo;
|
baseCalculo = indBaseBagagem && bagagem != null ? baseCalculo.add(bagagem) : baseCalculo;
|
||||||
|
|
||||||
//System.out.println("baseCalculo="+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 {
|
public static BigDecimal getValorImposto(Connection conexao, Integer idEstado, Integer empresaId, String indInterestadual,
|
||||||
HashMap<String, Object> configImposto = new HashMap<String, Object>();
|
BigDecimal tarifa, BigDecimal seguro, BigDecimal embarque, BigDecimal pedagio) throws SQLException, ExceptionConfiguracao {
|
||||||
|
|
||||||
BigDecimal baseCalculo = BigDecimal.ZERO;
|
BigDecimal baseCalculo = BigDecimal.ZERO;
|
||||||
BigDecimal icms;
|
BigDecimal icms;
|
||||||
BigDecimal porcRedEstadualMunicipal;
|
BigDecimal porcRed;
|
||||||
|
|
||||||
BigDecimal porcRedBaseIcms;
|
BigDecimal porcRedBaseIcms;
|
||||||
|
|
||||||
BigDecimal valorIcms = BigDecimal.ZERO;
|
HashMap<String, Object> configImposto = (HashMap<String, Object>) getConfigImpostoByEstadoOrigem(conexao, idEstado, empresaId);
|
||||||
|
|
||||||
Boolean indTarifaMunicipal;
|
|
||||||
Boolean indSeguroMunicipal;
|
|
||||||
Boolean indTxEmbarqueMunicipal;
|
|
||||||
Boolean indPedagioMunicipal;
|
|
||||||
Boolean indTarifaEstadual;
|
|
||||||
Boolean indSeguroEstadual;
|
|
||||||
Boolean indTxEmbarqueEstadual;
|
|
||||||
Boolean indPedagioEstadual;
|
|
||||||
|
|
||||||
configImposto = (HashMap<String, Object>) getConfigImpostoByEstadoOrigem(conexao, idEstado, empresaId);
|
|
||||||
|
|
||||||
if (configImposto == null)
|
if (configImposto == null)
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
|
@ -194,48 +177,35 @@ public class CalculoImposto {
|
||||||
icms = (BigDecimal) configImposto.get("ICMS");
|
icms = (BigDecimal) configImposto.get("ICMS");
|
||||||
porcRedBaseIcms = (BigDecimal) configImposto.get("PORCREDBASEICMS");
|
porcRedBaseIcms = (BigDecimal) configImposto.get("PORCREDBASEICMS");
|
||||||
|
|
||||||
if (indInterestadual.equals("S")) {
|
porcRed = "S".equals(indInterestadual) ? (BigDecimal) configImposto.get("PORCREDESTADUAL") : (BigDecimal) configImposto.get("PORCREDMUNICIPAL");
|
||||||
porcRedEstadualMunicipal = (BigDecimal) configImposto.get("PORCREDESTADUAL");
|
// Criação da base de calculo
|
||||||
|
baseCalculo = tarifa != null ? baseCalculo.add(tarifa) : baseCalculo;
|
||||||
indTarifaEstadual = (Boolean) configImposto.get("INDTARIFAESTADUAL");
|
baseCalculo = seguro != null ? baseCalculo.add(seguro) : baseCalculo;
|
||||||
indSeguroEstadual = (Boolean) configImposto.get("INDSEGUROESTADUAL");
|
baseCalculo = embarque != null ? baseCalculo.add(embarque) : baseCalculo;
|
||||||
indTxEmbarqueEstadual = (Boolean) configImposto.get("INDTXEMBARQUEESTADUAL");
|
baseCalculo = pedagio != null ? baseCalculo.add(pedagio) : baseCalculo;
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Redução da base de calculo
|
// Redução da base de calculo
|
||||||
if (porcRedBaseIcms != null && !porcRedBaseIcms.equals(BigDecimal.ZERO))
|
if (porcRedBaseIcms != null && !porcRedBaseIcms.equals(BigDecimal.ZERO))
|
||||||
// BASE DE CALCULO = BASE DE CALCULO - ((PERCENTUAL DE REDUÇÃO / 100) * BASE DE CALCULO ))
|
// BASE DE CALCULO = BASE DE CALCULO - ((PERCENTUAL DE REDUÇÃO / 100) * BASE DE CALCULO ))
|
||||||
baseCalculo = baseCalculo.subtract(porcRedBaseIcms.divide(BigDecimal.valueOf(100)).multiply(baseCalculo));
|
baseCalculo = baseCalculo.subtract(porcRedBaseIcms.divide(BigDecimal.valueOf(100)).multiply(baseCalculo));
|
||||||
|
|
||||||
|
|
||||||
// Calcula o valor do ICMS
|
// 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
|
// Redução estadual/municipal
|
||||||
if (porcRedEstadualMunicipal != null && !porcRedEstadualMunicipal.equals(BigDecimal.ZERO))
|
if (porcRed != null && !porcRed.equals(BigDecimal.ZERO))
|
||||||
valorIcms = valorIcms.subtract(porcRedEstadualMunicipal.divide(BigDecimal.valueOf(100)).multiply(valorIcms));
|
valorIcms = valorIcms.subtract(porcRed.divide(BigDecimal.valueOf(100)).multiply(valorIcms));
|
||||||
|
|
||||||
|
|
||||||
return 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue