From 8c47a2c247282b47d3a428992233275578f2df70 Mon Sep 17 00:00:00 2001 From: fabio Date: Thu, 2 Sep 2021 18:18:07 +0000 Subject: [PATCH] fixes bug#22494 dev: Celio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@108592 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/RemessaCNABBancosDAO.java | 2 + .../RemessaCNABBancosHibernateDAO.java | 175 ++++++++++++++++++ .../service/impl/ArquivoRemessaCNABImpl.java | 3 + 3 files changed, 180 insertions(+) diff --git a/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java b/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java index d202af3a2..fe0c0f6fe 100644 --- a/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/RemessaCNABBancosDAO.java @@ -17,6 +17,8 @@ public interface RemessaCNABBancosDAO extends GenericDAO public ArquivoRemessa remessaSicoob(Empresa empresa, Date dataDe, Date dataAte, Boolean reenviar) throws Exception; + public ArquivoRemessa remessaCaixa(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; diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java index 3a3ad974a..8d5de18a6 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/RemessaCNABBancosHibernateDAO.java @@ -34,6 +34,9 @@ import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaLoteBancoB import com.rjconsultores.ventaboletos.blocos.bradesco.ArquivoRemessaBradesco; import com.rjconsultores.ventaboletos.blocos.bradesco.CabecalhoRemessaBradesco; import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco; +import com.rjconsultores.ventaboletos.blocos.caixa.ArquivoRemessaCaixa; +import com.rjconsultores.ventaboletos.blocos.caixa.CabecalhoRemessaCaixa; +import com.rjconsultores.ventaboletos.blocos.caixa.DetalheObrigatorioCaixa; import com.rjconsultores.ventaboletos.blocos.itau.ArquivoRemessaItau; import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau; import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau; @@ -1318,6 +1321,178 @@ public class RemessaCNABBancosHibernateDAO extends GenericHibernateDAO list = query.list(); + + ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.CAIXA_400_Envio); + + String nomeArquivo = "CEF" + new SimpleDateFormat("ddMM").format(new Date()); + int variavel = 0; + int seqRegistro = 0; + int qtdeTitulos = 0; + + ArquivoRemessaItem arquivoRemessaItem = null; + CabecalhoRemessaCaixa cabecalhoRemessaCaixa = null; + RodapeRemessaPadrao rodape = null; + + for(Object[] tupla : list){ + + Integer idRemessa = Integer.valueOf(tupla[1].toString()); + variavel = idRemessa; + String codEmpresaBanco = tupla[2] == null ? "" : ((BigDecimal) tupla[2]).toString(); + String versao = codEmpresaBanco.length() >6 ?"007":""; + codEmpresaBanco = StringUtils.right("0000000" + codEmpresaBanco, 7); + String nomeEmpresa = tupla[4].toString(); + BigDecimal valor = new BigDecimal(tupla[8].toString().replaceAll(",", ".")); + + qtdeTitulos++; + + if(cabecalhoRemessaCaixa == null ){ + cabecalhoRemessaCaixa = new CabecalhoRemessaCaixa(); + + cabecalhoRemessaCaixa.setAgenciaBeneficiario(tupla[5].toString()); + cabecalhoRemessaCaixa.setCodigoEmpresa(codEmpresaBanco); + cabecalhoRemessaCaixa.setNomeEmpresa(nomeEmpresa); + cabecalhoRemessaCaixa.setDataGravacao(new Date()); + cabecalhoRemessaCaixa.setNumeroSequencialRemessa(idRemessa); + cabecalhoRemessaCaixa.setVersaoLayout(versao); + + arquivoRemessaItem = new ArquivoRemessaCaixa(); + arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessaCaixa); + arquivoRemessa.addItem(arquivoRemessaItem); + + } + + DetalheObrigatorioCaixa titulosCaixa = new DetalheObrigatorioCaixa(); + titulosCaixa.setIdBoletoFechamento(Integer.valueOf(tupla[0].toString())); + + titulosCaixa.setNumeroSequencialRegistro( seqRegistro++ ); + titulosCaixa.setNossoNumero(tupla[6].toString()); + titulosCaixa.setNumeroDoDocumento(tupla[0].toString()); + titulosCaixa.setVencimento((Date) tupla[7]); + titulosCaixa.setValor( valor ); + titulosCaixa.setEmissao((Date) tupla[9]); + try{ + titulosCaixa.setValorAtraso(new BigDecimal(tupla[10].toString().replaceAll(",", "."))); + }catch(NullPointerException e){ + titulosCaixa.setValorAtraso(BigDecimal.ZERO); + } + + try{ + titulosCaixa.setDataLimiteDesconto((Date) tupla[7]); + titulosCaixa.setValorDesconto(new BigDecimal(tupla[11].toString().replaceAll(",", "."))); + }catch(NullPointerException e){ + titulosCaixa.setDataLimiteDesconto((Date) tupla[7]); + titulosCaixa.setValorDesconto(BigDecimal.ZERO); + } + + titulosCaixa.setValorIOF(BigDecimal.ZERO); + try{ + titulosCaixa.setValorAbatimentoConcedido(new BigDecimal(tupla[12].toString().replaceAll(",", "."))); + }catch(NullPointerException e){ + titulosCaixa.setValorAbatimentoConcedido(BigDecimal.ZERO); + } + + titulosCaixa.setNomeSacado(tupla[15].toString()); + titulosCaixa.setTipoInscricaoPagador(TipoInscricaoPagador.CNPJ); + + try{ + titulosCaixa.setNumeroInscricao(tupla[3].toString().replaceAll("[^0-9]+", "")); + }catch(Exception e){ + throw new RuntimeException("O CNPJ do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + String cep = ""; + try{ + cep = StringUtils.right("00000000" + tupla[18].toString(), 8); + }catch(Exception e){ + cep = "00000000"; + } + + titulosCaixa.setCepSacado(cep); + + try{ + titulosCaixa.setNumeroInscricaoSacado(tupla[14].toString()); + }catch(Exception e){ + throw new RuntimeException("O CNPJ do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + try{ + titulosCaixa.setEnderecoSacado(tupla[16].toString()); + }catch(Exception e){ + throw new RuntimeException("O Logradouro do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + try{ + titulosCaixa.setBairroSacado(tupla[17].toString()); + }catch(Exception e){ + throw new RuntimeException("O Bairro do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + try{ + titulosCaixa.setCidade(tupla[19].toString()); + }catch(Exception e){ + throw new RuntimeException("A cidade do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + try{ + titulosCaixa.setEstado(tupla[20].toString()); + }catch(Exception e){ + throw new RuntimeException("O Estado do ponto de venda "+tupla[15]+" está fora do padrão, favor corrigir"); + } + + titulosCaixa.setSacadorAvalista(""); + + arquivoRemessaItem.addTitulo(titulosCaixa); + + } + + if(rodape == null){ + rodape = new RodapeRemessaPadrao(); + rodape.setNumeroSequencialRegistro(qtdeTitulos); + arquivoRemessaItem.setRodapeRemessa(rodape); + } + + nomeArquivo = nomeArquivo + new DecimalFormat("##").format(variavel) + ".REM"; + arquivoRemessa.setNomeArquivo(nomeArquivo); + + return arquivoRemessa; + } + private void writeFROMClause(StringBuilder sb, boolean hasDate, Boolean reenviar) { sb.append(" FROM "); sb.append(" FECHAMENTO_BOLETO fb "); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ArquivoRemessaCNABImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ArquivoRemessaCNABImpl.java index 45829989f..d5594d51d 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ArquivoRemessaCNABImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ArquivoRemessaCNABImpl.java @@ -78,7 +78,10 @@ public class ArquivoRemessaCNABImpl implements ArquivoRemessaCNAB { return remessaCNABBancosDAO.remessaBancoBrasil(empresa, dataDe, dataAte, reenviar); }else if(BancoLayout.SICOOB_240_Envio.equals(banco)){ return remessaCNABBancosDAO.remessaSicoob(empresa, dataDe, dataAte, reenviar); + }else if(BancoLayout.CAIXA_400_Envio.equals(banco)){ + return remessaCNABBancosDAO.remessaCaixa(empresa, dataDe, dataAte, reenviar); } + }catch(RuntimeException re){ throw re; }catch(Exception e){