From 4b64b475c4c6039782b51a0cf6582adc47028750 Mon Sep 17 00:00:00 2001 From: alberto Date: Thu, 17 Nov 2016 21:04:07 +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@62694 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 210 +++++--- .../exportacaofiscal/ExportacaoFiscal.java | 491 +++++++++--------- 2 files changed, 403 insertions(+), 298 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 94609e17b..b94a4cf37 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -14,7 +14,6 @@ import javax.sql.DataSource; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.jfree.util.Log; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @@ -1222,34 +1221,95 @@ public class FiscalHibernateDAO implements FiscalDAO { @Override public List buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { List retorno = new ArrayList(); - + StringBuilder sb = new StringBuilder(); - sb.append(" select distinct r2.datamov as datamov, r2.cooinicial as cooinicial, r2.coofinal as coofinal, r2.crz as crz, r2.cro as cro, r2.coo as coo, r2.vendabrutadiaria as vendabrutadiaria, r2.totgeral as totgeral") - .append(" from fiscal_r2 r2") - .append(" where r2.datamov >= ? and r2.datamov <= ?"); + sb.append(" select distinct"); + sb.append(" imp.numserie20 as ecf,"); + sb.append(" r2.datamov as datamov,"); + sb.append(" r2.cooinicial as cooinicial,"); + sb.append(" r2.coofinal as coofinal,"); + sb.append(" r2.crz as crz,"); + sb.append(" r2.cro as cro,"); + sb.append(" r2.coo as coo,"); + sb.append(" nvl(CASE WHEN eis.codestabelecimento IS NULL THEN ei.codestabelecimento ELSE eis.codestabelecimento END, 0) as codestabelecimento,"); + sb.append(" nvl(e.codestabelecimento, 0) as codestabelecimentoimpressora,"); + sb.append(" imp.numeroidentificacao as numeroidentificacao,"); + sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estadoorigem,"); + sb.append(" ("); + sb.append(" select nvl(sum(r5i.imptotalliquido), 0)"); + sb.append(" from fiscal_r5 r5i"); + sb.append(" join fiscal_r4 r4i on r4i.numserie20 = r5i.numserie20 and r4i.datamov = r5i.datamov and r4i.coo = r5i.coo and r4i.contador = r5i.contador"); + sb.append(" join boleto bi on bi.boleto_id = r4i.boleto_id"); + sb.append(" join parada poi on poi.parada_id = bi.origen_id"); + sb.append(" join parada pdi on pdi.parada_id = bi.destino_id"); + sb.append(" left join alias_servico si on si.origen_id = bi.origen_id and si.destino_id = bi.destino_id and si.corrida_id = bi.corrida_id and si.ruta_id = bi.ruta_id"); + sb.append(" left join parada posi on posi.parada_id = si.aliasorigen_id"); + sb.append(" left join parada pdsi on pdsi.parada_id = si.aliasdestino_id"); + sb.append(" where r5i.numserie20 = r4.numserie20 and r5i.datamov = r2.datamov and r5i.codproduto like '%-TA'"); + sb.append(" and (nvl(case when posi.regionmetropolitana_id is null then poi.regionmetropolitana_id else posi.regionmetropolitana_id end, -1) = nvl(case when pdsi.regionmetropolitana_id is null then pdi.regionmetropolitana_id else pdsi.regionmetropolitana_id end, -2))"); + sb.append(" ) as totalisenta,"); + sb.append(" r2.vendabrutadiaria as vendabrutadiaria,"); + sb.append(" r2.totgeral as totgeral,"); + sb.append(" ("); + sb.append(" select nvl(sum(r4t.impsubtotal), 0)"); + sb.append(" from fiscal_r4 r4t"); + sb.append(" join boleto bt on bt.boleto_id = r4t.boleto_id"); + sb.append(" join parada pot on pot.parada_id = bt.origen_id"); + sb.append(" join ciudad cot on cot.ciudad_id = pot.ciudad_id"); + sb.append(" join estado eot on eot.estado_id = cot.estado_id"); + sb.append(" left join alias_servico st on st.origen_id = bt.origen_id and st.destino_id = bt.destino_id and st.corrida_id = bt.corrida_id and st.ruta_id = bt.ruta_id"); + 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 eos.cveestado 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"); + sb.append(" join fiscal_impressora imp on imp.numserie20 = r4.numserie20"); + sb.append(" join boleto b on b.boleto_id = r4.boleto_id"); + sb.append(" join parada po on po.parada_id = b.origen_id"); + sb.append(" join ciudad co on co.ciudad_id = po.ciudad_id"); + sb.append(" join estado eo on eo.estado_id = co.estado_id"); + sb.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = co.estado_id"); + sb.append(" left join alias_servico s on s.origen_id = b.origen_id and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id and s.ruta_id = b.ruta_id"); + 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 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 eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); + sb.append(" order by r2.datamov"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL))); ps.setLong(2, Long.valueOf(DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL))); + ps.setLong(3, Long.valueOf(empresaId)); + ps.setString(4, cveestado); ResultSet rs = ps.executeQuery(); ExportacaoECFTipoCFC registro = null; while (rs.next()) { + BigDecimal totalIsenta = BigDecimal.ZERO; + + if (rs.getBigDecimal("totalisenta") != null) { + totalIsenta = rs.getBigDecimal("totalisenta").divide(BigDecimal.valueOf(100d)); + } + registro = new ExportacaoECFTipoCFC(); - registro.setEstabelecimento(99); // FIXME: Falta definir informação para a Exportação Fiscal ECF + registro.setEstabelecimento(rs.getInt("codestabelecimento")); registro.setDataEmissao(rs.getString("datamov")); - registro.setNumeroIdentificacaoECF(99); // FIXME: Falta definir informação para a Exportação Fiscal ECF + registro.setNumeroIdentificacaoECF(rs.getInt("numeroidentificacao")); 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("vendabrutadiaria")) / 100)); - registro.setValorIsentas(BigDecimal.ZERO); - registro.setEstabelecimentoECF(9); // FIXME: Falta definir informação para a Exportação Fiscal ECF + registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("totalvenda")) / 100)); + registro.setValorIsentas(totalIsenta); + registro.setEstabelecimentoECF(rs.getInt("codestabelecimentoimpressora")); retorno.add(registro); } @@ -1269,31 +1329,47 @@ public class FiscalHibernateDAO implements FiscalDAO { List retorno = new ArrayList(); StringBuilder sb = new StringBuilder(); - sb.append(" select distinct r5.coo as coo, r5.impunitario as valortarifa, co.codibge as municipio_origem, eo.cveestado as estado_origem, cd.codibge as municipio_destino, ed.cveestado as estado_destino, r4.impsubtotal as valortotal, cos.CODIBGE as municipio_origem_alias, eos.cveestado as estado_origem_alias, cds.CODIBGE as municipio_destino_alias, eds.cveestado as estado_destino_alias, ei.porcredbaseicms as red_base_calc_icms, eis.porcredbaseicms as red_base_calc_icms_alias") - .append(" from fiscal_r5 r5") - .append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo") - .append(" join boleto b on b.boleto_id = r4.boleto_id") - .append(" join parada po on po.parada_id = b.origen_id") - .append(" join ciudad co on co.ciudad_id = po.ciudad_id") - .append(" join estado eo on eo.estado_id = co.estado_id") - .append(" join parada pd on pd.parada_id = b.destino_id") - .append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id") - .append(" join estado ed on ed.estado_id = cd.estado_id") - .append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = ed.estado_id") - .append(" left join alias_servico s on s.origen_id = b.origen_id and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id and s.ruta_id = b.ruta_id") - .append(" left join parada pos on pos.parada_id = s.aliasorigen_id") - .append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id") - .append(" left join estado eos on eos.estado_id = cos.estado_id") - .append(" left join parada pds on pds.parada_id = s.aliasdestino_id") - .append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id") - .append(" left join estado eds on eds.estado_id = cds.estado_id") - .append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eds.estado_id") - .append(" where r5.codproduto like '%-TA' and r4.indvendamanual = 0 and r5.datamov >= ? and r5.datamov <= ?"); + sb.append(" select distinct"); + sb.append(" r5.numserie20 as ecf,"); + sb.append(" r5.coo as coo,"); + sb.append(" r5.impunitario as valortarifa,"); + sb.append(" (CASE WHEN cos.codibge IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,"); + sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,"); + sb.append(" (CASE WHEN cds.codibge IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,"); + sb.append(" (CASE WHEN eds.cveestado IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,"); + sb.append(" (CASE WHEN eis.porcredbaseicms IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,"); + sb.append(" (CASE WHEN eis.porcredmunicipal IS NULL THEN ei.porcredmunicipal ELSE eis.porcredmunicipal END) as porc_red_municipal,"); + sb.append(" (CASE WHEN eis.porcredestadual IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,"); + sb.append(" (CASE WHEN eis.tributacaoimportacao IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,"); + sb.append(" (CASE WHEN (nvl((CASE WHEN pos.parada_id IS NULL THEN pos.regionmetropolitana_id ELSE po.regionmetropolitana_id END),-1) = nvl((CASE WHEN pds.parada_id IS NULL THEN pds.regionmetropolitana_id ELSE pd.regionmetropolitana_id END),-2)) THEN 1 ELSE 0 END) as isenta,"); + sb.append(" r4.impsubtotal as valortotal"); + 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_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov"); + sb.append(" join boleto b on b.boleto_id = r4.boleto_id"); + sb.append(" join parada po on po.parada_id = b.origen_id"); + sb.append(" join ciudad co on co.ciudad_id = po.ciudad_id"); + sb.append(" join estado eo on eo.estado_id = co.estado_id"); + sb.append(" join parada pd on pd.parada_id = b.destino_id"); + sb.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id"); + sb.append(" join estado ed on ed.estado_id = cd.estado_id"); + sb.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = eo.estado_id"); + sb.append(" left join alias_servico s on s.origen_id = b.origen_id and s.destino_id = b.destino_id and s.corrida_id = b.corrida_id and s.ruta_id = b.ruta_id"); + 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 r5.codproduto like '%-TA' and r5.datamov >= ? and r5.datamov <= ? and b.empresacorrida_id = ? and ((CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) = ?)"); try { PreparedStatement ps = connection.prepareStatement(sb.toString()); ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL))); ps.setLong(2, Long.valueOf(DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL))); + ps.setLong(3, Long.valueOf(empresaId)); + ps.setString(4, cveestado); ResultSet rs = ps.executeQuery(); @@ -1311,38 +1387,54 @@ public class FiscalHibernateDAO implements FiscalDAO { // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos registro.setCodigoSituacaoTribColunaB(null); // FIXME: Falta validar tabela para isentos - if (rs.getString("estado_origem_alias") == null) { - registro.setUfOrigem(rs.getString("estado_origem")); - registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); - registro.setUfDestino(rs.getString("estado_destino")); - - // IM=5357; Serviço IE= 6357 - if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { - registro.setCfop(5357); - } else { - registro.setCfop(6357); - } +// if (rs.getString("estado_origem_alias") == null) { +// registro.setUfOrigem(rs.getString("estado_origem")); +// registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); +// registro.setUfDestino(rs.getString("estado_destino")); +// +// // IM=5357; Serviço IE= 6357 +// if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { +// registro.setCfop(5357); +// } else { +// registro.setCfop(6357); +// } +// +// // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos +// if (registro.getCodigoSituacaoTribColunaB() == null) { +// registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20); +// } +// } else { +// registro.setUfOrigem(rs.getString("estado_origem_alias")); +// registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem_alias"))); +// registro.setUfDestino(rs.getString("estado_destino_alias")); +// +// // IM=5357; Serviço IE= 6357 +// if (rs.getString("estado_origem_alias").equals(rs.getString("estado_destino_alias"))) { +// registro.setCfop(5357); +// } else { +// registro.setCfop(6357); +// } +// +// // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos +// if (registro.getCodigoSituacaoTribColunaB() == null) { +// registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms_alias") == 0 ? 0 : 20); +// } +// } - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - if (registro.getCodigoSituacaoTribColunaB() == null) { - registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20); - } + registro.setUfOrigem(rs.getString("estado_origem")); + registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); + registro.setUfDestino(rs.getString("estado_destino")); + + // IM=5357; Serviço IE= 6357 + if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) { + registro.setCfop(5357); } else { - registro.setUfOrigem(rs.getString("estado_origem_alias")); - registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem_alias"))); - registro.setUfDestino(rs.getString("estado_destino_alias")); - - // IM=5357; Serviço IE= 6357 - if (rs.getString("estado_origem_alias").equals(rs.getString("estado_destino_alias"))) { - registro.setCfop(5357); - } else { - registro.setCfop(6357); - } + registro.setCfop(6357); + } - // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos - if (registro.getCodigoSituacaoTribColunaB() == null) { - registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms_alias") == 0 ? 0 : 20); - } + // 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos + if (registro.getCodigoSituacaoTribColunaB() == null) { + registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20); } registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100)); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java index 3bbf85eed..0360794ef 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java @@ -31,7 +31,8 @@ import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRM public class ExportacaoFiscal { private static Logger log = Logger.getLogger(ExportacaoFiscal.class); - private static String VAZIO = " "; + private static String VAZIO = ""; + private static String SEPARADOR = "|"; public ExportacaoFiscal() { @@ -65,14 +66,14 @@ public class ExportacaoFiscal { private void adicionarRegistroECFTipoCAB(final PrintWriter writer, final Date dataInicial, final Date dataFinal, final String nomeEmpresa) { StringBuilder sb = new StringBuilder(); - sb.append("CAB"); - sb.append("95"); - sb.append("TotalBus"); - sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())); - sb.append(formataCaracter(nomeEmpresa, false, 15)); - sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)); - sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)); - sb.append("TotalBus RN ECF " + new SimpleDateFormat("yyyyMM").format(dataFinal)); + sb.append("CAB").append(SEPARADOR); + sb.append("95").append(SEPARADOR); + sb.append("TotalBus").append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())).append(SEPARADOR); + sb.append(formataCaracter(nomeEmpresa, false, 15)).append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)).append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR); + sb.append("TotalBus RN ECF " + new SimpleDateFormat("yyyyMM").format(dataFinal)).append(SEPARADOR); sb.append("N"); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -93,40 +94,40 @@ public class ExportacaoFiscal { Integer estabelecimentoECF = registro.getEstabelecimentoECF(); StringBuilder sb = new StringBuilder(); - sb.append("CFC"); - sb.append(formataNumerico(estabelecimento, false, 4)); - sb.append(formataCaracter(dataEmissao, true, 8)); - sb.append(formataNumerico(numeroIdentificacaoECF, true, 3)); - sb.append(formataNumerico(cooReducaoZ, true, 6)); - sb.append(formataNumerico(cooInicial, true, 6)); - sb.append(formataNumerico(cooFinal, true, 6)); - sb.append(formataNumerico(contadorReducao, true, 6)); - sb.append(formataNumerico(cro, true, 6)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 12 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 13 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 14 - sb.append(formataValor(valorIsentas, 15)); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 16 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 17 - sb.append("N"); - sb.append(formataCaracter(VAZIO, false, 25)); // Posição 19 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 20 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 21 - sb.append(formataCaracter(VAZIO, false, 6)); // Posição 22 - sb.append(formataCaracter(VAZIO, false, 2)); // Posição 23 - sb.append(formataValor(valorTotal, 15)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 27 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 29 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 30 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 31 - sb.append(""); // Posição 32 - sb.append("V"); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 34 + 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); @@ -152,34 +153,34 @@ public class ExportacaoFiscal { String aliquotaICMS = registro.getAliquotaICMS(); StringBuilder sb = new StringBuilder(); - sb.append("CCF"); - sb.append(formataNumerico(coo.toString(), true, 6)); - sb.append(formataValor(valorServico, 15)); - sb.append(formataValor(descontoGlobal, 15)); - sb.append(formataNumerico(codigoParticipante, true, 15)); - sb.append(formataNumerico(situacaoCOO, true, 1)); - sb.append(formataValor(acrescimo, 15)); - sb.append(formataCaracter(ufOrigem, true, 2)); - sb.append(formataNumerico(municipioOrigem, true, 5)); - sb.append(formataCaracter(ufDestino, true, 2)); - sb.append(formataNumerico(cfop, true, 4)); - sb.append("0"); - sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); - sb.append(formataCaracter(VAZIO, false, 1)); // Posição 14 - sb.append(formataCaracter(VAZIO, false, 1)); // Posição 15 - sb.append(formataValor(valorTotal, 15)); - sb.append(formataNumerico(tributacaoICMS, true, 1)); - sb.append(formataValor(valorBaseCalculoICMS, 15)); - sb.append(formataCaracter(aliquotaICMS, false, 5)); - sb.append("01"); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(VAZIO, false, 5)); // Posição 22 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 24 - sb.append("01"); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(VAZIO, false, 5)); // Posição 27 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 + 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(formataCaracter(aliquotaICMS, false, 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); @@ -201,25 +202,25 @@ public class ExportacaoFiscal { Integer municipioOrigem = registro.getMunicipioOrigem(); StringBuilder sb = new StringBuilder(); - sb.append("ICF"); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(ufDestino, true, 2)); - sb.append(formataNumerico(cfop, true, 4)); - sb.append(formataValor(valorBaseCalculoICMS, 15)); - sb.append(formataCaracter(aliquotaICMS, false, 5)); - sb.append(formataValor(valorICMSDebitado, 15)); - sb.append(formataValor(valorICMSIsento, 15)); - sb.append(formataValor(valorICMSOutros, 15)); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("0"); - sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); - sb.append(formataCaracter(VAZIO, false, 1)); // Posição 15 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 16 - sb.append("N"); - sb.append("N"); - sb.append(formataCaracter(ufOrigem, true, 2)); + sb.append("ICF").append(SEPARADOR); + sb.append(formataValor(valorTotal, 15)).append(SEPARADOR); + sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR); + sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR); + sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR); + sb.append(formataCaracter(aliquotaICMS, false, 5)).append(SEPARADOR); + sb.append(formataValor(valorICMSDebitado, 15)).append(SEPARADOR); + sb.append(formataValor(valorICMSIsento, 15)).append(SEPARADOR); + sb.append(formataValor(valorICMSOutros, 15)).append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").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 15 + sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 16 + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR); sb.append(formataNumerico(municipioOrigem, true, 5)); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -235,11 +236,11 @@ public class ExportacaoFiscal { BigDecimal valorICMS = registro.getValorICMS(); StringBuilder sb = new StringBuilder(); - sb.append("PRC"); - sb.append(formataCaracter(ufOrigem, true, 2)); - sb.append(formataNumerico(municipioOrigem, true, 5)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataValor(valorBaseCalculoICMS, 15)); + sb.append("PRC").append(SEPARADOR); + sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR); + 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(valorICMS, 15)); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -274,14 +275,14 @@ public class ExportacaoFiscal { private void adicionarRegistroRMDTipoCAB(PrintWriter writer, Date dataInicial, Date dataFinal, String nomeEmpresa) { StringBuilder sb = new StringBuilder(); - sb.append("CAB"); - sb.append("63"); - sb.append("TotalBus"); - sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())); - sb.append(formataCaracter(nomeEmpresa, false, 15)); - sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)); - sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)); - sb.append("TotalBus AL BPR " + new SimpleDateFormat("yyyyMM").format(dataFinal)); + sb.append("CAB").append(SEPARADOR); + sb.append("63").append(SEPARADOR); + sb.append("TotalBus").append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())).append(SEPARADOR); + sb.append(formataCaracter(nomeEmpresa, false, 15)).append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)).append(SEPARADOR); + sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR); + sb.append("TotalBus AL BPR " + new SimpleDateFormat("yyyyMM").format(dataFinal)).append(SEPARADOR); sb.append("N"); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -301,40 +302,40 @@ public class ExportacaoFiscal { Integer cep = 0; StringBuilder sb = new StringBuilder(); - sb.append("PAR"); - sb.append(formataNumerico(codigoParticipante, true, 9)); - sb.append(formataCaracter(nomeParticipante, false, 60)); - sb.append(formataCaracter(ufParticipante, false, 2)); - sb.append(formataCaracter(cpfParticipante, true, 14)); - sb.append(formataCaracter(ieParticipante, true, 14)); - sb.append(formataCaracter(imParticipante, true, 20)); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("N"); - sb.append("0"); - sb.append(formataCaracter(logradouro, false, 60)); - sb.append(formataNumerico(numero, true, 6)); - sb.append(formataCaracter(complemento, false, 60)); - sb.append("0"); - sb.append(formataCaracter(bairro, false, 50)); - sb.append(formataNumerico(cep, true, 8)); - sb.append(formataCaracter(VAZIO, false, 5)); // Posição 23 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 24 - sb.append(formataCaracter(VAZIO, false, 9)); // Posição 25 - sb.append(formataCaracter(VAZIO, false, 14)); // Posição 26 - sb.append("N"); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 29 - sb.append("1558"); - sb.append("N"); - sb.append("N"); - sb.append(formataCaracter(VAZIO, false, 60)); // Posição 33 - sb.append(VAZIO); // Posição 34 - sb.append(VAZIO); // Posição 35 + sb.append("PAR").append(SEPARADOR); + sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR); + sb.append(formataCaracter(nomeParticipante, false, 60)).append(SEPARADOR); + sb.append(formataCaracter(ufParticipante, false, 2)).append(SEPARADOR); + sb.append(formataCaracter(cpfParticipante, true, 14)).append(SEPARADOR); + sb.append(formataCaracter(ieParticipante, true, 14)).append(SEPARADOR); + sb.append(formataCaracter(imParticipante, true, 20)).append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("0").append(SEPARADOR); + sb.append(formataCaracter(logradouro, false, 60)).append(SEPARADOR); + sb.append(formataNumerico(numero, true, 6)).append(SEPARADOR); + sb.append(formataCaracter(complemento, false, 60)).append(SEPARADOR); + sb.append("0").append(SEPARADOR); + sb.append(formataCaracter(bairro, false, 50)).append(SEPARADOR); + sb.append(formataNumerico(cep, true, 8)).append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 23 + sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24 + sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 25 + sb.append(formataCaracter(VAZIO, false, 14)).append(SEPARADOR); // Posição 26 + sb.append("N").append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29 + sb.append("1558").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append("N").append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 60)).append(SEPARADOR); // Posição 33 + sb.append(VAZIO).append(SEPARADOR); // Posição 34 + sb.append(VAZIO).append(SEPARADOR); // Posição 35 sb.append(formataCaracter(VAZIO, false, 7)); // Posição 36 writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -353,40 +354,40 @@ public class ExportacaoFiscal { String codigoContabil = "31102010010001"; StringBuilder sb = new StringBuilder(); - sb.append("RMD"); - sb.append(formataNumerico(codigoEstabelecimento, true, 9)); - sb.append(formataNumerico(numeroAIDF, true, 25)); - sb.append(formataCaracter(serieAIDF, false, 3)); - sb.append(formataCaracter(subSerieAIDF, false, 3)); - sb.append(formataNumerico(numeroBilheteAIDF, true, 6)); - sb.append(formataNumerico(numeroFormularioAIDF, true, 6)); - sb.append(formataCaracter(dataEmissao, false, 6)); - sb.append(cancelado ? "S" : "N"); - sb.append(""); // Posição 10 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 11 - sb.append(formataCaracter(VAZIO, false, 4)); // Posição 12 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 13 - sb.append(formataCaracter(VAZIO, false, 5)); // Posição 14 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 15 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 16 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 17 - sb.append(formataNumerico(codigoParticipante, true, 9)); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 19 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 20 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 21 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 22 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 24 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 25 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 - sb.append("01"); - sb.append("01"); - sb.append(formataNumerico(codigoContabil, true, 9)); - sb.append(formataCaracter(VAZIO, false, 9)); // Posição 30 - sb.append(formataCaracter(VAZIO, false, 9)); // Posição 31 - sb.append(formataCaracter(VAZIO, false, 9)); // Posição 32 - sb.append(formataCaracter(VAZIO, false, 8)); // Posição 33 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 32 + sb.append("RMD").append(SEPARADOR); + sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR); + sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR); + sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR); + sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR); + sb.append(formataNumerico(numeroBilheteAIDF, true, 6)).append(SEPARADOR); + sb.append(formataNumerico(numeroFormularioAIDF, true, 6)).append(SEPARADOR); + sb.append(formataCaracter(dataEmissao, false, 6)).append(SEPARADOR); + sb.append(cancelado ? "S" : "N").append(SEPARADOR); + sb.append("").append(SEPARADOR); // Posição 10 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 11 + sb.append(formataCaracter(VAZIO, false, 4)).append(SEPARADOR); // Posição 12 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13 + sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 14 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 15 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17 + sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 19 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 20 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26 + sb.append("01").append(SEPARADOR); + sb.append("01").append(SEPARADOR); + sb.append(formataNumerico(codigoContabil, true, 9)).append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 30 + sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 31 + sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 32 + sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33 + sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 32 sb.append(formataCaracter(VAZIO, false, 3)); // Posição 33 writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -410,37 +411,37 @@ public class ExportacaoFiscal { Integer numeroRMD = 2723; StringBuilder sb = new StringBuilder(); - sb.append("BPS"); - sb.append(formataNumerico(codigoEstabelecimento, true, 9)); - sb.append(formataCaracter(especie, false, 5)); - sb.append(formataNumerico(numeroAIDF, true, 25)); - sb.append(formataCaracter(serieAIDF, false, 3)); - sb.append(formataCaracter(subSerieAIDF, false, 3)); - sb.append(formataCaracter(numeroInicial, true, 6)); - sb.append(formataCaracter(numeroFinal, true, 6)); - sb.append(formataNumerico(quantidadeCancelados, true, 9)); - sb.append(formataCaracter(numeroInicial, true, 6)); - sb.append(formataCaracter(numeroFinal, true, 6)); - sb.append(formataCaracter(dataEmissao, true, 8)); - sb.append(formataValor(valorTotal, 15)); - sb.append(resumoMovimentoDiario ? "S" : "N"); - sb.append(formataNumerico(numeroAIDFRMD, true, 25)); - sb.append(formataCaracter(serieAIDFRMD, false, 3)); - sb.append(formataCaracter(subSerieAIDFRMD, false, 3)); - sb.append(formataNumerico(numeroRMD, true, 6)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 21 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 22 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 24 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 25 - sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 - sb.append(""); // Posição 27 - sb.append("01"); - sb.append("01"); - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 30 - sb.append(formataCaracter(VAZIO, false, 3)); // Posição 31 + sb.append("BPS").append(SEPARADOR); + sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR); + sb.append(formataCaracter(especie, false, 5)).append(SEPARADOR); + sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR); + sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR); + sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR); + sb.append(formataCaracter(numeroInicial, true, 6)).append(SEPARADOR); + sb.append(formataCaracter(numeroFinal, true, 6)).append(SEPARADOR); + sb.append(formataNumerico(quantidadeCancelados, true, 9)).append(SEPARADOR); + sb.append(formataCaracter(numeroInicial, true, 6)).append(SEPARADOR); + sb.append(formataCaracter(numeroFinal, true, 6)).append(SEPARADOR); + sb.append(formataCaracter(dataEmissao, true, 8)).append(SEPARADOR); + sb.append(formataValor(valorTotal, 15)).append(SEPARADOR); + sb.append(resumoMovimentoDiario ? "S" : "N").append(SEPARADOR); + sb.append(formataNumerico(numeroAIDFRMD, true, 25)).append(SEPARADOR); + sb.append(formataCaracter(serieAIDFRMD, false, 3)).append(SEPARADOR); + sb.append(formataCaracter(subSerieAIDFRMD, false, 3)).append(SEPARADOR); + sb.append(formataNumerico(numeroRMD, 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 21 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25 + sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26 + sb.append("").append(SEPARADOR); // Posição 27 + sb.append("01").append(SEPARADOR); + sb.append("01").append(SEPARADOR); + sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 30 + sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 31 sb.append(formataCaracter(VAZIO, false, 8)); // Posição 32 writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -460,18 +461,18 @@ public class ExportacaoFiscal { Integer municipioOrigem = 8003; StringBuilder sb = new StringBuilder(); - sb.append("DBP"); - sb.append(formataCaracter(ufDestino, true, 2)); - sb.append(formataNumerico(cfop, true, 4)); - sb.append(formataValor(valorTotal, 15)); - sb.append(formataValor(valorBaseCalculoICMS, 15)); - sb.append(formataCaracter(aliquotaICMS, false, 5)); - sb.append(formataValor(valorICMSDebitado, 15)); - sb.append(formataValor(valorICMSIsento, 15)); - sb.append(formataValor(valorICMSOutros, 15)); - sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); - sb.append(formataCaracter(ufOrigem, true, 2)); - sb.append(formataNumerico(municipioOrigem, true, 5)); + sb.append("DBP").append(SEPARADOR); + sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR); + sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR); + sb.append(formataValor(valorTotal, 15)).append(SEPARADOR); + sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR); + sb.append(formataCaracter(aliquotaICMS, false, 5)).append(SEPARADOR); + sb.append(formataValor(valorICMSDebitado, 15)).append(SEPARADOR); + sb.append(formataValor(valorICMSIsento, 15)).append(SEPARADOR); + sb.append(formataValor(valorICMSOutros, 15)).append(SEPARADOR); + sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR); + sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR); + sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR); sb.append(formataCaracter(VAZIO, false, 3)); // Posição 13 writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); @@ -482,54 +483,66 @@ public class ExportacaoFiscal { valor = ""; } - if (removeMascara) { - valor = valor.replace("-", "").replace(".", "").replace("/", ""); - } +// if (removeMascara) { +// valor = valor.replace("-", "").replace(".", "").replace("/", ""); +// } +// +// if (valor.length() > tamanho) { +// valor = valor.substring(0, tamanho); +// } +// +// return String.format("%1$-" + tamanho + "s", valor); - if (valor.length() > tamanho) { - valor = valor.substring(0, tamanho); - } - - return String.format("%1$-" + tamanho + "s", valor); + return valor; } private String formataNumerico(final String valor, final boolean removeMascara, final int tamanho) { String retorno = StringUtils.trim(valor); if (retorno == null) { - retorno = ""; + retorno = "0"; } - if (removeMascara) { - retorno = retorno.replace("-", "").replace(".", "").replace("/", ""); - } - - retorno = retorno.replace(".", "").replace(",",""); - - if (tamanho > 0) { - if (retorno.length() > tamanho) { - retorno = retorno.substring(retorno.length() - tamanho, retorno.length()); - } - - return StringUtils.leftPad(retorno, tamanho, "0"); - } +// if (removeMascara) { +// retorno = retorno.replace("-", "").replace(".", "").replace("/", ""); +// } +// +// retorno = retorno.replace(".", "").replace(",",""); +// +// if (tamanho > 0) { +// if (retorno.length() > tamanho) { +// retorno = retorno.substring(retorno.length() - tamanho, retorno.length()); +// } +// +// return StringUtils.leftPad(retorno, tamanho, "0"); +// } return retorno; } private String formataNumerico(final Integer valor, final boolean removeMascara, final int tamanho) { +// if (valor == null) { +// return formataCaracter(" ", true, tamanho); +// } else { +// return formataNumerico(valor.toString(), removeMascara, tamanho); +// } if (valor == null) { - return formataCaracter(" ", true, tamanho); + return "0"; } else { return formataNumerico(valor.toString(), removeMascara, tamanho); } } private String formataValor(final BigDecimal valor, final int tamanho) { +// if (valor == null) { +// return formataCaracter(" ", true, tamanho); +// } else { +// return formataNumerico(valor.setScale(2).toString(), false, tamanho); +// } if (valor == null) { - return formataCaracter(" ", true, tamanho); + return "0"; } else { - return formataNumerico(valor.setScale(2).toString(), false, tamanho); + return valor.setScale(2).toString(); } } }