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
|
||||
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<String, Object> configImposto = new HashMap<String, Object>();
|
||||
|
||||
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<String, Object>) getConfigImpostoByEstadoOrigem(conexao, idEstado, empresaId);
|
||||
HashMap<String, Object> configImposto = (HashMap<String, Object>) 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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue