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-87c2c4800839master
parent
53aff9ebf3
commit
4b64b475c4
|
@ -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,38 +1387,54 @@ 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.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"));
|
||||||
|
//
|
||||||
|
// // 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);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// IM=5357; Serviço IE= 6357
|
registro.setUfOrigem(rs.getString("estado_origem"));
|
||||||
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem")));
|
||||||
registro.setCfop(5357);
|
registro.setUfDestino(rs.getString("estado_destino"));
|
||||||
} else {
|
|
||||||
registro.setCfop(6357);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos
|
// IM=5357; Serviço IE= 6357
|
||||||
if (registro.getCodigoSituacaoTribColunaB() == null) {
|
if (rs.getString("estado_origem").equals(rs.getString("estado_destino"))) {
|
||||||
registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20);
|
registro.setCfop(5357);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
registro.setUfOrigem(rs.getString("estado_origem_alias"));
|
registro.setCfop(6357);
|
||||||
registro.setMunicipioOrigem(Integer.valueOf(rs.getString("municipio_origem_alias")));
|
}
|
||||||
registro.setUfDestino(rs.getString("estado_destino_alias"));
|
|
||||||
|
|
||||||
// IM=5357; Serviço IE= 6357
|
// 00 - tributação normal; 20 - tributação com redução na base de calculo; 40 - isentos
|
||||||
if (rs.getString("estado_origem_alias").equals(rs.getString("estado_destino_alias"))) {
|
if (registro.getCodigoSituacaoTribColunaB() == null) {
|
||||||
registro.setCfop(5357);
|
registro.setCodigoSituacaoTribColunaB(rs.getInt("red_base_calc_icms") == 0 ? 0 : 20);
|
||||||
} 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));
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue