Exportação Fiscal : ECF e RMD (issue 8120)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@67354 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
aa2a500034
commit
260cfc451e
|
@ -1349,7 +1349,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
sb.append(" r5.numserie20 as ecf,");
|
sb.append(" r5.numserie20 as ecf,");
|
||||||
sb.append(" r5.datamov as datamov,");
|
sb.append(" r5.datamov as datamov,");
|
||||||
sb.append(" r5.coo as coo,");
|
sb.append(" r5.coo as coo,");
|
||||||
sb.append(" r5.impunitario as valortarifa,");
|
sb.append(" r5.imptotalliquido as valortarifa,");
|
||||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
|
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
|
||||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,");
|
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,");
|
||||||
sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,");
|
sb.append(" (CASE WHEN s.aliasdestino_id IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,");
|
||||||
|
@ -1359,7 +1359,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,");
|
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,");
|
||||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
|
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
|
||||||
sb.append(" (CASE WHEN (nvl((CASE WHEN s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,");
|
sb.append(" (CASE WHEN (nvl((CASE WHEN s.aliasorigen_id IS NULL THEN po.regionmetropolitana_id ELSE pos.regionmetropolitana_id END),-1) = nvl((CASE WHEN s.aliasdestino_id IS NULL THEN pd.regionmetropolitana_id ELSE pds.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,");
|
||||||
sb.append(" r4.impsubtotal as valortotal");
|
sb.append(" r4.impsubtotal as valortotal,");
|
||||||
|
sb.append(" b.numfoliosistema as numfoliosistema");
|
||||||
sb.append(" from fiscal_r5 r5");
|
sb.append(" from fiscal_r5 r5");
|
||||||
sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo");
|
sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo");
|
||||||
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
|
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
|
||||||
|
@ -1402,6 +1403,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
registro.setCodigoParticipante(null);
|
registro.setCodigoParticipante(null);
|
||||||
registro.setSituacaoCOO(0); // 0 - Documento Regular; 2 - Documento Cancelado
|
registro.setSituacaoCOO(0); // 0 - Documento Regular; 2 - Documento Cancelado
|
||||||
registro.setAcrescimo(null);
|
registro.setAcrescimo(null);
|
||||||
|
registro.setNumFolioSistema(rs.getString("numFolioSistema"));
|
||||||
|
|
||||||
registro.setCodigoSituacaoTribColunaB(null);
|
registro.setCodigoSituacaoTribColunaB(null);
|
||||||
|
|
||||||
|
@ -1782,6 +1784,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
|
||||||
registro.setValorTotal(valorTotal);
|
registro.setValorTotal(valorTotal);
|
||||||
registro.setValorBaseCalculoICMS(valorBaseCalculoICMS);
|
registro.setValorBaseCalculoICMS(valorBaseCalculoICMS);
|
||||||
registro.setValorICMS(valorICMS);
|
registro.setValorICMS(valorICMS);
|
||||||
|
registro.setTributacao(tributacao_importacao);
|
||||||
}
|
}
|
||||||
|
|
||||||
group.put(key, registro);
|
group.put(key, registro);
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||||
|
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
import com.rjconsultores.ventaboletos.utilerias.UtiliteriasFiscal;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF;
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCCF;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC;
|
import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoECFTipoCFC;
|
||||||
|
@ -166,12 +167,14 @@ public class ExportacaoFiscal {
|
||||||
|
|
||||||
Map<String, BigDecimal> valoresBaseCalculoICMS = new HashMap<String, BigDecimal>(0);
|
Map<String, BigDecimal> valoresBaseCalculoICMS = new HashMap<String, BigDecimal>(0);
|
||||||
|
|
||||||
|
Map<Integer, BigDecimal> totalBaseCalculoICMS = new HashMap<Integer, BigDecimal>(0);
|
||||||
|
|
||||||
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
||||||
adicionarLinhaCFC(writer, registro);
|
adicionarLinhaCFC(writer, registro);
|
||||||
|
|
||||||
itensCCF = groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
itensCCF = groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
||||||
|
|
||||||
BigDecimal totalBaseCalculoICMS = BigDecimal.ZERO;
|
totalBaseCalculoICMS.clear();
|
||||||
|
|
||||||
if (itensCCF != null) {
|
if (itensCCF != null) {
|
||||||
for (ExportacaoECFTipoCCF itemCCF : itensCCF) {
|
for (ExportacaoECFTipoCCF itemCCF : itensCCF) {
|
||||||
|
@ -187,19 +190,24 @@ public class ExportacaoFiscal {
|
||||||
|
|
||||||
adicionarLinhaCCF(writer, itemCCF);
|
adicionarLinhaCCF(writer, itemCCF);
|
||||||
|
|
||||||
totalBaseCalculoICMS = totalBaseCalculoICMS.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN));
|
BigDecimal valor = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
if (totalBaseCalculoICMS.containsKey(itemCCF.getMunicipioOrigem())) {
|
||||||
|
valor = totalBaseCalculoICMS.get(itemCCF.getMunicipioOrigem());
|
||||||
|
}
|
||||||
|
|
||||||
|
valor = valor.add(itemCCF.getValorBaseCalculoICMS().setScale(2, BigDecimal.ROUND_HALF_EVEN));
|
||||||
|
|
||||||
|
totalBaseCalculoICMS.put(itemCCF.getMunicipioOrigem(), valor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
BigDecimal valorBaseCalculoICMS = BigDecimal.ZERO;
|
||||||
BigDecimal valorICMS = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
itensICF = groupICF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
itensICF = groupICF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
||||||
|
|
||||||
if (itensICF != null) {
|
if (itensICF != null) {
|
||||||
for (ExportacaoECFTipoICF itemICF : itensICF) {
|
for (ExportacaoECFTipoICF itemICF : itensICF) {
|
||||||
valorICMS = valorICMS.add(itemICF.getValorICMSDebitado().setScale(2, BigDecimal.ROUND_HALF_EVEN));
|
|
||||||
|
|
||||||
valorBaseCalculoICMS = BigDecimal.ZERO;
|
valorBaseCalculoICMS = BigDecimal.ZERO;
|
||||||
|
|
||||||
if (valoresBaseCalculoICMS.containsKey(itemICF.getUfDestino())) {
|
if (valoresBaseCalculoICMS.containsKey(itemICF.getUfDestino())) {
|
||||||
|
@ -214,7 +222,7 @@ public class ExportacaoFiscal {
|
||||||
|
|
||||||
if (itensPRC != null) {
|
if (itensPRC != null) {
|
||||||
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
|
for (ExportacaoECFTipoPRC itemPRC : itensPRC) {
|
||||||
adicionarLinhaPRC(writer, itemPRC, totalBaseCalculoICMS, valorICMS);
|
adicionarLinhaPRC(writer, itemPRC, totalBaseCalculoICMS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -295,6 +303,7 @@ public class ExportacaoFiscal {
|
||||||
Integer tributacaoICMS = item.getTributacaoICMS(); // 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"
|
Integer tributacaoICMS = item.getTributacaoICMS(); // 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"
|
||||||
BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
|
BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
|
||||||
BigDecimal aliquotaICMS = item.getAliquotaICMS();
|
BigDecimal aliquotaICMS = item.getAliquotaICMS();
|
||||||
|
String numFolioSistema = item.getNumFolioSistema();
|
||||||
|
|
||||||
if (municipioOrigem != null && municipioOrigem.length() > 5) {
|
if (municipioOrigem != null && municipioOrigem.length() > 5) {
|
||||||
municipioOrigem = municipioOrigem.substring(municipioOrigem.length() - 5, municipioOrigem.length());
|
municipioOrigem = municipioOrigem.substring(municipioOrigem.length() - 5, municipioOrigem.length());
|
||||||
|
@ -302,7 +311,7 @@ public class ExportacaoFiscal {
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("CCF").append(SEPARADOR);
|
sb.append("CCF").append(SEPARADOR);
|
||||||
sb.append(formataNumerico(coo.toString(), true, 6)).append(SEPARADOR);
|
sb.append(formataCaracter(numFolioSistema, true, 6)).append(SEPARADOR);
|
||||||
sb.append(formataValor(valorServico, 15)).append(SEPARADOR);
|
sb.append(formataValor(valorServico, 15)).append(SEPARADOR);
|
||||||
sb.append(descontoGlobal == null ? "" : formataValor(descontoGlobal, 15)).append(SEPARADOR);
|
sb.append(descontoGlobal == null ? "" : formataValor(descontoGlobal, 15)).append(SEPARADOR);
|
||||||
sb.append(codigoParticipante == null ? "" : formataNumerico(codigoParticipante, true, 15)).append(SEPARADOR);
|
sb.append(codigoParticipante == null ? "" : formataNumerico(codigoParticipante, true, 15)).append(SEPARADOR);
|
||||||
|
@ -380,17 +389,21 @@ public class ExportacaoFiscal {
|
||||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item, BigDecimal valorBaseCalculoICMSSoma, BigDecimal valorICMSSoma) {
|
private void adicionarLinhaPRC(PrintWriter writer, ExportacaoECFTipoPRC item, Map<Integer, BigDecimal> totalBaseCalculoICMS) {
|
||||||
String ufOrigem = item.getUfOrigem();
|
String ufOrigem = item.getUfOrigem();
|
||||||
String municipioOrigem = item.getMunicipioOrigem() == null ? null : item.getMunicipioOrigem().toString();
|
String municipioOrigem = item.getMunicipioOrigem() == null ? null : item.getMunicipioOrigem().toString();
|
||||||
BigDecimal valorTotal = item.getValorTotal();
|
BigDecimal valorTotal = item.getValorTotal();
|
||||||
BigDecimal valorBaseCalculoICMS = item.getValorBaseCalculoICMS();
|
BigDecimal valorBaseCalculoICMS = totalBaseCalculoICMS.containsKey(item.getMunicipioOrigem()) ? totalBaseCalculoICMS.get(item.getMunicipioOrigem()) : item.getValorBaseCalculoICMS();
|
||||||
BigDecimal valorICMS = item.getValorICMS();
|
BigDecimal valorICMS = item.getValorICMS();
|
||||||
|
|
||||||
if (municipioOrigem != null && municipioOrigem.length() > 5) {
|
if (municipioOrigem != null && municipioOrigem.length() > 5) {
|
||||||
municipioOrigem = municipioOrigem.substring(municipioOrigem.length() - 5, municipioOrigem.length());
|
municipioOrigem = municipioOrigem.substring(municipioOrigem.length() - 5, municipioOrigem.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.getTributacao() != null && item.getTributacao().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
valorICMS = MoneyHelper.multiplicar(valorBaseCalculoICMS, item.getTributacao());
|
||||||
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("PRC").append(SEPARADOR);
|
sb.append("PRC").append(SEPARADOR);
|
||||||
sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
|
sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
|
||||||
|
|
|
@ -20,6 +20,7 @@ public class ExportacaoECFTipoCCF {
|
||||||
private BigDecimal aliquotaICMS;
|
private BigDecimal aliquotaICMS;
|
||||||
private String ecf;
|
private String ecf;
|
||||||
private String dataEmissao;
|
private String dataEmissao;
|
||||||
|
private String numFolioSistema;
|
||||||
|
|
||||||
public ExportacaoECFTipoCCF() {
|
public ExportacaoECFTipoCCF() {
|
||||||
|
|
||||||
|
@ -161,8 +162,16 @@ public class ExportacaoECFTipoCCF {
|
||||||
this.dataEmissao = dataEmissao;
|
this.dataEmissao = dataEmissao;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNumFolioSistema() {
|
||||||
|
return numFolioSistema;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumFolioSistema(String numFolioSistema) {
|
||||||
|
this.numFolioSistema = numFolioSistema;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ExportacaoECFTipoCCF [coo=" + coo + ", valorServico=" + valorServico + ", descontoGlobal=" + descontoGlobal + ", codigoParticipante=" + codigoParticipante + ", situacaoCOO=" + situacaoCOO + ", acrescimo=" + acrescimo + ", ufOrigem=" + ufOrigem + ", municipioOrigem=" + municipioOrigem + ", ufDestino=" + ufDestino + ", cfop=" + cfop + ", codigoSituacaoTribColunaB=" + codigoSituacaoTribColunaB + ", valorTotal=" + valorTotal + ", tributacaoICMS=" + tributacaoICMS + ", valorBaseCalculoICMS=" + valorBaseCalculoICMS + ", aliquotaICMS=" + aliquotaICMS + ", ecf=" + ecf + ", dataEmissao=" + dataEmissao + "]";
|
return "ExportacaoECFTipoCCF [coo=" + coo + ", valorServico=" + valorServico + ", descontoGlobal=" + descontoGlobal + ", codigoParticipante=" + codigoParticipante + ", situacaoCOO=" + situacaoCOO + ", acrescimo=" + acrescimo + ", ufOrigem=" + ufOrigem + ", municipioOrigem=" + municipioOrigem + ", ufDestino=" + ufDestino + ", cfop=" + cfop + ", codigoSituacaoTribColunaB=" + codigoSituacaoTribColunaB + ", valorTotal=" + valorTotal + ", tributacaoICMS=" + tributacaoICMS + ", valorBaseCalculoICMS=" + valorBaseCalculoICMS + ", aliquotaICMS=" + aliquotaICMS + ", ecf=" + ecf + ", dataEmissao=" + dataEmissao + ", numFolioSistema=" + numFolioSistema + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ public class ExportacaoECFTipoPRC {
|
||||||
private BigDecimal valorICMS;
|
private BigDecimal valorICMS;
|
||||||
private String ecf;
|
private String ecf;
|
||||||
private String dataEmissao;
|
private String dataEmissao;
|
||||||
|
private BigDecimal tributacao;
|
||||||
|
|
||||||
public ExportacaoECFTipoPRC() {
|
public ExportacaoECFTipoPRC() {
|
||||||
|
|
||||||
|
@ -55,11 +56,6 @@ public class ExportacaoECFTipoPRC {
|
||||||
this.valorICMS = valorICMS;
|
this.valorICMS = valorICMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "ExportacaoECFTipoPRC [ufOrigem=" + ufOrigem + ", municipioOrigem=" + municipioOrigem + ", valorTotal=" + valorTotal + ", valorBaseCalculoICMS=" + valorBaseCalculoICMS + ", valorICMS=" + valorICMS + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEcf() {
|
public String getEcf() {
|
||||||
return ecf;
|
return ecf;
|
||||||
}
|
}
|
||||||
|
@ -75,4 +71,17 @@ public class ExportacaoECFTipoPRC {
|
||||||
public void setDataEmissao(String dataEmissao) {
|
public void setDataEmissao(String dataEmissao) {
|
||||||
this.dataEmissao = dataEmissao;
|
this.dataEmissao = dataEmissao;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTributacao() {
|
||||||
|
return tributacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTributacao(BigDecimal tributacao) {
|
||||||
|
this.tributacao = tributacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ExportacaoECFTipoPRC [ufOrigem=" + ufOrigem + ", municipioOrigem=" + municipioOrigem + ", valorTotal=" + valorTotal + ", valorBaseCalculoICMS=" + valorBaseCalculoICMS + ", valorICMS=" + valorICMS + ", ecf=" + ecf + ", dataEmissao=" + dataEmissao + ", tributacao=" + tributacao + "]";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue