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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@62694 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2016-11-17 21:04:07 +00:00
parent 53aff9ebf3
commit 4b64b475c4
2 changed files with 403 additions and 298 deletions

View File

@ -14,7 +14,6 @@ import javax.sql.DataSource;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.jfree.util.Log;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -1224,32 +1223,93 @@ public class FiscalHibernateDAO implements FiscalDAO {
List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>(); List<ExportacaoECFTipoCFC> retorno = new ArrayList<ExportacaoECFTipoCFC>();
StringBuilder sb = new StringBuilder(); 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") sb.append(" select distinct");
.append(" from fiscal_r2 r2") sb.append(" imp.numserie20 as ecf,");
.append(" where r2.datamov >= ? and r2.datamov <= ?"); 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 { try {
PreparedStatement ps = connection.prepareStatement(sb.toString()); PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL))); ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)));
ps.setLong(2, Long.valueOf(DateUtil.getStringDate(fim, 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(); ResultSet rs = ps.executeQuery();
ExportacaoECFTipoCFC registro = null; ExportacaoECFTipoCFC registro = null;
while (rs.next()) { while (rs.next()) {
BigDecimal totalIsenta = BigDecimal.ZERO;
if (rs.getBigDecimal("totalisenta") != null) {
totalIsenta = rs.getBigDecimal("totalisenta").divide(BigDecimal.valueOf(100d));
}
registro = new ExportacaoECFTipoCFC(); 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.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.setCooReducaoZ(Integer.valueOf(rs.getString("coo")));
registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial"))); registro.setCooInicial(Integer.valueOf(rs.getString("cooinicial")));
registro.setCooFinal(Integer.valueOf(rs.getString("coofinal"))); registro.setCooFinal(Integer.valueOf(rs.getString("coofinal")));
registro.setContadorReducao(Integer.valueOf(rs.getString("crz"))); registro.setContadorReducao(Integer.valueOf(rs.getString("crz")));
registro.setCro(Integer.valueOf(rs.getString("cro"))); registro.setCro(Integer.valueOf(rs.getString("cro")));
registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("vendabrutadiaria")) / 100)); registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("totalvenda")) / 100));
registro.setValorIsentas(BigDecimal.ZERO); registro.setValorIsentas(totalIsenta);
registro.setEstabelecimentoECF(9); // FIXME: Falta definir informação para a Exportação Fiscal ECF registro.setEstabelecimentoECF(rs.getInt("codestabelecimentoimpressora"));
retorno.add(registro); retorno.add(registro);
} }
@ -1269,31 +1329,47 @@ public class FiscalHibernateDAO implements FiscalDAO {
List<ExportacaoECFTipoCCF> retorno = new ArrayList<ExportacaoECFTipoCCF>(); List<ExportacaoECFTipoCCF> retorno = new ArrayList<ExportacaoECFTipoCCF>();
StringBuilder sb = new StringBuilder(); 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") sb.append(" select distinct");
.append(" from fiscal_r5 r5") sb.append(" r5.numserie20 as ecf,");
.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo") sb.append(" r5.coo as coo,");
.append(" join boleto b on b.boleto_id = r4.boleto_id") sb.append(" r5.impunitario as valortarifa,");
.append(" join parada po on po.parada_id = b.origen_id") sb.append(" (CASE WHEN cos.codibge IS NULL THEN co.codibge ELSE cos.codibge END) as municipio_origem,");
.append(" join ciudad co on co.ciudad_id = po.ciudad_id") sb.append(" (CASE WHEN eos.cveestado IS NULL THEN eo.cveestado ELSE eos.cveestado END) as estado_origem,");
.append(" join estado eo on eo.estado_id = co.estado_id") sb.append(" (CASE WHEN cds.codibge IS NULL THEN cd.codibge ELSE cds.codibge END) as municipio_destino,");
.append(" join parada pd on pd.parada_id = b.destino_id") sb.append(" (CASE WHEN eds.cveestado IS NULL THEN ed.cveestado ELSE eds.cveestado END) as estado_destino,");
.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id") sb.append(" (CASE WHEN eis.porcredbaseicms IS NULL THEN ei.porcredbaseicms ELSE eis.porcredbaseicms END) as red_base_calc_icms,");
.append(" join estado ed on ed.estado_id = cd.estado_id") sb.append(" (CASE WHEN eis.porcredmunicipal IS NULL THEN ei.porcredmunicipal ELSE eis.porcredmunicipal END) as porc_red_municipal,");
.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = ed.estado_id") sb.append(" (CASE WHEN eis.porcredestadual IS NULL THEN ei.porcredestadual ELSE eis.porcredestadual END) as porc_red_estadual,");
.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(" (CASE WHEN eis.tributacaoimportacao IS NULL THEN ei.tributacaoimportacao ELSE eis.tributacaoimportacao END) as tributacao_importacao,");
.append(" left join parada pos on pos.parada_id = s.aliasorigen_id") 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,");
.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id") sb.append(" r4.impsubtotal as valortotal");
.append(" left join estado eos on eos.estado_id = cos.estado_id") sb.append(" from fiscal_r5 r5");
.append(" left join parada pds on pds.parada_id = s.aliasdestino_id") sb.append(" join fiscal_r4 r4 on r4.numserie20 = r5.numserie20 and r4.coo = r5.coo");
.append(" left join ciudad cds on cds.ciudad_id = pds.ciudad_id") sb.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov");
.append(" left join estado eds on eds.estado_id = cds.estado_id") sb.append(" join boleto b on b.boleto_id = r4.boleto_id");
.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = eds.estado_id") sb.append(" join parada po on po.parada_id = b.origen_id");
.append(" where r5.codproduto like '%-TA' and r4.indvendamanual = 0 and r5.datamov >= ? and r5.datamov <= ?"); 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 { try {
PreparedStatement ps = connection.prepareStatement(sb.toString()); PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL))); ps.setLong(1, Long.valueOf(DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)));
ps.setLong(2, Long.valueOf(DateUtil.getStringDate(fim, 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(); ResultSet rs = ps.executeQuery();
@ -1311,7 +1387,40 @@ public class FiscalHibernateDAO implements FiscalDAO {
// 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos // 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 registro.setCodigoSituacaoTribColunaB(null); // FIXME: Falta validar tabela para isentos
if (rs.getString("estado_origem_alias") == null) { // 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);
// }
// }
registro.setUfOrigem(rs.getString("estado_origem")); registro.setUfOrigem(rs.getString("estado_origem"));
registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem"))); registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem")));
registro.setUfDestino(rs.getString("estado_destino")); registro.setUfDestino(rs.getString("estado_destino"));
@ -1327,23 +1436,6 @@ public class FiscalHibernateDAO implements FiscalDAO {
if (registro.getCodigoSituacaoTribColunaB() == null) { if (registro.getCodigoSituacaoTribColunaB() == null) {
registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20); 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);
}
}
registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100)); registro.setValorTotal(BigDecimal.valueOf(Double.valueOf(rs.getString("valortotal")) / 100));

