diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 4250fc73e..8a9ccfaa2 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1544,6 +1544,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO valorBaseCalculoICMS = valorTotal; } + if (rs.getInt("isenta") == 1) { + valorBaseCalculoICMS= null; + } + registro.setValorTotal(valorTotal); // 1 - Demais; 2 - Região Metropolitanao ou seja, quando o campo CSTB for "40", esse campo deve vir "2". Do contrário, deve vir "1" diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java index e3371ce6c..e109088e9 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java @@ -180,12 +180,13 @@ public class ExportacaoFiscal { if (itensCCF != null) { for (ExportacaoECFTipoCCF itemCCF : itensCCF) { BigDecimal baseCalculoICMS = BigDecimal.ZERO; + BigDecimal valorBaseCalculoICMS = itemCCF.getValorBaseCalculoICMS() == null ? BigDecimal.ZERO : itemCCF.getValorBaseCalculoICMS(); if (valoresBaseCalculoICMS.containsKey(itemCCF.getEcf() + "|" + itemCCF.getUfDestino())) { baseCalculoICMS = valoresBaseCalculoICMS.get(itemCCF.getEcf() + "|" + itemCCF.getUfDestino()); } - baseCalculoICMS = baseCalculoICMS.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN)); + baseCalculoICMS = baseCalculoICMS.add(valorBaseCalculoICMS.setScale(2, BigDecimal.ROUND_HALF_EVEN)); valoresBaseCalculoICMS.put(itemCCF.getEcf() + "|" + itemCCF.getUfDestino(), baseCalculoICMS); @@ -197,7 +198,7 @@ public class ExportacaoFiscal { valor = totalBaseCalculoICMS.get(itemCCF.getMunicipioOrigem()); } - valor = valor.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN)); + valor = valor.add(valorBaseCalculoICMS.setScale(2, BigDecimal.ROUND_HALF_EVEN)); totalBaseCalculoICMS.put(itemCCF.getMunicipioOrigem(), valor); } @@ -328,7 +329,7 @@ public class ExportacaoFiscal { sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 15 sb.append(formataValor(valorTotal, 15)).append(SEPARADOR); sb.append(formataNumerico(tributacaoICMS, true, 1)).append(SEPARADOR); - sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR); + sb.append(valorBaseCalculoICMS == null ? "" : formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR); sb.append(formataValor(aliquotaICMS, 5)).append(SEPARADOR); sb.append("01").append(SEPARADOR); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);