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

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@62831 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2016-11-23 20:44:43 +00:00
parent 32f6eb6183
commit 011608943e
2 changed files with 216 additions and 98 deletions

View File

@ -6,6 +6,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.ResultSetMetaData; import java.sql.ResultSetMetaData;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -1706,6 +1707,57 @@ public class FiscalHibernateDAO implements FiscalDAO {
@Override @Override
public List<ExportacaoRMDTipoPAR> buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { public List<ExportacaoRMDTipoPAR> buscarRegistroRMDTipoPAR(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoPAR> retorno = new ArrayList<ExportacaoRMDTipoPAR>(); List<ExportacaoRMDTipoPAR> retorno = new ArrayList<ExportacaoRMDTipoPAR>();
StringBuilder sb = new StringBuilder();
sb.append(" select");
sb.append(" c.estado_id as cod_participante,");
sb.append(" e.nombempresa as nombempresa,");
sb.append(" e.cveestado as cveestado,");
sb.append(" e.cnpj as cnpj,");
sb.append(" ie.numinscricaoestadual as numinscricaoestadual,");
sb.append(" ie.logradouro as logradouro,");
sb.append(" ie.numero as numero,");
sb.append(" ie.complemento as complemento,");
sb.append(" ie.bairro as bairro,");
sb.append(" ie.cep as cep");
sb.append(" from empresa e");
sb.append(" join ciudad c on c.ciudad_id = e.ciudad_id");
sb.append(" join estado e on e.estado_id = c.estado_id");
sb.append(" left join estado eie on eie.cveestado like ?");
sb.append(" left join inscricao_estadual ie on ie.empresa_id = e.empresa_id and ie.estado_id = eie.estado_id");
sb.append(" where e.empresa_id = ?");
try {
PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setString(1, cveestado);
ps.setLong(2, Long.valueOf(empresaId));
ResultSet rs = ps.executeQuery();
ExportacaoRMDTipoPAR registro = null;
while (rs.next()) {
registro = new ExportacaoRMDTipoPAR();
registro.setCodigoParticipante(rs.getInt("cod_participante"));
registro.setNomeParticipante(rs.getString("nombempresa"));
registro.setUfParticipante(rs.getString("cveestado"));
registro.setCpfParticipante(rs.getString("cnpj"));
registro.setIeParticipante(rs.getString("numinscricaoestadual"));
registro.setLogradouro(rs.getString("logradouro"));
registro.setNumero(rs.getInt("numero"));
registro.setComplemento(rs.getString("complemento"));
registro.setBairro(rs.getString("bairro"));
registro.setCep(rs.getString("cep") == null ? null : Integer.parseInt(rs.getString("cep").replace("-", "").replace(".", "")));
retorno.add(registro);
}
rs.close();
ps.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return retorno; return retorno;
} }
@ -1713,6 +1765,69 @@ public class FiscalHibernateDAO implements FiscalDAO {
@Override @Override
public List<ExportacaoRMDTipoRMD> buscarRegistroRMDTipoRMD(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { public List<ExportacaoRMDTipoRMD> buscarRegistroRMDTipoRMD(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
List<ExportacaoRMDTipoRMD> retorno = new ArrayList<ExportacaoRMDTipoRMD>(); List<ExportacaoRMDTipoRMD> retorno = new ArrayList<ExportacaoRMDTipoRMD>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
StringBuilder sb = new StringBuilder();
sb.append(" select");
sb.append(" ce.estado_id as cod_estabelecimento,");
sb.append(" (CASE WHEN s.aliasorigen_id IS NULL THEN eo.estado_id ELSE eos.estado_id END) as cod_participante,");
sb.append(" a.acfiscal as num_aidf,");
sb.append(" a.serie as serie,");
sb.append(" a.subserie as subserie,");
sb.append(" b.numfoliosistema as num_bilhete,");
sb.append(" b.numfoliopreimpreso as num_formulario,");
sb.append(" b.feccreacion as data_emissao,");
sb.append(" (CASE WHEN b.indstatusboleto like 'C' THEN 'S' ELSE 'N' END) as doc_cancelado");
sb.append(" from boleto b");
sb.append(" join empresa e on e.empresa_id = b.empresacorrida_id");
sb.append(" join ciudad ce on ce.ciudad_id = e.ciudad_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(" 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(" join aidf a on a.serie = substr(b.numseriepreimpresa, 1, 3) and a.estado_id = (CASE WHEN s.aliasorigen_id IS NULL THEN eo.estado_id ELSE eos.estado_id END)");
sb.append(" where");
sb.append(" b.tipoventa_id = 3");
sb.append(" and (b.indstatusboleto like 'V' or b.indstatusboleto like 'C')");
sb.append(" and b.empresacorrida_id = ?");
sb.append(" and (b.feccorrida >= ? and b.feccorrida >= ?)");
sb.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) like ?");
try {
PreparedStatement ps = connection.prepareStatement(sb.toString());
ps.setString(1, cveestado);
ps.setLong(2, Long.valueOf(empresaId));
ResultSet rs = ps.executeQuery();
ExportacaoRMDTipoRMD registro = null;
while (rs.next()) {
registro = new ExportacaoRMDTipoRMD();
registro.setCodigoEstabelecimento(rs.getInt("cod_estabelecimento"));
registro.setNumeroAIDF(rs.getInt("num_aidf"));
registro.setSerieAIDF(rs.getString("serie"));
registro.setSubSerieAIDF(rs.getString("subserie"));
registro.setNumeroBilheteAIDF(rs.getInt("num_bilhete"));
registro.setNumeroFormularioAIDF(rs.getInt("num_formulario"));
registro.setDataEmissao(sdf.format(rs.getDate("data_emissao")));
registro.setCancelado(rs.getString("doc_cancelado").equals("S") ? Boolean.TRUE : Boolean.FALSE);
registro.setCodigoParticipante(rs.getInt("cod_participante"));
registro.setCodigoContabil(""); //FIXME: Falta definir - registro.setCodigoContabil(rs.getString("doc_cancelado").equals("S") ? "" : rs.getString(""));
retorno.add(registro);
}
rs.close();
ps.close();
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return retorno; return retorno;
} }

View File

@ -289,108 +289,111 @@ public class ExportacaoFiscal {
} }
private void adicionarRegistroRMDTipoPAR(PrintWriter writer, List<ExportacaoRMDTipoPAR> listaRegistroRMDTipoPAR) { private void adicionarRegistroRMDTipoPAR(PrintWriter writer, List<ExportacaoRMDTipoPAR> listaRegistroRMDTipoPAR) {
Integer codigoParticipante = 7; for (ExportacaoRMDTipoPAR registro : listaRegistroRMDTipoPAR) {
String nomeParticipante = "EXPRESSO GUANABARA S/A"; Integer codigoParticipante = registro.getCodigoParticipante();
String ufParticipante = "AL"; String nomeParticipante = registro.getNomeParticipante();
String cpfParticipante = "41550112004514"; String ufParticipante = registro.getUfParticipante();
String ieParticipante = "241034574"; String cpfParticipante = registro.getCpfParticipante();
String imParticipante = ""; String ieParticipante = registro.getIeParticipante();
String logradouro = "AV. GOV. LAMENHA FILHO. TERM.RODOV. MACEIO/AL"; String logradouro = registro.getLogradouro();
Integer numero = 10; Integer numero = registro.getNumero();
String complemento = ""; String complemento = registro.getComplemento();
String bairro = ""; String bairro = registro.getBairro();
Integer cep = 0; Integer cep = registro.getCep();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("PAR").append(SEPARADOR); sb.append("PAR").append(SEPARADOR);
sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR); sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(nomeParticipante, false, 60)).append(SEPARADOR); sb.append(formataCaracter(nomeParticipante, false, 60)).append(SEPARADOR);
sb.append(formataCaracter(ufParticipante, false, 2)).append(SEPARADOR); sb.append(formataCaracter(ufParticipante, false, 2)).append(SEPARADOR);
sb.append(formataCaracter(cpfParticipante, true, 14)).append(SEPARADOR); sb.append(formataCaracter(cpfParticipante, true, 14)).append(SEPARADOR);
sb.append(formataCaracter(ieParticipante, true, 14)).append(SEPARADOR); sb.append(formataCaracter(ieParticipante, true, 14)).append(SEPARADOR);
sb.append(formataCaracter(imParticipante, true, 20)).append(SEPARADOR); sb.append(formataCaracter(VAZIO, false, 20)).append(SEPARADOR); // Posição 7
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("0").append(SEPARADOR); sb.append("0").append(SEPARADOR);
sb.append(formataCaracter(logradouro, false, 60)).append(SEPARADOR); sb.append(formataCaracter(logradouro, false, 60)).append(SEPARADOR);
sb.append(formataNumerico(numero, true, 6)).append(SEPARADOR); sb.append(formataNumerico(numero, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(complemento, false, 60)).append(SEPARADOR); sb.append(formataCaracter(complemento, false, 60)).append(SEPARADOR);
sb.append("0").append(SEPARADOR); sb.append("0").append(SEPARADOR);
sb.append(formataCaracter(bairro, false, 50)).append(SEPARADOR); sb.append(formataCaracter(bairro, false, 50)).append(SEPARADOR);
sb.append(formataNumerico(cep, true, 8)).append(SEPARADOR); sb.append(formataNumerico(cep, true, 8)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 23 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24 sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 24
sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 25 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 25
sb.append(formataCaracter(VAZIO, false, 14)).append(SEPARADOR); // Posição 26 sb.append(formataCaracter(VAZIO, false, 14)).append(SEPARADOR); // Posição 26
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 28
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 29
sb.append("1558").append(SEPARADOR); sb.append("1558").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append("N").append(SEPARADOR); sb.append("N").append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 60)).append(SEPARADOR); // Posição 33 sb.append(formataCaracter(VAZIO, false, 60)).append(SEPARADOR); // Posição 33
sb.append(VAZIO).append(SEPARADOR); // Posição 34 sb.append(VAZIO).append(SEPARADOR); // Posição 34
sb.append(VAZIO).append(SEPARADOR); // 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);
}
} }
private void adicionarRegistroRMDTipoRMD(PrintWriter writer, List<ExportacaoRMDTipoRMD> listaRegistroRMDTipoRMD) { private void adicionarRegistroRMDTipoRMD(PrintWriter writer, List<ExportacaoRMDTipoRMD> listaRegistroRMDTipoRMD) {
Integer codigoEstabelecimento = 8; for (ExportacaoRMDTipoRMD registro : listaRegistroRMDTipoRMD) {
Integer numeroAIDF = 114034303; Integer codigoEstabelecimento = registro.getCodigoEstabelecimento();
String serieAIDF = "F"; Integer numeroAIDF = registro.getNumeroAIDF();
String subSerieAIDF = ""; String serieAIDF = registro.getSerieAIDF();
Integer numeroBilheteAIDF = 2723; String subSerieAIDF = registro.getSubSerieAIDF();
Integer numeroFormularioAIDF = 2723; Integer numeroBilheteAIDF = registro.getNumeroBilheteAIDF();
String dataEmissao = "20160501"; Integer numeroFormularioAIDF = registro.getNumeroFormularioAIDF();
Boolean cancelado = Boolean.FALSE; String dataEmissao = registro.getDataEmissao();
Integer codigoParticipante = 7; Boolean cancelado = registro.getCancelado();
String codigoContabil = "31102010010001"; Integer codigoParticipante = registro.getCodigoParticipante();
String codigoContabil = registro.getCodigoContabil();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("RMD").append(SEPARADOR); sb.append("RMD").append(SEPARADOR);
sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR); sb.append(formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR);
sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR); sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR);
sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR); sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR); sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR);
sb.append(formataNumerico(numeroBilheteAIDF, true, 6)).append(SEPARADOR); sb.append(formataNumerico(numeroBilheteAIDF, true, 6)).append(SEPARADOR);
sb.append(formataNumerico(numeroFormularioAIDF, true, 6)).append(SEPARADOR); sb.append(formataNumerico(numeroFormularioAIDF, true, 6)).append(SEPARADOR);
sb.append(formataCaracter(dataEmissao, false, 6)).append(SEPARADOR); sb.append(formataCaracter(dataEmissao, false, 6)).append(SEPARADOR);
sb.append(cancelado ? "S" : "N").append(SEPARADOR); sb.append(cancelado ? "S" : "N").append(SEPARADOR);
sb.append("").append(SEPARADOR); // Posição 10 sb.append("").append(SEPARADOR); // Posição 10
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 11 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 11
sb.append(formataCaracter(VAZIO, false, 4)).append(SEPARADOR); // Posição 12 sb.append(formataCaracter(VAZIO, false, 4)).append(SEPARADOR); // Posição 12
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 13
sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 14 sb.append(formataCaracter(VAZIO, false, 5)).append(SEPARADOR); // Posição 14
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 15 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 15
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17
sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR); sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 19 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 19
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 20 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 20
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 22
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 23
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25
sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26
sb.append("01").append(SEPARADOR); sb.append("01").append(SEPARADOR);
sb.append("01").append(SEPARADOR); sb.append("01").append(SEPARADOR);
sb.append(formataNumerico(codigoContabil, true, 9)).append(SEPARADOR); sb.append(formataNumerico(codigoContabil, true, 9)).append(SEPARADOR);
sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 30 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 30
sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 31 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 31
sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 32 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 32
sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33 sb.append(formataCaracter(VAZIO, false, 8)).append(SEPARADOR); // Posição 33
sb.append(formataCaracter(VAZIO, false, 3)).append(SEPARADOR); // Posição 32 sb.append(formataCaracter(VAZIO, false, 3)).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);
}
} }
private void adicionarRegistroRMDTipoBPS(PrintWriter writer, List<ExportacaoRMDTipoBPS> listaRegistroRMDTipoBPS) { private void adicionarRegistroRMDTipoBPS(PrintWriter writer, List<ExportacaoRMDTipoBPS> listaRegistroRMDTipoBPS) {