Exportação Fiscal : ECF e RMD (issue 8120)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@64234 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
ea7975519a
commit
f607592fcb
|
@ -1224,7 +1224,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
@Override
|
||||
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
|
||||
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
|
||||
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" select distinct");
|
||||
sb.append(" imp.numserie20 as ecf,");
|
||||
|
@ -1264,7 +1264,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join parada post on post.parada_id = st.aliasorigen_id");
|
||||
sb.append(" left join ciudad cost on cost.ciudad_id = post.ciudad_id");
|
||||
sb.append(" left join estado eost on eost.estado_id = cost.estado_id");
|
||||
sb.append(" where r4t.numserie20 = r2.numserie20 and r4t.datamov = r2.datamov and ((CASE WHEN eost.cveestado IS NULL THEN eot.cveestado ELSE eost.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))");
|
||||
sb.append(" where r4t.numserie20 = r2.numserie20 and r4t.datamov = r2.datamov and ((CASE WHEN s.aliasorigen_id IS NULL THEN eot.cveestado ELSE eost.cveestado END) = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END))");
|
||||
sb.append(" ) as totalvenda");
|
||||
sb.append(" from fiscal_r4 r4");
|
||||
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
|
||||
|
@ -1280,7 +1280,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join estado eos on eos.estado_id = cos.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id");
|
||||
sb.append(" left join estado e on e.estado_id = imp.estadolocal_id");
|
||||
sb.append(" where r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
sb.append(" where nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
sb.append(" order by r2.datamov");
|
||||
|
||||
try {
|
||||
|
@ -1305,12 +1305,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
registro.setEstabelecimento(rs.getInt("codestabelecimento"));
|
||||
registro.setDataEmissao(rs.getString("datamov"));
|
||||
registro.setNumeroIdentificacaoECF(rs.getInt("numeroidentificacao"));
|
||||
registro.setEcf(rs.getString("ecf"));
|
||||
registro.setCooReducaoZ(Integer.valueOf(rs.getString("coo")));
|
||||
registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial")));
|
||||
registro.setCooFinal(Integer.valueOf(rs.getString("coofinal")));
|
||||
registro.setContadorReducao(Integer.valueOf(rs.getString("crz")));
|
||||
registro.setCro(Integer.valueOf(rs.getString("cro")));
|
||||
registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("totalvenda")) / 100));
|
||||
registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("vendabrutadiaria")) / 100));
|
||||
registro.setValorIsentas(totalIsenta);
|
||||
registro.setEstabelecimentoECF(rs.getInt("codestabelecimentoimpressora"));
|
||||
|
||||
|
@ -1334,6 +1335,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" select distinct");
|
||||
sb.append(" r5.numserie20 as ecf,");
|
||||
sb.append(" r5.datamov as datamov,");
|
||||
sb.append(" r5.coo as coo,");
|
||||
sb.append(" r5.impunitario as valortarifa,");
|
||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
|
||||
|
@ -1365,7 +1367,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id");
|
||||
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id");
|
||||
sb.append(" where r5.codproduto like '%-TA' and r5.datamov >= ? and r5.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
sb.append(" where nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r5.codproduto like '%-TA' and r5.datamov >= ? and r5.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
||||
|
@ -1380,6 +1382,8 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
|
||||
while (rs.next()) {
|
||||
registro = new ExportacaoECFTipoCCF();
|
||||
registro.setEcf(rs.getString("ecf"));
|
||||
registro.setDataEmissao(rs.getString("datamov"));
|
||||
registro.setCoo(Integer.valueOf(rs.getString("coo")));
|
||||
registro.setValorServico(BigDecimal.valueOf(Double.valueOf(rs.getString("valortarifa")) / 100));
|
||||
registro.setDescontoGlobal(null);
|
||||
|
@ -1492,7 +1496,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id");
|
||||
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id");
|
||||
sb.append(" where r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
sb.append(" where nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
||||
|
@ -1534,7 +1538,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
}
|
||||
}
|
||||
|
||||
BigDecimal valorICMSDebitado = valorBaseCalculoICMS.multiply(tributacao_importacao);
|
||||
BigDecimal valorICMSDebitado = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(tributacao_importacao));
|
||||
BigDecimal valorICMSIsento = BigDecimal.ZERO;
|
||||
BigDecimal valorICMSOutros = BigDecimal.ZERO;
|
||||
|
||||
|
@ -1616,16 +1620,18 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
List<ExportacaoECFTipoPRC> retorno = new ArrayList<ExportacaoECFTipoPRC>();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" select municipio_origem, estado_origem, red_base_calc_icms, porc_red_municipal, porc_red_estadual, SUM(valortotal) as valortotal");
|
||||
sb.append(" select municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao, SUM(valortotal) as valortotal");
|
||||
sb.append(" from (");
|
||||
|
||||
|
||||
sb.append(" select");
|
||||
sb.append(" r4.numserie20 as ecf,");
|
||||
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 ed.cveestado ELSE eds.cveestado END) as estado_destino,");
|
||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,");
|
||||
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN ei.porcredmunicipal ELSE eis.porcredmunicipal END) as porc_red_municipal,");
|
||||
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(" r4.impsubtotal as valortotal");
|
||||
sb.append(" from fiscal_r4 r4");
|
||||
sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
|
||||
|
@ -1641,10 +1647,13 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" left join parada pos on pos.parada_id = s.aliasorigen_id");
|
||||
sb.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id");
|
||||
sb.append(" left join estado eos on eos.estado_id = cos.estado_id");
|
||||
sb.append(" left join parada pds on pds.parada_id = s.aliasdestino_id");
|
||||
sb.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id");
|
||||
sb.append(" left join estado eds on eds.estado_id = cds.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id");
|
||||
sb.append(" where r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
sb.append(" where nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 and b.activo = 1 and r4.datamov >= ? and r4.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)");
|
||||
|
||||
sb.append(" ) group by municipio_origem, estado_origem, red_base_calc_icms, porc_red_municipal, porc_red_estadual");
|
||||
sb.append(" ) group by municipio_origem, estado_origem, estado_destino, red_base_calc_icms, porc_red_municipal, porc_red_estadual, tributacao_importacao");
|
||||
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement(sb.toString());
|
||||
|
@ -1684,7 +1693,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
}
|
||||
}
|
||||
|
||||
BigDecimal valorICMS = valorBaseCalculoICMS.multiply(tributacao_importacao);
|
||||
BigDecimal valorICMS = (tributacao_importacao == null ? BigDecimal.ZERO : valorBaseCalculoICMS.multiply(tributacao_importacao));
|
||||
|
||||
registro = new ExportacaoECFTipoPRC();
|
||||
registro.setUfOrigem(rs.getString("estado_origem"));
|
||||
|
@ -1800,7 +1809,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = co.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id");
|
||||
sb.append(" where");
|
||||
sb.append(" b.activo = 1");
|
||||
sb.append(" b.activo = 1 and");
|
||||
sb.append(" and b.tipoventa_id = 3");
|
||||
sb.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END) = 1");
|
||||
sb.append(" and (b.indstatusboleto like 'V' or b.indstatusboleto like 'C')");
|
||||
|
@ -2014,7 +2023,7 @@ public class FiscalHibernateDAO implements FiscalDAO {
|
|||
sb.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.estado_id");
|
||||
sb.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eos.estado_id");
|
||||
sb.append(" where");
|
||||
sb.append(" b.activo = 1");
|
||||
sb.append(" b.activo = 1 and");
|
||||
sb.append(" and b.tipoventa_id = 3");
|
||||
sb.append(" and (b.indstatusboleto like 'V' or b.indstatusboleto like 'C')");
|
||||
sb.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END) = 1");
|
||||
|
|
|
@ -7,9 +7,12 @@ import java.io.OutputStreamWriter;
|
|||
import java.io.PrintWriter;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
@ -48,8 +51,9 @@ public class ExportacaoFiscal {
|
|||
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(arquivo), Constantes.UTF_8));
|
||||
|
||||
adicionarRegistroECFTipoCAB(writer, dataInicial, dataFinal, nomeEmpresa);
|
||||
adicionarRegistroECFTipoCFC(writer, listaRegistroECFTipoCFC);
|
||||
adicionarRegistroECFTipoCCF(writer, listaRegistroECFTipoCCF);
|
||||
// adicionarRegistroECFTipoCFC(writer, listaRegistroECFTipoCFC);
|
||||
// adicionarRegistroECFTipoCCF(writer, listaRegistroECFTipoCCF);
|
||||
adicionarRegistroECFTipoCFC_CCF(writer, listaRegistroECFTipoCFC, listaRegistroECFTipoCCF);
|
||||
adicionarRegistroECFTipoICF(writer, listaRegistroECFTipoICF);
|
||||
adicionarRegistroECFTipoPRC(writer, listaRegistroECFTipoPRC);
|
||||
|
||||
|
@ -81,112 +85,150 @@ public class ExportacaoFiscal {
|
|||
|
||||
private void adicionarRegistroECFTipoCFC(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC) {
|
||||
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
||||
Integer estabelecimento = registro.getEstabelecimento();
|
||||
String dataEmissao = registro.getDataEmissao();
|
||||
Integer numeroIdentificacaoECF = registro.getNumeroIdentificacaoECF();
|
||||
Integer cooReducaoZ = registro.getCooReducaoZ();
|
||||
Integer cooInicial = registro.getCooInicial();
|
||||
Integer cooFinal = registro.getCooFinal();
|
||||
Integer contadorReducao = registro.getContadorReducao();
|
||||
Integer cro = registro.getCro();
|
||||
BigDecimal valorTotal = registro.getValorTotal();
|
||||
BigDecimal valorIsentas = registro.getValorIsentas();
|
||||
Integer estabelecimentoECF = registro.getEstabelecimentoECF();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("CFC").append(SEPARADOR);
|
||||
sb.append(formataNumerico(estabelecimento, false, 4)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(dataEmissao, true, 8)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(numeroIdentificacaoECF, true, 3)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooReducaoZ, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooInicial, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooFinal, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(contadorReducao, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cro, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 12
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 14
|
||||
sb.append(formataValor(valorIsentas, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17
|
||||
sb.append("N").append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 25)).append(SEPARADOR); // Posição 19
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 20
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 21
|
||||
sb.append(formataCaracter(VAZIO, false, 6)).append(SEPARADOR); // Posição 22
|
||||
sb.append(formataCaracter(VAZIO, false, 2)).append(SEPARADOR); // Posição 23
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 27
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 30
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 31
|
||||
sb.append("").append(SEPARADOR); // Posição 32
|
||||
sb.append("V").append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 34
|
||||
sb.append(formataNumerico(estabelecimentoECF.toString(), false, 4));
|
||||
|
||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||
adicionarLinhaCFC(writer, registro);
|
||||
}
|
||||
}
|
||||
|
||||
private void adicionarRegistroECFTipoCCF(PrintWriter writer, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF) {
|
||||
for (ExportacaoECFTipoCCF registro : listaRegistroECFTipoCCF) {
|
||||
Integer coo = registro.getCoo();
|
||||
BigDecimal valorServico = registro.getValorServico();
|
||||
BigDecimal descontoGlobal = registro.getDescontoGlobal();
|
||||
Integer codigoParticipante = registro.getCodigoParticipante();
|
||||
Integer situacaoCOO = registro.getSituacaoCOO(); // 0 - Documento Regular; 2 - Documento Cancelado
|
||||
BigDecimal acrescimo = registro.getAcrescimo();
|
||||
String ufOrigem = registro.getUfOrigem();
|
||||
Integer municipioOrigem = registro.getMunicipioOrigem();
|
||||
String ufDestino = registro.getUfDestino();
|
||||
Integer cfop = registro.getCfop(); // IM=5357; Serviço IE= 6357
|
||||
Integer codigoSituacaoTribColunaB = registro.getCodigoSituacaoTribColunaB(); // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos
|
||||
BigDecimal valorTotal = registro.getValorTotal();
|
||||
Integer tributacaoICMS = registro.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 = registro.getValorBaseCalculoICMS();
|
||||
BigDecimal aliquotaICMS = registro.getAliquotaICMS();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("CCF").append(SEPARADOR);
|
||||
sb.append(formataNumerico(coo.toString(), true, 6)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorServico, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(descontoGlobal, 15)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(codigoParticipante, true, 15)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(situacaoCOO, true, 1)).append(SEPARADOR);
|
||||
sb.append(formataValor(acrescimo, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR);
|
||||
sb.append("0").append(SEPARADOR);
|
||||
sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 14
|
||||
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(formataValor(aliquotaICMS, 5)).append(SEPARADOR);
|
||||
sb.append("01").append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 22
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24
|
||||
sb.append("01").append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 27
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
|
||||
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 29
|
||||
|
||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||
adicionarLinhaCCF(writer, registro);
|
||||
}
|
||||
}
|
||||
|
||||
private void adicionarRegistroECFTipoCFC_CCF(PrintWriter writer, final List<ExportacaoECFTipoCFC> listaRegistroECFTipoCFC, final List<ExportacaoECFTipoCCF> listaRegistroECFTipoCCF) {
|
||||
Map<String, List<ExportacaoECFTipoCCF>> groupCCF = new HashMap<String, List<ExportacaoECFTipoCCF>>();
|
||||
|
||||
List<ExportacaoECFTipoCCF> itens = new ArrayList<ExportacaoECFTipoCCF>();
|
||||
|
||||
for (ExportacaoECFTipoCCF registro : listaRegistroECFTipoCCF) {
|
||||
itens = new ArrayList<ExportacaoECFTipoCCF>();
|
||||
|
||||
if (groupCCF.containsKey(registro.getEcf() + "|" + registro.getDataEmissao())) {
|
||||
itens.addAll(groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao()));
|
||||
}
|
||||
|
||||
itens.add(registro);
|
||||
|
||||
groupCCF.put(registro.getEcf() + "|" + registro.getDataEmissao(), itens);
|
||||
}
|
||||
|
||||
for (ExportacaoECFTipoCFC registro : listaRegistroECFTipoCFC) {
|
||||
adicionarLinhaCFC(writer, registro);
|
||||
|
||||
itens = groupCCF.get(registro.getEcf() + "|" + registro.getDataEmissao());
|
||||
|
||||
if (itens != null) {
|
||||
for (ExportacaoECFTipoCCF item : itens) {
|
||||
adicionarLinhaCCF(writer, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void adicionarLinhaCFC(PrintWriter writer, ExportacaoECFTipoCFC registro) {
|
||||
Integer estabelecimento = registro.getEstabelecimento();
|
||||
String dataEmissao = registro.getDataEmissao();
|
||||
Integer numeroIdentificacaoECF = registro.getNumeroIdentificacaoECF();
|
||||
Integer cooReducaoZ = registro.getCooReducaoZ();
|
||||
Integer cooInicial = registro.getCooInicial();
|
||||
Integer cooFinal = registro.getCooFinal();
|
||||
Integer contadorReducao = registro.getContadorReducao();
|
||||
Integer cro = registro.getCro();
|
||||
BigDecimal valorTotal = registro.getValorTotal();
|
||||
BigDecimal valorIsentas = registro.getValorIsentas();
|
||||
Integer estabelecimentoECF = registro.getEstabelecimentoECF();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("CFC").append(SEPARADOR);
|
||||
sb.append(formataNumerico(estabelecimento, false, 4)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(dataEmissao, true, 8)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(numeroIdentificacaoECF, true, 3)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooReducaoZ, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooInicial, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cooFinal, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(contadorReducao, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cro, true, 6)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 12
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 14
|
||||
sb.append(formataValor(valorIsentas, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17
|
||||
sb.append("N").append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 25)).append(SEPARADOR); // Posição 19
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 20
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 21
|
||||
sb.append(formataCaracter(VAZIO, false, 6)).append(SEPARADOR); // Posição 22
|
||||
sb.append(formataCaracter(VAZIO, false, 2)).append(SEPARADOR); // Posição 23
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 27
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 30
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 31
|
||||
sb.append("").append(SEPARADOR); // Posição 32
|
||||
sb.append("V").append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 34
|
||||
sb.append(formataNumerico(estabelecimentoECF.toString(), false, 4));
|
||||
|
||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||
}
|
||||
|
||||
private void adicionarLinhaCCF(PrintWriter writer, ExportacaoECFTipoCCF item) {
|
||||
Integer coo = item.getCoo();
|
||||
BigDecimal valorServico = item.getValorServico();
|
||||
BigDecimal descontoGlobal = item.getDescontoGlobal();
|
||||
Integer codigoParticipante = item.getCodigoParticipante();
|
||||
Integer situacaoCOO = item.getSituacaoCOO(); // 0 - Documento Regular; 2 - Documento Cancelado
|
||||
BigDecimal acrescimo = item.getAcrescimo();
|
||||
String ufOrigem = item.getUfOrigem();
|
||||
Integer municipioOrigem = item.getMunicipioOrigem();
|
||||
String ufDestino = item.getUfDestino();
|
||||
Integer cfop = item.getCfop(); // IM=5357; Serviço IE= 6357
|
||||
Integer codigoSituacaoTribColunaB = item.getCodigoSituacaoTribColunaB(); // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos
|
||||
BigDecimal valorTotal = item.getValorTotal();
|
||||
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 aliquotaICMS = item.getAliquotaICMS();
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("CCF").append(SEPARADOR);
|
||||
sb.append(formataNumerico(coo.toString(), true, 6)).append(SEPARADOR);
|
||||
sb.append(formataValor(valorServico, 15)).append(SEPARADOR);
|
||||
sb.append(formataValor(descontoGlobal, 15)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(codigoParticipante, true, 15)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(situacaoCOO, true, 1)).append(SEPARADOR);
|
||||
sb.append(formataValor(acrescimo, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR);
|
||||
sb.append("0").append(SEPARADOR);
|
||||
sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 14
|
||||
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(formataValor(aliquotaICMS, 5)).append(SEPARADOR);
|
||||
sb.append("01").append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 22
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
|
||||
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24
|
||||
sb.append("01").append(SEPARADOR);
|
||||
sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
|
||||
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 27
|
||||
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
|
||||
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 29
|
||||
|
||||
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
|
||||
}
|
||||
|
||||
private void adicionarRegistroECFTipoICF(PrintWriter writer, final List<ExportacaoECFTipoICF> listaRegistroECFTipoICF) {
|
||||
for (ExportacaoECFTipoICF registro : listaRegistroECFTipoICF) {
|
||||
BigDecimal valorTotal = registro.getValorTotal();
|
||||
|
|
|
@ -18,6 +18,8 @@ public class ExportacaoECFTipoCCF {
|
|||
private Integer tributacaoICMS; // 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"
|
||||
private BigDecimal valorBaseCalculoICMS;
|
||||
private BigDecimal aliquotaICMS;
|
||||
private String ecf;
|
||||
private String dataEmissao;
|
||||
|
||||
public ExportacaoECFTipoCCF() {
|
||||
|
||||
|
@ -143,8 +145,24 @@ public class ExportacaoECFTipoCCF {
|
|||
this.aliquotaICMS = aliquotaICMS;
|
||||
}
|
||||
|
||||
public String getEcf() {
|
||||
return ecf;
|
||||
}
|
||||
|
||||
public void setEcf(String ecf) {
|
||||
this.ecf = ecf;
|
||||
}
|
||||
|
||||
public String getDataEmissao() {
|
||||
return dataEmissao;
|
||||
}
|
||||
|
||||
public void setDataEmissao(String dataEmissao) {
|
||||
this.dataEmissao = dataEmissao;
|
||||
}
|
||||
|
||||
@Override
|
||||
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 + "]";
|
||||
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 + "]";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,8 @@ public class ExportacaoECFTipoCFC {
|
|||
private BigDecimal valorTotal;
|
||||
private BigDecimal valorIsentas;
|
||||
private Integer estabelecimentoECF;
|
||||
|
||||
private String ecf;
|
||||
|
||||
public ExportacaoECFTipoCFC() {
|
||||
|
||||
}
|
||||
|
@ -107,8 +108,16 @@ public class ExportacaoECFTipoCFC {
|
|||
this.estabelecimentoECF = estabelecimentoECF;
|
||||
}
|
||||
|
||||
public String getEcf() {
|
||||
return ecf;
|
||||
}
|
||||
|
||||
public void setEcf(String ecf) {
|
||||
this.ecf = ecf;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ExportacaoECFTipoCFC [estabelecimento=" + estabelecimento + ", dataEmissao=" + dataEmissao + ", numeroIdentificacaoECF=" + numeroIdentificacaoECF + ", cooReducaoZ=" + cooReducaoZ + ", cooInicial=" + cooInicial + ", cooFinal=" + cooFinal + ", contadorReducao=" + contadorReducao + ", cro=" + cro + ", valorTotal=" + valorTotal + ", valorIsentas=" + valorIsentas + ", estabelecimentoECF=" + estabelecimentoECF + "]";
|
||||
return "ExportacaoECFTipoCFC [estabelecimento=" + estabelecimento + ", dataEmissao=" + dataEmissao + ", numeroIdentificacaoECF=" + numeroIdentificacaoECF + ", cooReducaoZ=" + cooReducaoZ + ", cooInicial=" + cooInicial + ", cooFinal=" + cooFinal + ", contadorReducao=" + contadorReducao + ", cro=" + cro + ", valorTotal=" + valorTotal + ", valorIsentas=" + valorIsentas + ", estabelecimentoECF=" + estabelecimentoECF + ", ecf=" + ecf + "]";
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue