From 4c46b94bea222aad153d3789e167a11a991bc46c Mon Sep 17 00:00:00 2001 From: fabio Date: Wed, 12 Jun 2019 17:27:48 +0000 Subject: [PATCH] fixes bug#14158 dev: Wallace qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@94488 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/RemessaCNABBancosDAO.java | 2 + .../RemessaCNABBancosHibernateDAO.java | 256 ++++++++++++++---- .../service/impl/ArquivoRemessaCNABImpl.java | 2 + 3 files changed, 204 insertions(+), 56 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java b/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java index a769c5f8e..669aa3478 100644 --- a/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java @@ -15,6 +15,8 @@ public interface RemessaCNABBancosDAO extends GenericDAO public ArquivoRemessa remessaSantander(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception; + public ArquivoRemessa remessaMercantil(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception; + public ArquivoRemessa remessaItau(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception; public ArquivoRemessa remessaBancoBrasil(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception; diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java index bfe430a41..f1290d098 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java @@ -35,11 +35,13 @@ import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco import com.rjconsultores.ventaboletos.blocos.itau.ArquivoRemessaItau; import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau; import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau; +import com.rjconsultores.ventaboletos.blocos.mercantil.ArquivoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil; import com.rjconsultores.ventaboletos.blocos.santander.ArquivoRemessaSantander; import com.rjconsultores.ventaboletos.blocos.santander.CabecalhoRemessaSantander; import com.rjconsultores.ventaboletos.blocos.santander.DetalheObrigatorioSantander; import com.rjconsultores.ventaboletos.dao.RemessaCNABBancosDAO; -import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto; import com.rjconsultores.ventaboletos.enuns.AceiteBB; @@ -57,9 +59,6 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO list = query.list(); + + ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.MERCANTIL_400_Envio); + + String nomeArquivo = "CB" + new SimpleDateFormat("ddMM").format(new Date()); + int variavel = 0; + + ArquivoRemessaItem arquivoRemessaItem = null; + CabecalhoRemessaMercantil cabecalhoRemessaMercantil = null; + + for(Object[] tupla : list){ + + Integer idRemessa = Integer.valueOf(tupla[1].toString()); + variavel = idRemessa; + String codEmpresaBanco = tupla[2] != null ? tupla[2].toString() : "0"; + String nomeEmpresa = tupla[3].toString(); + + if(!tupla[8].toString().contains("-")){ + log.error("NossoNumero não está no formato correto: " + tupla[8].toString() + ". Ignorando o registro FechamentoBoletoId = " + tupla[0].toString()); + continue; + } + + if(cabecalhoRemessaMercantil == null){ + cabecalhoRemessaMercantil = new CabecalhoRemessaMercantil(); + cabecalhoRemessaMercantil.setNumeroSequencialRemessa(idRemessa); + cabecalhoRemessaMercantil.setAgenciaOrigem(tupla[4].toString()); + cabecalhoRemessaMercantil.setCnpj(Long.valueOf(tupla[19].toString().replaceAll("[^0-9]+", ""))); + cabecalhoRemessaMercantil.setDataGravacao(new Date()); + cabecalhoRemessaMercantil.setCodigoEmpresa(codEmpresaBanco); + cabecalhoRemessaMercantil.setNomeEmpresa(nomeEmpresa); + + arquivoRemessaItem = new ArquivoRemessaMercantil(); + arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessaMercantil); + arquivoRemessaItem.setRodapeRemessa(new RodapeRemessaPadrao()); + + arquivoRemessa.addItem(arquivoRemessaItem); + + }else if(!cabecalhoRemessaMercantil.getCodigoEmpresa().equals(codEmpresaBanco)){ + cabecalhoRemessaMercantil = new CabecalhoRemessaMercantil(); + cabecalhoRemessaMercantil.setNumeroSequencialRemessa(idRemessa); + cabecalhoRemessaMercantil.setDataGravacao(new Date()); + cabecalhoRemessaMercantil.setCodigoEmpresa(codEmpresaBanco); + cabecalhoRemessaMercantil.setNomeEmpresa(nomeEmpresa); + + arquivoRemessaItem = new ArquivoRemessaMercantil(); + arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessaMercantil); + arquivoRemessaItem.setRodapeRemessa(new RodapeRemessaPadrao()); + + arquivoRemessa.addItem(arquivoRemessaItem); + } + + DetalheObrigatorioMercantil detalhe = new DetalheObrigatorioMercantil(); + + String []doc = tupla[8].toString().split("-"); + detalhe.setIdBoletoFechamento(Integer.valueOf(tupla[0].toString())); + detalhe.setNumeroContrato(Integer.valueOf(tupla[26].toString())); + detalhe.setCnpj(Long.valueOf(tupla[19].toString().replaceAll("[^0-9]+", ""))); + detalhe.setAgenciaOrigem(tupla[4].toString()); + detalhe.setSeuNumero(Integer.valueOf(tupla[0].toString())); + detalhe.setNossoNumero(doc[0]); + detalhe.setDigitoVerificador(doc[1]); + detalhe.setCodigoDeOcorrencia(0); + detalhe.setDataOcorrencia(null); + detalhe.setNumeroDoDocumento(StringUtils.right(doc[0], 10)); + detalhe.setVencimento((Date) tupla[9]); + detalhe.setValorTitulo(new BigDecimal(tupla[10].toString().replaceAll(",", "."))); + detalhe.setEspecieDeTitulo(tupla[11].toString()); + detalhe.setEmissao((Date) tupla[12]); + detalhe.setInstrucao1(tupla[13].toString()); + detalhe.setInstrucao2(tupla[14].toString()); + detalhe.setDataLimiteDesconto(null); + + try{ + detalhe.setValorAtraso(new BigDecimal(tupla[15].toString().replaceAll(",", "."))); + }catch(Exception e){} + + try{ + detalhe.setValorDesconto(new BigDecimal(tupla[16].toString().replaceAll(",", "."))); + }catch(Exception e){} + + try{ + detalhe.setValorAbatimentoConcedido(new BigDecimal(tupla[17].toString().replaceAll(",", "."))); + }catch(Exception e){} + + detalhe.setValorIOF(BigDecimal.ZERO); + detalhe.setNomePagador(tupla[20].toString()); + detalhe.setEnderecoCompletoPagador(tupla[21].toString()); + detalhe.setBairro(tupla[22].toString()); + detalhe.setCidade(tupla[23].toString()); + detalhe.setEstado(tupla[24].toString()); + detalhe.setMensagem1(""); + String cep = tupla[25].toString(); + detalhe.setCepPrefixo(cep.substring(0,5)); + detalhe.setCepSufixo(cep.substring(5)); + detalhe.setSacadorAvalistaMensagem2(""); + + arquivoRemessaItem.addTitulo(detalhe); + + arquivoRemessaItem.getRodapeRemessa().setNumeroSequencialRegistro(arquivoRemessa.getItens().size()); + + } + + nomeArquivo = nomeArquivo + new DecimalFormat("##").format(variavel) + ".REM"; + arquivoRemessa.setNomeArquivo(nomeArquivo); + + return arquivoRemessa; + + } + + @Override public ArquivoRemessa remessaItau(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception { @@ -761,32 +903,34 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO