From a6106a6de5628c1e19756da4f12b9f13b458e906 Mon Sep 17 00:00:00 2001 From: alberto Date: Fri, 30 Jun 2017 16:20:30 +0000 Subject: [PATCH] =?UTF-8?q?Exporta=C3=A7=C3=A3o=20Fiscal=20:=20ECF=20e=20R?= =?UTF-8?q?MD=20(issue=208120)?= 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/Model/trunk/modelWeb@70887 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 37 ++++++++++++------- .../ventaboletos/utilerias/MoneyHelper.java | 4 +- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index e018b243d..8d72bd1b8 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1699,7 +1699,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } BigDecimal valorICMSIsento = BigDecimal.ZERO; - BigDecimal valorICMSOutros = valorTotal.subtract(valorBaseCalculoICMS); + BigDecimal valorICMSOutros = MoneyHelper.subtrair(valorTotal, valorBaseCalculoICMS); String ecf = rs.getString("ecf"); String datamov = rs.getString("datamov"); @@ -1733,6 +1733,15 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO codigoSituacaoTribColunaB = rs.getInt("red_base_calc_icms") == 0 ? 0 : 20; } + if (codigoSituacaoTribColunaB == 40) { + tributacao_importacao = BigDecimal.ZERO; + valorBaseCalculoICMS = BigDecimal.ZERO; + valorICMSDebitado = BigDecimal.ZERO; + valorICMSOutros = BigDecimal.ZERO; + + valorICMSIsento = valorTotal; + } + String key = ecf + "|" + datamov + "|" + ufDestino + "|" + cfop.toString() + "|" + codigoSituacaoTribColunaB.toString(); log.info(key.toString()); @@ -1740,11 +1749,11 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO if (group.containsKey(key)) { registro = group.get(key); - valorTotal = valorTotal.add(registro.getValorTotal()); - valorBaseCalculoICMS = valorBaseCalculoICMS.add(registro.getValorBaseCalculoICMS()); - valorICMSDebitado = valorICMSDebitado.add(registro.getValorICMSDebitado()); - valorICMSIsento = valorICMSIsento.add(registro.getValorICMSIsento()); - valorICMSOutros = valorICMSOutros.add(registro.getValorICMSOutros()); + valorTotal = MoneyHelper.somar(valorTotal, registro.getValorTotal()); + valorBaseCalculoICMS = MoneyHelper.somar(valorBaseCalculoICMS, registro.getValorBaseCalculoICMS()); + valorICMSDebitado = MoneyHelper.somar(valorICMSDebitado, registro.getValorICMSDebitado()); + valorICMSIsento = MoneyHelper.somar(valorICMSIsento, registro.getValorICMSIsento()); + valorICMSOutros = MoneyHelper.somar(valorICMSOutros, registro.getValorICMSOutros()); } else { registro = new ExportacaoECFTipoICF(); registro.setEcf(ecf); @@ -1763,11 +1772,11 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO group.put(key, registro); } - registro.setValorTotal(valorTotal.setScale(2, BigDecimal.ROUND_HALF_EVEN)); - registro.setValorBaseCalculoICMS(valorBaseCalculoICMS.setScale(2, BigDecimal.ROUND_HALF_EVEN)); - registro.setValorICMSDebitado(valorICMSDebitado.setScale(2, BigDecimal.ROUND_HALF_EVEN)); - registro.setValorICMSIsento(valorICMSIsento.setScale(2, BigDecimal.ROUND_HALF_EVEN)); - registro.setValorICMSOutros(valorICMSOutros.setScale(2, BigDecimal.ROUND_HALF_EVEN)); + registro.setValorTotal(valorTotal); + registro.setValorBaseCalculoICMS(valorBaseCalculoICMS); + registro.setValorICMSDebitado(valorICMSDebitado); + registro.setValorICMSIsento(valorICMSIsento); + registro.setValorICMSOutros(valorICMSOutros); } for (Map.Entry entry : group.entrySet()) { @@ -1898,9 +1907,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO if (group.containsKey(key)) { registro = group.get(key); - registro.setValorTotal(registro.getValorTotal().add(valorTotal)); - registro.setValorBaseCalculoICMS(registro.getValorBaseCalculoICMS().add(valorBaseCalculoICMS)); - registro.setValorICMS(registro.getValorICMS().add(valorICMS)); + registro.setValorTotal(MoneyHelper.somar(registro.getValorTotal(), valorTotal)); + registro.setValorBaseCalculoICMS(MoneyHelper.somar(registro.getValorBaseCalculoICMS(), valorBaseCalculoICMS)); + registro.setValorICMS(MoneyHelper.somar(registro.getValorICMS(), valorICMS)); } else { registro = new ExportacaoECFTipoPRC(); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/MoneyHelper.java b/src/com/rjconsultores/ventaboletos/utilerias/MoneyHelper.java index 214ccc85a..22dc4194d 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/MoneyHelper.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/MoneyHelper.java @@ -21,10 +21,10 @@ import org.slf4j.LoggerFactory; public class MoneyHelper { private static Logger log = LoggerFactory.getLogger(MoneyHelper.class); - private static int DECIMALS = 4; + private static int DECIMALS = 2; private static int ROUNDING_MODE = BigDecimal.ROUND_HALF_EVEN; private static BigDecimal HUNDRED = new BigDecimal("100"); - private static int MATH_CONTEXT = 4; + private static int MATH_CONTEXT = 2; public MoneyHelper() {