Exportação Fiscal : ECF e RMD (issue 8120)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@65480 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-01-31 17:45:59 +00:00
parent 775afc17f8
commit 6290107485
2 changed files with 36 additions and 13 deletions

View File

@ -1565,8 +1565,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
valorICMSDebitado = MoneyHelper.multiplicar(valorBaseCalculoICMS, aTributacao_importacao);
}
BigDecimal valorICMSIsento = valorTotal.subtract(valorBaseCalculoICMS);
BigDecimal valorICMSOutros = BigDecimal.ZERO;
BigDecimal valorICMSIsento = BigDecimal.ZERO;
BigDecimal valorICMSOutros = valorTotal.subtract(valorBaseCalculoICMS);
String ecf = rs.getString("ecf");
String datamov = rs.getString("datamov");
@ -1581,7 +1581,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
if (rs.getInt("isenta") == 1) {
codigoSituacaoTribColunaB = 40;
valorICMSIsento = valorTotal;
valorICMSOutros = valorTotal;
}
ufDestino = rs.getString("estado_destino");

View File

@ -164,26 +164,49 @@ public class ExportacaoFiscal {
int linhas = listaRegistroECFTipoCFC.size() + listaRegistroECFTipoCCF.size() + listaRegistroECFTipoICF.size() + listaRegistroECFTipoPRC.size() + 1 + 1;
Map<String, BigDecimal> valoresBaseCalculoICMS = new HashMap<String, BigDecimal>(0);
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
adicionarLinhaCFC(writer, registro);
itensCCF = groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao());
BigDecimal totalBaseCalculoICMS = BigDecimal.ZERO;
if (itensCCF != null) {
for (ExportacaoECFTipoCCF itemCCF : itensCCF) {
BigDecimal baseCalculoICMS = BigDecimal.ZERO;
if (valoresBaseCalculoICMS.containsKey(itemCCF.getUfDestino())) {
baseCalculoICMS = valoresBaseCalculoICMS.get(itemCCF.getUfDestino());
}
baseCalculoICMS = baseCalculoICMS.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN));
valoresBaseCalculoICMS.put(itemCCF.getUfDestino(), baseCalculoICMS);
adicionarLinhaCCF(writer, itemCCF);
totalBaseCalculoICMS = totalBaseCalculoICMS.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN));
}
}
BigDecimal total = BigDecimal.ZERO;
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
BigDecimal valorICMS = BigDecimal.ZERO;
itensICF = groupICF.get(registro.getEcf() + "|" + registro.getDataEmissao());
if (itensICF != null) {
for (ExportacaoECFTipoICF itemICF : itensICF) {
total = total.add(itemICF.getValorICMSDebitado().setScale(2, BigDecimal.ROUND_HALF_EVEN));
valorICMS = valorICMS.add(itemICF.getValorICMSDebitado().setScale(2, BigDecimal.ROUND_HALF_EVEN));
valorBaseCalculoICMS = BigDecimal.ZERO;
adicionarLinhaICF(writer, itemICF);
if (valoresBaseCalculoICMS.containsKey(itemICF.getUfDestino())) {
valorBaseCalculoICMS = valoresBaseCalculoICMS.get(itemICF.getUfDestino());
}
adicionarLinhaICF(writer, itemICF, valorBaseCalculoICMS);
}
}
@ -191,7 +214,7 @@ public class ExportacaoFiscal {
if (itensPRC != null) {
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
adicionarLinhaPRC(writer, itemPRC, total);
adicionarLinhaPRC(writer, itemPRC, totalBaseCalculoICMS, valorICMS);
}
}
}
@ -309,11 +332,11 @@ public class ExportacaoFiscal {
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
}
private void adicionarLinhaICF(PrintWriter writer, ExportacaoECFTipoICF item) {
private void adicionarLinhaICF(PrintWriter writer, ExportacaoECFTipoICF item, BigDecimal valorBaseCalculoICMS) {
BigDecimal valorTotal = item.getValorTotal();
String ufDestino = item.getUfDestino();
Integer cfop = item.getCfop(); // IM=5357; Serviço IE= 6357
BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
// BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
BigDecimal aliquotaICMS = item.getAliquotaICMS();
BigDecimal valorICMSDebitado = item.getValorICMSDebitado();
BigDecimal valorICMSIsento = item.getValorICMSIsento();
@ -351,12 +374,12 @@ public class ExportacaoFiscal {
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
}
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item, BigDecimal total) {
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item, BigDecimal valorBaseCalculoICMS, BigDecimal valorICMS) {
String ufOrigem = item.getUfOrigem();
String municipioOrigem = item.getMunicipioOrigem() == null ? null : item.getMunicipioOrigem().toString();
BigDecimal valorTotal = item.getValorTotal();
BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
BigDecimal valorICMS = item.getValorICMS();
// BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
// BigDecimal valorICMS = item.getValorICMS();
if (municipioOrigem != null && municipioOrigem.length() > 5) {
municipioOrigem = municipioOrigem.substring(municipioOrigem.length() - 5, municipioOrigem.length());
@ -368,7 +391,7 @@ public class ExportacaoFiscal {
sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
sb.append(formataValor(total, 15)); // sb.append(formataValor(valorICMS, 15));
sb.append(formataValor(valorICMS, 15));
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
}