View File

@ -31,7 +31,8 @@ import com.rjconsultores.ventaboletos.utilerias.exportacaofiscal.vo.ExportacaoRM
public class ExportacaoFiscal { public class ExportacaoFiscal {
private static Logger log = Logger.getLogger(ExportacaoFiscal.class); private static Logger log = Logger.getLogger(ExportacaoFiscal.class);
private static String VAZIO = " "; private static String VAZIO = "";
private static String SEPARADOR = "|";
public ExportacaoFiscal() { public ExportacaoFiscal() {
@ -65,14 +66,14 @@ public class ExportacaoFiscal {
private void adicionarRegistroECFTipoCAB(final PrintWriter writer, final Date dataInicial, final Date dataFinal, final String nomeEmpresa) { private void adicionarRegistroECFTipoCAB(final PrintWriter writer, final Date dataInicial, final Date dataFinal, final String nomeEmpresa) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("CAB"); sb.append("CAB").append(SEPARADOR);
sb.append("95"); sb.append("95").append(SEPARADOR);
sb.append("TotalBus"); sb.append("TotalBus").append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())); sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())).append(SEPARADOR);
sb.append(formataCaracter(nomeEmpresa, false, 15)); sb.append(formataCaracter(nomeEmpresa, false, 15)).append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)); sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)).append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)); sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR);
sb.append("TotalBus RN ECF " + new SimpleDateFormat("yyyyMM").format(dataFinal)); sb.append("TotalBus RN ECF " + new SimpleDateFormat("yyyyMM").format(dataFinal)).append(SEPARADOR);
sb.append("N"); sb.append("N");
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -93,40 +94,40 @@ public class ExportacaoFiscal {
Integer estabelecimentoECF = registro.getEstabelecimentoECF(); Integer estabelecimentoECF = registro.getEstabelecimentoECF();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("CFC"); sb.append("CFC").append(SEPARADOR);
sb.append(formataNumerico(estabelecimento, false, 4)); sb.append(formataNumerico(estabelecimento, false, 4)).append(SEPARADOR);
sb.append(formataCaracter(dataEmissao, true, 8)); sb.append(formataCaracter(dataEmissao, true, 8)).append(SEPARADOR);
sb.append(formataNumerico(numeroIdentificacaoECF, true, 3)); sb.append(formataNumerico(numeroIdentificacaoECF, true, 3)).append(SEPARADOR);
sb.append(formataNumerico(cooReducaoZ, true, 6)); sb.append(formataNumerico(cooReducaoZ, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(cooInicial, true, 6)); sb.append(formataNumerico(cooInicial, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(cooFinal, true, 6)); sb.append(formataNumerico(cooFinal, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(contadorReducao, true, 6)); sb.append(formataNumerico(contadorReducao, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(cro, true, 6)); sb.append(formataNumerico(cro, true, 6)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 12 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 12
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 13 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 14 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 14
sb.append(formataValor(valorIsentas, 15)); sb.append(formataValor(valorIsentas, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 16 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 17 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 25)); // Posição 19 sb.append(formataCaracter(VAZIO, false, 25)).append(SEPARADOR); // Posição 19
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 20 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 20
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 21 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 21
sb.append(formataCaracter(VAZIO, false, 6)); // Posição 22 sb.append(formataCaracter(VAZIO, false, 6)).append(SEPARADOR); // Posição 22
sb.append(formataCaracter(VAZIO, false, 2)); // Posição 23 sb.append(formataCaracter(VAZIO, false, 2)).append(SEPARADOR); // Posição 23
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 27 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 27
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 29 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 30 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 30
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 31 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 31
sb.append(""); // Posição 32 sb.append("").append(SEPARADOR); // Posição 32
sb.append("V"); sb.append("V").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 34 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 34
sb.append(formataNumerico(estabelecimentoECF.toString(), false, 4)); sb.append(formataNumerico(estabelecimentoECF.toString(), false, 4));
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -152,34 +153,34 @@ public class ExportacaoFiscal {
String aliquotaICMS = registro.getAliquotaICMS(); String aliquotaICMS = registro.getAliquotaICMS();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("CCF"); sb.append("CCF").append(SEPARADOR);
sb.append(formataNumerico(coo.toString(), true, 6)); sb.append(formataNumerico(coo.toString(), true, 6)).append(SEPARADOR);
sb.append(formataValor(valorServico, 15)); sb.append(formataValor(valorServico, 15)).append(SEPARADOR);
sb.append(formataValor(descontoGlobal, 15)); sb.append(formataValor(descontoGlobal, 15)).append(SEPARADOR);
sb.append(formataNumerico(codigoParticipante, true, 15)); sb.append(formataNumerico(codigoParticipante, true, 15)).append(SEPARADOR);
sb.append(formataNumerico(situacaoCOO, true, 1)); sb.append(formataNumerico(situacaoCOO, true, 1)).append(SEPARADOR);
sb.append(formataValor(acrescimo, 15)); sb.append(formataValor(acrescimo, 15)).append(SEPARADOR);
sb.append(formataCaracter(ufOrigem, true, 2)); sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(municipioOrigem, true, 5)); sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
sb.append(formataCaracter(ufDestino, true, 2)); sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(cfop, true, 4)); sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR);
sb.append("0"); sb.append("0").append(SEPARADOR);
sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 1)); // Posição 14 sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 14
sb.append(formataCaracter(VAZIO, false, 1)); // Posição 15 sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 15
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataNumerico(tributacaoICMS, true, 1)); sb.append(formataNumerico(tributacaoICMS, true, 1)).append(SEPARADOR);
sb.append(formataValor(valorBaseCalculoICMS, 15)); sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
sb.append(formataCaracter(aliquotaICMS, false, 5)); sb.append(formataCaracter(aliquotaICMS, false, 5)).append(SEPARADOR);
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 5)); // Posição 22 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 22
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 24 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 5)); // Posição 27 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 27
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 29 sb.append(formataCaracter(VAZIO, false, 3)); // Posição 29
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -201,25 +202,25 @@ public class ExportacaoFiscal {
Integer municipioOrigem = registro.getMunicipioOrigem(); Integer municipioOrigem = registro.getMunicipioOrigem();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("ICF"); sb.append("ICF").append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(ufDestino, true, 2)); sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(cfop, true, 4)); sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR);
sb.append(formataValor(valorBaseCalculoICMS, 15)); sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
sb.append(formataCaracter(aliquotaICMS, false, 5)); sb.append(formataCaracter(aliquotaICMS, false, 5)).append(SEPARADOR);
sb.append(formataValor(valorICMSDebitado, 15)); sb.append(formataValor(valorICMSDebitado, 15)).append(SEPARADOR);
sb.append(formataValor(valorICMSIsento, 15)); sb.append(formataValor(valorICMSIsento, 15)).append(SEPARADOR);
sb.append(formataValor(valorICMSOutros, 15)); sb.append(formataValor(valorICMSOutros, 15)).append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("0"); sb.append("0").append(SEPARADOR);
sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 1)); // Posição 15 sb.append(formataCaracter(VAZIO, false, 1)).append(SEPARADOR); // Posição 15
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 16 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 16
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(ufOrigem, true, 2)); sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(municipioOrigem, true, 5)); sb.append(formataNumerico(municipioOrigem, true, 5));
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -235,11 +236,11 @@ public class ExportacaoFiscal {
BigDecimal valorICMS = registro.getValorICMS(); BigDecimal valorICMS = registro.getValorICMS();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("PRC"); sb.append("PRC").append(SEPARADOR);
sb.append(formataCaracter(ufOrigem, true, 2)); sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(municipioOrigem, true, 5)); sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorBaseCalculoICMS, 15)); sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
sb.append(formataValor(valorICMS, 15)); sb.append(formataValor(valorICMS, 15));
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); 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) { private void adicionarRegistroRMDTipoCAB(PrintWriter writer, Date dataInicial, Date dataFinal, String nomeEmpresa) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("CAB"); sb.append("CAB").append(SEPARADOR);
sb.append("63"); sb.append("63").append(SEPARADOR);
sb.append("TotalBus"); sb.append("TotalBus").append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())); sb.append(new SimpleDateFormat("yyyyMMdd").format(new Date())).append(SEPARADOR);
sb.append(formataCaracter(nomeEmpresa, false, 15)); sb.append(formataCaracter(nomeEmpresa, false, 15)).append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)); sb.append(new SimpleDateFormat("yyyyMMdd").format(dataInicial)).append(SEPARADOR);
sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)); sb.append(new SimpleDateFormat("yyyyMMdd").format(dataFinal)).append(SEPARADOR);
sb.append("TotalBus AL BPR " + new SimpleDateFormat("yyyyMM").format(dataFinal)); sb.append("TotalBus AL BPR " + new SimpleDateFormat("yyyyMM").format(dataFinal)).append(SEPARADOR);
sb.append("N"); sb.append("N");
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -301,40 +302,40 @@ public class ExportacaoFiscal {
Integer cep = 0; Integer cep = 0;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("PAR"); sb.append("PAR").append(SEPARADOR);
sb.append(formataNumerico(codigoParticipante, true, 9)); sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(nomeParticipante, false, 60)); sb.append(formataCaracter(nomeParticipante, false, 60)).append(SEPARADOR);
sb.append(formataCaracter(ufParticipante, false, 2)); sb.append(formataCaracter(ufParticipante, false, 2)).append(SEPARADOR);
sb.append(formataCaracter(cpfParticipante, true, 14)); sb.append(formataCaracter(cpfParticipante, true, 14)).append(SEPARADOR);
sb.append(formataCaracter(ieParticipante, true, 14)); sb.append(formataCaracter(ieParticipante, true, 14)).append(SEPARADOR);
sb.append(formataCaracter(imParticipante, true, 20)); sb.append(formataCaracter(imParticipante, true, 20)).append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("0"); sb.append("0").append(SEPARADOR);
sb.append(formataCaracter(logradouro, false, 60)); sb.append(formataCaracter(logradouro, false, 60)).append(SEPARADOR);
sb.append(formataNumerico(numero, true, 6)); sb.append(formataNumerico(numero, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(complemento, false, 60)); sb.append(formataCaracter(complemento, false, 60)).append(SEPARADOR);
sb.append("0"); sb.append("0").append(SEPARADOR);
sb.append(formataCaracter(bairro, false, 50)); sb.append(formataCaracter(bairro, false, 50)).append(SEPARADOR);
sb.append(formataNumerico(cep, true, 8)); sb.append(formataNumerico(cep, true, 8)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 5)); // Posição 23 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 24 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24
sb.append(formataCaracter(VAZIO, false, 9)); // Posição 25 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 25
sb.append(formataCaracter(VAZIO, false, 14)); // Posição 26 sb.append(formataCaracter(VAZIO, false, 14)).append(SEPARADOR); // Posição 26
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 28 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 29 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29
sb.append("1558"); sb.append("1558").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append("N"); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 60)); // Posição 33 sb.append(formataCaracter(VAZIO, false, 60)).append(SEPARADOR); // Posição 33
sb.append(VAZIO); // Posição 34 sb.append(VAZIO).append(SEPARADOR); // Posição 34
sb.append(VAZIO); // Posição 35 sb.append(VAZIO).append(SEPARADOR); // Posição 35
sb.append(formataCaracter(VAZIO, false, 7)); // Posição 36 sb.append(formataCaracter(VAZIO, false, 7)); // Posição 36
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -353,40 +354,40 @@ public class ExportacaoFiscal {
String codigoContabil = "31102010010001"; String codigoContabil = "31102010010001";
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("RMD"); sb.append("RMD").append(SEPARADOR);
sb.append(formataNumerico(codigoEstabelecimento, true, 9)); sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR);
sb.append(formataNumerico(numeroAIDF, true, 25)); sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR);
sb.append(formataCaracter(serieAIDF, false, 3)); sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataCaracter(subSerieAIDF, false, 3)); sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataNumerico(numeroBilheteAIDF, true, 6)); sb.append(formataNumerico(numeroBilheteAIDF, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(numeroFormularioAIDF, true, 6)); sb.append(formataNumerico(numeroFormularioAIDF, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(dataEmissao, false, 6)); sb.append(formataCaracter(dataEmissao, false, 6)).append(SEPARADOR);
sb.append(cancelado ? "S" : "N"); sb.append(cancelado ? "S" : "N").append(SEPARADOR);
sb.append(""); // Posição 10 sb.append("").append(SEPARADOR); // Posição 10
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 11 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 11
sb.append(formataCaracter(VAZIO, false, 4)); // Posição 12 sb.append(formataCaracter(VAZIO, false, 4)).append(SEPARADOR); // Posição 12
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 13 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13
sb.append(formataCaracter(VAZIO, false, 5)); // Posição 14 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 14
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 15 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 15
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 16 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 17 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17
sb.append(formataNumerico(codigoParticipante, true, 9)); sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 19 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 19
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 20 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 20
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 21 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 22 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 24 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 25 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append(formataNumerico(codigoContabil, true, 9)); sb.append(formataNumerico(codigoContabil, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 9)); // Posição 30 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 30
sb.append(formataCaracter(VAZIO, false, 9)); // Posição 31 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 31
sb.append(formataCaracter(VAZIO, false, 9)); // Posição 32 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 32
sb.append(formataCaracter(VAZIO, false, 8)); // Posição 33 sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 32 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 32
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 33 sb.append(formataCaracter(VAZIO, false, 3)); // Posição 33
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -410,37 +411,37 @@ public class ExportacaoFiscal {
Integer numeroRMD = 2723; Integer numeroRMD = 2723;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("BPS"); sb.append("BPS").append(SEPARADOR);
sb.append(formataNumerico(codigoEstabelecimento, true, 9)); sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(especie, false, 5)); sb.append(formataCaracter(especie, false, 5)).append(SEPARADOR);
sb.append(formataNumerico(numeroAIDF, true, 25)); sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR);
sb.append(formataCaracter(serieAIDF, false, 3)); sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataCaracter(subSerieAIDF, false, 3)); sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataCaracter(numeroInicial, true, 6)); sb.append(formataCaracter(numeroInicial, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(numeroFinal, true, 6)); sb.append(formataCaracter(numeroFinal, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(quantidadeCancelados, true, 9)); sb.append(formataNumerico(quantidadeCancelados, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(numeroInicial, true, 6)); sb.append(formataCaracter(numeroInicial, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(numeroFinal, true, 6)); sb.append(formataCaracter(numeroFinal, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(dataEmissao, true, 8)); sb.append(formataCaracter(dataEmissao, true, 8)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(resumoMovimentoDiario ? "S" : "N"); sb.append(resumoMovimentoDiario ? "S" : "N").append(SEPARADOR);
sb.append(formataNumerico(numeroAIDFRMD, true, 25)); sb.append(formataNumerico(numeroAIDFRMD, true, 25)).append(SEPARADOR);
sb.append(formataCaracter(serieAIDFRMD, false, 3)); sb.append(formataCaracter(serieAIDFRMD, false, 3)).append(SEPARADOR);
sb.append(formataCaracter(subSerieAIDFRMD, false, 3)); sb.append(formataCaracter(subSerieAIDFRMD, false, 3)).append(SEPARADOR);
sb.append(formataNumerico(numeroRMD, true, 6)); sb.append(formataNumerico(numeroRMD, true, 6)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 21 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 22 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 23 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 24 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 25 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25
sb.append(formataCaracter(VAZIO, false, 15)); // Posição 26 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
sb.append(""); // Posição 27 sb.append("").append(SEPARADOR); // Posição 27
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append("01"); sb.append("01").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 30 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 30
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 31 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 31
sb.append(formataCaracter(VAZIO, false, 8)); // Posição 32 sb.append(formataCaracter(VAZIO, false, 8)); // Posição 32
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -460,18 +461,18 @@ public class ExportacaoFiscal {
Integer municipioOrigem = 8003; Integer municipioOrigem = 8003;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("DBP"); sb.append("DBP").append(SEPARADOR);
sb.append(formataCaracter(ufDestino, true, 2)); sb.append(formataCaracter(ufDestino, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(cfop, true, 4)); sb.append(formataNumerico(cfop, true, 4)).append(SEPARADOR);
sb.append(formataValor(valorTotal, 15)); sb.append(formataValor(valorTotal, 15)).append(SEPARADOR);
sb.append(formataValor(valorBaseCalculoICMS, 15)); sb.append(formataValor(valorBaseCalculoICMS, 15)).append(SEPARADOR);
sb.append(formataCaracter(aliquotaICMS, false, 5)); sb.append(formataCaracter(aliquotaICMS, false, 5)).append(SEPARADOR);
sb.append(formataValor(valorICMSDebitado, 15)); sb.append(formataValor(valorICMSDebitado, 15)).append(SEPARADOR);
sb.append(formataValor(valorICMSIsento, 15)); sb.append(formataValor(valorICMSIsento, 15)).append(SEPARADOR);
sb.append(formataValor(valorICMSOutros, 15)); sb.append(formataValor(valorICMSOutros, 15)).append(SEPARADOR);
sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)); sb.append(formataNumerico(codigoSituacaoTribColunaB, true, 2)).append(SEPARADOR);
sb.append(formataCaracter(ufOrigem, true, 2)); sb.append(formataCaracter(ufOrigem, true, 2)).append(SEPARADOR);
sb.append(formataNumerico(municipioOrigem, true, 5)); sb.append(formataNumerico(municipioOrigem, true, 5)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 3)); // Posição 13 sb.append(formataCaracter(VAZIO, false, 3)); // Posição 13
writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA); writer.print(sb.toString() + UtiliteriasFiscal.QUEBRA_LINHA);
@ -482,54 +483,66 @@ public class ExportacaoFiscal {
valor = ""; valor = "";
} }
if (removeMascara) { // if (removeMascara) {
valor = valor.replace("-", "").replace(".", "").replace("/", ""); // 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) { return valor;
valor = valor.substring(0, tamanho);
}
return String.format("%1$-" + tamanho + "s", valor);
} }
private String formataNumerico(final String valor, final boolean removeMascara, final int tamanho) { private String formataNumerico(final String valor, final boolean removeMascara, final int tamanho) {
String retorno = StringUtils.trim(valor); String retorno = StringUtils.trim(valor);
if (retorno == null) { if (retorno == null) {
retorno = ""; retorno = "0";
} }
if (removeMascara) { // if (removeMascara) {
retorno = retorno.replace("-", "").replace(".", "").replace("/", ""); // retorno = retorno.replace("-", "").replace(".", "").replace("/", "");
} // }
//
retorno = retorno.replace(".", "").replace(",",""); // retorno = retorno.replace(".", "").replace(",","");
//
if (tamanho > 0) { // if (tamanho > 0) {
if (retorno.length() > tamanho) { // if (retorno.length() > tamanho) {
retorno = retorno.substring(retorno.length() - tamanho, retorno.length()); // retorno = retorno.substring(retorno.length() - tamanho, retorno.length());
} // }
//
return StringUtils.leftPad(retorno, tamanho, "0"); // return StringUtils.leftPad(retorno, tamanho, "0");
} // }
return retorno; return retorno;
} }
private String formataNumerico(final Integer valor, final boolean removeMascara, final int tamanho) { 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) { if (valor == null) {
return formataCaracter(" ", true, tamanho); return "0";
} else { } else {
return formataNumerico(valor.toString(), removeMascara, tamanho); return formataNumerico(valor.toString(), removeMascara, tamanho);
} }
} }
private String formataValor(final BigDecimal valor, final int 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) { if (valor == null) {
return formataCaracter(" ", true, tamanho); return "0";
} else { } else {
return formataNumerico(valor.setScale(2).toString(), false, tamanho); return valor.setScale(2).toString();
} }
} }
} }