diff --git a/GeneradorBoletosCNAB/.gitignore b/GeneradorBoletosCNAB/.gitignore new file mode 100644 index 000000000..d052193ef --- /dev/null +++ b/GeneradorBoletosCNAB/.gitignore @@ -0,0 +1,10 @@ +/.classpath +/.project +/.settings +/target +/settings.xml +/dist +/.factorypath +/*.BASE.xml +/*.LOCAL.xml +/*.REMOTE.xml diff --git a/GeneradorBoletosCNAB/pom.xml b/GeneradorBoletosCNAB/pom.xml new file mode 100644 index 000000000..1bbece475 --- /dev/null +++ b/GeneradorBoletosCNAB/pom.xml @@ -0,0 +1,78 @@ + + 4.0.0 + + br.com.rjconsultores + GeneradorBoletosCNAB + 1.8.1 + GeneradorBoletosCNAB + + + + rj-releases + http://52.5.53.15:8081/nexus/content/repositories/releases/ + + + + UTF-8 + UTF-8 + + + src + + + src + + **/*.java + + + + + + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + ISO-8859-1 + + + + ${project.artifactId} + + + + + commons-lang + commons-lang + 2.0 + + + + commons-io + commons-io + 1.4 + + + + br.com.rjconsultores + jrimum-bopepo + 1.1.1 + + + sun-jaxb-rj + jaxb-api + + + sun-jaxb-rj + jaxb-impl + + + log4j + log4j + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java new file mode 100644 index 000000000..b2d2e34f2 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessa.java @@ -0,0 +1,49 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class ArquivoRemessa { + + private BancoLayout bancoLayout; + private String nomeArquivo; + private List itens; + + public ArquivoRemessa(BancoLayout bancoLayout) { + this.bancoLayout = bancoLayout; + } + + public BancoLayout getBancoLayout() { + return bancoLayout; + } + + public String getNomeArquivo() { + return nomeArquivo; + } + + public void setNomeArquivo(String nomeArquivo) { + this.nomeArquivo = nomeArquivo; + } + + public List getItens() { + return itens; + } + + public void setItens(List itens) { + this.itens = itens; + } + + public void addItem(ArquivoRemessaItemInteface item) { + + if(this.itens == null){ + this.itens = new ArrayList(); + } + + item.getCabecalhoRemessa().setNumeroSequencialRegistro(itens.size() + 1); + + this.itens.add(item); + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java new file mode 100644 index 000000000..f04aad598 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItem.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public abstract class ArquivoRemessaItem implements ArquivoRemessaItemInteface, Cloneable{ + + protected CabecalhoRemessa cabecalhoRemessa; + protected List titulos; + protected RodapeRemessa rodapeRemessa; + + public CabecalhoRemessa getCabecalhoRemessa() { + return cabecalhoRemessa; + } + + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + this.cabecalhoRemessa = cabecalhoRemessa; + } + + public List getTitulos() { + return titulos; + } + + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 1); + return rodapeRemessa; + } + + public void setRodapeRemessa(RodapeRemessa rodapeRemessa) { + this.rodapeRemessa = rodapeRemessa == null ? new RodapeRemessaPadrao() : rodapeRemessa; + } + + public abstract void addTitulo(DetalheObrigatorio titulo); + + + public ArquivoRemessaItemInteface clone() throws CloneNotSupportedException { + return (ArquivoRemessaItemInteface) super.clone(); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java new file mode 100644 index 000000000..3da7f37cf --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRemessaItemInteface.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; + +public interface ArquivoRemessaItemInteface { + + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa); + + public void addTitulo(DetalheObrigatorio titulo); + + public void setRodapeRemessa(RodapeRemessa rodapeRemessa); + + public CabecalhoRemessa getCabecalhoRemessa(); + + public List getTitulos(); + + public RodapeRemessa getRodapeRemessa(); + +} \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java new file mode 100644 index 000000000..74f1315cc --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetorno.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +public class ArquivoRetorno { + + private List itens; + + public List getItens() { + return itens; + } + + public void setItens(List itens) { + this.itens = itens; + } + + public void addItem(ArquivoRetornoItemInteface item) { + + if(this.itens == null){ + this.itens = new ArrayList(); + } + + this.itens.add(item); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java new file mode 100644 index 000000000..3853887f6 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItem.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos; + +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; + +public class ArquivoRetornoItem implements ArquivoRetornoItemInteface, Cloneable { + + + private CabecalhoRetorno cabecalhoRetorno; + protected List titulos; + protected RodapeRetorno rodapeRetorno; + + + @Override + public void setCabecalhoRetorno(CabecalhoRetorno cabecalhoRetorno) { + this.cabecalhoRetorno = cabecalhoRetorno; + + } + @Override + public void addTitulo(DetalheRetorno titulo) { + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + this.titulos.add(titulo); + + } + @Override + public void setRodapeRetorno(RodapeRetorno rodapeRetorno) { + this.rodapeRetorno = rodapeRetorno; + } + + @Override + public CabecalhoRetorno getCabecalhoRetorno() { + return cabecalhoRetorno; + } + @Override + public List getTitulos() { + return titulos; + } + @Override + public RodapeRetorno getRodapeRetorno() { + return rodapeRetorno; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java new file mode 100644 index 000000000..5f8c1e25b --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/ArquivoRetornoItemInteface.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos; + +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; + +public interface ArquivoRetornoItemInteface { + + public void setCabecalhoRetorno(CabecalhoRetorno cabecalhoRetorno); + + public void addTitulo(DetalheRetorno titulo); + + public void setRodapeRetorno(RodapeRetorno rodapeRetorno); + + public CabecalhoRetorno getCabecalhoRetorno(); + + public List getTitulos(); + + public RodapeRetorno getRodapeRetorno(); + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/Main.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/Main.java new file mode 100644 index 000000000..cf79f428d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/Main.java @@ -0,0 +1,83 @@ +package com.rjconsultores.ventaboletos; + +import java.io.File; +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; +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.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.layouts.MercantilFlatFile; +import com.rjconsultores.ventaboletos.layouts.RemessaInterface; + +public class Main { + + public static void main(String[] args) { + + ArquivoRemessaItem arquivoRemessaItem = new ArquivoRemessaMercantil(); + + CabecalhoRemessaMercantil cabecalhoRemessa = new CabecalhoRemessaMercantil(); + + cabecalhoRemessa.setCodigoEmpresa("123456"); + cabecalhoRemessa.setAgenciaOrigem("0555"); + cabecalhoRemessa.setDataGravacao(new Date()); + cabecalhoRemessa.setCnpj(new Long("1452265658222")); + cabecalhoRemessa.setNumeroSequencialRemessa(1); + cabecalhoRemessa.setNumeroSequencialRegistro(9); + cabecalhoRemessa.setNomeEmpresa("RJ Consultores"); + + arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessa); + + DetalheObrigatorioMercantil titulo = new DetalheObrigatorioMercantil(); + + titulo.setValorTitulo(new BigDecimal("4567.88")); + titulo.setVencimento(new Date()); + titulo.setCnpj(new Long("1452265658222")); + titulo.setCepPrefixo("32015"); + titulo.setCepSufixo("490"); + titulo.setNumeroDoDocumento("555666777"); + titulo.setAgenciaOrigem("0555"); + titulo.setEmissao( new Date() ); + + try { + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + arquivoRemessaItem.addTitulo(titulo.clone()); + } catch (CloneNotSupportedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + + RemessaInterface remessaInterface = new MercantilFlatFile(); + + RodapeRemessaPadrao rodapeRemessa = new RodapeRemessaPadrao(); + rodapeRemessa.setNumeroSequencialRegistro(9999); + + arquivoRemessaItem.setRodapeRemessa(rodapeRemessa); + + File arquivoRemessaFisico = new File("C:\\Fabio\\fabio.txt"); + + ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.MERCANTIL_400_Envio); + + try { + arquivoRemessa.addItem(arquivoRemessaItem.clone()); + arquivoRemessa.addItem(arquivoRemessaItem.clone()); + } catch (CloneNotSupportedException e1) { + e1.printStackTrace(); + } + + try { + remessaInterface.gerarRemessa(arquivoRemessaFisico, arquivoRemessa); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java new file mode 100644 index 000000000..7e57386e9 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRemessa.java @@ -0,0 +1,10 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface CabecalhoRemessa { + + public Integer getNumeroSequencialRemessa(); + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa); + public Integer getNumeroSequencialRegistro(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java new file mode 100644 index 000000000..afd6ba34b --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/CabecalhoRetorno.java @@ -0,0 +1,86 @@ +package com.rjconsultores.ventaboletos.blocos; + +import java.util.Date; + +public class CabecalhoRetorno { + + private String codEmpresa; + private String numeroDoAvisoBancario; + private Integer agencia; + private Integer conta; + private Integer dacConta; + private String nomeEmpresa; + private String codigoBanco; + private String nomeBanco; + private Date dataGeracao; + private Integer numeroSequencialRegistro; + private Integer numeroSequencialRemessa; + + public String getCodEmpresa() { + return codEmpresa; + } + public void setCodEmpresa(String codEmpresa) { + this.codEmpresa = codEmpresa; + } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getCodigoBanco() { + return codigoBanco; + } + public void setCodigoBanco(String codigoBanco) { + this.codigoBanco = codigoBanco; + } + public String getNomeBanco() { + return nomeBanco; + } + public void setNomeBanco(String nomeBanco) { + this.nomeBanco = nomeBanco; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + public String getNumeroDoAvisoBancario() { + return numeroDoAvisoBancario; + } + public void setNumeroDoAvisoBancario(String numeroDoAvisoBancario) { + this.numeroDoAvisoBancario = numeroDoAvisoBancario; + } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java new file mode 100644 index 000000000..1f70353fc --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DadosBoleto.java @@ -0,0 +1,78 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class DadosBoleto { + + private String mensagem1; + private String mensagem2; + private String mensagem3; + private String mensagem4; + private Integer carteira; + private Integer agencia; + private Integer contaCorrente; + private String digitoCC; + private String nossoNumero; + private String digitoNN; + + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public String getMensagem3() { + return mensagem3; + } + public void setMensagem3(String mensagem3) { + this.mensagem3 = mensagem3; + } + public String getMensagem4() { + return mensagem4; + } + public void setMensagem4(String mensagem4) { + this.mensagem4 = mensagem4; + } + public Integer getCarteira() { + return carteira; + } + public void setCarteira(Integer carteira) { + this.carteira = carteira; + } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } + public Integer getContaCorrente() { + return contaCorrente; + } + public void setContaCorrente(Integer contaCorrente) { + this.contaCorrente = contaCorrente; + } + public String getDigitoCC() { + return digitoCC; + } + public void setDigitoCC(String digitoCC) { + this.digitoCC = digitoCC; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + public String getDigitoNN() { + return digitoNN; + } + public void setDigitoNN(String digitoNN) { + this.digitoNN = digitoNN; + } + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheMulta.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheMulta.java new file mode 100644 index 000000000..b2397ef3e --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheMulta.java @@ -0,0 +1,63 @@ +package com.rjconsultores.ventaboletos.blocos; + +import java.math.BigDecimal; +import java.util.Date; + +public class DetalheMulta { + + private Integer tipoRegistro; + private String codigoMulta; + private Date dataMulta; + private BigDecimal valorMulta; + private BigDecimal percentualMulta; + private Integer numeroSequencial; + + public Integer getTipoRegistro() { + return tipoRegistro; + } + + public void setTipoRegistro(Integer tipoRegistro) { + this.tipoRegistro = tipoRegistro; + } + + public String getCodigoMulta() { + return codigoMulta; + } + + public void setCodigoMulta(String codigoMulta) { + this.codigoMulta = codigoMulta; + } + + public Date getDataMulta() { + return dataMulta; + } + + public void setDataMulta(Date dataMulta) { + this.dataMulta = dataMulta; + } + + public BigDecimal getValorMulta() { + return valorMulta; + } + public void setValorMulta(BigDecimal valorMulta) { + this.valorMulta = valorMulta; + } + + public BigDecimal getPercentualMulta() { + return percentualMulta; + } + + public void setPercentualMulta(BigDecimal percentualMulta) { + this.percentualMulta = percentualMulta; + } + + public Integer getNumeroSequencial() { + return numeroSequencial; + } + + public void setNumeroSequencial(Integer numeroSequencial) { + this.numeroSequencial = numeroSequencial; + } + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java new file mode 100644 index 000000000..1d0b9c711 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheObrigatorio.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface DetalheObrigatorio { + + public void setIdBoletoFechamento(Integer id); + public Integer getIdBoletoFechamento(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java new file mode 100644 index 000000000..d8c94b187 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/DetalheRetorno.java @@ -0,0 +1,19 @@ +package com.rjconsultores.ventaboletos.blocos; + +import java.math.BigDecimal; + +public interface DetalheRetorno { + + public void setIdBoletoFechamento(Integer id); + public Integer getIdBoletoFechamento(); + public void setNossoNumero(String nossoNumero); + public String getNossoNumero(); + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + public String getCodigoOcorrencia(); + public void setCodigoOcorrencia(String codigoOcorrencia); + public BigDecimal getValorJuros(); + public void setValorJuros(BigDecimal valorJuros); + public String getDataBaixa(); + public void setDataBaixa(String dataBaixa); + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java new file mode 100644 index 000000000..cb8695bf9 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RateioDeCredito.java @@ -0,0 +1,20 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RateioDeCredito { + + private String identificacaoEmpresa; + private String nossoNumero; + + public String getIdentificacaoEmpresa() { + return identificacaoEmpresa; + } + public void setIdentificacaoEmpresa(String identificacaoEmpresa) { + this.identificacaoEmpresa = identificacaoEmpresa; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java new file mode 100644 index 000000000..97dff3bc0 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessa.java @@ -0,0 +1,9 @@ +package com.rjconsultores.ventaboletos.blocos; + +public interface RodapeRemessa { + + Integer getNumeroSequencialRegistro(); + + void setNumeroSequencialRegistro(Integer numeroSequencialRegistro); + +} \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java new file mode 100644 index 000000000..7d001edf9 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRemessaPadrao.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RodapeRemessaPadrao implements RodapeRemessa { + + private Integer numeroSequencialRegistro; + + /* (non-Javadoc) + * @see com.rjconsultores.ventaboletos.blocos.RodapeRemessaIn#getNumeroSequencialRegistro() + */ + @Override + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + /* (non-Javadoc) + * @see com.rjconsultores.ventaboletos.blocos.RodapeRemessaIn#setNumeroSequencialRegistro(java.lang.Integer) + */ + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java new file mode 100644 index 000000000..10aec6b95 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/RodapeRetorno.java @@ -0,0 +1,5 @@ +package com.rjconsultores.ventaboletos.blocos; + +public class RodapeRetorno { + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java new file mode 100644 index 000000000..48b65ab41 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/ArquivoRemessaBancoBrasil.java @@ -0,0 +1,107 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; + +public class ArquivoRemessaBancoBrasil extends ArquivoRemessaItem { + + private int itemCount = 0; + private int loteCount = 0; + private int qteRegistroArq = 0; + private int qteRegistroLote = 0; + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaBancoBrasil){ + super.setCabecalhoRemessa(cabecalhoRemessa); + + qteRegistroArq++; + if(((CabecalhoRemessaBancoBrasil) cabecalhoRemessa).getCabecalhoLoteRemessaBancoBrasil() != null){ + qteRegistroArq++; + qteRegistroLote++; + loteCount++; + }else{ + throw new RuntimeException("Falta cabecalho tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + } + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo) { + if(this.titulos == null){ + this.titulos = new ArrayList(); + this.itemCount = 0; + } + + if(titulo instanceof DetalheObrigatorioDadosTitulosBancoBrasil){ + + titulo.setNumeroSequencialRegistro(++itemCount); + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).setLoteServico(loteCount); + qteRegistroArq++; + qteRegistroLote++; + if(((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil() != null){ + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil().setNumeroSequencialRegistro(++itemCount); + ((DetalheObrigatorioDadosTitulosBancoBrasil) titulo).getDetalheObrigatorioDadosPagadorBancoBrasil().setLoteServico(loteCount); + qteRegistroArq++; + qteRegistroLote++; + } + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioDadosTitulosBancoBrasil.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdLotes(loteCount); + ((RodapeRemessaBancoBrasil)rodapeRemessa).setQtdArquivos(qteRegistroArq); + + + if(((RodapeRemessaBancoBrasil)rodapeRemessa).getRodapeRemessaLoteBancoBrasil() != null){ + ((RodapeRemessaBancoBrasil)rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setNumeroSequencialRegistro(qteRegistroLote);; + + } + + return this.rodapeRemessa; + } + + @Override + public void setRodapeRemessa(RodapeRemessa rodapeRemessa) { + + if(rodapeRemessa == null){ + throw new NullPointerException(RodapeRemessa.class.getName() + " não pode ser null..."); + } + + if(!(rodapeRemessa instanceof RodapeRemessaBancoBrasil)){ + throw new ClassCastException("Somente rodapé tipo: " + CabecalhoRemessaBancoBrasil.class.getName()); + }else{ + if(((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil() == null){ + throw new RuntimeException("Falta rodapé tipo: " + RodapeRemessaLoteBancoBrasil.class.getName()); + } + + if(this.rodapeRemessa == null){ + qteRegistroArq++; //TrailerLote + qteRegistroArq++;//TrailerArquivo + qteRegistroLote++; + } + + ((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setNumeroSequencialRegistro(qteRegistroLote); + ((RodapeRemessaBancoBrasil) rodapeRemessa).getRodapeRemessaLoteBancoBrasil().setLoteServico(loteCount); + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdArquivos(qteRegistroArq); + ((RodapeRemessaBancoBrasil) rodapeRemessa).setQtdLotes(loteCount); + //((RodapeRemessaBancoBrasil) rodapeRemessa).setLoteServico(loteCount); + } + + this.rodapeRemessa = rodapeRemessa; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java new file mode 100644 index 000000000..cbfeb0557 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoLoteRemessaBancoBrasil.java @@ -0,0 +1,162 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoLoteRemessaBancoBrasil implements CabecalhoRemessa{ + + private Integer codComp; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String remessaTeste; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private String mensagem1; + private String mensagem2; + private Integer numeroRemessa; + private Date dataGeracao; + private Date dataCredito; + + public Integer getCpfCnpj() { + return cpfCnpj; + } + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public String getNumConvenio() { + return numConvenio; + } + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + public String getNumCarteira() { + return numCarteira; + } + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + public String getNumVarCarteira() { + return numVarCarteira; + } + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + public String getRemessaTesteID() { + return remessaTeste; + } + public void setRemessaTesteID(String remessaTeste) { + this.remessaTeste = remessaTeste; + } + public String getNumAgencia() { + return numAgencia; + } + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + public String getDigAgencia() { + return digAgencia; + } + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + public String getNumContaCorrente() { + return numContaCorrente; + } + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + public String getDigContaCorrente() { + return digContaCorrente; + } + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + public String getDigAgenciaConta() { + return digAgenciaConta; + } + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public Integer getNumeroRemessa() { + return numeroRemessa; + } + public void setNumeroRemessa(Integer numeroRemessa) { + this.numeroRemessa = numeroRemessa; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Date getDataCredito() { + return dataCredito; + } + public void setDataCredito(Date dataCredito) { + this.dataCredito = dataCredito; + } + public Integer getCodComp() { + return codComp; + } + public void setCodComp(Integer codComp) { + this.codComp = codComp; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + @Override + public Integer getNumeroSequencialRemessa() { + return numeroRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numeroRemessa = numeroSequencialRemessa; + + } + @Override + public Integer getNumeroSequencialRegistro() { + // TODO Auto-generated method stub + return null; + } + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java new file mode 100644 index 000000000..7f0d69fbc --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/CabecalhoRemessaBancoBrasil.java @@ -0,0 +1,177 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaBancoBrasil implements CabecalhoRemessa { + + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private Date dataGeracao; + private Integer horaGeracao; + private Integer numRemessa; + private String densidadeArquivo; + private Integer numeroSequencialRegistro; + + private CabecalhoLoteRemessaBancoBrasil cabecalhoLoteRemessaBancoBrasil; + + @Override + public Integer getNumeroSequencialRemessa() { + return numRemessa; + } + + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numRemessa = numeroSequencialRemessa; + } + + @Override + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + + } + + public Integer getCpfCnpj() { + return cpfCnpj; + } + + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + + public String getNumConvenio() { + return numConvenio; + } + + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + + public String getNumCarteira() { + return numCarteira; + } + + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + + public String getNumVarCarteira() { + return numVarCarteira; + } + + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGeracao() { + return dataGeracao; + } + + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + + public Integer getHoraGeracao() { + return horaGeracao; + } + + public void setHoraGeracao(Integer horaGeracao) { + this.horaGeracao = horaGeracao; + } + + public String getDensidadeArquivo() { + return densidadeArquivo; + } + + public void setDensidadeArquivo(String densidadeArquivo) { + this.densidadeArquivo = densidadeArquivo; + } + + public CabecalhoLoteRemessaBancoBrasil getCabecalhoLoteRemessaBancoBrasil() { + return cabecalhoLoteRemessaBancoBrasil; + } + + public void setCabecalhoLoteRemessaBancoBrasil(CabecalhoLoteRemessaBancoBrasil cabecalhoLoteRemessaBancoBrasil) { + this.cabecalhoLoteRemessaBancoBrasil = cabecalhoLoteRemessaBancoBrasil; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java new file mode 100644 index 000000000..4aaacf60d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosPagadorBancoBrasil.java @@ -0,0 +1,173 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; + +public class DetalheObrigatorioDadosPagadorBancoBrasil implements DetalheObrigatorio, Cloneable{ + + + private Integer loteServico; + private Integer codigoRemessa; + private Integer numSeqRegistro; + private Integer tipoInscricaoSacado; + private String numeroInscricaoSacado; + private String nomeSacado; + private String logradouroSacado; + private String bairroSacado; + private Integer cepSacado; + private Integer sufixoCep; + private String cidade; + private String estado; + private Integer tipoSacadorAvalista; + private Integer sacadorAvalista; + private String nomeSacadorAvalista; + private Integer codBancoCorresp; + private String nossoNumeroNoBancoCorresp; + private Integer idBoletoFechamento; + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro() { + return numSeqRegistro; + } + + public Integer getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + + public void setTipoInscricaoSacado(Integer tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getLogradouroSacado() { + return logradouroSacado; + } + + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public Integer getCepSacado() { + return cepSacado; + } + + public void setCepSacado(Integer cepSacado) { + this.cepSacado = cepSacado; + } + + public Integer getSufixoCep() { + return sufixoCep; + } + + public void setSufixoCep(Integer sufixoCep) { + this.sufixoCep = sufixoCep; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public Integer getTipoSacadorAvalista() { + return tipoSacadorAvalista; + } + + public void setTipoSacadorAvalista(Integer tipoSacadorAvalista) { + this.tipoSacadorAvalista = tipoSacadorAvalista; + } + + public Integer getSacadorAvalista() { + return sacadorAvalista; + } + + public void setSacadorAvalista(Integer sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + + public String getNomeSacadorAvalista() { + return nomeSacadorAvalista; + } + + public void setNomeSacadorAvalista(String nomeSacadorAvalista) { + this.nomeSacadorAvalista = nomeSacadorAvalista; + } + + public Integer getCodBancoCorresp() { + return codBancoCorresp; + } + + public void setCodBancoCorresp(Integer codBancoCorresp) { + this.codBancoCorresp = codBancoCorresp; + } + + public String getNossoNumeroNoBancoCorresp() { + return nossoNumeroNoBancoCorresp; + } + + public void setNossoNumeroNoBancoCorresp(String nossoNumeroNoBancoCorresp) { + this.nossoNumeroNoBancoCorresp = nossoNumeroNoBancoCorresp; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCodigoRemessa() { + return codigoRemessa; + } + + public void setCodigoRemessa(Integer codigoRemessa) { + this.codigoRemessa = codigoRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java new file mode 100644 index 000000000..e4edb96a1 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/DetalheObrigatorioDadosTitulosBancoBrasil.java @@ -0,0 +1,350 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.Aceite; + +public class DetalheObrigatorioDadosTitulosBancoBrasil implements DetalheObrigatorio, Cloneable { + + private Integer loteServico; + private Integer numSeqRegistro; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nossoNumeroBB; + private Integer codCarteira; + private String formaCadTituloBanco; + private String tipoDocumento; + private String identEmissaoBloqueto; + private String identDistribuicao; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String agenciaCobradora; + private String digAgenciaCobradora; + private Aceite aceite; + private Date emissao; + private Integer codMora; + private Date dataMora; + private BigDecimal jurosDeMora; + private Integer codigoDesconto; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal IOF_Devido; + private BigDecimal abatimentoConcedido; + private String nossoNumeroEmp; + private Integer codigoProtesto; + private Integer diasProtesto; + private Integer codigoBaixa; + private Integer diasBaixa; + private Integer numeroContrato; + private String usoExclusivo; + private Integer idBoletoFechamento; + + private DetalheObrigatorioDadosPagadorBancoBrasil detalheObrigatorioDadosPagadorBancoBrasil; + + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro(){ + return numSeqRegistro; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNossoNumeroBB() { + return nossoNumeroBB; + } + + public void setNossoNumeroBB(String nossoNumeroBB) { + this.nossoNumeroBB = nossoNumeroBB; + } + + public Integer getCodCarteira() { + return codCarteira; + } + + public void setCodCarteira(Integer codCarteira) { + this.codCarteira = codCarteira; + } + + public String getFormaCadTituloBanco() { + return formaCadTituloBanco; + } + + public void setFormaCadTituloBanco(String formaCadTituloBanco) { + this.formaCadTituloBanco = formaCadTituloBanco; + } + + public String getTipoDocumento() { + return tipoDocumento; + } + + public void setTipoDocumento(String tipoDocumento) { + this.tipoDocumento = tipoDocumento; + } + + public String getIdentEmissaoBloqueto() { + return identEmissaoBloqueto; + } + + public void setIdentEmissaoBloqueto(String identEmissaoBloqueto) { + this.identEmissaoBloqueto = identEmissaoBloqueto; + } + + public String getIdentDistribuicao() { + return identDistribuicao; + } + + public void setIdentDistribuicao(String identDistribuicao) { + this.identDistribuicao = identDistribuicao; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getAgenciaCobradora() { + return agenciaCobradora; + } + + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + + public String getDigAgenciaCobradora() { + return digAgenciaCobradora; + } + + public void setDigAgenciaCobradora(String digAgenciaCobradora) { + this.digAgenciaCobradora = digAgenciaCobradora; + } + + public Aceite getAceite() { + return aceite; + } + + public void setAceite(Aceite aceite) { + this.aceite = aceite; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public Integer getCodMora() { + return codMora; + } + + public void setCodMora(Integer codMora) { + this.codMora = codMora; + } + + public Date getDataMora() { + return dataMora; + } + + public void setDataMora(Date dataMora) { + this.dataMora = dataMora; + } + + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + + public Integer getCodigoDesconto() { + return codigoDesconto; + } + + public void setCodigoDesconto(Integer codigoDesconto) { + this.codigoDesconto = codigoDesconto; + } + + public Date getDataDesconto() { + return dataDesconto; + } + + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + + public BigDecimal getIOF_Devido() { + return IOF_Devido; + } + + public void setIOF_Devido(BigDecimal iOF_Devido) { + IOF_Devido = iOF_Devido; + } + + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + + public String getNossoNumeroEmp() { + return nossoNumeroEmp; + } + + public void setNossoNumeroEmp(String nossoNumeroEmp) { + this.nossoNumeroEmp = nossoNumeroEmp; + } + + public Integer getCodigoProtesto() { + return codigoProtesto; + } + + public void setCodigoProtesto(Integer codigoProtesto) { + this.codigoProtesto = codigoProtesto; + } + + public Integer getDiasProtesto() { + return diasProtesto; + } + + public void setDiasProtesto(Integer diasProtesto) { + this.diasProtesto = diasProtesto; + } + + public Integer getCodigoBaixa() { + return codigoBaixa; + } + + public void setCodigoBaixa(Integer codigoBaixa) { + this.codigoBaixa = codigoBaixa; + } + + public Integer getDiasBaixa() { + return diasBaixa; + } + + public void setDiasBaixa(Integer diasBaixa) { + this.diasBaixa = diasBaixa; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public String getUsoExclusivo() { + return usoExclusivo; + } + + public void setUsoExclusivo(String usoExclusivo) { + this.usoExclusivo = usoExclusivo; + } + + public DetalheObrigatorioDadosPagadorBancoBrasil getDetalheObrigatorioDadosPagadorBancoBrasil() { + return detalheObrigatorioDadosPagadorBancoBrasil; + } + + public void setDetalheObrigatorioDadosPagadorBancoBrasil( + DetalheObrigatorioDadosPagadorBancoBrasil detalheObrigatorioDadosPagadorBancoBrasil) { + this.detalheObrigatorioDadosPagadorBancoBrasil = detalheObrigatorioDadosPagadorBancoBrasil; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java new file mode 100644 index 000000000..28802c6ae --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaBancoBrasil.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaBancoBrasil extends RodapeRemessaPadrao { + + private Integer loteServico; + private Integer qtdLotes; + private Integer qtdArquivos; + private Integer qtdContas; + private RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil; + + public Integer getQtdLotes() { + return qtdLotes; + } + public void setQtdLotes(Integer qtdLotes) { + this.qtdLotes = qtdLotes; + } + public Integer getQtdArquivos() { + return qtdArquivos; + } + public void setQtdArquivos(Integer qtdArquivos) { + this.qtdArquivos = qtdArquivos; + } + public Integer getQtdContas() { + return qtdContas; + } + public void setQtdContas(Integer qtdContas) { + this.qtdContas = qtdContas; + } + public RodapeRemessaLoteBancoBrasil getRodapeRemessaLoteBancoBrasil() { + return rodapeRemessaLoteBancoBrasil; + } + public void setRodapeRemessaLoteBancoBrasil(RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil) { + this.rodapeRemessaLoteBancoBrasil = rodapeRemessaLoteBancoBrasil; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java new file mode 100644 index 000000000..42ea226bd --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bancobrasil/RodapeRemessaLoteBancoBrasil.java @@ -0,0 +1,23 @@ +package com.rjconsultores.ventaboletos.blocos.bancobrasil; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaLoteBancoBrasil extends RodapeRemessaPadrao implements RodapeRemessa { + + + private Integer loteServico; + + public Integer getQtdRegistros(){ + return getNumeroSequencialRegistro(); + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java new file mode 100644 index 000000000..00b63d820 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/ArquivoRemessaBradesco.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaBradesco extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaBradesco){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaBradesco.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioBradesco){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioBradesco.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java new file mode 100644 index 000000000..ba4ae8053 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/CabecalhoRemessaBradesco.java @@ -0,0 +1,95 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaBradesco implements CabecalhoRemessa { + + //private String identificacaoRemessa; + //private String literalRemessa; + //private String codigoServico; + //private String literalServico; + private String codigoEmpresa; + private String nomeEmpresa; + //private String codigoBanco; + //private String nomeBanco; + private Date dataGravacao; + //private String identificacaoSistema; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + +// public String getIdentificacaoRemessa() { +// return identificacaoRemessa; +// } +// public void setIdentificacaoRemessa(String identificacaoRemessa) { +// this.identificacaoRemessa = identificacaoRemessa; +// } +// public String getLiteralRemessa() { +// return literalRemessa; +// } +// public void setLiteralRemessa(String literalRemessa) { +// this.literalRemessa = literalRemessa; +// } +// public String getCodigoServico() { +// return codigoServico; +// } +// public void setCodigoServico(String codigoServico) { +// this.codigoServico = codigoServico; +// } +// public String getLiteralServico() { +// return literalServico; +// } +// public void setLiteralServico(String literalServico) { +// this.literalServico = literalServico; +// } + public String getCodigoEmpresa() { + return codigoEmpresa; + } + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } +// public String getCodigoBanco() { +// return codigoBanco; +// } +// public void setCodigoBanco(String codigoBanco) { +// this.codigoBanco = codigoBanco; +// } +// public String getNomeBanco() { +// return nomeBanco; +// } +// public void setNomeBanco(String nomeBanco) { +// this.nomeBanco = nomeBanco; +// } + public Date getDataGravacao() { + return dataGravacao; + } + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } +// public String getIdentificacaoSistema() { +// return identificacaoSistema; +// } +// public void setIdentificacaoSistema(String identificacaoSistema) { +// this.identificacaoSistema = identificacaoSistema; +// } + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java new file mode 100644 index 000000000..2b586c17d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheObrigatorioBradesco.java @@ -0,0 +1,345 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioBradesco implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private String carteira; + private String agencia; + private String contacorrente; + private String dvConta; + private String numeroControleDoParticipante; + private String nossoNumeroComDigito; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private TipoInscricaoPagador tipoInscricaoPagador; + private String numeroInscricaoPagador; + private String nomePagador; + private String enderecoCompletoPagador; + private String mensagem1; + private String CEP_Prefixo; + private String CEP_Sufixo; + private String sacador_Avalista_Mensagem2; + private Integer numeroSequencialRegistro; + private BigDecimal percentualJuros; + private BigDecimal percentualMulta; + + private DadosBoleto dadosBoleto; + + private RateioDeCredito rateioDeCredito; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + + @Override + public Integer getIdBoletoFechamento() { + return this.idBoletoFechamento; + } + + public String getCarteira() { + return carteira; + } + + public void setCarteira(String carteira) { + this.carteira = carteira; + } + + public String getAgencia() { + return agencia; + } + + public void setAgencia(String agencia) { + this.agencia = agencia; + } + + public String getContacorrente() { + return contacorrente; + } + + public void setContacorrente(String contacorrente) { + this.contacorrente = contacorrente; + } + + public String getDvConta() { + return dvConta; + } + + public void setDvConta(String dvConta) { + this.dvConta = dvConta; + } + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public String getNossoNumeroComDigito() { + return nossoNumeroComDigito; + } + + public void setNossoNumeroComDigito(String nossoNumeroComDigito) { + this.nossoNumeroComDigito = nossoNumeroComDigito; + } + + public Integer getQtdPagamento() { + return QtdPagamento; + } + + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + + public Date getDataOcorrencia() { + return dataOcorrencia; + } + + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public String getInstrucao1() { + return instrucao1; + } + + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + + public String getInstrucao2() { + return instrucao2; + } + + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + + public BigDecimal getValorAtraso() { + return valorAtraso; + } + + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + + public BigDecimal getValorDesconto() { + return valorDesconto; + } + + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + + public BigDecimal getValorIOF() { + return valorIOF; + } + + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + + public String getNumeroInscricaoPagador() { + return numeroInscricaoPagador; + } + + public void setNumeroInscricaoPagador(String numeroInscricaoPagador) { + this.numeroInscricaoPagador = numeroInscricaoPagador; + } + + public String getNomePagador() { + return nomePagador; + } + + public void setNomePagador(String nomePagador) { + this.nomePagador = nomePagador; + } + + public String getEnderecoCompletoPagador() { + return enderecoCompletoPagador; + } + + public void setEnderecoCompletoPagador(String enderecoCompletoPagador) { + this.enderecoCompletoPagador = enderecoCompletoPagador; + } + + public String getMensagem1() { + return mensagem1; + } + + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + + public String getCEP_Prefixo() { + return CEP_Prefixo; + } + + public void setCEP_Prefixo(String cEP_Prefixo) { + CEP_Prefixo = cEP_Prefixo; + } + + public String getCEP_Sufixo() { + return CEP_Sufixo; + } + + public void setCEP_Sufixo(String cEP_Sufixo) { + CEP_Sufixo = cEP_Sufixo; + } + + public String getSacador_Avalista_Mensagem2() { + return sacador_Avalista_Mensagem2; + } + + public void setSacador_Avalista_Mensagem2(String sacador_Avalista_Mensagem2) { + this.sacador_Avalista_Mensagem2 = sacador_Avalista_Mensagem2; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + + public BigDecimal getPercentualJuros() { + return percentualJuros; + } + + public void setPercentualJuros(BigDecimal percentualJuros) { + this.percentualJuros = percentualJuros; + } + + public BigDecimal getPercentualMulta() { + return percentualMulta; + } + + public void setPercentualMulta(BigDecimal percentualMulta) { + this.percentualMulta = percentualMulta; + } + + public String existeMulta() { + if( this.percentualMulta != null && this.percentualMulta.compareTo(BigDecimal.ZERO) > 0 ) { + return "2"; + }else { + return "0"; + } + } + + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java new file mode 100644 index 000000000..ddeb8b707 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/bradesco/DetalheRetornoBradesco.java @@ -0,0 +1,104 @@ +package com.rjconsultores.ventaboletos.blocos.bradesco; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class DetalheRetornoBradesco implements DetalheRetorno, Cloneable{ + + private String numeroControleDoParticipante; + private OcorrenciaBradesco ocorrencia; + private List motivoOcorrencias; + private Integer idBoletoFechamento; + private String nossoNumero; + private String codigoOcorrencia; + private String dataBaixa; + private BigDecimal valorJuros; + private Integer numeroSequencialRegistro; + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public OcorrenciaBradesco getOcorrencia() { + return ocorrencia; + } + + public void setOcorrencia(OcorrenciaBradesco ocorrencia) { + this.ocorrencia = ocorrencia; + } + + public List getMotivoOcorrencias() { + return motivoOcorrencias; + } + + public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { + + if(this.motivoOcorrencias == null){ + this.motivoOcorrencias = new ArrayList(); + } + + this.motivoOcorrencias.add(motivoOcorrencias); + } + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public void setMotivoOcorrencias(List motivoOcorrencias) { + this.motivoOcorrencias = motivoOcorrencias; + } + + public String getCodigoOcorrencia() { + return codigoOcorrencia; + } + + public void setCodigoOcorrencia(String codigoOcorrencia) { + this.codigoOcorrencia = codigoOcorrencia; + } + + public BigDecimal getValorJuros() { + return valorJuros; + } + + public void setValorJuros(BigDecimal valorJuros) { + this.valorJuros = valorJuros; + } + + public String getDataBaixa() { + return dataBaixa; + } + + public void setDataBaixa(String dataBaixa) { + this.dataBaixa = dataBaixa; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java new file mode 100644 index 000000000..316999d47 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/ArquivoRemessaCaixa.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaCaixa extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaCaixa){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaCaixa.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioCaixa){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioCaixa.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java new file mode 100644 index 000000000..55ab97709 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/CabecalhoRemessaCaixa.java @@ -0,0 +1,73 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaCaixa implements CabecalhoRemessa { + + private String codigoEmpresa; + private String agenciaBeneficiario; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private String versaoLayout; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public String getAgenciaBeneficiario() { + return agenciaBeneficiario; + } + + public void setAgenciaBeneficiario(String agenciaBeneficiario) { + this.agenciaBeneficiario = agenciaBeneficiario; + } + + public String getVersaoLayout() { + return versaoLayout; + } + + public void setVersaoLayout(String versaoLayout) { + this.versaoLayout = versaoLayout; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java new file mode 100644 index 000000000..a7d780c9f --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/caixa/DetalheObrigatorioCaixa.java @@ -0,0 +1,194 @@ +package com.rjconsultores.ventaboletos.blocos.caixa; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioCaixa implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private TipoInscricaoPagador tipoInscricaoPagador; + private String numeroInscricao; + private String nossoNumero; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private BigDecimal valorMulta = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private String nomeSacado; + private String enderecoSacado; + private String bairroSacado; + private String cepSacado; + private String cidade; + private String estado; + private String sacadorAvalista; + private Integer numeroSequencialRegistro; + private String numeroInscricaoSacado; + + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + @Override + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public String getNumeroInscricao() { + return numeroInscricao; + } + + public void setNumeroInscricao(String numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public String getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public BigDecimal getValorAtraso() { + return valorAtraso; + } + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + public BigDecimal getValorMulta() { + return valorMulta; + } + public void setValorMulta(BigDecimal valorMulta) { + this.valorMulta = valorMulta; + } + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + public BigDecimal getValorDesconto() { + return valorDesconto; + } + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + public BigDecimal getValorIOF() { + return valorIOF; + } + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + public String getNomeSacado() { + return nomeSacado; + } + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + public String getEnderecoSacado() { + return enderecoSacado; + } + public void setEnderecoSacado(String enderecoSacado) { + this.enderecoSacado = enderecoSacado; + } + public String getBairroSacado() { + return bairroSacado; + } + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + public String getCepSacado() { + return cepSacado; + } + public void setCepSacado(String cepSacado) { + this.cepSacado = cepSacado; + } + public String getCidade() { + return cidade; + } + public void setCidade(String cidade) { + this.cidade = cidade; + } + public String getEstado() { + return estado; + } + public void setEstado(String estado) { + this.estado = estado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java new file mode 100644 index 000000000..e156570f5 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/ArquivoRemessaItau.java @@ -0,0 +1,40 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaItau extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaItau){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaItau.class.getName()); + } + } + + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioItau){ + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioItau.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + return rodapeRemessa; + } +} \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java new file mode 100644 index 000000000..f8d281e0d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/CabecalhoRemessaItau.java @@ -0,0 +1,125 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaItau implements CabecalhoRemessa{ + + //private String identificacaoRemessa; + //private String literalRemessa; + //private String codigoDeServico; + //private String literalServico; + private Integer agencia; + //private String zeros; + private Integer conta; + private Integer dacConta; + //private String brancos1; + private String nomeEmpresa; + //private String codigoCompensacao; + //private String nomeBanco; + private Date dataGeracao; + //private String brancos2; + private Integer numeroSequencialRegistro; + private Integer numeroSequencialRemessa; + +// public String getIdentificacaoRemessa() { +// return identificacaoRemessa; +// } +// public void setIdentificacaoRemessa(String identificacaoRemessa) { +// this.identificacaoRemessa = identificacaoRemessa; +// } +// public String getLiteralRemessa() { +// return literalRemessa; +// } +// public void setLiteralRemessa(String literalRemessa) { +// this.literalRemessa = literalRemessa; +// } +// public String getCodigoDeServico() { +// return codigoDeServico; +// } +// public void setCodigoDeServico(String codigoDeServico) { +// this.codigoDeServico = codigoDeServico; +// } +// public String getLiteralServico() { +// return literalServico; +// } +// public void setLiteralServico(String literalServico) { +// this.literalServico = literalServico; +// } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } +// public String getZeros() { +// return zeros; +// } +// public void setZeros(String zeros) { +// this.zeros = zeros; +// } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } +// public String getBrancos1() { +// return brancos1; +// } +// public void setBrancos1(String brancos1) { +// this.brancos1 = brancos1; +// } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } +// public String getCodigoCompensacao() { +// return codigoCompensacao; +// } +// public void setCodigoCompensacao(String codigoCompensacao) { +// this.codigoCompensacao = codigoCompensacao; +// } +// public String getNomeBanco() { +// return nomeBanco; +// } +// public void setNomeBanco(String nomeBanco) { +// this.nomeBanco = nomeBanco; +// } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } +// public String getBrancos2() { +// return brancos2; +// } +// public void setBrancos2(String brancos2) { +// this.brancos2 = brancos2; +// } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + @Override + public Integer getNumeroSequencialRemessa() { + // TODO Auto-generated method stub + return numeroSequencialRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java new file mode 100644 index 000000000..4ee3e3f5c --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheObrigatorioItau.java @@ -0,0 +1,377 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheMulta; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioItau implements DetalheObrigatorio{ + + private Integer codigoInscricao; + private Integer numeroInscricao; + private Integer agencia; + //private String zeros; + private Integer conta; + private Integer dacConta; + //private String Brancos1; // + private Integer instrucaoAlegacao; + private String usoDaEmpresa; + private String numCpfCnpj; + private Integer nossoNumero; + private BigDecimal qtdMoeda; + private Integer nrCarteira; + private String usoDoBanco; + private String codigoCarteira; + private Integer codigoDeOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String codigoCompensacaoBancoRecebedor; + private Integer agenciaCobradora; + private String especieDeTitulo; + private String aceite; // + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal jurosDeMora; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal IOF_Devido; + private BigDecimal abatimentoConcedido; + private TipoInscricaoPagador tipoInscricaoSacado; + private Long numeroInscricaoSacado; + private String nomeSacado; + //private String brancos2; // + private String logradouroSacado; + private String bairroSacado; + private String cepSacado; + private String cidade; + private String estado; + private String sacadorAvalista; + //private String brancos3; // + private Date dataDeMora; + private Integer prazo; + //private String brancos4; // + private Integer numeroSequencialRegistro; + + private DadosBoleto dadosBoleto; + + private RateioDeCredito rateioDeCredito; + + private DetalheMulta detalheMulta; + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + public Integer getCodigoInscricao() { + return codigoInscricao; + } + public void setCodigoInscricao(Integer codigoInscricao) { + this.codigoInscricao = codigoInscricao; + } + public Integer getNumeroInscricao() { + return numeroInscricao; + } + public void setNumeroInscricao(Integer numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public Integer getAgencia() { + return agencia; + } + public void setAgencia(Integer agencia) { + this.agencia = agencia; + } +// public String getZeros() { +// return zeros; +// } +// public void setZeros(String zeros) { +// this.zeros = zeros; +// } + public Integer getConta() { + return conta; + } + public void setConta(Integer conta) { + this.conta = conta; + } + public Integer getDacConta() { + return dacConta; + } + public void setDacConta(Integer dacConta) { + this.dacConta = dacConta; + } +// public String getBrancos1() { +// return Brancos1; +// } +// public void setBrancos1(String brancos1) { +// Brancos1 = brancos1; +// } + public Integer getInstrucaoAlegacao() { + return instrucaoAlegacao; + } + public void setInstrucaoAlegacao(Integer instrucaoAlegacao) { + this.instrucaoAlegacao = instrucaoAlegacao; + } + public String getUsoDaEmpresa() { + return usoDaEmpresa; + } + public void setUsoDaEmpresa(String usoDaEmpresa) { + this.usoDaEmpresa = usoDaEmpresa; + } + public Integer getNossoNumero() { + return nossoNumero; + } + public void setNossoNumero(Integer nossoNumero) { + this.nossoNumero = nossoNumero; + } + public BigDecimal getQtdMoeda() { + return qtdMoeda; + } + public void setQtdMoeda(BigDecimal qtdMoeda) { + this.qtdMoeda = qtdMoeda; + } + public Integer getNrCarteira() { + return nrCarteira; + } + public void setNrCarteira(Integer nrCarteira) { + this.nrCarteira = nrCarteira; + } + public String getUsoDoBanco() { + return usoDoBanco; + } + public void setUsoDoBanco(String usoDoBanco) { + this.usoDoBanco = usoDoBanco; + } + public String getCodigoCarteira() { + return codigoCarteira; + } + public void setCodigoCarteira(String codigoCarteira) { + this.codigoCarteira = codigoCarteira; + } + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public String getCodigoCompensacaoBancoRecebedor() { + return codigoCompensacaoBancoRecebedor; + } + public void setCodigoCompensacaoBancoRecebedor(String codigoCompensacaoBancoRecebedor) { + this.codigoCompensacaoBancoRecebedor = codigoCompensacaoBancoRecebedor; + } + public Integer getAgenciaCobradora() { + return agenciaCobradora; + } + public void setAgenciaCobradora(Integer agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public String getAceite() { + return aceite; + } + public void setAceite(String aceite) { + this.aceite = aceite; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public String getInstrucao1() { + return instrucao1; + } + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + public String getInstrucao2() { + return instrucao2; + } + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + public Date getDataDesconto() { + return dataDesconto; + } + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + public BigDecimal getIOF_Devido() { + return IOF_Devido; + } + public void setIOF_Devido(BigDecimal iOF_Devido) { + IOF_Devido = iOF_Devido; + } + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + public TipoInscricaoPagador getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + public void setTipoInscricaoSacado(TipoInscricaoPagador tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + public Long getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(Long numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public String getNomeSacado() { + return nomeSacado; + } + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } +// public String getBrancos2() { +// return brancos2; +// } +// public void setBrancos2(String brancos2) { +// this.brancos2 = brancos2; +// } + public String getLogradouroSacado() { + return logradouroSacado; + } + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + public String getBairroSacado() { + return bairroSacado; + } + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + public String getCepSacado() { + return cepSacado; + } + public void setCepSacado(String cepSacado) { + this.cepSacado = cepSacado; + } + public String getCidade() { + return cidade; + } + public void setCidade(String cidade) { + this.cidade = cidade; + } + public String getEstado() { + return estado; + } + public void setEstado(String estado) { + this.estado = estado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } +// public String getBrancos3() { +// return brancos3; +// } +// public void setBrancos3(String brancos3) { +// this.brancos3 = brancos3; +// } + public Date getDataDeMora() { + return dataDeMora; + } + public void setDataDeMora(Date dataDeMora) { + this.dataDeMora = dataDeMora; + } + public Integer getPrazo() { + return prazo; + } + public void setPrazo(Integer prazo) { + this.prazo = prazo; + } +// public String getBrancos4() { +// return brancos4; +// } +// public void setBrancos4(String brancos4) { +// this.brancos4 = brancos4; +// } + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + private Integer idBoletoFechamento; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public DetalheMulta getDetalheMulta() { + return detalheMulta; + } + public void setDetalheMulta(DetalheMulta detalheMulta) { + this.detalheMulta = detalheMulta; + } + public DetalheObrigatorioItau clone() throws CloneNotSupportedException { + return (DetalheObrigatorioItau) super.clone(); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java new file mode 100644 index 000000000..5e480b84e --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/itau/DetalheRetornoItau.java @@ -0,0 +1,65 @@ +package com.rjconsultores.ventaboletos.blocos.itau; + +import java.math.BigDecimal; + +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; + +public class DetalheRetornoItau implements DetalheRetorno{ + + private Integer idBoletoFechamento; + private String nossoNumero; + private String codigoOcorrencia; + private String dataBaixa; + private BigDecimal valorJuros; + private Integer numeroSequencialRegistro; + + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public String getCodigoOcorrencia() { + return codigoOcorrencia; + } + + public void setCodigoOcorrencia(String codigoOcorrencia) { + this.codigoOcorrencia = codigoOcorrencia; + } + + public BigDecimal getValorJuros() { + return valorJuros; + } + + public void setValorJuros(BigDecimal valorJuros) { + this.valorJuros = valorJuros; + } + + public String getDataBaixa() { + return dataBaixa; + } + + public void setDataBaixa(String dataBaixa) { + this.dataBaixa = dataBaixa; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java new file mode 100644 index 000000000..b99120360 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/ArquivoRemessaMercantil.java @@ -0,0 +1,43 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaMercantil extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaMercantil){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaMercantil.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioMercantil){ + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioMercantil.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java new file mode 100644 index 000000000..b20701236 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/CabecalhoRemessaMercantil.java @@ -0,0 +1,73 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaMercantil implements CabecalhoRemessa { + + private String agenciaOrigem; + private Long cnpj; + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Long getCnpj() { + return cnpj; + } + + public void setCnpj(Long cnpj) { + this.cnpj = cnpj; + } + + public String getAgenciaOrigem() { + return agenciaOrigem; + } + + public void setAgenciaOrigem(String agenciaOrigem) { + this.agenciaOrigem = agenciaOrigem; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java new file mode 100644 index 000000000..8e517d5f9 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/mercantil/DetalheObrigatorioMercantil.java @@ -0,0 +1,391 @@ +package com.rjconsultores.ventaboletos.blocos.mercantil; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioMercantil implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private String agenciaOrigem; + private String numeroControleDoParticipante; + private String nossoNumero; + private String digitoVerificador; + private Long cnpj; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal ValorTitulo; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private TipoInscricaoPagador tipoInscricaoPagador; + private Long numeroInscricaoPagador; + private String nomePagador; + private String enderecoCompletoPagador; + private String bairro; + private String cidade; + private String estado; + private String mensagem1; + private String cepPrefixo; + private String cepSufixo; + private String sacadorAvalistaMensagem2; + private Integer numeroSequencialRegistro; + private Integer multaPercentual; + private Integer numeroContrato; + private Integer seuNumero; + + + /* + + MultaPercentual" + MultaData" + " + IdentificacaoTitulo" + AgenciaOrigem" + DigitoVerificador" + + CNPJ" + QuantidadeMoeda" + CodigoOperacao" + CodigoMovimentacao" + SeuNumero" + DataVencimento" + + CodigoBanco" + Agencia" + Aceite" + JurosDeMora" + DataLimiteDesconto" + DescontoConcedido" + IOF_Devido" + AbatimentoConcedido" + TipoInscricaoSacado" + NumeroInscricaoSacado" + NomeSacado" + EnderecoSacado" + BairroSacado" + CepSacado" + ComplementoCepSacado" + Cidade" + Estado" + SacadorAvalista" + + CodigoMoeda" +*/ + + private DadosBoleto dadosBoleto; + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public String getAgenciaOrigem() { + return agenciaOrigem; + } + + public void setAgenciaOrigem(String agenciaOrigem) { + this.agenciaOrigem = agenciaOrigem; + } + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public String getDigitoVerificador() { + return digitoVerificador; + } + + public void setDigitoVerificador(String digitoVerificador) { + this.digitoVerificador = digitoVerificador; + } + + public Integer getQtdPagamento() { + return QtdPagamento; + } + + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + + public Date getDataOcorrencia() { + return dataOcorrencia; + } + + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValorTitulo() { + return ValorTitulo; + } + + public void setValorTitulo(BigDecimal valorTitulo) { + ValorTitulo = valorTitulo; + } + + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public String getInstrucao1() { + return instrucao1; + } + + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + + public String getInstrucao2() { + return instrucao2; + } + + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + + public BigDecimal getValorAtraso() { + return valorAtraso; + } + + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + + public BigDecimal getValorDesconto() { + return valorDesconto; + } + + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + + public BigDecimal getValorIOF() { + return valorIOF; + } + + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + + public Long getNumeroInscricaoPagador() { + return numeroInscricaoPagador; + } + + public void setNumeroInscricaoPagador(Long numeroInscricaoPagador) { + this.numeroInscricaoPagador = numeroInscricaoPagador; + } + + public String getNomePagador() { + return nomePagador; + } + + public void setNomePagador(String nomePagador) { + this.nomePagador = nomePagador; + } + + public String getEnderecoCompletoPagador() { + return enderecoCompletoPagador; + } + + public void setEnderecoCompletoPagador(String enderecoCompletoPagador) { + this.enderecoCompletoPagador = enderecoCompletoPagador; + } + + public String getMensagem1() { + return mensagem1; + } + + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + + public String getSacadorAvalistaMensagem2() { + return sacadorAvalistaMensagem2; + } + + public void setSacadorAvalistaMensagem2(String sacadorAvalistaMensagem2) { + this.sacadorAvalistaMensagem2 = sacadorAvalistaMensagem2; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + + public Integer getMultaPercentual() { + return multaPercentual; + } + + public void setMultaPercentual(Integer multaPercentual) { + this.multaPercentual = multaPercentual; + } + + public String getCepPrefixo() { + return cepPrefixo; + } + + public void setCepPrefixo(String cepPrefixo) { + this.cepPrefixo = cepPrefixo; + } + + public String getCepSufixo() { + return cepSufixo; + } + + public void setCepSufixo(String cepSufixo) { + this.cepSufixo = cepSufixo; + } + + public Long getCnpj() { + return cnpj; + } + + public void setCnpj(Long cnpj) { + this.cnpj = cnpj; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public Integer getSeuNumero() { + return seuNumero; + } + + public void setSeuNumero(Integer seuNumero) { + this.seuNumero = seuNumero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/ArquivoRemessaSafra.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/ArquivoRemessaSafra.java new file mode 100644 index 000000000..73837a2d0 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/ArquivoRemessaSafra.java @@ -0,0 +1,42 @@ +package com.rjconsultores.ventaboletos.blocos.safra; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaSafra extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaSafra){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaSafra.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioSafra){ + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioSafra.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaSafra() : this.rodapeRemessa; + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/CabecalhoRemessaSafra.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/CabecalhoRemessaSafra.java new file mode 100644 index 000000000..9b1fa183c --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/CabecalhoRemessaSafra.java @@ -0,0 +1,74 @@ +package com.rjconsultores.ventaboletos.blocos.safra; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaSafra implements CabecalhoRemessa { + + private String numAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheObrigatorioSafra.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheObrigatorioSafra.java new file mode 100644 index 000000000..630bf455d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheObrigatorioSafra.java @@ -0,0 +1,319 @@ +package com.rjconsultores.ventaboletos.blocos.safra; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.Aceite; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioSafra implements DetalheObrigatorio{ + + private Integer idBoletoFechamento; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String nossoNumero; + private Date vencimento; + private BigDecimal valor; + private String agenciaCobradora; + private String especieDeTitulo; + private Aceite aceite; + private Date dataEmissao; + private String instrucao1; + private String instrucao2; + private BigDecimal jurosDeMora; + private Date dataMulta; + private BigDecimal percMulta; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private TipoInscricaoPagador tipoInscricaoPagador; + private String numeroInscricaoPagador; + private String nomePagador; + private String enderecoPagador; + private String bairroPagador; + private String mensagem1; + private String cepPagador; + private String cidadePagador; + private String estadoPagador; + private String sacadorAvalista; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public Integer getCpfCnpj() { + return cpfCnpj; + } + + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getAgenciaCobradora() { + return agenciaCobradora; + } + + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + + public Aceite getAceite() { + return aceite; + } + + public void setAceite(Aceite aceite) { + this.aceite = aceite; + } + + public Date getDataEmissao() { + return dataEmissao; + } + + public void setDataEmissao(Date dataEmissao) { + this.dataEmissao = dataEmissao; + } + + public String getInstrucao1() { + return instrucao1; + } + + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + + public String getInstrucao2() { + return instrucao2; + } + + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + + public Date getDataMulta() { + return dataMulta; + } + + public void setDataMulta(Date dataMulta) { + this.dataMulta = dataMulta; + } + + public BigDecimal getPercMulta() { + return percMulta; + } + + public void setPercMulta(BigDecimal percMulta) { + this.percMulta = percMulta; + } + + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + + public BigDecimal getValorDesconto() { + return valorDesconto; + } + + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + + public BigDecimal getValorIOF() { + return valorIOF; + } + + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public TipoInscricaoPagador getTipoInscricaoPagador() { + return tipoInscricaoPagador; + } + + public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) { + this.tipoInscricaoPagador = tipoInscricaoPagador; + } + + public String getNumeroInscricaoPagador() { + return numeroInscricaoPagador; + } + + public void setNumeroInscricaoPagador(String numeroInscricaoPagador) { + this.numeroInscricaoPagador = numeroInscricaoPagador; + } + + public String getNomePagador() { + return nomePagador; + } + + public void setNomePagador(String nomePagador) { + this.nomePagador = nomePagador; + } + + public String getEnderecoPagador() { + return enderecoPagador; + } + + public void setEnderecoPagador(String enderecoPagador) { + this.enderecoPagador = enderecoPagador; + } + + public String getBairroPagador() { + return bairroPagador; + } + + public void setBairroPagador(String bairroPagador) { + this.bairroPagador = bairroPagador; + } + + public String getMensagem1() { + return mensagem1; + } + + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + + public String getCepPagador() { + return cepPagador; + } + + public void setCepPagador(String cepPagador) { + this.cepPagador = cepPagador; + } + + public String getCidadePagador() { + return cidadePagador; + } + + public void setCidadePagador(String cidadePagador) { + this.cidadePagador = cidadePagador; + } + + public String getEstadoPagador() { + return estadoPagador; + } + + public void setEstadoPagador(String estadoPagador) { + this.estadoPagador = estadoPagador; + } + + public String getSacadorAvalista() { + return sacadorAvalista; + } + + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheRetornoSafra.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheRetornoSafra.java new file mode 100644 index 000000000..901ffe15c --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/DetalheRetornoSafra.java @@ -0,0 +1,104 @@ +package com.rjconsultores.ventaboletos.blocos.safra; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class DetalheRetornoSafra implements DetalheRetorno, Cloneable{ + + private String numeroControleDoParticipante; + private OcorrenciaBradesco ocorrencia; + private List motivoOcorrencias; + private Integer idBoletoFechamento; + private String nossoNumero; + private String codigoOcorrencia; + private String dataBaixa; + private BigDecimal valorJuros; + private Integer numeroSequencialRegistro; + + public String getNumeroControleDoParticipante() { + return numeroControleDoParticipante; + } + + public void setNumeroControleDoParticipante(String numeroControleDoParticipante) { + this.numeroControleDoParticipante = numeroControleDoParticipante; + } + + public OcorrenciaBradesco getOcorrencia() { + return ocorrencia; + } + + public void setOcorrencia(OcorrenciaBradesco ocorrencia) { + this.ocorrencia = ocorrencia; + } + + public List getMotivoOcorrencias() { + return motivoOcorrencias; + } + + public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) { + + if(this.motivoOcorrencias == null){ + this.motivoOcorrencias = new ArrayList(); + } + + this.motivoOcorrencias.add(motivoOcorrencias); + } + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public void setMotivoOcorrencias(List motivoOcorrencias) { + this.motivoOcorrencias = motivoOcorrencias; + } + + public String getCodigoOcorrencia() { + return codigoOcorrencia; + } + + public void setCodigoOcorrencia(String codigoOcorrencia) { + this.codigoOcorrencia = codigoOcorrencia; + } + + public BigDecimal getValorJuros() { + return valorJuros; + } + + public void setValorJuros(BigDecimal valorJuros) { + this.valorJuros = valorJuros; + } + + public String getDataBaixa() { + return dataBaixa; + } + + public void setDataBaixa(String dataBaixa) { + this.dataBaixa = dataBaixa; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/RodapeRemessaSafra.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/RodapeRemessaSafra.java new file mode 100644 index 000000000..bef1af4f2 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/safra/RodapeRemessaSafra.java @@ -0,0 +1,47 @@ +package com.rjconsultores.ventaboletos.blocos.safra; + +import java.math.BigDecimal; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaSafra extends RodapeRemessaPadrao { + + private Integer qtdTitulos; + private BigDecimal valorTotalTitulos; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + + public Integer getQtdTitulos() { + return qtdTitulos; + } + + public void setQtdTitulos(Integer qtdTitulos) { + this.qtdTitulos = qtdTitulos; + } + + public BigDecimal getValorTotalTitulos() { + return valorTotalTitulos; + } + + public void setValorTotalTitulos(BigDecimal valorTotalTitulos) { + this.valorTotalTitulos = valorTotalTitulos; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + @Override + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java new file mode 100644 index 000000000..4c5bd20e0 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/ArquivoRemessaSantander.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaSantander extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaSantander){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaSantander.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioSantander){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioSantander.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java new file mode 100644 index 000000000..013817b47 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/CabecalhoRemessaSantander.java @@ -0,0 +1,75 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaSantander implements CabecalhoRemessa { + + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private String codigoTransmissao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private Integer numeroVersao; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public String getCodigoTransmissao() { + return codigoTransmissao; + } + + public void setCodigoTransmissao(String codigoTransmissao) { + this.codigoTransmissao = codigoTransmissao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroVersao() { + return numeroVersao; + } + + public void setNumeroVersao(Integer numeroVersao) { + this.numeroVersao = numeroVersao; + } + + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java new file mode 100644 index 000000000..3163e5b1b --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/santander/DetalheObrigatorioSantander.java @@ -0,0 +1,357 @@ +package com.rjconsultores.ventaboletos.blocos.santander; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador; + +public class DetalheObrigatorioSantander implements DetalheObrigatorio, Cloneable { + + private Integer idBoletoFechamento; + private TipoInscricaoPagador tipoInscricao; + private String numeroInscricao; + private String codigoTransmissao; + private String numControleDoParticipante; + private String nossoNumeroComDigito; + private String carteira; + private String agencia; + private String agenciaCobradora; + private String contacorrente; + private String dvConta; + private String dvAgencia; + private Integer QtdPagamento = 0; + private Integer codigoDeOcorrencia = 0; + private Date dataOcorrencia; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String especieDeTitulo; + private Date emissao; + private String instrucao1; + private String instrucao2; + private BigDecimal valorAtraso = BigDecimal.ZERO; + private Date dataLimiteDesconto; + private BigDecimal valorDesconto = BigDecimal.ZERO; + private BigDecimal valorIOF = BigDecimal.ZERO; + private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO; + private String nomeSacado; + private String mensagem1; + private String enderecoSacado; + private String bairroSacado; + private String cepSacado; + private String complementoCepSacado; + private String cidade; + private String estado; + private String identificadorComplemento; + private String complemento; + private String sacadorAvalista; + private Integer numeroSequencialRegistro; + private DadosBoleto dadosBoleto; + private RateioDeCredito rateioDeCredito; + private String numeroInscricaoSacado; + private String codigoEmpresa; + private BigDecimal percentualJuros; + private BigDecimal percentualMulta; + + + @Override + public void setIdBoletoFechamento(Integer id) { + this.idBoletoFechamento = id; + + } + @Override + public Integer getIdBoletoFechamento(){ + return this.idBoletoFechamento; + } + + @Override + public DetalheObrigatorio clone() throws CloneNotSupportedException { + return (DetalheObrigatorio) super.clone(); + } + + public TipoInscricaoPagador getTipoInscricao() { + return tipoInscricao; + } + public void setTipoInscricao(TipoInscricaoPagador tipoInscricao) { + this.tipoInscricao = tipoInscricao; + } + public String getNumeroInscricao() { + return numeroInscricao; + } + public void setNumeroInscricao(String numeroInscricao) { + this.numeroInscricao = numeroInscricao; + } + public String getCodigoTransmissao() { + return codigoTransmissao; + } + public void setCodigoTransmissao(String codigoTransmissao) { + this.codigoTransmissao = codigoTransmissao; + } + public String getNumControleDoParticipante() { + return numControleDoParticipante; + } + public void setNumControleDoParticipante(String numControleDoParticipante) { + this.numControleDoParticipante = numControleDoParticipante; + } + public String getNossoNumeroComDigito() { + return nossoNumeroComDigito; + } + public void setNossoNumeroComDigito(String nossoNumeroComDigito) { + this.nossoNumeroComDigito = nossoNumeroComDigito; + } + public String getCarteira() { + return carteira; + } + public void setCarteira(String carteira) { + this.carteira = carteira; + } + public String getAgencia() { + return agencia; + } + public void setAgencia(String agencia) { + this.agencia = agencia; + } + public String getContacorrente() { + return contacorrente; + } + public void setContacorrente(String contacorrente) { + this.contacorrente = contacorrente; + } + public String getDvConta() { + return dvConta; + } + public void setDvConta(String dvConta) { + this.dvConta = dvConta; + } + public Integer getQtdPagamento() { + return QtdPagamento; + } + public void setQtdPagamento(Integer qtdPagamento) { + QtdPagamento = qtdPagamento; + } + public Integer getCodigoDeOcorrencia() { + return codigoDeOcorrencia; + } + public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) { + this.codigoDeOcorrencia = codigoDeOcorrencia; + } + public Date getDataOcorrencia() { + return dataOcorrencia; + } + public void setDataOcorrencia(Date dataOcorrencia) { + this.dataOcorrencia = dataOcorrencia; + } + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + public Date getVencimento() { + return vencimento; + } + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + public BigDecimal getValor() { + return valor; + } + public void setValor(BigDecimal valor) { + this.valor = valor; + } + public String getEspecieDeTitulo() { + return especieDeTitulo; + } + public void setEspecieDeTitulo(String especieDeTitulo) { + this.especieDeTitulo = especieDeTitulo; + } + public Date getEmissao() { + return emissao; + } + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + public String getInstrucao1() { + return instrucao1; + } + public void setInstrucao1(String instrucao1) { + this.instrucao1 = instrucao1; + } + public String getInstrucao2() { + return instrucao2; + } + public void setInstrucao2(String instrucao2) { + this.instrucao2 = instrucao2; + } + public BigDecimal getValorAtraso() { + return valorAtraso; + } + public void setValorAtraso(BigDecimal valorAtraso) { + this.valorAtraso = valorAtraso; + } + public Date getDataLimiteDesconto() { + return dataLimiteDesconto; + } + public void setDataLimiteDesconto(Date dataLimiteDesconto) { + this.dataLimiteDesconto = dataLimiteDesconto; + } + public BigDecimal getValorDesconto() { + return valorDesconto; + } + public void setValorDesconto(BigDecimal valorDesconto) { + this.valorDesconto = valorDesconto; + } + public BigDecimal getValorIOF() { + return valorIOF; + } + public void setValorIOF(BigDecimal valorIOF) { + this.valorIOF = valorIOF; + } + public BigDecimal getValorAbatimentoConcedido() { + return valorAbatimentoConcedido; + } + public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) { + this.valorAbatimentoConcedido = valorAbatimentoConcedido; + } + + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getCepSacado() { + return cepSacado; + } + public void setCepSacado(String cepSacado) { + this.cepSacado = cepSacado; + } + public String getComplementoCepSacado() { + return complementoCepSacado; + } + public void setComplementoCepSacado(String complementoCepSacado) { + this.complementoCepSacado = complementoCepSacado; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + public DadosBoleto getDadosBoleto() { + return dadosBoleto; + } + public void setDadosBoleto(DadosBoleto dadosBoleto) { + this.dadosBoleto = dadosBoleto; + } + public RateioDeCredito getRateioDeCredito() { + return rateioDeCredito; + } + public void setRateioDeCredito(RateioDeCredito rateioDeCredito) { + this.rateioDeCredito = rateioDeCredito; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public String getIdentificadorComplemento() { + return identificadorComplemento; + } + + public void setIdentificadorComplemento(String identificadorComplemento) { + this.identificadorComplemento = identificadorComplemento; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getEnderecoSacado() { + return enderecoSacado; + } + + public void setEnderecoSacado(String enderecoSacado) { + this.enderecoSacado = enderecoSacado; + } + public String getSacadorAvalista() { + return sacadorAvalista; + } + public void setSacadorAvalista(String sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + public String getAgenciaCobradora() { + return agenciaCobradora; + } + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + public String getDvAgencia() { + return dvAgencia; + } + public void setDvAgencia(String dvAgencia) { + this.dvAgencia = dvAgencia; + } + public String getCodigoEmpresa() { + return codigoEmpresa; + } + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + public BigDecimal getPercentualJuros() { + return percentualJuros; + } + public void setPercentualJuros(BigDecimal percentualJuros) { + this.percentualJuros = percentualJuros; + } + public BigDecimal getPercentualMulta() { + return percentualMulta; + } + public void setPercentualMulta(BigDecimal percentualMulta) { + this.percentualMulta = percentualMulta; + } + + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java new file mode 100644 index 000000000..ebb16ed45 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/ArquivoRemessaSicoob.java @@ -0,0 +1,45 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.ArrayList; + +import com.rjconsultores.ventaboletos.ArquivoRemessaItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class ArquivoRemessaSicoob extends ArquivoRemessaItem { + + @Override + public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) { + + if(cabecalhoRemessa instanceof CabecalhoRemessaSicoob){ + super.setCabecalhoRemessa(cabecalhoRemessa); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaSicoob.class.getName()); + } + } + + @Override + public void addTitulo(DetalheObrigatorio titulo){ + if(this.titulos == null){ + this.titulos = new ArrayList(); + } + + if(titulo instanceof DetalheObrigatorioSicoob){ + + titulo.setNumeroSequencialRegistro(titulos.size() + 2); + + this.titulos.add(titulo); + }else{ + throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioSicoob.class.getName()); + } + } + + @Override + public RodapeRemessa getRodapeRemessa() { + this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa; + rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2); + return rodapeRemessa; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java new file mode 100644 index 000000000..88f9ea8f6 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoLoteRemessaSicoob.java @@ -0,0 +1,162 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoLoteRemessaSicoob implements CabecalhoRemessa{ + + private Integer codComp; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numCarteira; + private String numVarCarteira; + private String remessaTeste; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nomeEmpresa; + private String mensagem1; + private String mensagem2; + private Integer numeroRemessa; + private Date dataGeracao; + private Date dataCredito; + + public Integer getCpfCnpj() { + return cpfCnpj; + } + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + public String getNumCpfCnpj() { + return numCpfCnpj; + } + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + public String getNumConvenio() { + return numConvenio; + } + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + public String getNumCarteira() { + return numCarteira; + } + public void setNumCarteira(String numCarteira) { + this.numCarteira = numCarteira; + } + public String getNumVarCarteira() { + return numVarCarteira; + } + public void setNumVarCarteira(String numVarCarteira) { + this.numVarCarteira = numVarCarteira; + } + public String getRemessaTesteID() { + return remessaTeste; + } + public void setRemessaTesteID(String remessaTeste) { + this.remessaTeste = remessaTeste; + } + public String getNumAgencia() { + return numAgencia; + } + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + public String getDigAgencia() { + return digAgencia; + } + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + public String getNumContaCorrente() { + return numContaCorrente; + } + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + public String getDigContaCorrente() { + return digContaCorrente; + } + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + public String getDigAgenciaConta() { + return digAgenciaConta; + } + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + public String getNomeEmpresa() { + return nomeEmpresa; + } + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + public String getMensagem1() { + return mensagem1; + } + public void setMensagem1(String mensagem1) { + this.mensagem1 = mensagem1; + } + public String getMensagem2() { + return mensagem2; + } + public void setMensagem2(String mensagem2) { + this.mensagem2 = mensagem2; + } + public Integer getNumeroRemessa() { + return numeroRemessa; + } + public void setNumeroRemessa(Integer numeroRemessa) { + this.numeroRemessa = numeroRemessa; + } + public Date getDataGeracao() { + return dataGeracao; + } + public void setDataGeracao(Date dataGeracao) { + this.dataGeracao = dataGeracao; + } + public Date getDataCredito() { + return dataCredito; + } + public void setDataCredito(Date dataCredito) { + this.dataCredito = dataCredito; + } + public Integer getCodComp() { + return codComp; + } + public void setCodComp(Integer codComp) { + this.codComp = codComp; + } + public Integer getLoteServico() { + return loteServico; + } + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + @Override + public Integer getNumeroSequencialRemessa() { + return numeroRemessa; + } + @Override + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + numeroRemessa = numeroSequencialRemessa; + + } + @Override + public Integer getNumeroSequencialRegistro() { + // TODO Auto-generated method stub + return null; + } + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java new file mode 100644 index 000000000..d79de03ef --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/CabecalhoRemessaSicoob.java @@ -0,0 +1,146 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; + +public class CabecalhoRemessaSicoob implements CabecalhoRemessa { + + private String codigoEmpresa; + private String nomeEmpresa; + private Date dataGravacao; + private Integer numeroSequencialRemessa; + private Integer numeroSequencialRegistro; + private Integer loteServico; + private Integer cpfCnpj; + private String numCpfCnpj; + private String numConvenio; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private Integer numRemessa; + + private CabecalhoLoteRemessaSicoob cabecalhoLoteRemessaSicoob; + + public String getCodigoEmpresa() { + return codigoEmpresa; + } + + public void setCodigoEmpresa(String codigoEmpresa) { + this.codigoEmpresa = codigoEmpresa; + } + + public String getNomeEmpresa() { + return nomeEmpresa; + } + + public void setNomeEmpresa(String nomeEmpresa) { + this.nomeEmpresa = nomeEmpresa; + } + + public Date getDataGravacao() { + return dataGravacao; + } + + public void setDataGravacao(Date dataGravacao) { + this.dataGravacao = dataGravacao; + } + + public Integer getNumeroSequencialRemessa() { + return numeroSequencialRemessa; + } + + public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) { + this.numeroSequencialRemessa = numeroSequencialRemessa; + } + + public Integer getNumeroSequencialRegistro() { + return numeroSequencialRegistro; + } + + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + this.numeroSequencialRegistro = numeroSequencialRegistro; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCpfCnpj() { + return cpfCnpj; + } + + public void setCpfCnpj(Integer cpfCnpj) { + this.cpfCnpj = cpfCnpj; + } + + public String getNumCpfCnpj() { + return numCpfCnpj; + } + + public void setNumCpfCnpj(String numCpfCnpj) { + this.numCpfCnpj = numCpfCnpj; + } + + public String getNumConvenio() { + return numConvenio; + } + + public void setNumConvenio(String numConvenio) { + this.numConvenio = numConvenio; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public Integer getNumRemessa() { + return numRemessa; + } + + public void setNumRemessa(Integer numRemessa) { + this.numRemessa = numRemessa; + } + + public CabecalhoLoteRemessaSicoob getCabecalhoLoteRemessaSicoob() { + return cabecalhoLoteRemessaSicoob; + } + + public void setCabecalhoLoteRemessaSicoob(CabecalhoLoteRemessaSicoob cabecalhoLoteRemessaSicoob) { + this.cabecalhoLoteRemessaSicoob = cabecalhoLoteRemessaSicoob; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java new file mode 100644 index 000000000..bb1409382 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioDadosPagadorSicoob.java @@ -0,0 +1,183 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; + +public class DetalheObrigatorioDadosPagadorSicoob implements DetalheObrigatorio, Cloneable{ + + + private Integer loteServico; + private Integer codigoRemessa; + private Integer numSeqRegistro; + private Integer tipoInscricaoSacado; + private String numeroInscricaoSacado; + private String nomeSacado; + private String logradouroSacado; + private String bairroSacado; + private Integer cepSacado; + private Integer sufixoCep; + private String cidade; + private String estado; + private Integer tipoSacadorAvalista; + private Integer sacadorAvalista; + private String nomeSacadorAvalista; + private Integer codBancoCorresp; + private String nossoNumeroNoBancoCorresp; + private Integer idBoletoFechamento; + private String cveEstado; + + @Override + public void setIdBoletoFechamento(Integer id) { + idBoletoFechamento = id; + } + + @Override + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + numSeqRegistro = numeroSequencialRegistro; + } + + public Integer getNumeroSequencialRegistro() { + return numSeqRegistro; + } + + public Integer getTipoInscricaoSacado() { + return tipoInscricaoSacado; + } + + public void setTipoInscricaoSacado(Integer tipoInscricaoSacado) { + this.tipoInscricaoSacado = tipoInscricaoSacado; + } + + public String getNumeroInscricaoSacado() { + return numeroInscricaoSacado; + } + + public void setNumeroInscricaoSacado(String numeroInscricaoSacado) { + this.numeroInscricaoSacado = numeroInscricaoSacado; + } + + public String getNomeSacado() { + return nomeSacado; + } + + public void setNomeSacado(String nomeSacado) { + this.nomeSacado = nomeSacado; + } + + public String getLogradouroSacado() { + return logradouroSacado; + } + + public void setLogradouroSacado(String logradouroSacado) { + this.logradouroSacado = logradouroSacado; + } + + public String getBairroSacado() { + return bairroSacado; + } + + public void setBairroSacado(String bairroSacado) { + this.bairroSacado = bairroSacado; + } + + public Integer getCepSacado() { + return cepSacado; + } + + public void setCepSacado(Integer cepSacado) { + this.cepSacado = cepSacado; + } + + public Integer getSufixoCep() { + return sufixoCep; + } + + public void setSufixoCep(Integer sufixoCep) { + this.sufixoCep = sufixoCep; + } + + public String getCidade() { + return cidade; + } + + public void setCidade(String cidade) { + this.cidade = cidade; + } + + public String getEstado() { + return estado; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public Integer getTipoSacadorAvalista() { + return tipoSacadorAvalista; + } + + public void setTipoSacadorAvalista(Integer tipoSacadorAvalista) { + this.tipoSacadorAvalista = tipoSacadorAvalista; + } + + public Integer getSacadorAvalista() { + return sacadorAvalista; + } + + public void setSacadorAvalista(Integer sacadorAvalista) { + this.sacadorAvalista = sacadorAvalista; + } + + public String getNomeSacadorAvalista() { + return nomeSacadorAvalista; + } + + public void setNomeSacadorAvalista(String nomeSacadorAvalista) { + this.nomeSacadorAvalista = nomeSacadorAvalista; + } + + public Integer getCodBancoCorresp() { + return codBancoCorresp; + } + + public void setCodBancoCorresp(Integer codBancoCorresp) { + this.codBancoCorresp = codBancoCorresp; + } + + public String getNossoNumeroNoBancoCorresp() { + return nossoNumeroNoBancoCorresp; + } + + public void setNossoNumeroNoBancoCorresp(String nossoNumeroNoBancoCorresp) { + this.nossoNumeroNoBancoCorresp = nossoNumeroNoBancoCorresp; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getCodigoRemessa() { + return codigoRemessa; + } + + public void setCodigoRemessa(Integer codigoRemessa) { + this.codigoRemessa = codigoRemessa; + } + + public String getCveEstado() { + return cveEstado; + } + + public void setCveEstado(String cveEstado) { + this.cveEstado = cveEstado; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java new file mode 100644 index 000000000..e971a05b9 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/DetalheObrigatorioSicoob.java @@ -0,0 +1,352 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.math.BigDecimal; +import java.util.Date; + +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.enuns.Aceite; + +public class DetalheObrigatorioSicoob implements DetalheObrigatorio { + + private Integer loteServico; + private Integer numSeqRegistro; + private String numAgencia; + private String digAgencia; + private String numContaCorrente; + private String digContaCorrente; + private String digAgenciaConta; + private String nossoNumero; + private Integer codCarteira; + private String formaCadTituloBanco; + private String tipoDocumento; + private String identEmissaoBloqueto; + private String identDistribuicao; + private String numeroDoDocumento; + private Date vencimento; + private BigDecimal valor; + private String agenciaCobradora; + private String digAgenciaCobradora; + private Aceite aceite; + private Date emissao; + private Integer codMora; + private Date dataMora; + private BigDecimal jurosDeMora; + private Integer codigoDesconto; + private Date dataDesconto; + private BigDecimal descontoConcedido; + private BigDecimal iofDevido; + private BigDecimal abatimentoConcedido; + private String nossoNumeroEmp; + private Integer codigoProtesto; + private Integer diasProtesto; + private Integer codigoBaixa; + private Integer diasBaixa; + private Integer numeroContrato; + private String usoExclusivo; + private Integer idBoletoFechamento; + + private DetalheObrigatorioDadosPagadorSicoob detalheObrigatorioDadosPagadorSicoob; + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public Integer getNumSeqRegistro() { + return numSeqRegistro; + } + + public void setNumSeqRegistro(Integer numSeqRegistro) { + this.numSeqRegistro = numSeqRegistro; + } + + public String getNumAgencia() { + return numAgencia; + } + + public void setNumAgencia(String numAgencia) { + this.numAgencia = numAgencia; + } + + public String getDigAgencia() { + return digAgencia; + } + + public void setDigAgencia(String digAgencia) { + this.digAgencia = digAgencia; + } + + public String getNumContaCorrente() { + return numContaCorrente; + } + + public void setNumContaCorrente(String numContaCorrente) { + this.numContaCorrente = numContaCorrente; + } + + public String getDigContaCorrente() { + return digContaCorrente; + } + + public void setDigContaCorrente(String digContaCorrente) { + this.digContaCorrente = digContaCorrente; + } + + public String getDigAgenciaConta() { + return digAgenciaConta; + } + + public void setDigAgenciaConta(String digAgenciaConta) { + this.digAgenciaConta = digAgenciaConta; + } + + public String getNossoNumero() { + return nossoNumero; + } + + public void setNossoNumero(String nossoNumero) { + this.nossoNumero = nossoNumero; + } + + public Integer getCodCarteira() { + return codCarteira; + } + + public void setCodCarteira(Integer codCarteira) { + this.codCarteira = codCarteira; + } + + public String getFormaCadTituloBanco() { + return formaCadTituloBanco; + } + + public void setFormaCadTituloBanco(String formaCadTituloBanco) { + this.formaCadTituloBanco = formaCadTituloBanco; + } + + public String getTipoDocumento() { + return tipoDocumento; + } + + public void setTipoDocumento(String tipoDocumento) { + this.tipoDocumento = tipoDocumento; + } + + public String getIdentEmissaoBloqueto() { + return identEmissaoBloqueto; + } + + public void setIdentEmissaoBloqueto(String identEmissaoBloqueto) { + this.identEmissaoBloqueto = identEmissaoBloqueto; + } + + public String getIdentDistribuicao() { + return identDistribuicao; + } + + public void setIdentDistribuicao(String identDistribuicao) { + this.identDistribuicao = identDistribuicao; + } + + public String getNumeroDoDocumento() { + return numeroDoDocumento; + } + + public void setNumeroDoDocumento(String numeroDoDocumento) { + this.numeroDoDocumento = numeroDoDocumento; + } + + public Date getVencimento() { + return vencimento; + } + + public void setVencimento(Date vencimento) { + this.vencimento = vencimento; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public String getAgenciaCobradora() { + return agenciaCobradora; + } + + public void setAgenciaCobradora(String agenciaCobradora) { + this.agenciaCobradora = agenciaCobradora; + } + + public String getDigAgenciaCobradora() { + return digAgenciaCobradora; + } + + public void setDigAgenciaCobradora(String digAgenciaCobradora) { + this.digAgenciaCobradora = digAgenciaCobradora; + } + + public Aceite getAceite() { + return aceite; + } + + public void setAceite(Aceite aceite) { + this.aceite = aceite; + } + + public Date getEmissao() { + return emissao; + } + + public void setEmissao(Date emissao) { + this.emissao = emissao; + } + + public Integer getCodMora() { + return codMora; + } + + public void setCodMora(Integer codMora) { + this.codMora = codMora; + } + + public Date getDataMora() { + return dataMora; + } + + public void setDataMora(Date dataMora) { + this.dataMora = dataMora; + } + + public BigDecimal getJurosDeMora() { + return jurosDeMora; + } + + public void setJurosDeMora(BigDecimal jurosDeMora) { + this.jurosDeMora = jurosDeMora; + } + + public Integer getCodigoDesconto() { + return codigoDesconto; + } + + public void setCodigoDesconto(Integer codigoDesconto) { + this.codigoDesconto = codigoDesconto; + } + + public Date getDataDesconto() { + return dataDesconto; + } + + public void setDataDesconto(Date dataDesconto) { + this.dataDesconto = dataDesconto; + } + + public BigDecimal getDescontoConcedido() { + return descontoConcedido; + } + + public void setDescontoConcedido(BigDecimal descontoConcedido) { + this.descontoConcedido = descontoConcedido; + } + + public BigDecimal getAbatimentoConcedido() { + return abatimentoConcedido; + } + + public void setAbatimentoConcedido(BigDecimal abatimentoConcedido) { + this.abatimentoConcedido = abatimentoConcedido; + } + + public String getNossoNumeroEmp() { + return nossoNumeroEmp; + } + + public void setNossoNumeroEmp(String nossoNumeroEmp) { + this.nossoNumeroEmp = nossoNumeroEmp; + } + + public Integer getCodigoProtesto() { + return codigoProtesto; + } + + public void setCodigoProtesto(Integer codigoProtesto) { + this.codigoProtesto = codigoProtesto; + } + + public Integer getDiasProtesto() { + return diasProtesto; + } + + public void setDiasProtesto(Integer diasProtesto) { + this.diasProtesto = diasProtesto; + } + + public Integer getCodigoBaixa() { + return codigoBaixa; + } + + public void setCodigoBaixa(Integer codigoBaixa) { + this.codigoBaixa = codigoBaixa; + } + + public Integer getDiasBaixa() { + return diasBaixa; + } + + public void setDiasBaixa(Integer diasBaixa) { + this.diasBaixa = diasBaixa; + } + + public Integer getNumeroContrato() { + return numeroContrato; + } + + public void setNumeroContrato(Integer numeroContrato) { + this.numeroContrato = numeroContrato; + } + + public String getUsoExclusivo() { + return usoExclusivo; + } + + public void setUsoExclusivo(String usoExclusivo) { + this.usoExclusivo = usoExclusivo; + } + + public Integer getIdBoletoFechamento() { + return idBoletoFechamento; + } + + public void setIdBoletoFechamento(Integer idBoletoFechamento) { + this.idBoletoFechamento = idBoletoFechamento; + } + + public DetalheObrigatorioDadosPagadorSicoob getDetalheObrigatorioDadosPagadorSicoob() { + return detalheObrigatorioDadosPagadorSicoob; + } + + public void setDetalheObrigatorioDadosPagadorSicoob( + DetalheObrigatorioDadosPagadorSicoob detalheObrigatorioDadosPagadorSicoob) { + this.detalheObrigatorioDadosPagadorSicoob = detalheObrigatorioDadosPagadorSicoob; + } + + @Override + public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) { + // TODO Auto-generated method stub + + } + + public BigDecimal getIofDevido() { + return iofDevido; + } + + public void setIofDevido(BigDecimal iofDevido) { + this.iofDevido = iofDevido; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java new file mode 100644 index 000000000..48fafd55b --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaLoteSicoob.java @@ -0,0 +1,33 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import java.math.BigDecimal; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaLoteSicoob extends RodapeRemessaPadrao implements RodapeRemessa { + + private Integer loteServico; + private BigDecimal valorRegistros; + + public Integer getQtdRegistros(){ + return getNumeroSequencialRegistro(); + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } + + public BigDecimal getValorRegistros() { + return valorRegistros; + } + + public void setValorRegistros(BigDecimal valorRegistros) { + this.valorRegistros = valorRegistros; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java new file mode 100644 index 000000000..36b149b20 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/blocos/sicoob/RodapeRemessaSicoob.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.blocos.sicoob; + +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao; + +public class RodapeRemessaSicoob extends RodapeRemessaPadrao implements RodapeRemessa { + + private Integer loteServico; + private Integer qtdLotes; + private Integer qtdArquivos; + private Integer qtdContas; + private RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob; + + public Integer getQtdLotes() { + return qtdLotes; + } + + public void setQtdLotes(Integer qtdLotes) { + this.qtdLotes = qtdLotes; + } + + public Integer getQtdArquivos() { + return qtdArquivos; + } + + public void setQtdArquivos(Integer qtdArquivos) { + this.qtdArquivos = qtdArquivos; + } + + public Integer getQtdContas() { + return qtdContas; + } + + public void setQtdContas(Integer qtdContas) { + this.qtdContas = qtdContas; + } + + public RodapeRemessaLoteSicoob getRodapeRemessaLoteSicoob() { + return rodapeRemessaLoteSicoob; + } + + public void setRodapeRemessaLoteSicoob(RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob) { + this.rodapeRemessaLoteSicoob = rodapeRemessaLoteSicoob; + } + + public Integer getLoteServico() { + return loteServico; + } + + public void setLoteServico(Integer loteServico) { + this.loteServico = loteServico; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/Aceite.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/Aceite.java new file mode 100644 index 000000000..66c5ac1f7 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/Aceite.java @@ -0,0 +1,17 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum Aceite { + + ACEITE("A"), + NAO_ACEITE("N"); + + private Aceite(String value){ + this.value = value; + } + + private String value; + + public String getValue() { + return value; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java new file mode 100644 index 000000000..3ba4bbd11 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/BancoLayout.java @@ -0,0 +1,112 @@ +package com.rjconsultores.ventaboletos.enuns; + +import java.util.ArrayList; +import java.util.List; + +public enum BancoLayout { + BB_240_Envio("001", "Banco do Brasil", false, "/layouts/LayoutBBCNAB240Envio.txg.xml", true), + BRADESCO_400_Envio("237", "Bradesco", false, "/layouts/LayoutBradescoCNAB400Envio.txg.xml", true), + CAIXA_400_Envio("104", "Caixa Econômica Federal", false, "/layouts/LayoutCaixaCNAB400Envio.txg.xml", true), + ITAU_400_Envio("341", "Itaú", false, "/layouts/LayoutItauCNAB400Envio.txg.xml", true), + MERCANTIL_400_Envio("389", "Mercantil", false, "/layouts/LayoutMercantilCNAB400Envio.txg.xml", true), + SANTANDER_400_Envio("033", "Santander", false, "/layouts/LayoutSantanderCNAB400Envio.txg.xml", true), + SAFRA_400_Envio("422", "Safra", false, "/layouts/LayoutSafraCNAB400Envio.txg.xml", true), + SICOOB_240_Envio("756", "Sicoob", false, "/layouts/LayoutSicoobCNAB240Envio.txg.xml", true), + + + SANTANDER_400_Retorno("033", true, "/layouts/LayoutSantanderCNAB400Retorno.txg.xml"), + BRADESCO_400_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"), + ITAU_400_Retorno("341", true, ""), + BB_240_Retorno("001", true, ""), + SAFRA_400_Retorno("422", true, "/layouts/LayoutSafraCNAB400Retorno.txg.xml") + + ; + + private BancoLayout(String codBanco, boolean retorno, String path) { + this.codBanco = codBanco; + this.retorno = retorno; + this.descricao = ""; + this.path = path; + this.suportado = false; + } + + private BancoLayout(String codBanco, String descricao, boolean retorno, String path, boolean suportado) { + this.codBanco = codBanco; + this.retorno = retorno; + this.descricao = descricao; + this.path = path; + this.suportado = suportado; + } + + private String codBanco; + private boolean retorno; + private String path; + private String descricao; + private boolean suportado; + + public String getCodBanco() { + return codBanco; + } + + public boolean isRetorno() { + return retorno; + } + + public String getPath() { + return path; + } + + public String getTemp() { + return path.substring(path.lastIndexOf("/")); + } + + public String getDescricao() { + return descricao; + } + + public boolean isSuportado() { + return suportado; + } + + public static BancoLayout getInstanceByCodBanco(String codBanco){ + + for(BancoLayout o : BancoLayout.values()){ + + if(o.getCodBanco().equals(codBanco) && !o.isRetorno()){ + return o; + } + } + + return null; + } + + public static List getSuportados(){ + List bancosSuportados = new ArrayList<>(); + + for(BancoLayout o : BancoLayout.values()){ + if(o.isSuportado()){ + bancosSuportados.add(o.getDescricao()); + } + } + + return bancosSuportados; + } + + public static String getCodigo(String descricao){ + for(BancoLayout banco :BancoLayout.values()){ + if(banco.descricao.equals(descricao)){ + return banco.codBanco; + } + } + return null; + } + + public static String getDescricao(String codigo){ + for(BancoLayout banco :BancoLayout.values()){ + if(banco.codBanco.equals(codigo)){ + return banco.descricao; + } + } + return null; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java new file mode 100644 index 000000000..2dda5d7d5 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSantander.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum CarteiraSantander { + + ELETRONICA_REGISTRO(1,"ELETRONICA COM REGISTRO"), + CAUCIONADA_ELETRONICA(3,"CAUCIONADA ELETRONICA"), + COBRANCA_SEM_REGISTRO(4,"COBRANCA SEM REGISTRO"), + RAPIDA_COM_REGISTRO(5,"RAPIDA COM REGISTRO"), //(BLOQUETE EMITIDO PELO CLIENTE) + CAUCIONADA_RAPIDA(6,"CAUCIONADA RAPIDA"), + DESCONTADA_ELETRONICA(7,"DESCONTADA ELETRONICA"); + + private CarteiraSantander(Integer id, String label){ + this.id = id; + this.label = label; + } + + private Integer id; + private String label; + + public Integer getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static CarteiraSantander getInstance(String id){ + + for(CarteiraSantander o : CarteiraSantander.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java new file mode 100644 index 000000000..9882e7281 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/CarteiraSicoob.java @@ -0,0 +1,41 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum CarteiraSicoob { + + ELETRONICA_REGISTRO(1,"ELETRONICA COM REGISTRO"), + CAUCIONADA_ELETRONICA(3,"CAUCIONADA ELETRONICA"), + COBRANCA_SEM_REGISTRO(4,"COBRANCA SEM REGISTRO"), + RAPIDA_COM_REGISTRO(5,"RAPIDA COM REGISTRO"), //(BLOQUETE EMITIDO PELO CLIENTE) + CAUCIONADA_RAPIDA(6,"CAUCIONADA RAPIDA"), + DESCONTADA_ELETRONICA(7,"DESCONTADA ELETRONICA"); + + private CarteiraSicoob(Integer id, String label){ + this.id = id; + this.label = label; + } + + private Integer id; + private String label; + + public Integer getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static CarteiraSicoob getInstance(String id){ + + for(CarteiraSicoob o : CarteiraSicoob.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java new file mode 100644 index 000000000..f5da0c7a0 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaBradesco.java @@ -0,0 +1,333 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum MotivoOcorrenciaBradesco { + + //ocorrência = 02 + EntConf_00("Ocorrência aceita"), + EntConf_01("Código do Banco inválido"), + EntConf_04("Código do movimento não permitido para a carteira"), + EntConf_15("Características da cobrança incompatíveis"), + EntConf_17("Data de vencimento anterior a data de emissão"), + EntConf_21("Espécie do Título inválido"), + EntConf_24("Data da emissão inválida"), + EntConf_27("Valor/taxa de juros mora inválido"), + EntConf_38("Prazo para protesto/ Negativação inválido"), + EntConf_39("Pedido para protesto/ Negativação não permitido para o título"), + EntConf_43("Prazo para baixa e devolução inválido"), + EntConf_45("Nome do Pagador inválido"), + EntConf_46("Tipo/num. de inscrição do Pagador inválidos"), + EntConf_47("Endereço do Pagador não informado"), + EntConf_48("CEP Inválido"), + EntConf_50("CEP referente a Banco correspondente"), + EntConf_53("Nº de inscrição do Pagador/avalista inválidos (CPF/CNPJ)"), + EntConf_54("Pagadorr/avalista não informado"), + EntConf_67("Débito automático agendado"), + EntConf_68("Débito não agendado - erro nos dados de remessa"), + EntConf_69("Débito não agendado - Pagador não consta no cadastro de autorizante"), + EntConf_70("Débito não agendado - Beneficiário não autorizado pelo Pagador"), + EntConf_71("Débito não agendado - Beneficiário não participa da modalidade de déb.automático"), + EntConf_72("Débito não agendado - Código de moeda diferente de R$"), + EntConf_73("Débito não agendado - Data de vencimento inválida/vencida"), + EntConf_75("Débito não agendado - Tipo do número de inscrição do pagador debitado inválido"), + EntConf_76("Pagador Eletrônico DDA - Esse motivo somente será disponibilizado no arquivo retorno para as empresas cadastradas nessa condição"), + EntConf_86("Seu número do documento inválido"), + EntConf_89("Email Pagador não enviado - título com débito automático"), + EntConf_90("Email pagador não enviado - título de cobrança sem registro"), + + //ocorrência = 03 + EntReje_02("Código do registro detalhe inválido"), + EntReje_03("Código da ocorrência inválida"), + EntReje_04("Código de ocorrência não permitida para a carteira"), + EntReje_05("Código de ocorrência não numérico"), + EntReje_07("Agência/conta/Digito - |Inválido"), + EntReje_08("Nosso número inválido"), + EntReje_09("Nosso número duplicado"), + EntReje_10("Carteira inválida"), + EntReje_13("Identificaçãoo da emissão do bloqueto inválida"), + EntReje_16("Data de vencimento inválida"), + EntReje_18("Vencimento fora do prazo de operação"), + EntReje_20("Valor do Título inválido"), + EntReje_21("Espécie do Título inválida"), + EntReje_22("Espécie não permitida para a carteira"), + EntReje_24("Data de emissão inválida"), + EntReje_28("Código do desconto inválido"), + EntReje_38("Prazo para protesto/ Negativação inválido"), + EntReje_44("Agência Beneficiário não prevista"), + EntReje_45("Nome do pagador não informado"), + EntReje_46("Tipo/número de inscrição do pagador inválidos"), + EntReje_47("Endereço do pagador não informado"), + EntReje_48("CEP Inválido"), + EntReje_50("CEP irregular - Banco Correspondente"), + EntReje_63("Entrada para Título já cadastrado"), + EntReje_65("Limite excedido"), + EntReje_66("Número autorização inexistente"), + EntReje_68("Débito não agendado - erro nos dados de remessa"), + EntReje_69("Débito não agendado - Pagador não consta no cadastro de autorizante"), + EntReje_70("Débito não agendado - Beneficiário não autorizado pelo Pagador"), + EntReje_71("Débito não agendado - Beneficiário não participa do Débito Automático"), + EntReje_72("Débito não agendado - Código de moeda diferente de R$"), + EntReje_73("Débito não agendado - Data de vencimento inválida"), + EntReje_74("Débito não agendado - Conforme seu pedido, Título não registrado"), + EntReje_75("Débito não agendado - Tipo de número de inscrição do debitado inválido"), + + //ocorrência = 06 + Liquida_00("Título pago com dinheiro"), + Liquida_15("Título pago com cheque"), + Liquida_18("Pagamento Parcial"), + Liquida_42("Rateio não efetuado"), + + //ocorrência = 09 + BaixAut_00("Ocorrência Aceita"), + BaixAut_10("Baixa Comandada pelo cliente"), + + //ocorrência = 10 + BaixBan_00("Baixado Conforme Instruções da Agência"), + BaixBan_14("Título Protestado"), + BaixBan_15("Título excluído"), + BaixBan_16("Título Baixado pelo Banco por decurso Prazo"), + BaixBan_17("Titulo Baixado Transferido Carteira"), + BaixBan_20("Titulo Baixado e Transferido para Desconto"), + + //ocorrência = 15 e 17 + LiquC_B_00("Título pago com dinheiro"), + LiquC_B_15("Título pago com cheque"), + + //ocorrência = 24 + CEPIrre_48("CEP inválido"), + + //ocorrência = 27 + BaixRej_04("Código de ocorrência não permitido para a carteira"), + BaixRej_07("Agência/Conta/dígito inválidos"), + BaixRej_08("Nosso número inválido"), + BaixRej_10("Carteira inválida"), + BaixRej_15("Carteira/Agência/Conta/nosso número inválidos"), + BaixRej_40("Título com ordem de protesto emitido"), + BaixRej_42("Código para baixa/devolução via Tele Bradesco inválido"), + BaixRej_60("Movimento para Título não cadastrado"), + BaixRej_77("Transferência para desconto não permitido para a carteira"), + BaixRej_85("Título com pagamento vinculado"), + + //ocorrência = 28 + DebTari_02("Tarifa de permanência título cadastrado"), + DebTari_03("Tarifa de sustação/Excl Negativação"), + DebTari_04("Tarifa de protesto/Incl Negativação"), + DebTari_05("Tarifa de outras instruções"), + DebTari_06("Tarifa de outras ocorrências"), + DebTari_08("Custas de protesto"), + DebTari_12("Tarifa de registro"), + DebTari_13("Tarifa título pago no Bradesco"), + DebTari_14("Tarifa título pago compensação"), + DebTari_15("Tarifa título baixado não pago"), + DebTari_16("Tarifa alteração de vencimento"), + DebTari_17("Tarifa concessão abatimento"), + DebTari_18("Tarifa cancelamento de abatimento"), + DebTari_19("Tarifa concessão desconto"), + DebTari_20("Tarifa cancelamento desconto"), + DebTari_21("Tarifa título pago cics"), + DebTari_22("Tarifa título pago Internet"), + DebTari_23("Tarifa título pago term. gerencial serviços"), + DebTari_24("Tarifa título pago Pág-Contas"), + DebTari_25("Tarifa título pago Fone Fácil"), + DebTari_26("Tarifa título Déb. Postagem"), + DebTari_27("Tarifa impressão de títulos pendentes"), + DebTari_28("Tarifa título pago BDN"), + DebTari_29("Tarifa título pago Term. Multi Função"), + DebTari_30("Impressão de títulos baixados"), + DebTari_31("Impressão de títulos pagos"), + DebTari_32("Tarifa título pago Pagfor"), + DebTari_33("Tarifa reg/pgto - guichê caixa"), + DebTari_34("Tarifa título pago retaguarda"), + DebTari_35("Tarifa título pago Subcentro"), + DebTari_36("Tarifa título pago Cartão de Crédito"), + DebTari_37("Tarifa título pago Comp Eletrônica"), + DebTari_38("Tarifa título Baix. Pg. Cartório"), + DebTari_39("Tarifa título baixado acerto BCO"), + DebTari_40("Baixa registro em duplicidade"), + DebTari_41("Tarifa título baixado decurso prazo"), + DebTari_42("Tarifa título baixado Judicialmente"), + DebTari_43("Tarifa título baixado via remessa"), + DebTari_44("Tarifa título baixado rastreamento"), + DebTari_45("Tarifa título baixado conf. Pedido"), + DebTari_46("Tarifa título baixado protestado"), + DebTari_47("Tarifa título baixado p/ devolução"), + DebTari_48("Tarifa título baixado franco pagto"), + DebTari_49("Tarifa título baixado SUST/RET/CARTÓRIO"), + DebTari_50("Tarifa título baixado SUS/SEM/REM/CARTÓRIO"), + DebTari_51("Tarifa título transferido desconto"), + DebTari_52("Cobrado baixa manual"), + DebTari_53("Baixa por acerto cliente"), + DebTari_54("Tarifa baixa por contabilidade"), + DebTari_55("Tr. tentativa cons deb aut"), + DebTari_56("Tr. credito online"), + DebTari_57("Tarifa reg/pagto Bradesco Expresso"), + DebTari_58("Tarifa emissão Papeleta"), + DebTari_59("Tarifa fornec papeleta semi preenchida"), + DebTari_60("Acondicionador de papeletas (RPB)S"), + DebTari_61("Acond. De papelatas (RPB)s PERSONAL"), + DebTari_62("Papeleta formulário branco"), + DebTari_63("Formulário A4 serrilhado"), + DebTari_64("Fornecimento de softwares transmiss"), + DebTari_65("Fornecimento de softwares consulta"), + DebTari_66("Fornecimento Micro Completo"), + DebTari_67("Fornecimento MODEN"), + DebTari_68("Fornecimento de máquina FAX"), + DebTari_69("Fornecimento de máquinas óticas"), + DebTari_70("Fornecimento de Impressoras"), + DebTari_71("Reativação de título"), + DebTari_72("Alteração de produto negociado"), + DebTari_73("Tarifa emissão de contra recibo"), + DebTari_74("Tarifa emissão 2ª via papeleta"), + DebTari_75("Tarifa regravação arquivo retorno"), + DebTari_76("Arq. Títulos a vencer mensal"), + DebTari_77("Listagem auxiliar de crédito"), + DebTari_78("Tarifa cadastro cartela instrução permanente"), + DebTari_79("Canalização de Crédito"), + DebTari_80("Cadastro de Mensagem Fixa"), + DebTari_81("Tarifa reapresentação automática título"), + DebTari_82("Tarifa registro título déb. Automático"), + DebTari_83("Tarifa Rateio de Crédito"), + DebTari_84("Emissão papeleta sem valor"), + DebTari_85("Sem uso"), + DebTari_86("Cadastro de reembolso de diferença"), + DebTari_87("Relatório fluxo de pagto"), + DebTari_88("Emissão Extrato mov. Carteira"), + DebTari_89("Mensagem campo local de pagto"), + DebTari_90("Cadastro Concessionária serv. Publ."), + DebTari_91("Classif. Extrato Conta Corrente"), + DebTari_92("Contabilidade especial"), + DebTari_93("Realimentação pagto"), + DebTari_94("Repasse de Créditos"), + DebTari_96("Tarifa reg. Pagto outras mídias"), + DebTari_97("Tarifa Reg/Pagto - Net Empresa"), + DebTari_98("Tarifa título pago vencido"), + DebTari_99("TR Tít. Baixado por decurso prazo"), + DebTari_100("Arquivo Retorno Antecipado"), + DebTari_101("Arq retorno Hora/Hora"), + DebTari_102("TR. Agendamento Déb Aut"), + DebTari_105("TR. Agendamento rat. Crédito"), + DebTari_106("TR Emissão aviso rateio"), + DebTari_107("Extrato de protesto"), + + //ocorrência = 29 + OcorPag_78("Pagador alega que faturamento e indevido"), + OcorPag_95("Pagador aceita/reconhece o faturamento"), + + //ocorrência = 30 + AltDado_01("Código do Banco inválido"), + AltDado_04("Código de ocorrência não permitido para a carteira"), + AltDado_05("Código da ocorrência não numérico"), + AltDado_08("Nosso número inválido"), + AltDado_15("Característica da cobrança incompatível"), + AltDado_16("Data de vencimento inválido"), + AltDado_17("Data de vencimento anterior a data de emissão"), + AltDado_18("Vencimento fora do prazo de operação"), + AltDado_24("Data de emissão Inválida"), + AltDado_26("Código de juros de mora inválido"), + AltDado_27("Valor/taxa de juros de mora inválido"), + AltDado_28("Código de desconto inválido"), + AltDado_29("Valor do desconto maior/igual ao valor do Título"), + AltDado_30("Desconto a conceder não confere"), + AltDado_31("Concessão de desconto já existente"), + AltDado_32("Valor do IOF inválido"), + AltDado_33("Valor do abatimento inválido"), + AltDado_34("Valor do abatimento maior/igual ao valor do Título"), + AltDado_38("Prazo para protesto/ Negativação inválido"), + AltDado_39("Pedido para protesto/ Negativação não permitido para o título"), + AltDado_40("Título com ordem/pedido de protesto/Negativação emitido"), + AltDado_42("Código para baixa/devolução inválido"), + AltDado_46("Tipo/número de inscrição do pagador inválidos"), + AltDado_48("Cep Inválido"), + AltDado_53("Tipo/Número de inscrição do pagador/avalista inválidos"), + AltDado_54("Pagadorr/avalista não informado"), + AltDado_57("Código da multa inválido"), + AltDado_58("Data da multa inválida"), + AltDado_60("Movimento para Título não cadastrado"), + AltDado_79("Data de Juros de mora Inválida"), + AltDado_80("Data do desconto inválida"), + AltDado_85("Título com Pagamento Vinculado"), + AltDado_88("E-mail Pagador não lido no prazo 5 dias"), + AltDado_91("E-mail pagador não recebido"), + + //ocorrência = 32 + InstRej_01("Código do Banco inválido"), + InstRej_02("Código do registro detalhe inválido"), + InstRej_04("Código de ocorrência não permitido para a carteira"), + InstRej_05("Código de ocorrência não numérico"), + InstRej_07("Agência/Conta/dígito inválidos"), + InstRej_08("Nosso número inválido"), + InstRej_10("Carteira inválida"), + InstRej_15("Características da cobrança incompatíveis"), + InstRej_16("Data de vencimento inválida"), + InstRej_17("Data de vencimento anterior a data de emissão"), + InstRej_18("Vencimento fora do prazo de operação"), + InstRej_20("Valor do título inválido"), + InstRej_21("Espécie do Título inválida"), + InstRej_22("Espécie não permitida para a carteira"), + InstRej_24("Data de emissão inválida"), + InstRej_28("Código de desconto via Telebradesco inválido"), + InstRej_29("Valor do desconto maior/igual ao valor do Título "), + InstRej_30("Desconto a conceder não confere"), + InstRej_31("Concessão de desconto - Já existe desconto anterior"), + InstRej_33("Valor do abatimento inválido"), + InstRej_34("Valor do abatimento maior/igual ao valor do Título"), + InstRej_36("Concessão abatimento - Já existe abatimento anterior"), + InstRej_38("Prazo para protesto/ Negativação inválido"), + InstRej_39("Pedido para protesto/ Negativação não permitido para o título"), + InstRej_40("Título com ordem/pedido de protesto/Negativação emitido"), + InstRej_41("Pedido de sustação/excl p/ Título sem instrução de protesto/Negativação"), + InstRej_42("Código para baixa/devolução inválido"), + InstRej_45("Nome do Pagador não informado"), + InstRej_46("Tipo/número de inscrição do Pagador inválidos"), + InstRej_47("Endereço do Pagador não informado"), + InstRej_48("CEP Inválido"), + InstRej_50("CEP referente a um Banco correspondente"), + InstRej_53("Tipo de inscrição do pagador avalista inválidos"), + InstRej_60("Movimento para Título não cadastrado"), + InstRej_85("Título com pagamento vinculado"), + InstRej_86("Seu número inválido"), + InstRej_94("Título Penhorado - Instrução não Liberada pela Agência"), + InstRej_97("Instrução não permitida título negativado"), + InstRej_98("Inclusão Bloqueada face a determinação Judicial"), + InstRej_99("Telefone beneficiário não informado / inconsistente"), + + //ocorrência = 35 + DesDedA_81("Tentativas esgotadas, baixado"), + DesDedA_82("Tentativas esgotadas, pendente"), + DesDedA_83("Cancelado pelo Pagador e Mantido Pendente, conforme negociação"), + DesDedA_84("Cancelado pelo pagador e baixado, conforme negociação"); + + + private MotivoOcorrenciaBradesco (String motivo){ + this.motivo = motivo; + } + + private String motivo; + + public String getMotivo() { + return motivo; + } + + public String getLabelMotivo(){ + return this.name().substring(0, 7); + } + + public String getCodMotivo(){ + return this.name().substring(8); + } + + public static MotivoOcorrenciaBradesco getInstance(OcorrenciaBradesco o, String codMotivo){ + + String label = o.name() + "_" + codMotivo; + + for(MotivoOcorrenciaBradesco mo : MotivoOcorrenciaBradesco.values()){ + + if(mo.name().equals(label)){ + return mo; + } + + } + + return null; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java new file mode 100644 index 000000000..a3533a8fd --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/MotivoOcorrenciaItau.java @@ -0,0 +1,152 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum MotivoOcorrenciaItau { + + Ocorrencia02_01("", "CEP SEM ATENDIMENTO DE PROTESTO NO MOMENTO"), + Ocorrencia02_02("", "ESTADO COM DETERMINAÇÃO LEGAL QUE IMPEDE A INSCRIÇÃO DE INADIMPLENTES NOS CADASTROS DE PROTEÇÃO AO CRÉDITO NO PRAZO SOLICITADO - PRAZO SUPERIOR AO SOLICITADO"), + Ocorrencia02_03("", "BOLETO NÃO LIQUIDADO NO DESCONTO DE DUPLICATAS E TRANSFERIDO PARA COBRANÇA SIMPLES"), + + Ocorrencia03_03("AG. COBRADORA", "CEP SEM ATENDIMENTO DE PROTESTO NO MOMENTO"), + Ocorrencia03_04("ESTADO", "SIGLA DO ESTADO INVÁLIDA 05 DATA VENCIMENTO PRAZO DA OPERAÇÃO MENOR QUE PRAZO MÍNIMO OU MAIOR QUE O MÁXIMO"), + Ocorrencia03_07("VALOR DO TÍTULO", "VALOR DO TÍTULO MAIOR QUE 10.000.000,00"), + Ocorrencia03_08("NOME DO PAGADOR", "NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_09("AGENCIA/CONTA", "AGÊNCIA ENCERRADA"), + Ocorrencia03_10("LOGRADOURO", "NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_11("CEP", "CEP NÃO NUMÉRICO OU CEP INVÁLIDO"), + Ocorrencia03_12("SACADOR / AVALISTA", "NOME NÃO INFORMADO OU DESLOCADO"), + Ocorrencia03_13("ESTADO/CEP", "CEP INCOMPATÍVEL COM A SIGLA DO ESTADO"), + Ocorrencia03_14("NOSSO NÚMERO", "NOSSO NÚMERO JÁ REGISTRADO NO CADASTRO DO BANCO OU FORA DA FAIXA"), + Ocorrencia03_15("NOSSO NÚMERO", "NOSSO NÚMERO EM DUPLICIDADE NO MESMO MOVIMENTO"), + Ocorrencia03_18("DATA DE ENTRADA", "DATA DE ENTRADA INVÁLIDA PARA OPERAR COM ESTA CARTEIRA"), + Ocorrencia03_19("OCORRÊNCIA", "OCORRÊNCIA INVÁLIDA"), + Ocorrencia03_21("AG. COBRADORA", "CARTEIRA NÃO ACEITA DEPOSITÁRIA CORRESPONDENTE ESTADO DA AGÊNCIA DIFERENTE DO ESTADO DO PAGADOR AG. COBRADORA NÃO CONSTA NO CADASTRO OU ENCERRANDO"), + Ocorrencia03_22("CARTEIRA", "CARTEIRA NÃO PERMITIDA"), + Ocorrencia03_26("AGÊNCIA/CONTA", "AGÊNCIA/CONTA NÃO LIBERADA PARA OPERAR COM COBRANÇA"), + Ocorrencia03_27("CNPJ INAPTO", "CNPJ DO BENEFICIÁRIO INAPTO - DEVOLUÇÃO DE TÍTULO EM GARANTIA"), + Ocorrencia03_29("CÓDIGO EMPRESA", "CATEGORIA DA CONTA INVÁLIDA"), + Ocorrencia03_30("ENTRADA BLOQUEADA", "ENTRADAS BLOQUEADAS, CONTA SUSPENSA EM COBRANÇA"), + Ocorrencia03_31("AGÊNCIA/CONTA", "CONTA NÃO TEM PERMISSÃO PARA PROTESTAR"), + Ocorrencia03_35("VALOR DO IOF", "IOF MAIOR QUE 5%"), + Ocorrencia03_36("QTDADE DE MOEDA", "QUANTIDADE DE MOEDA INCOMPATÍVEL COM VALOR DO TÍTULO"), + Ocorrencia03_37("CNPJ/CPF DO PAGADOR", "NÃO NUMÉRICO OU IGUAL A ZEROS"), + Ocorrencia03_42("NOSSO NÚMERO", "NOSSO NÚMERO FORA DE FAIXA"), + Ocorrencia03_52("AG. COBRADORA", "EMPRESA NÃO ACEITA BANCO CORRESPONDENTE"), + Ocorrencia03_53("AG. COBRADORA", "EMPRESA NÃO ACEITA BANCO CORRESPONDENTE - COBRANÇA MENSAGEM"), + Ocorrencia03_54("DATA DE VENCTO", "BANCO CORRESPONDENTE - TÍTULO COM VENCIMENTO INFERIOR A 15 DIAS"), + Ocorrencia03_55("DEP/BCO CORRESP", "CEP NÃO PERTENCE À DEPOSITÁRIA INFORMADA"), + Ocorrencia03_56("DT VENCTO/BCO CORRESP", "VENCTO SUPERIOR A 180 DIAS DA DATA DE ENTRADA"), + Ocorrencia03_57("DATA DE VENCTO", "CEP SÓ DEPOSITÁRIA BCO DO BRASIL COM VENCTO INFERIOR A 8 DIAS"), + Ocorrencia03_60("ABATIMENTO", "VALOR DO ABATIMENTO INVÁLIDO"), + Ocorrencia03_61("JUROS DE MORA", "JUROS DE MORA MAIOR QUE O PERMITIDO"), + Ocorrencia03_62("DESCONTO", "VALOR DO DESCONTO MAIOR QUE VALOR DO TÍTULO"), + Ocorrencia03_63("DESCONTO DE ANTECIPAÇÃO", "VALOR DA IMPORTÂNCIA POR DIA DE DESCONTO (IDD) NÃO PERMITIDO"), + Ocorrencia03_64("DATA DE EMISSÃO", "DATA DE EMISSÃO DO TÍTULO INVÁLIDA"), + Ocorrencia03_65("TAXA FINANCTO", "TAXA INVÁLIDA"), + Ocorrencia03_66("DATA DE VENCTO", "INVALIDA/FORA DE PRAZO DE OPERAÇÃO"), + Ocorrencia03_67("VALOR/QTIDADE", " VALOR DO TÍTULO/QUANTIDADE DE MOEDA INVÁLIDO"), + Ocorrencia03_68("CARTEIRA,CARTEIRA", "INVÁLIDA OU NÃO CADASTRADA NO INTERCÂMBIO DA COBRANÇA"), + Ocorrencia03_69("CARTEIRA CARTEIRA", "INVÁLIDA PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_70("AGÊNCIA/CONTA", "BENEFICIÁRIO NÃO CADASTRADO PARA FAZER RATEIO DE CRÉDITO"), + Ocorrencia03_78("AGÊNCIA/CONTA", "DUPLICIDADE DE AGÊNCIA/CONTA BENEFICIÁRIA DO RATEIO DE CRÉDITO"), + Ocorrencia03_80("AGÊNCIA/CONTA", "QUANTIDADE DE CONTAS BENEFICIÁRIAS DO RATEIO MAIOR DO QUE O PERMITIDO"), + Ocorrencia03_81("AGÊNCIA/CONTA", "CONTA PARA RATEIO DE CRÉDITO INVÁLIDA / NÃO PERTENCE AO ITAÚ"), + Ocorrencia03_82("DESCONTO/ABATI-MENTO", "DESCONTO/ABATIMENTO NÃO PERMITIDO PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_83("VALOR DO TÍTULO", "VALOR DO TÍTULO MENOR QUE A SOMA DOS VALORES ESTIPULADOS PARA RATEIO"), + Ocorrencia03_84("AGÊNCIA/CONTA", "AGÊNCIA/CONTA BENEFICIÁRIA DO RATEIO É A CENTRALIZADORA DE CRÉDITO DO BENEFICIÁRIO"), + Ocorrencia03_85("AGÊNCIA/CONTA", "AGÊNCIA/CONTA DO BENEFICIÁRIO É CONTRATUAL / RATEIO DE CRÉDITO NÃO PERMITIDO"), + Ocorrencia03_86("TIPO DE VALOR", "CÓDIGO DO TIPO DE VALOR INVÁLIDO / NÃO PREVISTO PARA TÍTULOS COM RATEIO DE CRÉDITO"), + Ocorrencia03_87("AGÊNCIA/CONTA", "REGISTRO TIPO 4 SEM INFORMAÇÃO DE AGÊNCIAS/CONTAS BENEFICIÁRIAS DO RATEIO"), + Ocorrencia03_90("NRO DA LINHA", "COBRANÇA MENSAGEM - NÚMERO DA LINHA DA MENSAGEM INVÁLIDO OU QUANTIDADE DE LINHAS EXCEDIDAS"), + Ocorrencia03_97("SEM MENSAGEM", "COBRANÇA MENSAGEM SEM MENSAGEM (SÓ DE CAMPOS FIXOS), PORÉM COM REGISTRO DO TIPO 7 OU 8"), + Ocorrencia03_98("FLASH INVÁLIDO", "REGISTRO MENSAGEM SEM FLASH CADASTRADO OU FLASH INFORMADO DIFERENTE DO CADASTRADO"), + Ocorrencia03_99("FLASH INVÁLIDO", "CONTA DE COBRANÇA COM FLASH CADASTRADO E SEM REGISTRO DE MENSAGEM CORRESPONDENTE"), + + Ocorrencia15_01("", "CARTEIRA/Nº NÚMERO NÃO NUMÉRICO"), + Ocorrencia15_04("", "NOSSO NÚMERO EM DUPLICIDADE NO MESMO MOVIMENTO"), + Ocorrencia15_05("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO JÁ BAIXADO OU LIQUIDADO"), + Ocorrencia15_06("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia15_07("", "COBRANÇA PRAZO CURTO - SOLICITAÇÃO DE BAIXA P/ TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia15_08("", "SOLICITAÇÃO DE BAIXA PARA TÍTULO EM FLOATING"), + Ocorrencia15_10("", "VALOR DO TITULO FAZ PARTE DE GARANTIA DE EMPRESTIMO"), + Ocorrencia15_11("", "PAGO ATRAVÉS DO SISPAG POR CRÉDITO EM C/C E NÃO BAIXADO"), + + Ocorrencia16_01("", "INSTRUÇÃO/OCORRÊNCIA NÃO EXISTENTE"), + Ocorrencia16_03("", "CONTA NÃO TEM PERMISSÃO PARA PROTESTAR (CONTATE SEU GERENTE)"), + Ocorrencia16_06("", "NOSSO NÚMERO IGUAL A ZEROS"), + Ocorrencia16_09("", "CNPJ/CPF DO SACADOR/AVALISTA INVÁLIDO"), + Ocorrencia16_10("", "VALOR DO ABATIMENTO IGUAL OU MAIOR QUE O VALOR DO TÍTULO"), + Ocorrencia16_11("", "SEGUNDA INSTRUÇÃO/OCORRÊNCIA NÃO EXISTENTE"), + Ocorrencia16_14("", "REGISTRO EM DUPLICIDADE"), + Ocorrencia16_15("", "CNPJ/CPF INFORMADO SEM NOME DO SACADOR/AVALISTA"), + Ocorrencia16_19("", "VALOR DO ABATIMENTO MAIOR QUE 90% DO VALOR DO TÍTULO"), + Ocorrencia16_20("", "EXISTE SUSTACAO DE PROTESTO PENDENTE PARA O TITULO"), + Ocorrencia16_21("", "TÍTULO NÃO REGISTRADO NO SISTEMA"), + Ocorrencia16_22("", "TÍTULO BAIXADO OU LIQUIDADO"), + Ocorrencia16_23("", "INSTRUÇÃO NÃO ACEITA"), + Ocorrencia16_24("", "INSTRUÇÃO INCOMPATÍVEL - EXISTE INSTRUÇÃO DE PROTESTO PARA O TÍTULO"), + Ocorrencia16_25("", "INSTRUÇÃO INCOMPATÍVEL - NÃO EXISTE INSTRUÇÃO DE PROTESTO PARA O TÍTULO"), + Ocorrencia16_26("", "INSTRUÇÃO NÃO ACEITA POR JÁ TER SIDO EMITIDA A ORDEM DE PROTESTO AO CARTÓRIO"), + Ocorrencia16_27("", "INSTRUÇÃO NÃO ACEITA POR NÃO TER SIDO EMITIDA A ORDEM DE PROTESTO AO CARTÓRIO"), + Ocorrencia16_28("", "JÁ EXISTE UMA MESMA INSTRUÇÃO CADASTRADA ANTERIORMENTE PARA O TÍTULO"), + Ocorrencia16_29("", "VALOR LÍQUIDO + VALOR DO ABATIMENTO DIFERENTE DO VALOR DO TÍTULO REGISTRADO"), + Ocorrencia16_30("", "EXISTE UMA INSTRUÇÃO DE NÃO PROTESTAR ATIVA PARA O TÍTULO"), + Ocorrencia16_31("", "EXISTE UMA OCORRÊNCIA DO PAGADOR QUE BLOQUEIA A INSTRUÇÃO"), + Ocorrencia16_32("", "DEPOSITÁRIA DO TÍTULO = 9999 OU CARTEIRA NÃO ACEITA PROTESTO"), + Ocorrencia16_33("", "ALTERAÇÃO DE VENCIMENTO IGUAL À REGISTRADA NO SISTEMA OU QUE TORNA O TÍTULO VENCIDO"), + Ocorrencia16_34("", "INSTRUÇÃO DE EMISSÃO DE AVISO DE COBRANÇA PARA TÍTULO VENCIDO ANTES DO VENCIMENTO"), + Ocorrencia16_35("", "SOLICITAÇÃO DE CANCELAMENTO DE INSTRUÇÃO INEXISTENTE"), + Ocorrencia16_36("", "TÍTULO SOFRENDO ALTERAÇÃO DE CONTROLE (AGÊNCIA/CONTA/CARTEIRA/NOSSO NÚMERO)"), + Ocorrencia16_37("", "INSTRUÇÃO NÃO PERMITIDA PARA A CARTEIRA"), + Ocorrencia16_38("", "INSTRUÇÃO NÃO PERMITIDA PARA TÍTULO COM RATEIO DE CRÉDITO"), + Ocorrencia16_40("", "INSTRUÇÃO INCOMPATÍVEL - NÃO EXISTE INSTRUÇÃO DE NEGATIVAÇÃO EXPRESSA PARA O TÍTULO"), + Ocorrencia16_41("", "INSTRUÇÃO NÃO PERMITIDA - TÍTULO COM ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia16_42("", "INSTRUÇÃO NÃO PERMITIDA - TÍTULO COM NEGATIVAÇÃO EXPRESSA CONCLUÍDA"), + Ocorrencia16_43("", "PRAZO INVÁLIDO PARA NEGATIVAÇÃO EXPRESSA É MÍNIMO: 02 DIAS CORRIDOS APÓS O VENCIMENTO"), + Ocorrencia16_45("", "INSTRUÇÃO INCOMPATÍVEL PARA O MESMO TÍTULO NESTA DATA"), + Ocorrencia16_47("", "INSTRUÇÃO NÃO PERMITIDA - ESPÉCIE INVÁLIDA 48 DADOS DO PAGADOR INVÁLIDOS ( CPF / CNPJ / NOME )"), + Ocorrencia16_49("", "DADOS DO ENDEREÇO DO PAGADOR INVÁLIDOS 50 DATA DE EMISSÃO DO TÍTULO INVÁLIDA"), + Ocorrencia16_51("", "INSTRUÇÃO NÃO PERMITIDA - TÍTULO COM NEGATIVAÇÃO EXPRESSA AGENDADA"), + + Ocorrencia17_02("", "AGÊNCIA COBRADORA INVÁLIDA OU COM O MESMO CONTEÚDO"), + Ocorrencia17_04("", "SIGLA DO ESTADO INVÁLIDA"), + Ocorrencia17_05("", "DATA DE VENCIMENTO INVÁLIDA OU COM O MESMO CONTEÚDO"), + Ocorrencia17_06("", "VALOR DO TÍTULO COM OUTRA ALTERAÇÃO SIMULTÂNEA"), + Ocorrencia17_08("", "NOME DO PAGADOR COM O MESMO CONTEÚDO"), + Ocorrencia17_09("", "AGÊNCIA/CONTA INCORRETA"), + Ocorrencia17_11("", "CEP INVÁLIDO"), + Ocorrencia17_12("", "NÚMERO INSCRIÇÃO INVÁLIDO DO SACADOR AVALISTA"), + Ocorrencia17_13("", "SEU NÚMERO COM O MESMO CONTEÚDO"), + Ocorrencia17_16("", "ABATIMENTO/ALTERAÇÃO DO VALOR DO TÍTULO OU SOLICITAÇÃO DE BAIXA BLOQUEADA"), + Ocorrencia17_20("", "ESPÉCIE INVÁLIDA"), + Ocorrencia17_21("", "AGÊNCIA COBRADORA NÃO CONSTA NO CADASTRO DE DEPOSITÁRIA OU EM ENCERRAMENTO"), + Ocorrencia17_23("", "DATA DE EMISSÃO DO TÍTULO INVÁLIDA OU COM MESMO CONTEÚDO"), + Ocorrencia17_41("", "CAMPO ACEITE INVÁLIDO OU COM MESMO CONTEÚDO"), + Ocorrencia17_42("", "ALTERAÇÃO INVÁLIDA PARA TÍTULO VENCIDO"), + Ocorrencia17_43("", "ALTERAÇÃO BLOQUEADA - VENCIMENTO JÁ ALTERADO"), + Ocorrencia17_53("", "INSTRUÇÃO COM O MESMO CONTEÚDO"), + Ocorrencia17_54("", "DATA VENCIMENTO PARA BANCOS CORRESPONDENTES INFERIOR AO ACEITO PELO BANCO"), + Ocorrencia17_55("", "ALTERAÇÕES IGUAIS PARA O MESMO CONTROLE (AGÊNCIA/CONTA/CARTEIRA/NOSSO NÚMERO)"), + Ocorrencia17_56("", "CNPJ/CPF INVÁLIDO NÃO NUMÉRICO OU ZERADO"), + Ocorrencia17_57("", "PRAZO DE VENCIMENTO INFERIOR A 15 DIAS"), + Ocorrencia17_60("", "VALOR DE IOF - ALTERAÇÃO NÃO PERMITIDA PARA CARTEIRAS DE N.S. - MOEDA VARIÁVEL"), + Ocorrencia17_61("", "TÍTULO JÁ BAIXADO OU LIQUIDADO OU NÃO EXISTE TÍTULO CORRESPONDENTE NO SISTEMA"), + Ocorrencia17_66("", "ALTERAÇÃO NÃO PERMITIDA PARA CARTEIRAS DE NOTAS DE SEGUROS Á MOEDA VARIÁVEL"), + Ocorrencia17_67("", "NOME INVÁLIDO DO SACADOR AVALISTA"), + Ocorrencia17_72("", "ENDEREÇO INVÁLIDO - SACADOR AVALISTA"), + Ocorrencia17_73("", "BAIRRO INVÁLIDO - SACADOR AVALISTA"), + Ocorrencia17_74("", "CIDADE INVÁLIDA - SACADOR AVALISTA"), + Ocorrencia17_75("", "SIGLA ESTADO INVÁLIDO - SACADOR AVALISTA"), + Ocorrencia17_76("", "CEP INVÁLIDO - SACADOR AVALISTA"), + Ocorrencia17_81("", "ALTERAÇÃO BLOQUEADA - TÍTULO COM NEGATIVAÇÃO EXPRESSA/PROTESTO"), + Ocorrencia17_87("", "ALTERAÇÃO BLOQUEADA - TÍTULO COM RATEIO DE CRÉDITO"), + + Ocorrencia18_16("", "ABATIMENTO/ALTERAÇÃO DO VALOR DO TÍTULO OU SOLICITAÇÃO DE BAIXA BLOQUEADOS"), + Ocorrencia18_40("", "NÃO APROVADA DEVIDO AO IMPACTO NA ELEGIBILIDADE DE GARANTIAS"), + Ocorrencia18_41("", "AUTOMATICAMENTE REJEITADA"), + Ocorrencia18_42("", "CONFIRMA RECEBIMENTO DE INSTRUÇÃO - PENDENTE DE ANÁLISE"); + + + private MotivoOcorrenciaItau(String campo, String msg) { + // TODO Auto-generated constructor stub + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java new file mode 100644 index 000000000..9e552d638 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaBradesco.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaBradesco { + + EntConf("02","Entrada confirmada"), + EntReje("03","Entrada Rejeitada"), + Liquida("06","Liquidação"), + BaixAut("09","Baixado Automaticamente via Arquivo"), + BaixBan("10","Baixado pelo Banco"), + LiquC_B("15","Liquidação em cartório/Liquidação após baixa ou Título não registrado"), + CEPIrre("24","Entrada Rejeitada por CEP irregular"), + BaixRej("27","Baixa Rejeitada"), + DebTari("28","Débito de Tarifas/Custas"), + OcorPag("29","Ocorrência do Pagador"), + AltDado("30","Alteração de Outros Dados Rejeitados"), + InstRej("32","Instrução Rejeitada"), + DesDedA("35","Desagendamento do Débito Automático"); + + private OcorrenciaBradesco(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaBradesco getInstance(String id){ + + for(OcorrenciaBradesco o : OcorrenciaBradesco.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java new file mode 100644 index 000000000..1914ac3fc --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaItau.java @@ -0,0 +1,126 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaItau { + + Ocorrencia02("02","ENTRADA CONFIRMADA COM POSSIBILIDADE DE MENSAGEM"), + Ocorrencia03("03","ENTRADA REJEITADA"), + Ocorrencia04("04","ALTERAÇÃO DE DADOS - NOVA ENTRADA OU ALTERAÇÃO/EXCLUSÃO DE DADOS ACATADA"), + Ocorrencia05("05","ALTERAÇÃO DE DADOS - BAIXA"), + Ocorrencia06("06","LIQUIDAÇÃO NORMAL"), + Ocorrencia07("07","LIQUIDAÇÃO PARCIAL - COBRANÇA INTELIGENTE"), + Ocorrencia08("08","LIQUIDAÇÃO EM CARTÓRIO 09 BAIXA SIMPLES"), + Ocorrencia10("10","BAIXA POR TER SIDO LIQUIDADO"), + Ocorrencia11("11","EM SER"), + Ocorrencia12("12","ABATIMENTO CONCEDIDO"), + Ocorrencia13("13","ABATIMENTO CANCELADO"), + Ocorrencia14("14","VENCIMENTO ALTERADO"), + Ocorrencia15("15","BAIXAS REJEITADAS"), + Ocorrencia16("16","INSTRUÇÕES REJEITADAS"), + Ocorrencia17("17","ALTERAÇÃO/EXCLUSÃO DE DADOS REJEITADOS"), + Ocorrencia18("18","COBRANÇA CONTRATUAL - INSTRUÇÕES/ALTERAÇÕES REJEITADAS/PENDENTES"), + Ocorrencia19("19","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE PROTESTO"), + Ocorrencia20("20","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE SUSTAÇÃO DE PROTESTO /TARIFA"), + Ocorrencia21("21","CONFIRMA RECEBIMENTO DE INSTRUÇÃO DE NÃO PROTESTAR"), + Ocorrencia23("23","TÍTULO ENVIADO A CARTÓRIO/TARIFA"), + Ocorrencia24("24","INSTRUÇÃO DE PROTESTO REJEITADA / SUSTADA / PENDENTE"), + Ocorrencia25("25","ALEGAÇÕES DO PAGADOR"), + Ocorrencia26("26","TARIFA DE AVISO DE COBRANÇA"), + Ocorrencia27("27","TARIFA DE EXTRATO POSIÇÃO"), + Ocorrencia28("28","TARIFA DE RELAÇÃO DAS LIQUIDAÇÕES"), + Ocorrencia29("29","TARIFA DE MANUTENÇÃO DE TÍTULOS VENCIDOS"), + Ocorrencia30("30","DÉBITO MENSAL DE TARIFAS (PARA ENTRADAS E BAIXAS),"), + Ocorrencia32("32","BAIXA POR TER SIDO PROTESTADO"), + Ocorrencia33("33","CUSTAS DE PROTESTO"), + Ocorrencia34("34","CUSTAS DE SUSTAÇÃO"), + Ocorrencia35("35","CUSTAS DE CARTÓRIO DISTRIBUIDOR"), + Ocorrencia36("36","CUSTAS DE EDITAL"), + Ocorrencia37("37","TARIFA DE EMISSÃO DE BOLETO/TARIFA DE ENVIO DE DUPLICATA"), + Ocorrencia38("38","TARIFA DE INSTRUÇÃO"), + Ocorrencia39("39","TARIFA DE OCORRÊNCIAS"), + Ocorrencia40("40","TARIFA MENSAL DE EMISSÃO DE BOLETO/TARIFA MENSAL DE ENVIO DE DUPLICATA"), + Ocorrencia41("41","DÉBITO MENSAL DE TARIFAS - EXTRATO DE POSIÇÃO (B4EP/B4OX),"), + Ocorrencia42("42","DÉBITO MENSAL DE TARIFAS - OUTRAS INSTRUÇÕES"), + Ocorrencia43("43","DÉBITO MENSAL DE TARIFAS - MANUTENÇÃO DE TÍTULOS VENCIDOS"), + Ocorrencia44("44","DÉBITO MENSAL DE TARIFAS - OUTRAS OCORRÊNCIAS"), + Ocorrencia45("45","DÉBITO MENSAL DE TARIFAS - PROTESTO"), + Ocorrencia46("46","DÉBITO MENSAL DE TARIFAS - SUSTAÇÃO DE PROTESTO"), + Ocorrencia47("47","BAIXA COM TRANSFERÊNCIA PARA DESCONTO"), + Ocorrencia48("48","CUSTAS DE SUSTAÇÃO JUDICIAL"), + Ocorrencia51("51","TARIFA MENSAL REF A ENTRADAS BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia52("52","TARIFA MENSAL BAIXAS NA CARTEIRA"), + Ocorrencia53("53","TARIFA MENSAL BAIXAS EM BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia54("54","TARIFA MENSAL DE LIQUIDAÇÕES NA CARTEIRA"), + Ocorrencia55("55","TARIFA MENSAL DE LIQUIDAÇÕES EM BANCOS CORRESPONDENTES NA CARTEIRA"), + Ocorrencia56("56","CUSTAS DE IRREGULARIDADE"), + Ocorrencia57("57","INSTRUÇÃO CANCELADA"), + Ocorrencia59("59","BAIXA POR CRÉDITO EM C/C ATRAVÉS DO SISPAG"), + Ocorrencia60("60","ENTRADA REJEITADA CARNÊ"), + Ocorrencia61("61","TARIFA EMISSÃO AVISO DE MOVIMENTAÇÃO DE TÍTULOS)"), + Ocorrencia62("62","DÉBITO MENSAL DE TARIFA - AVISO DE MOVIMENTAÇÃO DE TÍTULOS"), + Ocorrencia63("63","TÍTULO SUSTADO JUDICIALMENTE"), + Ocorrencia64("64","ENTRADA CONFIRMADA COM RATEIO DE CRÉDITO"), + Ocorrencia65("65","PAGAMENTO COM CHEQUE - AGUARDANDO COMPENSAÇÃO"), + Ocorrencia69("69","CHEQUE DEVOLVIDO"), + Ocorrencia71("71","ENTRADA REGISTRADA, AGUARDANDO AVALIAÇÃO"), + Ocorrencia72("72","BAIXA POR CRÉDITO EM C/C ATRAVÉS DO SISPAG SEM TÍTULO CORRESPONDENTE"), + Ocorrencia73("73","CONFIRMAÇÃO DE ENTRADA NA COBRANÇA SIMPLES - ENTRADA NÃO ACEITA NA COBRANÇA CONTRATUAL"), + Ocorrencia74("74","INSTRUÇÃO DE NEGATIVAÇÃO EXPRESSA REJEITADA"), + Ocorrencia75("75","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia76("76","CHEQUE COMPENSADO"), + Ocorrencia77("77","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE EXCLUSÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA"), + Ocorrencia78("78","CONFIRMAÇÃO DE RECEBIMENTO DE INSTRUÇÃO DE CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia79("79","NEGATIVAÇÃO EXPRESSA INFORMACIONAL"), + Ocorrencia80("80","CONFIRMAÇÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA - TARIFA"), + Ocorrencia82("82","CONFIRMAÇÃO DO CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA - TARIFA"), + Ocorrencia83("83","CONFIRMAÇÃO DE EXCLUSÃO DE ENTRADA EM NEGATIVAÇÃO EXPRESSA POR LIQUIDAÇÃO - TARIFA"), + Ocorrencia85("85","TARIFA POR BOLETO (ATÉ 03 ENVIOS) COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia86("86","TARIFA EMAIL COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia87("87","TARIFA SMS COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia88("88","TARIFA MENSAL POR BOLETO (ATÉ 03 ENVIOS) COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia89("89","TARIFA MENSAL EMAIL COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia90("90","TARIFA MENSAL SMS COBRANÇA ATIVA ELETRÔNICA"), + Ocorrencia91("91","TARIFA MENSAL DE EXCLUSÃO DE ENTRADA DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia92("92","TARIFA MENSAL DE CANCELAMENTO DE NEGATIVAÇÃO EXPRESSA"), + Ocorrencia93("93","TARIFA MENSAL DE EXCLUSÃO DE NEGATIVAÇÃO EXPRESSA POR LIQUIDAÇÃO"); + + private OcorrenciaItau(String cod, String label) { + this.cod = cod; + this.label = label; + } + + private String cod; + private String label; + + public String getCod() { + return cod; + } + + public String getLabel() { + return label; + } + + public OcorrenciaItau getInstaceByCod(String cod){ + + + for (OcorrenciaItau oItau : values()) { + + if (oItau.getCod().equals(cod)) { + return oItau; + } + } + + return null; + } + + public OcorrenciaItau getInstaceByCod(int cod){ + + String codigo = ""; + if(cod < 10){ + codigo = "0" + cod; + }else{ + codigo = "" + cod; + } + + return getInstaceByCod(codigo); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java new file mode 100644 index 000000000..06cb4f975 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaMercantil.java @@ -0,0 +1,42 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaMercantil { + + EntNor("01","REMESSA - ENTRADA NORMAL"), + PedCli("02","BAIXA - PEDIDO DO CLIENTE"), + ConAba("04","ALTERAÇÃO - CONCESSÃO DE ABATIMENTO"), + CanAba("05","ALTERAÇÃO - CANCELAMENTO DE ABATIMENTO"), + ProVen("06","ALTERAÇÃO - PRORROGAÇÃO DE VENCIMENTO"), + ConDes("07","CONCEDER DESCONTO DE R$"), + ProAvi("09","PROTESTAR SEM MAIS AVISO CONSULTA"); + + private OcorrenciaMercantil(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaMercantil getInstance(String id){ + + for(OcorrenciaMercantil o : OcorrenciaMercantil.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java new file mode 100644 index 000000000..c6429c1a4 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/OcorrenciaSantander.java @@ -0,0 +1,44 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum OcorrenciaSantander { + + ENTRADA_TITULO("01","ENTRADA DE TÍTULO"), + BAIXA_TITULO("02","BAIXA DE TÍTULO"), + CONCESSAO_ABATIMENTO("04","CONCESSÃO DE ABATIMENTO"), + CANCELAMENTO_ABATIMENTO("05","CANCELAMENTO ABATIMENTO"), + PRORROGACAO_VENCIMENTO("06","PRORROGAÇÃO DE VENCIMENTO"), + ALTERACAO_CEDENTE("07","ALT. NÚMERO CONT.CEDENTE"), + ALTERACAO_NUMERO("08","ALTERAÇÃO DO SEU NÚMERO"), + PROTESTAR("09","PROTESTAR"), + SUSTAR_PROTESTO("18","SUSTAR PROTESTO"); + + private OcorrenciaSantander(String id, String label){ + this.id = id; + this.label = label; + } + + private String id; + private String label; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public static OcorrenciaSantander getInstance(String id){ + + for(OcorrenciaSantander o : OcorrenciaSantander.values()){ + + if(o.getId().equals(id)){ + return o; + + } + } + + return null; + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java new file mode 100644 index 000000000..1a5cb5c84 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/enuns/TipoInscricaoPagador.java @@ -0,0 +1,49 @@ +package com.rjconsultores.ventaboletos.enuns; + +public enum TipoInscricaoPagador { + + CPF("01"), + CNPJ("02"); + + private TipoInscricaoPagador(String id) { + + this.id = id; + } + + private String id; + + + public String getId() { + return id; + } + + @Override + public String toString() { + return getId(); + } + + public static TipoInscricaoPagador getInstanceById(String id){ + + for (TipoInscricaoPagador o : values()) { + if(o.getId().equalsIgnoreCase(id)){ + return o; + } + + } + + return null; + } + + public static TipoInscricaoPagador getInstanceByName(String name){ + + for (TipoInscricaoPagador o : values()) { + if(o.name().equalsIgnoreCase(name)){ + return o; + } + + } + + return null; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java new file mode 100644 index 000000000..c6dee5e8f --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/AbstractFlatFile.java @@ -0,0 +1,423 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.jrimum.texgit.FlatFile; +import org.jrimum.texgit.Record; +import org.jrimum.texgit.Texgit; +import org.jrimum.utilix.Collections; +import org.jrimum.utilix.Objects; +import org.jrimum.utilix.text.Strings; + +import com.rjconsultores.ventaboletos.ArquivoRemessa; +import com.rjconsultores.ventaboletos.ArquivoRemessaItemInteface; +import com.rjconsultores.ventaboletos.ArquivoRetorno; +import com.rjconsultores.ventaboletos.ArquivoRetornoItem; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +/** + *

+ * Implementação base para classes utilizadoras do JRimum-Texgit . + *

+ * + * @author Gilmar P.S.L. + */ +public abstract class AbstractFlatFile{ + + protected static final String DATA = "ddMMyy"; + protected static final String TAMANHO_DATA = "000000"; + protected static final String SEQUENCIAL_REMESSA = "NumeroSequencialRemessa"; + protected static final String SEQUENCIAL_REGISTRO = "NumeroSequencialRegistro"; + protected static final String SOMENTE_CLASSE_DE_RETORNO = "Somente classe de Retorno."; + //protected static Logger log = LogManager.getLogger(AbstractFlatFile.class); + + /** + * Nome do arquivo xml de configuração. + */ + protected BancoLayout cfgFile; + + /** + * FlatFile Texgit. + */ + private FlatFile flatFile; + + /** + * Linhas do Arquivo + */ + private List lines = new ArrayList(); + + /** + * Construtor para inicialização com layout xml. + * + * @param cfgFile + * - nome do arquivo layout em xml. + */ + protected AbstractFlatFile(BancoLayout cfgFile) { + + init(cfgFile); + } + + /** + * Inicializador e validador do nome do e layout do arquivo. + * + * @param cfgFile + */ + protected final void init(BancoLayout cfgFile) { + + //Strings.checkNotBlank(cfgFile.getPath(), "Arquivo invalido!"); + + this.cfgFile = cfgFile; + + configure(); + } + + /** + * Retorna o Texgit flatfile da instância. + * + * @return the flatFile + */ + protected final FlatFile getFlatFile() { + + return flatFile; + } + + /** + * Configura o flat file a partir do nome do arquivo layout xml da instância + * procurando no classpath. + */ + private void configure() { + + InputStream in = null; + + try { + + //in = ClassLoaders.getResourceAsStream(cfgFile.getPath(), this.getClass()); + in = getClass().getResourceAsStream(cfgFile.getPath()); + + File config = File.createTempFile(cfgFile.getTemp(), null); + + copyInputStreamToFile(in, config); + + //FileUtils.copyInputStreamToFile(in, config); + + flatFile = Texgit.createFlatFile(config); + + } catch (Exception e) { + + throw new IllegalStateException(e); + + }finally { + + if (in != null) { + + try { + + in.close(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + Objects.checkNotNull(flatFile, "NAO FOI POSSIVEL INICIALIZAR A LIB TEXGIT!"); + } + + public void copyInputStreamToFile(InputStream initialStream, File targetFile) throws IOException { + + OutputStream outStream = new FileOutputStream(targetFile); + + byte[] buffer = new byte[8 * 1024]; + int bytesRead; + while ((bytesRead = initialStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + + IOUtils.closeQuietly(initialStream); + IOUtils.closeQuietly(outStream); + +// Reader reader = new BufferedReader(new InputStreamReader(initialStream)); +// Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile), "Cp1252")); +// +// char[] buffer = new char[8 * 1024]; +// int bytesRead; +// while ((bytesRead = reader.read(buffer)) != -1){ +// writer.write(buffer, 0, bytesRead); +// } +// +// IOUtils.closeQuietly(initialStream); +// IOUtils.closeQuietly(reader); +// IOUtils.closeQuietly(writer); + } + + /** + *

+ * Lê um arquivo do layout da instancia. + *

+ * + * @param lines + * linhas do arquivo + */ + @SuppressWarnings("unchecked") + public FF read(final List lines) { + + Collections.checkNotEmpty(lines, "Linhas ausentes!"); + + try { + + getFlatFile().read(lines); + + } catch (Exception e) { + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Lê um arquivo do layout da instancia com enconding UTF-8. + *

+ * + * @param file + * arquivo texto + */ + @SuppressWarnings("unchecked") + public FF read(final File file) { + + Objects.checkNotNull(file, "Arquivo TXT a ser importado nulo!"); + + try { + + getFlatFile().read(FileUtils.readLines(file)); + + } catch (Exception e) { + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Lê um arquivo do layout da instancia. + *

+ * + * @param file + * - Arquivo texto + * @param encoding + * - Econding em que o arquivo será lido + */ + @SuppressWarnings("unchecked") + public FF read(final File file, String encoding) { + + Objects.checkNotNull(file, "Arquivo TXT a ser importado nulo!"); + Strings.checkNotBlank(encoding, "Encoding inválido!"); + + try { + + getFlatFile().read(FileUtils.readLines(file, encoding)); + + } catch (IOException e) { + + e.printStackTrace(); + } + + return (FF) this; + } + + /** + *

+ * Escreve um arquivo do layout da instancia com enconding UTF-8. + *

+ * + * @return arquivo texto + * @throws IOException + */ + public File write() throws IOException { + + Objects.checkNotNull(getFlatFile(), "Arquivo TXT a ser importado nulo!"); + + File f = File.createTempFile(this.getClass().getName() + "" + + new Date().getTime(), "_jnfmtmp.txt"); + + FileUtils.writeLines(f, getFlatFile().write()); + + return f; + } + + /** + *

+ * Escreve um arquivo do layout da instancia. + *

+ * @param encoding - Econding em que o arquivo será escrito + * @return arquivo texto + * @throws IOException + */ + public File write(String encoding) throws IOException { + + if (getFlatFile() != null) { + + File f = File.createTempFile(this.getClass().getName() + "" + + new Date().getTime(), "_jnfmtmp.txt"); + + FileUtils.writeLines(f, getFlatFile().write(), encoding); + + return f; + + } else{ + + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + } + + /** + *

+ * Escreve um arquivo do layout da instancia. + *

+ * @param arquivoRemessaFisico + * @throws IOException + */ + protected void write(File arquivoRemessaFisico) throws IOException{ + + if(arquivoRemessaFisico == null){ + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + + FileUtils.writeLines(arquivoRemessaFisico, getFlatFile().write(), "\r\n"); + } + + protected void writeLines(File arquivoRemessaFisico) throws IOException{ + + if(arquivoRemessaFisico == null){ + throw new IllegalArgumentException(new NullPointerException( + "Arquivo TXT a ser importado nulo!")); + } + + FileUtils.writeLines(arquivoRemessaFisico, "Cp1252", this.lines, "\r\n"); + //FileUtils.writeLines(file, encoding, lines, lineEnding); + } + + protected void writeLines() throws IOException{ + this.lines.addAll(getFlatFile().write()); + + flatFile = null; + configure(); + } + + /** + * + * @param arquivoRemessaFisico + * @param arquivoRemessa + * @throws FileNotFoundException + * @throws IOException + */ + public List gerarRemessa(File arquivoRemessaFisico, ArquivoRemessa arquivoRemessa) throws FileNotFoundException, IOException{ + + //log.info("Gerando Remessa: " + cfgFile.name()); + //log.info("INICIO - Bloco de Header..."); + + if(arquivoRemessa != null && arquivoRemessa.getItens() != null) { + for(ArquivoRemessaItemInteface arquivoRemessaItem : arquivoRemessa.getItens()){ + createHeader(arquivoRemessaItem.getCabecalhoRemessa()); + //log.info("FIM - Bloco de Header..."); + + //log.info("INICIO - Bloco de Titulos..."); + for (DetalheObrigatorio titulo : arquivoRemessaItem.getTitulos()) { + createTransacaoTitulos(titulo); + } + //log.info("FIM - Bloco de Titulos..."); + + //log.info("INICIO - Bloco de Trailler..."); + createTrailler(arquivoRemessaItem.getRodapeRemessa()); + //log.info("FIM - Bloco de Trailler..."); + + //log.info("INICIO - Gerando arquivo..."); + writeLines(); + //log.info("FIM - Gerando arquivo..."); + } + + } + writeLines(arquivoRemessaFisico); + + return this.lines; + } + + + public ArquivoRetorno lerRetorno(File arquivoRetornoFisico) throws FileNotFoundException, IOException{ + + //log.info("Gerando Retorno: " + cfgFile.name()); + //log.info("INICIO - Bloco de Header..."); + + read(arquivoRetornoFisico); + + return loadInfo(); + } + + private ArquivoRetorno loadInfo() { + + ArquivoRetorno arquivoRetorno = new ArquivoRetorno(); + + Record header = getFlatFile().getRecord("Header"); + + ArquivoRetornoItem arquivoRetornoItem = new ArquivoRetornoItem(); + + arquivoRetornoItem.setCabecalhoRetorno(readHeader(header)); + + Collection registrosDeTransacoes = getFlatFile().getRecords( + "TransacaoTitulo"); + + List titulos = readTransacaoTitulos(registrosDeTransacoes); + + for(DetalheRetorno titulo : titulos){ + arquivoRetornoItem.addTitulo(titulo); + } + + + Record trailler = getFlatFile().getRecord("Trailler"); + + arquivoRetornoItem.setRodapeRetorno(readTrailler(trailler)); + + arquivoRetorno.addItem(arquivoRetornoItem); + + return arquivoRetorno; + } + + + protected abstract void createHeader(CabecalhoRemessa cabecalhoRemessaParam); + + protected abstract void createTransacaoTitulos(DetalheObrigatorio tituloParam); + + protected abstract Record createDadosBoletos(DadosBoleto boleto); + + protected abstract Record createRateioDeCredito(RateioDeCredito rateioDeCredito); + + protected abstract void createTrailler(RodapeRemessa trailler); + + protected abstract CabecalhoRetorno readHeader(Record header); + + protected abstract List readTransacaoTitulos(Collection registrosDeTransacoes); + + protected abstract RodapeRetorno readTrailler(Record trailler); +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java new file mode 100644 index 000000000..ded93d71c --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BancoBrasilFlatFile.java @@ -0,0 +1,280 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.CabecalhoLoteRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.CabecalhoRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.DetalheObrigatorioDadosPagadorBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.DetalheObrigatorioDadosTitulosBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaBancoBrasil; +import com.rjconsultores.ventaboletos.blocos.bancobrasil.RodapeRemessaLoteBancoBrasil; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class BancoBrasilFlatFile extends AbstractFlatFile implements RemessaInterface { + + protected BancoBrasilFlatFile() { + super(BancoLayout.BB_240_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("HeaderArquivo"); + + CabecalhoRemessaBancoBrasil cabecalhoRemessa = (CabecalhoRemessaBancoBrasil) cabecalhoRemessaParam; + + //header.setValue("CodComp", FormataUtil.formatarValorPorTamanho("001", 3)); + if(cabecalhoRemessa.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getLoteServico().toString(), 4)); + } + //header.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("0", 1)); + //header.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 9)); + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCpfCnpj(), 14)); + header.setValue("NumConvenio", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumConvenio(), 9)); + //header.setValue("CobrancaCedente", FormataUtil.formatarValorPorTamanho("0014", 4)); + header.setValue("NumCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCarteira(), 2)); + header.setValue("NumVarCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumVarCarteira(), 3)); + //header.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 2)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1)); + header.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgenciaConta(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho("BANCO DO BRASIL S.A.", 30)); + //header.setValue("Brancos3", FormataUtil.formatarValorPorTamanho(" ", 10)); + //header.setValue("RemessaRetorno", FormataUtil.formatarValorPorTamanho("1", 1)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoRemessa.getDataGeracao())); + header.setValue("HoraGeracao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getHoraGeracao().toString(), 6)); + header.setValue("NumRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 6)); + //header.setValue("NumeroVersaoLayout", FormataUtil.formatarValorPorTamanho("083", 6)); + header.setValue("DensidadeArquivo", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDensidadeArquivo(), 5)); + //header.setValue("Brancos4", FormataUtil.formatarValorPorTamanho(" ", 20)); + //header.setValue("Brancos5", FormataUtil.formatarValorPorTamanho(" ", 20)); + //header.setValue("Brancos6", FormataUtil.formatarValorPorTamanho(" ", 29)); + + getFlatFile().addRecord(header); + + createHeaderLote(cabecalhoRemessa.getCabecalhoLoteRemessaBancoBrasil()); + + } + + private void createHeaderLote(CabecalhoLoteRemessaBancoBrasil cabecalhoLote) { + + Record header = getFlatFile().createRecord("HeaderLote"); + + //header.setValue("CodComp", FormataUtil.formatarValorPorTamanho("001", 3)); + if(cabecalhoLote.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getLoteServico().toString(), 4)); + } + //header.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("1", 1)); + //header.setValue("TipoOperacao", FormataUtil.formatarValorPorTamanho("R", 1)); + //header.setValue("TipoServico", FormataUtil.formatarValorPorTamanho("02", 2)); + //header.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 2)); + //header.setValue("NumeroVersaoLote", FormataUtil.formatarValorPorTamanho("042", 3)); + //header.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 1)); + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCpfCnpj(), 15)); + header.setValue("NumConvenio", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumConvenio(), 9)); + //header.setValue("CobrancaCedente", FormataUtil.formatarValorPorTamanho("0014", 4)); + header.setValue("NumCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCarteira(), 2)); + header.setValue("NumVarCarteira", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumVarCarteira(), 3)); + header.setValue("RemessaTeste", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getRemessaTesteID(), 2)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigContaCorrente(), 1)); + header.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgenciaConta(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 30)); + //header.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho("", 40)); + //header.setValue("Mensagem2", FormataUtil.formatarValorPorTamanho("", 40)); + header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getNumeroRemessa().toString(), 8)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoLote.getDataGeracao())); + header.setValue("DataCredito", FormataUtil.formataData(cabecalhoLote.getDataCredito())); + //header.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 33)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoP"); + + DetalheObrigatorioDadosTitulosBancoBrasil dadosTitulosBancoBrasil = (DetalheObrigatorioDadosTitulosBancoBrasil) tituloParam; + + //transacaoTitulos.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(dadosTitulosBancoBrasil.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getLoteServico().toString(), 4)); + } + //transacaoTitulos.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("3", 1)); + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getNumeroSequencialRegistro().toString(), 5)); + //transacaoTitulos.setValue("CodSegmento", FormataUtil.formatarValorPorTamanho("P", 1)); + //transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 1)); + //transacaoTitulos.setValue("CodigoRemessa", FormataUtil.formatarValorPorTamanho("01", 2)); + transacaoTitulos.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumAgencia(), 5)); + transacaoTitulos.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigAgencia(), 1)); + transacaoTitulos.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumContaCorrente(), 12)); + transacaoTitulos.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigContaCorrente(), 1)); + transacaoTitulos.setValue("DigAgenciaConta", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDigAgenciaConta(), 1)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNossoNumeroBB(), 20)); + //transacaoTitulos.setValue("CodCarteira", FormataUtil.formatarValorPorTamanho("7", 1)); + //transacaoTitulos.setValue("FormaCadTituloBanco", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("TipoDocumento", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("IdentEmissaoBloqueto", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("IdentDistribuicao", FormataUtil.formatarValorPorTamanho("0", 1)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNumeroDoDocumento(), 15)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(dadosTitulosBancoBrasil.getVencimento())); + transacaoTitulos.setValue("Valor", dadosTitulosBancoBrasil.getValor()); + //transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho("00000", 5)); + //transacaoTitulos.setValue("DigAgenciaCobradora", FormataUtil.formatarValorPorTamanho(" ", 1)); + //transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho("2", 1)); + transacaoTitulos.setValue("Aceite", dadosTitulosBancoBrasil.getAceite().getValue()); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(dadosTitulosBancoBrasil.getEmissao())); + transacaoTitulos.setValue("CodMora", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodMora().toString(), 1)); + transacaoTitulos.setValue("DataMora", FormataUtil.formataDataToString(dadosTitulosBancoBrasil.getDataMora(), "00000000")); + transacaoTitulos.setValue("JurosDeMora", dadosTitulosBancoBrasil.getJurosDeMora()); + transacaoTitulos.setValue("CodigoDesconto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodigoDesconto().toString(), 1)); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(dadosTitulosBancoBrasil.getDataDesconto(), "00000000")); + transacaoTitulos.setValue("DescontoConcedido", dadosTitulosBancoBrasil.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", dadosTitulosBancoBrasil.getIOF_Devido()); + transacaoTitulos.setValue("AbatimentoConcedido", dadosTitulosBancoBrasil.getAbatimentoConcedido()); + transacaoTitulos.setValue("NossoNumeroEmp", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getNossoNumeroEmp(), 25)); + transacaoTitulos.setValue("CodigoProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getCodigoProtesto().toString(), 1)); + transacaoTitulos.setValue("DiasProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulosBancoBrasil.getDiasProtesto().toString(), 2)); + //transacaoTitulos.setValue("CodigoBaixa", FormataUtil.formatarValorPorTamanho("0", 1)); + //transacaoTitulos.setValue("DiasBaixa", FormataUtil.formatarValorPorTamanho("000", 3)); + //transacaoTitulos.setValue("Moeda", FormataUtil.formatarValorPorTamanho("09", 2)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulosBancoBrasil.getNumeroContrato().toString(), 10)); + //transacaoTitulos.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho("0", 1)); + + getFlatFile().addRecord(transacaoTitulos); + createTransacaoTitulosSeguimentoQ(transacaoTitulos, dadosTitulosBancoBrasil.getDetalheObrigatorioDadosPagadorBancoBrasil()); + + } + + private void createTransacaoTitulosSeguimentoQ(Record recordFather, DetalheObrigatorioDadosPagadorBancoBrasil dadosPagadorBancoBrasil) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoQ"); + + //transacaoTitulos.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(dadosPagadorBancoBrasil.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getLoteServico().toString(), 4)); + } + //transacaoTitulos.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("3", 1)); + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getNumeroSequencialRegistro().toString(), 5)); + //transacaoTitulos.setValue("CodSegmento", FormataUtil.formatarValorPorTamanho("Q", 1)); + transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("CodigoRemessa", FormataUtil.formatarValorPorTamanho("01", 2)); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getTipoInscricaoSacado().toString(), 1)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNumeroInscricaoSacado(), 15)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNomeSacado(), 40)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getLogradouroSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getBairroSacado(), 15)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("SufixoCep", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorBancoBrasil.getSufixoCep().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getEstado(), 2)); + try{ + transacaoTitulos.setValue("TipoSacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getTipoSacadorAvalista().toString(), 1)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getSacadorAvalista().toString(), 15)); + transacaoTitulos.setValue("NomeSacadorAvalista", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNomeSacadorAvalista(), 40)); + }catch(Exception e){ + + } + try{ + transacaoTitulos.setValue("CodBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getCodBancoCorresp().toString(), 3)); + }catch(Exception e){ + + } + transacaoTitulos.setValue("NossoNumeroNoBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorBancoBrasil.getNossoNumeroNoBancoCorresp(), 20)); + //transacaoTitulos.setValue("UsoExclusivo", FormataUtil.formatarValorPorTamanho(" ", 8)); + + recordFather.addInnerRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + + RodapeRemessaBancoBrasil rodapeRemessaBancoBrasil = (RodapeRemessaBancoBrasil) trailler; + + createTraillerLote(rodapeRemessaBancoBrasil.getRodapeRemessaLoteBancoBrasil()); + + Record traillerArquivo = getFlatFile().createRecord("TraillerArquivo"); + + String loteValue = getFlatFile().getRecord("HeaderArquivo").getValue("LoteServico").toString(); + + //traillerArquivo.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + if(!loteValue.equals("0000")){ + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(loteValue, 4)); + }else{ + //traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanho("9999", 4)); + } + //traillerArquivo.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("9", 1)); + //traillerArquivo.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 9)); + traillerArquivo.setValue("QtdLotes", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdLotes().toString(), 6)); + traillerArquivo.setValue("QtdArquivos", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdArquivos().toString(), 6)); + traillerArquivo.setValue("QtdContas", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaBancoBrasil.getQtdContas().toString(), 6)); + //traillerArquivo.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(" ", 205)); + + getFlatFile().addRecord(traillerArquivo); + + } + + private void createTraillerLote(RodapeRemessaLoteBancoBrasil rodapeRemessaLoteBancoBrasil) { + + + Record traillerArquivo = getFlatFile().createRecord("TraillerLote"); + + //traillerArquivo.setValue("IDReg", FormataUtil.formatarValorPorTamanho("001", 3)); + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteBancoBrasil.getLoteServico().toString(), 4)); + //traillerArquivo.setValue("TipoRegistro", FormataUtil.formatarValorPorTamanho("5", 1)); + //traillerArquivo.setValue("UsoExclusivo1", FormataUtil.formatarValorPorTamanho(" ", 9)); + traillerArquivo.setValue("QtdRegistros", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteBancoBrasil.getQtdRegistros().toString(), 6)); + //traillerArquivo.setValue("UsoExclusivo2", FormataUtil.formatarValorPorTamanho(" ", 217)); + + getFlatFile().addRecord(traillerArquivo); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + // TODO Auto-generated method stub + return null; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java new file mode 100644 index 000000000..3acd9a00e --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoFlatFile.java @@ -0,0 +1,153 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bradesco.CabecalhoRemessaBradesco; +import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class BradescoFlatFile extends AbstractFlatFile implements RemessaInterface { + + public BradescoFlatFile() { + super(BancoLayout.BRADESCO_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaBradesco cabecalhoRemessa = (CabecalhoRemessaBradesco) cabecalhoRemessaParam; + + //header.setValue("IdentificacaoRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 1)); + //header.setValue("LiteralRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralRemessa(), 7)); + //header.setValue("CodigoServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoServico(), 2)); + //header.setValue("LiteralServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralServico(), 8)); + header.setValue("CodigoDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa().toString(), 20)); + header.setValue("NomeDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + //header.setValue("CodigoCompensacao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoBanco().toString(), 3)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeBanco(), 8)); + header.setValue("DataGravacaoArquivo", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + //header.setValue("IdentificacaoSistema", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoSistema(), 2)); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioBradesco titulo = (DetalheObrigatorioBradesco) tituloParam; + + transacaoTitulos.setValue("AgenciaDebito", FormataUtil.formatarValorPorTamanho(" ", 5)); + transacaoTitulos.setValue("DigitoAgenciaDebito", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("RazaoContaCorrente", FormataUtil.formatarValorPorTamanho(" ", 5)); + transacaoTitulos.setValue("ContaCorrente", FormataUtil.formatarValorPorTamanho(" ", 7)); + transacaoTitulos.setValue("DigitoContaCorrrente", FormataUtil.formatarValorPorTamanho(" ", 1)); + transacaoTitulos.setValue("Carteira", FormataUtil.formatarValorPorTamanho(titulo.getCarteira(), 3)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia(), 5)); + transacaoTitulos.setValue("Contacorrente", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 7)); + transacaoTitulos.setValue("DvConta", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25)); + transacaoTitulos.setValue("BancoCamaraCompensacao", FormataUtil.formatarValorPorTamanho("0", 3)); + transacaoTitulos.setValue("Multa", titulo.existeMulta()); + transacaoTitulos.setValue("PercentualMulta", titulo.getPercentualMulta() ); + transacaoTitulos.setValue("NossoNumeroComDigito", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumeroComDigito(), 12)); + transacaoTitulos.setValue("DescontoBonificacaoDia", FormataUtil.formatarValorPorTamanho("0", 10)); + transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 15)); + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho("", 2)); + //transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Valor", titulo.getValor()); + //transacaoTitulos.setValue("BancoCobranca", FormataUtil.formatarValorPorTamanho("0", 3)); + //transacaoTitulos.setValue("AgenciaAgencia", FormataUtil.formatarValorPorTamanho("0", 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + //transacaoTitulos.setValue("Identificaçãoo", FormataUtil.formatarValorPorTamanho("N", 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("ValorAtraso", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataDataToString(titulo.getDataLimiteDesconto(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("TipoInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoPagador(), 14)); + transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40)); + transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagador(), 40)); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("CEP_Prefixo", FormataUtil.formatarValorPorTamanho(titulo.getCEP_Prefixo().toString(), 5)); + transacaoTitulos.setValue("CEP_Sufixo", FormataUtil.formatarValorPorTamanho(titulo.getCEP_Sufixo().toString(), 3)); + transacaoTitulos.setValue("Sacador_Avalista_Mensagem2", FormataUtil.formatarValorPorTamanho(titulo.getSacador_Avalista_Mensagem2(), 60)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + RateioDeCredito rateioDeCredito = titulo.getRateioDeCredito(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createRateioDeCredito(rateioDeCredito)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java new file mode 100644 index 000000000..67fe8aaaa --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/BradescoProcessaRetorno.java @@ -0,0 +1,139 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheRetornoBradesco; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco; +import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco; + +public class BradescoProcessaRetorno extends AbstractFlatFile implements RetornoInteface { + + protected BradescoProcessaRetorno() { + super(BancoLayout.BRADESCO_400_Retorno); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + + CabecalhoRetorno cabecalhoRetorno = new CabecalhoRetorno(); + String codEmpresa = header.getValue("CodigoDaEmpresa"); + String numeroDoAvisoBancario = header.getValue("NumeroDoAvisoBancario"); + + cabecalhoRetorno.setCodEmpresa(codEmpresa); + cabecalhoRetorno.setNumeroDoAvisoBancario(numeroDoAvisoBancario); + + return cabecalhoRetorno; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + + List retornos = new ArrayList(); + + for (Record record : registrosDeTransacoes) { + + DetalheRetornoBradesco detalheRetorno = new DetalheRetornoBradesco(); + + String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); + String codigoDeOcorrencia = record.getValue("CodigoDeOcorrencia"); + String codigoDeMotivo1 = record.getValue("CodigoDeMotivo1"); + String codigoDeMotivo2 = record.getValue("CodigoDeMotivo2"); + String codigoDeMotivo3 = record.getValue("CodigoDeMotivo3"); + String codigoDeMotivo4 = record.getValue("CodigoDeMotivo4"); + String codigoDeMotivo5 = record.getValue("CodigoDeMotivo5"); + + OcorrenciaBradesco ocorrencia = OcorrenciaBradesco.getInstance(codigoDeOcorrencia); + detalheRetorno.setNumeroControleDoParticipante(numeroControleDoParticipante); + detalheRetorno.setOcorrencia(ocorrencia); + + if(checkIsNullOrBlank(codigoDeMotivo1)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo1); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo2)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo2); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo3)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo3); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo4)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo4); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo5)){ + MotivoOcorrenciaBradesco motivoOcorrencia = MotivoOcorrenciaBradesco.getInstance(ocorrencia, codigoDeMotivo5); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + + retornos.add(detalheRetorno); + } + + return retornos; + } + + private boolean checkIsNullOrBlank(String value){ + + if(value != null){ + return StringUtils.isEmpty(value); + } + + return Boolean.TRUE; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + + RodapeRetorno rodapeRetorno = new RodapeRetorno(); + + + return rodapeRetorno; + + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java new file mode 100644 index 000000000..d18a37ecf --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CNABFactory.java @@ -0,0 +1,46 @@ +package com.rjconsultores.ventaboletos.layouts; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class CNABFactory { + + public static RemessaInterface createRemessa(BancoLayout bancoLayout){ + + switch (bancoLayout) { + case BRADESCO_400_Envio: + return new BradescoFlatFile(); + case SANTANDER_400_Envio: + return new SantanderFlatFile(); + case CAIXA_400_Envio: + return new CaixaFlatFile(); + case MERCANTIL_400_Envio: + return new MercantilFlatFile(); + case ITAU_400_Envio: + return new ItauFlatFile(); + case BB_240_Envio: + return new BancoBrasilFlatFile(); + case SICOOB_240_Envio: + return new SicoobFlatFile(); + case SAFRA_400_Envio: + return new SafraFlatFile(); + default: + break; + } + + return null; + } + + public static RetornoInteface createRetorno(BancoLayout bancoLayout){ + + switch (bancoLayout) { + case BRADESCO_400_Retorno: + return new BradescoProcessaRetorno(); + case ITAU_400_Retorno: + return null; + default: + break; + } + + return null; + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java new file mode 100644 index 000000000..22a51beee --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/CaixaFlatFile.java @@ -0,0 +1,126 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.caixa.CabecalhoRemessaCaixa; +import com.rjconsultores.ventaboletos.blocos.caixa.DetalheObrigatorioCaixa; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class CaixaFlatFile extends AbstractFlatFile implements RemessaInterface { + + private static BigDecimal valorTotal = BigDecimal.ZERO; + private static Integer quantidadeRegistro = 0; + + public CaixaFlatFile() { + super(BancoLayout.CAIXA_400_Envio); + valorTotal = BigDecimal.ZERO; + quantidadeRegistro = 0; + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaCaixa cabecalhoRemessa = (CabecalhoRemessaCaixa) cabecalhoRemessaParam; + + header.setValue("AgenciaBeneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaBeneficiario(), 4)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("Beneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa(), 7)); + header.setValue("versaoLayout", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getVersaoLayout(), 3)); + header.setValue("DataGravacao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioCaixa titulo = (DetalheObrigatorioCaixa) tituloParam; + + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricao().toString(), 14)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 8)); + transacaoTitulos.setValue("DataJuros", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorTitulo", titulo.getValor()); + transacaoTitulos.setValue("DataEmissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorJuros", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(titulo.getDataLimiteDesconto(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimento", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho("", 6)); + transacaoTitulos.setValue("TipoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2)); + transacaoTitulos.setValue("DocumentoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado(), 40)); + transacaoTitulos.setValue("EnderecoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8)); + transacaoTitulos.setValue("CidadeSacado", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("EstadoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("DataMulta", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorMulta", titulo.getValorMulta()); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + valorTotal = valorTotal.add(titulo.getValor()); + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java new file mode 100644 index 000000000..8d5e4e02c --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/ItauFlatFile.java @@ -0,0 +1,173 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheMulta; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.itau.CabecalhoRemessaItau; +import com.rjconsultores.ventaboletos.blocos.itau.DetalheObrigatorioItau; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class ItauFlatFile extends AbstractFlatFile implements RemessaInterface { + + private static final String SOMENTE_CLASSE_DE_RETORNO = "Somente classe de Retorno."; + + public ItauFlatFile() { + super(BancoLayout.ITAU_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaItau cabecalhoRemessa = (CabecalhoRemessaItau) cabecalhoRemessaParam; + + //header.setValue("IdentificacaoRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 1)); + //header.setValue("LiteralRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralRemessa(), 7)); + //header.setValue("CodigoDeServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoDeServico(), 2)); + //header.setValue("LiteralServico", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getLiteralServico(), 15)); + header.setValue("Agencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgencia().toString(), 4)); + //header.setValue("Zeros", "00"); + header.setValue("Conta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getConta().toString(), 5)); + header.setValue("DacConta", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDacConta().toString(), 1)); + header.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 8)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa().toString(), 30)); + //header.setValue("CodigoCompensacao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 3)); + //header.setValue("NomeBanco", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getIdentificacaoRemessa(), 15)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoRemessa.getDataGeracao())); + header.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 294)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioItau titulo = (DetalheObrigatorioItau) tituloParam; + + //transacaoTitulos.setValue("CodigoInscricao", FormataUtil.formatarValorPorTamanho(titulo.getCodigoInscricao().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumCpfCnpj(), 14)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia().toString(), 4)); + transacaoTitulos.setValue("Zeros", "00"); + transacaoTitulos.setValue("Conta", FormataUtil.formatarValorPorTamanho(titulo.getConta().toString(), 5)); + transacaoTitulos.setValue("DacConta", FormataUtil.formatarValorPorTamanho(titulo.getDacConta().toString(), 1)); + transacaoTitulos.setValue("Brancos1", FormataUtil.formatarValorPorTamanho(" ", 4)); + transacaoTitulos.setValue("InstrucaoAlegacao", FormataUtil.formatarValorPorTamanho(titulo.getInstrucaoAlegacao().toString(), 4)); + transacaoTitulos.setValue("UsoDaEmpresa", FormataUtil.formatarValorPorTamanho(titulo.getUsoDaEmpresa(), 25)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero().toString(), 8)); + transacaoTitulos.setValue("QtdMoeda", titulo.getQtdMoeda()); + transacaoTitulos.setValue("NrCarteira", FormataUtil.formatarValorPorTamanho(titulo.getNrCarteira().toString(), 3)); + transacaoTitulos.setValue("UsoDoBanco", FormataUtil.formatarValorPorTamanho(titulo.getUsoDoBanco(), 21)); +// transacaoTitulos.setValue("CodigoCarteira", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCarteira(), 1)); + transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento().toString(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(titulo.getVencimento())); + transacaoTitulos.setValue("Valor", titulo.getValor()); + //transacaoTitulos.setValue("CodigoCompensacaoBancoRecebedor", FormataUtil.formatarValorPorTamanho(titulo.getCodigoCompensacaoBancoRecebedor().toString(), 3)); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaCobradora().toString(), 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo().toString(), 2)); + transacaoTitulos.setValue("Aceite", FormataUtil.formatarValorPorTamanho(titulo.getAceite(), 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(titulo.getEmissao())); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("JurosDeMora", titulo.getJurosDeMora()); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataData(titulo.getDataDesconto())); + transacaoTitulos.setValue("DescontoConcedido", titulo.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", titulo.getIOF_Devido()); + transacaoTitulos.setValue("AbatimentoConcedido", titulo.getAbatimentoConcedido()); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoSacado().getId(), 2)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado().toString(), 30)); + transacaoTitulos.setValue("Brancos2", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(titulo.getLogradouroSacado().toString(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado().toString(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("Brancos3", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("DataDeMora", FormataUtil.formataData(titulo.getDataDeMora())); + transacaoTitulos.setValue("Prazo", FormataUtil.formatarValorPorTamanho(titulo.getPrazo().toString(), 2)); + transacaoTitulos.setValue("Brancos4", FormataUtil.formatarValorPorTamanho(" ", 2)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + DetalheMulta detalheMulta = titulo.getDetalheMulta(); + + try{ + if(detalheMulta != null){ + transacaoTitulos.addInnerRecord(createDetalheMulta(detalheMulta)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + protected Record createDetalheMulta(DetalheMulta detalheMulta) { + Record detalhe = getFlatFile().createRecord("DetalheMulta"); + + detalhe.setValue("CodigoMulta", FormataUtil.formatarValorPorTamanho(detalheMulta.getCodigoMulta(), 1)); + detalhe.setValue("DataMulta", FormataUtil.formataData( detalheMulta.getDataMulta()) ); + detalhe.setValue("ValorMulta", FormataUtil.formatarValorPorTamanho(detalheMulta.getPercentualMulta(), 13)); + detalhe.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(detalheMulta.getNumeroSequencial(), 6)); + + return detalhe; + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java new file mode 100644 index 000000000..4ea5c8d4d --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/MercantilFlatFile.java @@ -0,0 +1,131 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil; +import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class MercantilFlatFile extends AbstractFlatFile implements RemessaInterface { + + public MercantilFlatFile() { + super(BancoLayout.MERCANTIL_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaMercantil cabecalhoRemessa = (CabecalhoRemessaMercantil) cabecalhoRemessaParam; + + header.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaOrigem(), 4)); + header.setValue("Cliente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCnpj().toString(), 15)); + header.setValue("NomeDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("DataGravacaoArquivo", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 5)); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioMercantil titulo = (DetalheObrigatorioMercantil) tituloParam; + + transacaoTitulos.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaOrigem(), 5)); + transacaoTitulos.setValue("MultaPercentual", FormataUtil.formatarValorPorTamanho(titulo.getMultaPercentual(), 2)); + transacaoTitulos.setValue("CNPJ", FormataUtil.formatarValorPorTamanho(titulo.getCnpj().toString(), 15)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanho(titulo.getNumeroContrato(), 9)); + transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25)); + transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 10)); + transacaoTitulos.setValue("DigitoVerificador", FormataUtil.formatarValorPorTamanho(titulo.getDigitoVerificador(), 1)); + transacaoTitulos.setValue("SeuNumero", FormataUtil.formatarValorPorTamanho(titulo.getSeuNumero(), 10)); + transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 25)); + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento(), 25)); + //transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("ValorTitulo", titulo.getValorTitulo()); + //transacaoTitulos.setValue("BancoCobranca", FormataUtil.formatarValorPorTamanho("0", 3)); + //transacaoTitulos.setValue("AgenciaAgencia", FormataUtil.formatarValorPorTamanho("0", 5)); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + //transacaoTitulos.setValue("Identificaçãoo", FormataUtil.formatarValorPorTamanho("N", 1)); + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("ValorAtraso", titulo.getValorAtraso()); + transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataData(titulo.getDataLimiteDesconto())); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40)); + transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagador(), 40)); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("CEPPrefixo", FormataUtil.formatarValorPorTamanho(titulo.getCepPrefixo(), 5)); + transacaoTitulos.setValue("CEPSufixo", FormataUtil.formatarValorPorTamanho(titulo.getCepSufixo(), 3)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairro(), 12)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("Sacador_Avalista_Mensagem2", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalistaMensagem2(), 60)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + Record trailer = getFlatFile().createRecord("Trailler"); + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java new file mode 100644 index 000000000..dde0e1734 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RemessaInterface.java @@ -0,0 +1,14 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; + +import com.rjconsultores.ventaboletos.ArquivoRemessa; + +public interface RemessaInterface { + + public List gerarRemessa(File arquivoRemessaFisico, ArquivoRemessa arquivoRemessa) throws FileNotFoundException, IOException; + +} \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java new file mode 100644 index 000000000..ed4522cb3 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/RetornoInteface.java @@ -0,0 +1,12 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import com.rjconsultores.ventaboletos.ArquivoRetorno; + +public interface RetornoInteface { + + public ArquivoRetorno lerRetorno(File arquivoRetornoFisico) throws FileNotFoundException, IOException; +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SafraFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SafraFlatFile.java new file mode 100644 index 000000000..ca93d06d2 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SafraFlatFile.java @@ -0,0 +1,131 @@ +package com.rjconsultores.ventaboletos.layouts; + +import static com.rjconsultores.ventaboletos.utils.FormataUtil.formataDataToString; +import static com.rjconsultores.ventaboletos.utils.FormataUtil.formatarValorPorTamanho; +import static com.rjconsultores.ventaboletos.utils.FormataUtil.formatarValorPorTamanhoZeroEsquerda; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.safra.CabecalhoRemessaSafra; +import com.rjconsultores.ventaboletos.blocos.safra.DetalheObrigatorioSafra; +import com.rjconsultores.ventaboletos.blocos.safra.RodapeRemessaSafra; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class SafraFlatFile extends AbstractFlatFile implements RemessaInterface { + + public SafraFlatFile() { + super(BancoLayout.SAFRA_400_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaSafra cabecalhoRemessa = (CabecalhoRemessaSafra) cabecalhoRemessaParam; + + header.setValue("NumAgencia", formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5)); + header.setValue("NumContaCorrente", formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 8)); + header.setValue("DigContaCorrente", formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1)); + header.setValue("NomeEmpresa", formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("DataGravacao", formataDataToString(cabecalhoRemessa.getDataGravacao(), TAMANHO_DATA, DATA)); + header.setValue(SEQUENCIAL_REMESSA, formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 3)); + header.setValue(SEQUENCIAL_REGISTRO, formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record detalhe = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioSafra titulo = (DetalheObrigatorioSafra) tituloParam; + + detalhe.setValue("CpfCnpj", formatarValorPorTamanho(titulo.getCpfCnpj().toString(), 2)); + detalhe.setValue("NumCpfCnpj", formatarValorPorTamanho(titulo.getNumCpfCnpj(), 14)); + detalhe.setValue("NumAgencia", formatarValorPorTamanho(titulo.getNumAgencia(), 5)); + detalhe.setValue("NumContaCorrente", formatarValorPorTamanho(titulo.getNumContaCorrente(), 8)); + detalhe.setValue("DigContaCorrente", formatarValorPorTamanho(titulo.getDigContaCorrente(), 1)); + detalhe.setValue("NossoNumero", formatarValorPorTamanho(titulo.getNossoNumero(), 9)); + detalhe.setValue("IdentificacaoTitulo", formatarValorPorTamanho(titulo.getIdBoletoFechamento(), 10)); + detalhe.setValue("Vencimento", formataDataToString(titulo.getVencimento(), TAMANHO_DATA, DATA)); + detalhe.setValue("Valor", titulo.getValor()); + detalhe.setValue("NumAgenciaCobranca", formatarValorPorTamanho(titulo.getNumAgencia(), 5)); + detalhe.setValue("EspecieDeTitulo", formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + detalhe.setValue("Aceite", titulo.getAceite().getValue()); + detalhe.setValue("Emissao", formataDataToString(titulo.getDataEmissao(), TAMANHO_DATA, DATA)); + detalhe.setValue("Instrucao1", formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + detalhe.setValue("Instrucao2", formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + detalhe.setValue("JurosDeMora", titulo.getJurosDeMora()); + detalhe.setValue("DataMulta", formataDataToString(titulo.getDataMulta(), TAMANHO_DATA, DATA)); + detalhe.setValue("PercentualMulta", titulo.getPercMulta() ); + detalhe.setValue("DataLimiteDesconto", formataDataToString(titulo.getDataLimiteDesconto(), TAMANHO_DATA, DATA)); + detalhe.setValue("ValorDesconto", titulo.getValorDesconto()); + detalhe.setValue("ValorIOF", titulo.getValorIOF()); + detalhe.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + detalhe.setValue("TipoInscricaoPagador", formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2)); + detalhe.setValue("NumeroInscricaoPagador", formatarValorPorTamanho(titulo.getNumeroInscricaoPagador(), 14)); + detalhe.setValue("NomePagador", formatarValorPorTamanho(titulo.getNomePagador(), 40)); + detalhe.setValue("EnderecoPagador", formatarValorPorTamanho(titulo.getEnderecoPagador(), 30)); + detalhe.setValue("BairroPagador", formatarValorPorTamanho(titulo.getBairroPagador(), 10)); + detalhe.setValue("CepPagador", formatarValorPorTamanho(titulo.getCepPagador(), 8)); + detalhe.setValue("CidadePagador", formatarValorPorTamanho(titulo.getCidadePagador(), 15)); + detalhe.setValue("EstadoPagador", formatarValorPorTamanho(titulo.getEstadoPagador(), 2)); + detalhe.setValue("SacadorAvalista", formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + detalhe.setValue(SEQUENCIAL_REMESSA, formatarValorPorTamanho(titulo.getNumeroSequencialRemessa().toString(), 3)); + detalhe.setValue(SEQUENCIAL_REGISTRO, formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(detalhe); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + RodapeRemessaSafra rodape = (RodapeRemessaSafra) trailler; + + trailer.setValue("QtdTitulos", formatarValorPorTamanho(rodape.getQtdTitulos().toString(), 8)); + trailer.setValue("ValorTotal", formatarValorPorTamanhoZeroEsquerda(rodape.getValorTotalTitulos().toString().replace(".", ""), 15)); + trailer.setValue(SEQUENCIAL_REMESSA, formatarValorPorTamanho(rodape.getNumeroSequencialRemessa().toString(), 3)); + trailer.setValue(SEQUENCIAL_REGISTRO, formatarValorPorTamanho(rodape.getNumeroSequencialRegistro().toString(), 6)); + + getFlatFile().addRecord(trailer); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException(SOMENTE_CLASSE_DE_RETORNO); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java new file mode 100644 index 000000000..d985923cf --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderFlatFile.java @@ -0,0 +1,165 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.santander.CabecalhoRemessaSantander; +import com.rjconsultores.ventaboletos.blocos.santander.DetalheObrigatorioSantander; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class SantanderFlatFile extends AbstractFlatFile implements RemessaInterface { + + private static BigDecimal valorTotal = BigDecimal.ZERO; + private static Integer quantidadeRegistro = 0; + + public SantanderFlatFile() { + super(BancoLayout.SANTANDER_400_Envio); + valorTotal = BigDecimal.ZERO; + quantidadeRegistro = 0; + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("Header"); + + CabecalhoRemessaSantander cabecalhoRemessa = (CabecalhoRemessaSantander) cabecalhoRemessaParam; + + header.setValue("CodigoDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa().toString(), 20)); + header.setValue("NomeCedente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("CodigoTransmissao", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoTransmissao().toString(), 20)); + header.setValue("DataGravacao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy")); + header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7)); + header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 6)); + + quantidadeRegistro = quantidadeRegistro + 1; + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo"); + + DetalheObrigatorioSantander titulo = (DetalheObrigatorioSantander) tituloParam; + + transacaoTitulos.setValue("TipoInscricao", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricao().toString(), 2)); + transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14)); + transacaoTitulos.setValue("CodigoTransmissao", FormataUtil.formatarValorPorTamanho(titulo.getCodigoTransmissao().toString(), 20)); + transacaoTitulos.setValue("NumControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumControleDoParticipante(), 25)); + transacaoTitulos.setValue("NossoNumeroComDigito", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumeroComDigito(), 8)); + transacaoTitulos.setValue("Carteira", FormataUtil.formatarValorPorTamanho(titulo.getCarteira(), 3)); + transacaoTitulos.setValue("MultaPercentual", titulo.getPercentualMulta()); + transacaoTitulos.setValue("JurosDeMora", FormataUtil.formatarValorPorTamanho(titulo.getValorAtraso(), 13)); + transacaoTitulos.setValue("Agencia", FormataUtil.formatarValorPorTamanho(titulo.getAgencia(), 4)); + transacaoTitulos.setValue("DVAgencia", FormataUtil.formatarValorPorTamanho(titulo.getDvAgencia(), 1)); + transacaoTitulos.setValue("CodigoEmpresa", FormataUtil.formatarValorPorTamanho(titulo.getCodigoEmpresa(), 7)); + transacaoTitulos.setValue("ContaCorrente", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 7)); + transacaoTitulos.setValue("DvConta", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + transacaoTitulos.setValue("ContaCobrancaBeneficiario", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente(), 8)); + transacaoTitulos.setValue("DvContaCobrancaBeneficiario", FormataUtil.formatarValorPorTamanho(titulo.getDvConta(), 1)); + + transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8)); + + transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento().toString(), 25)); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Valor", titulo.getValor()); + transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2)); + transacaoTitulos.setValue("NumeroInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricao().toString(), 14)); + transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaCobradora(), 4)); + transacaoTitulos.setValue("DVAgenciaCobradora", FormataUtil.formatarValorPorTamanho(titulo.getDvAgencia(), 1)); + + transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy")); + transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2)); + transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2)); + transacaoTitulos.setValue("JurosDeMora", titulo.getValorAtraso()); +// transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataData(titulo.getDataLimiteDesconto())); + transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto()); + transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF()); + transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido()); + transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado(), 40)); + transacaoTitulos.setValue("EnderecoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado(), 12)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("ComplementoCepSacado", FormataUtil.formatarValorPorTamanho(titulo.getComplementoCepSacado().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2)); + transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30)); + transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6)); + transacaoTitulos.setValue("Complemento", FormataUtil.formatarValorPorTamanho(titulo.getContacorrente().substring(titulo.getContacorrente().length()-1, titulo.getContacorrente().length()).concat(titulo.getDvConta()),2)); + + valorTotal = valorTotal.add(titulo.getValor()); + quantidadeRegistro = quantidadeRegistro + 1; + + DadosBoleto dadosBoleto = titulo.getDadosBoleto(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto)); + } + }catch(UnsupportedOperationException e){ } + + RateioDeCredito rateioDeCredito = titulo.getRateioDeCredito(); + + try{ + if(dadosBoleto != null){ + transacaoTitulos.addInnerRecord(createRateioDeCredito(rateioDeCredito)); + } + }catch(UnsupportedOperationException e){ } + + getFlatFile().addRecord(transacaoTitulos); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + Record trailer = getFlatFile().createRecord("Trailler"); + + trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6)); + trailer.setValue("QuantidadeRegistro",quantidadeRegistro+1); + trailer.setValue("ValorTotal", valorTotal); + + getFlatFile().addRecord(trailer); + + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java new file mode 100644 index 000000000..2df118e7a --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SantanderProcessaRetorno.java @@ -0,0 +1,136 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.apache.commons.lang.StringUtils; +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class SantanderProcessaRetorno extends AbstractFlatFile implements RetornoInteface { + + protected SantanderProcessaRetorno() { + super(BancoLayout.SANTANDER_400_Retorno); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected void createTrailler(RodapeRemessa trailler) { + throw new UnsupportedOperationException("Somente classe de Envio."); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + + CabecalhoRetorno cabecalhoRetorno = new CabecalhoRetorno(); + String codEmpresa = header.getValue("CodigoDaEmpresa"); + String numeroDoAvisoBancario = header.getValue("NumeroDoAvisoBancario"); + + cabecalhoRetorno.setCodEmpresa(codEmpresa); + cabecalhoRetorno.setNumeroDoAvisoBancario(numeroDoAvisoBancario); + + return cabecalhoRetorno; + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + + List retornos = new ArrayList(); + + for (Record record : registrosDeTransacoes) { +/* + DetalheRetorno detalheRetorno = new DetalheRetorno(); + + String numeroControleDoParticipante = record.getValue("NumeroControleDoParticipante"); + String codigoDeOcorrencia = record.getValue("CodigoDeOcorrencia"); + String codigoDeMotivo1 = record.getValue("CodigoDeMotivo1"); + String codigoDeMotivo2 = record.getValue("CodigoDeMotivo2"); + String codigoDeMotivo3 = record.getValue("CodigoDeMotivo3"); + String codigoDeMotivo4 = record.getValue("CodigoDeMotivo4"); + String codigoDeMotivo5 = record.getValue("CodigoDeMotivo5"); + + OcorrenciaSantander ocorrencia = OcorrenciaSantander.getInstance(codigoDeOcorrencia); + detalheRetorno.setNumeroControleDoParticipante(numeroControleDoParticipante); + detalheRetorno.setOcorrencia(ocorrencia); + + if(checkIsNullOrBlank(codigoDeMotivo1)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo1); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo2)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo2); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo3)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo3); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo4)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo4); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + if(checkIsNullOrBlank(codigoDeMotivo5)){ + MotivoOcorrenciaSantander motivoOcorrencia = MotivoOcorrenciaSantander.getInstance(ocorrencia, codigoDeMotivo5); + detalheRetorno.addMotivoOcorrencia(motivoOcorrencia); + } + + retornos.add(detalheRetorno); +*/ + } + + return retornos; + } + + private boolean checkIsNullOrBlank(String value){ + + if(value != null){ + return StringUtils.isEmpty(value); + } + + return Boolean.TRUE; + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + + RodapeRetorno rodapeRetorno = new RodapeRetorno(); + + + return rodapeRetorno; + + + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java new file mode 100644 index 000000000..8cf8c1d7f --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/layouts/SicoobFlatFile.java @@ -0,0 +1,199 @@ +package com.rjconsultores.ventaboletos.layouts; + +import java.util.Collection; +import java.util.List; + +import org.jrimum.texgit.Record; + +import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa; +import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno; +import com.rjconsultores.ventaboletos.blocos.DadosBoleto; +import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio; +import com.rjconsultores.ventaboletos.blocos.DetalheRetorno; +import com.rjconsultores.ventaboletos.blocos.RateioDeCredito; +import com.rjconsultores.ventaboletos.blocos.RodapeRemessa; +import com.rjconsultores.ventaboletos.blocos.RodapeRetorno; +import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoLoteRemessaSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.CabecalhoRemessaSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioDadosPagadorSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.DetalheObrigatorioSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaLoteSicoob; +import com.rjconsultores.ventaboletos.blocos.sicoob.RodapeRemessaSicoob; +import com.rjconsultores.ventaboletos.enuns.BancoLayout; +import com.rjconsultores.ventaboletos.utils.FormataUtil; + +public class SicoobFlatFile extends AbstractFlatFile implements RemessaInterface { + + public SicoobFlatFile() { + super(BancoLayout.SICOOB_240_Envio); + } + + @Override + protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) { + + Record header = getFlatFile().createRecord("HeaderArquivo"); + + CabecalhoRemessaSicoob cabecalhoRemessa = (CabecalhoRemessaSicoob) cabecalhoRemessaParam; + + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCpfCnpj().toString(), 1)); + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumCpfCnpj(), 14)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getDigContaCorrente(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30)); + header.setValue("NumRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoRemessa.getNumRemessa().toString(), 6)); + header.setValue("DataGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyyyy")); + header.setValue("HoraGeracao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "HHmmss")); + + getFlatFile().addRecord(header); + + createHeaderLote(cabecalhoRemessa.getCabecalhoLoteRemessaSicoob()); + } + + private void createHeaderLote(CabecalhoLoteRemessaSicoob cabecalhoLote) { + + Record header = getFlatFile().createRecord("HeaderLote"); + + if(cabecalhoLote.getLoteServico() != null){ + header.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getLoteServico().toString(), 4)); + } + + header.setValue("NumCpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumCpfCnpj(), 14)); + header.setValue("CpfCnpj", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getCpfCnpj().toString(), 1)); + header.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumAgencia(), 5)); + header.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigAgencia(), 1)); + header.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNumContaCorrente(), 12)); + header.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getDigContaCorrente(), 1)); + header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoLote.getNomeEmpresa(), 30)); + header.setValue("NumeroRemessa", FormataUtil.formatarValorPorTamanhoZeroEsquerda(cabecalhoLote.getNumeroRemessa().toString(), 8)); + header.setValue("DataGeracao", FormataUtil.formataData(cabecalhoLote.getDataGeracao())); +// header.setValue("DataCredito", FormataUtil.formataData(cabecalhoLote.getDataCredito())); + + getFlatFile().addRecord(header); + } + + @Override + protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoP"); + + DetalheObrigatorioSicoob dadosTitulos = (DetalheObrigatorioSicoob) tituloParam; + + if(dadosTitulos.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getLoteServico().toString(), 4)); + } + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumSeqRegistro().toString(), 5)); + transacaoTitulos.setValue("NumAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumAgencia(), 5)); + transacaoTitulos.setValue("DigAgencia", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigAgencia(), 1)); + transacaoTitulos.setValue("NumContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumContaCorrente(), 12)); + transacaoTitulos.setValue("DigContaCorrente", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDigContaCorrente(), 1)); + transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumero(), 20)); + transacaoTitulos.setValue("CodCarteira",dadosTitulos.getCodCarteira()); + transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNumeroDoDocumento(), 15)); + transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(dadosTitulos.getVencimento())); + transacaoTitulos.setValue("Valor", dadosTitulos.getValor()); + transacaoTitulos.setValue("Emissao", FormataUtil.formataData(dadosTitulos.getEmissao())); + transacaoTitulos.setValue("CodMora", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodMora().toString(), 1)); + transacaoTitulos.setValue("DataMora", FormataUtil.formataDataToString(dadosTitulos.getDataMora(), "00000000")); + transacaoTitulos.setValue("JurosDeMora", dadosTitulos.getJurosDeMora()); + transacaoTitulos.setValue("CodigoDesconto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoDesconto().toString(), 1)); + transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(dadosTitulos.getDataDesconto(), "00000000")); + transacaoTitulos.setValue("DescontoConcedido", dadosTitulos.getDescontoConcedido()); + transacaoTitulos.setValue("IOF_Devido", dadosTitulos.getIofDevido()); + transacaoTitulos.setValue("AbatimentoConcedido", dadosTitulos.getAbatimentoConcedido()); + transacaoTitulos.setValue("NossoNumeroEmp", FormataUtil.formatarValorPorTamanho(dadosTitulos.getNossoNumeroEmp(), 25)); + transacaoTitulos.setValue("CodigoProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getCodigoProtesto().toString(), 1)); + transacaoTitulos.setValue("DiasProtesto", FormataUtil.formatarValorPorTamanho(dadosTitulos.getDiasProtesto().toString(), 2)); + transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosTitulos.getNumeroContrato().toString(), 10)); + + getFlatFile().addRecord(transacaoTitulos); + createTransacaoTitulosSeguimentoQ(transacaoTitulos, dadosTitulos.getDetalheObrigatorioDadosPagadorSicoob()); + + } + + private void createTransacaoTitulosSeguimentoQ(Record recordFather, DetalheObrigatorioDadosPagadorSicoob dadosPagadorSicoobl) { + + Record transacaoTitulos = getFlatFile().createRecord("SegmentoQ"); + + if(dadosPagadorSicoobl.getLoteServico() != null){ + transacaoTitulos.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getLoteServico().toString(), 4)); + } + + transacaoTitulos.setValue("NumSeqRegistro", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getNumeroSequencialRegistro().toString(), 5)); + transacaoTitulos.setValue("TipoInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getTipoInscricaoSacado().toString(), 1)); + transacaoTitulos.setValue("NumeroInscricaoSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNumeroInscricaoSacado(), 15)); + transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNomeSacado(), 40)); + transacaoTitulos.setValue("LogradouroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getLogradouroSacado(), 40)); + transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getBairroSacado(), 15)); + transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getCepSacado().toString(), 5)); + transacaoTitulos.setValue("SufixoCep", FormataUtil.formatarValorPorTamanhoZeroEsquerda(dadosPagadorSicoobl.getSufixoCep().toString(), 3)); + transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCidade(), 15)); + transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCveEstado(), 2)); + + try{ + transacaoTitulos.setValue("CodBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getCodBancoCorresp().toString(), 3)); + }catch(Exception e){ + + } + transacaoTitulos.setValue("NossoNumeroNoBancoCorresp", FormataUtil.formatarValorPorTamanho(dadosPagadorSicoobl.getNossoNumeroNoBancoCorresp(), 20)); + + recordFather.addInnerRecord(transacaoTitulos); + } + + @Override + protected void createTrailler(RodapeRemessa trailler){ + + RodapeRemessaSicoob rodapeRemessaSicoob = (RodapeRemessaSicoob) trailler; + + createTraillerLote(rodapeRemessaSicoob.getRodapeRemessaLoteSicoob()); + + Record traillerArquivo = getFlatFile().createRecord("TraillerArquivo"); + + traillerArquivo.setValue("QtdLotes", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdLotes().toString(), 6)); + traillerArquivo.setValue("QtdArquivos", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdArquivos().toString(), 6)); + traillerArquivo.setValue("QtdContas", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaSicoob.getQtdContas().toString(), 6)); + + getFlatFile().addRecord(traillerArquivo); + } + + private void createTraillerLote(RodapeRemessaLoteSicoob rodapeRemessaLoteSicoob) { + + + Record traillerArquivo = getFlatFile().createRecord("TraillerLote"); + + if(rodapeRemessaLoteSicoob.getLoteServico() != null){ + traillerArquivo.setValue("LoteServico", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getLoteServico().toString(), 4)); + } + + traillerArquivo.setValue("QtdTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getQtdRegistros().toString(), 6)); + traillerArquivo.setValue("ValorTitulosSimples", FormataUtil.formatarValorPorTamanhoZeroEsquerda(rodapeRemessaLoteSicoob.getValorRegistros().toString(), 15) ); + + getFlatFile().addRecord(traillerArquivo); + } + + @Override + protected CabecalhoRetorno readHeader(Record header) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected List readTransacaoTitulos(Collection registrosDeTransacoes) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected RodapeRetorno readTrailler(Record trailler) { + throw new UnsupportedOperationException("Somente classe de Retorno."); + } + + @Override + protected Record createDadosBoletos(DadosBoleto boleto) { + throw new UnsupportedOperationException("Não necessário..."); + } + + @Override + protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) { + throw new UnsupportedOperationException("Não necessário..."); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java new file mode 100644 index 000000000..ac303db22 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/FormataUtil.java @@ -0,0 +1,90 @@ +package com.rjconsultores.ventaboletos.utils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class FormataUtil { + + public static String formatarValorPorTamanho(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + return value; + } + + public static String formatarValorPorTamanho(Integer valor, int tamanho) { + + String value = valor == null ? "" : valor.toString(); + + return formatarValorPorTamanho(value, tamanho) ; + } + + public static String formatarValorPorTamanho(BigDecimal valor, int tamanho) { + + String value = valor == null ? "" : valor.toString(); + + return formatarValorPorTamanho(value, tamanho) ; + } + + public static String formatarValorPorTamanhoZeroEsquerda(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + while(value.length() < tamanho){ + value = "0" + value; + } + + return value; + } + + public static String formatarValorPorTamanhoZeroDireita(String value, int tamanho) { + + value = value == null ? "" : value; + + if(value.length() > tamanho){ + value = value.substring(0, tamanho); + } + + while(value.length() < tamanho){ + value = value + "0"; + } + + return value; + } + + public static Date formataData(Date data) { + + if(data == null){ + data = new Date(); + } + + return data; + } + + public static String formataDataToString(Date data, String defaultValue) { + + if(data == null){ + return defaultValue; + } + + return new SimpleDateFormat("ddMMyyyy").format(data); + } + + public static String formataDataToString(Date data, String defaultValue, String pattern) { + + if(data == null){ + return defaultValue; + } + + return new SimpleDateFormat(pattern).format(data); + } +} diff --git a/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java new file mode 100644 index 000000000..a6e67cd49 --- /dev/null +++ b/GeneradorBoletosCNAB/src/com/rjconsultores/ventaboletos/utils/NossoNumeroUtils.java @@ -0,0 +1,397 @@ +package com.rjconsultores.ventaboletos.utils; + +import java.math.BigInteger; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.enuns.BancoLayout; + +public class NossoNumeroUtils { + + private static final String ZERO_7 = "0000000"; + private static final String ZERO_8 = "00000000"; + private static final String ZERO_9 = "000000000"; + private static final String ZERO_10 = "0000000000"; + private static final String ZERO_11 = "00000000000"; + + /** + * Devolve o nosso numero do Bradesco com o DV calculado (Tamanho 12)... + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossonumeroBradesco(Integer numCarteira, BigInteger nossoNumero){ + return StringUtils.right(ZERO_11 + nossoNumero, 11) + dacBradesco(numCarteira, nossoNumero); + } + + /** + * Devolve o nosso numero do Itau com o DV calculado (Tamanho 9)... + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossoNumeroItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){ + return StringUtils.right(ZERO_8 + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero); + } + + public static String calcularNossoNumeroSantander(BigInteger nossoNumero){ + return StringUtils.right(ZERO_7 + nossoNumero, 7)+dacSantander( nossoNumero.toString() ); + } + + public static String calcularNossoNumeroSicoob(Integer numCooperativa, Integer codCliente, BigInteger nossoNumero){ + return StringUtils.right(ZERO_7 + nossoNumero, 7)+dacSicoob(numCooperativa, codCliente, nossoNumero.toString() ); + } + + public static String calcularNossoNumeroMercantil(Integer agencia, BigInteger nossoNumero){ + return StringUtils.right(ZERO_10 + nossoNumero, 10)+dacMercantil( agencia, nossoNumero ); + } + + public static String calcularNossoNumeroSafra(BigInteger nossoNumero){ + return StringUtils.right(ZERO_9 + nossoNumero, 9)+dacSafra( nossoNumero ); + } + + /** + * Devolve o nosso numero do BB com o DV calculado (Tamanho 20)... + * @param convenioBanco + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String calcularNossoNumeroBancoBrasil(Long convenioBanco, Integer numCarteira, BigInteger nossoNumero){ + + int controllConvenioNossoNumero = 0; + int controllNossoNumero = 0; + boolean dvControll = Boolean.TRUE; + + if(convenioBanco < 10000){ + controllConvenioNossoNumero = 4; + controllNossoNumero = 7; + }else if(convenioBanco < 1000000){ + controllConvenioNossoNumero = 6; + controllNossoNumero = 5; + }else{ + controllConvenioNossoNumero = 7; + controllNossoNumero = 10; + dvControll = Boolean.FALSE; + } + + String nC = StringUtils.right(ZERO_7 + convenioBanco, controllConvenioNossoNumero); + String nN = StringUtils.right(ZERO_10 + nossoNumero, controllNossoNumero); + + String base = nC + nN; + + return dvControll ? StringUtils.left(base + dacBB(base, numCarteira), 20) : base; + } + + /** + * Calcula do DV para o Bradesco + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dacBradesco(Integer numCarteira, BigInteger nossoNumero){ + + int multiplicadores[] = {2,7,6,5,4,3,2,7,6,5,4,3,2}; + int multiplicandos[] = new int[13]; + + String carteira = StringUtils.right("00" + numCarteira, 2); + String nNumero = StringUtils.right(ZERO_11 + nossoNumero, 11); + + String base = carteira + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + String d = base.charAt(i) + ""; + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + dac += v; + } + + dac = 11 - (dac % 11); + + return (dac == 11) ? "0" :(dac == 10) ? "P" : dac + ""; + + } + + public static String dacSicoob(Integer numCooperativa, Integer codCliente, String nossoNumero){ + + int multiplicadores[] = {3,1,9,7,3,1,9,7,3,1,9,7,3,1,9,7,3,1,9,7,3}; + int multiplicandos[] = new int[21]; + + String cooperativa = StringUtils.right("0000" + numCooperativa, 4); + String cliente = StringUtils.right(ZERO_10 + codCliente, 10); + String nNumero = StringUtils.right(ZERO_7 + nossoNumero, 7); + + String base = cooperativa + cliente + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + String d = base.charAt(i) + ""; + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + dac += v; + } + + dac = dac % 11; + + if( dac == 0 || dac == 1) + return "0"; + + return (11 - dac) + ""; + + } + + public static String dacMercantil(Integer agencia, BigInteger nossoNumero){ + + int multiplicadores[] = {7,6,5,4,3,2,9,8,7,6,5,4,3,2}; + + String agenciaformatada = StringUtils.right("0000" + agencia, 4); + String nNumero = StringUtils.right(ZERO_11 + nossoNumero, 10); + + String base = agenciaformatada + nNumero; + + int soma = 0; + + for (int i = 0; i < base.length(); i++) { + String d = base.charAt(i)+""; + soma = Integer.valueOf(d) * multiplicadores[i]; + } + + int mod = soma % 11; + + if( mod == 0 || mod == 1 ) { + return "0"; + } + + return String.valueOf(11 - mod); + } + + public static String dacSafra(BigInteger nossoNumero){ + + int[] multiplicadores = {2,1,2,1,2,1,2,1,2}; + int[] multiplicandos = new int[20]; + + String base = StringUtils.right(ZERO_9 + nossoNumero, 9); + + for (int i = 0; i < 9; i++) { + String d = base.charAt(i) + ""; + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + + if(v < 10){ + dac += v; + }else{ + dac += 1 + (v - 10); + } + } + + dac = 10 - (dac % 10); + + return dac == 10 ? "0" : dac+""; + } + + /** + * Calcula do DV para o Itau + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dacItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){ + + + int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2}; + int multiplicandos[] = new int[20]; + + String agencia = StringUtils.right("0000" + codAgencia, 4); + String conta = StringUtils.right("00000" + numConta, 5); + String carteira = StringUtils.right("000" + numCarteira, 3); + String nNumero = StringUtils.right(ZERO_8 + nossoNumero, 8); + + String base = agencia + conta + carteira + nNumero; + + for (int i = 0; i < multiplicandos.length; i++) { + + String d = base.charAt(i) + ""; + + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + + if(v < 10){ + dac += v; + }else{ + dac += 1 + (v - 10); + } + } + + dac = 10 - (dac % 10); + + return dac == 10 ? "0" : dac+""; + } + + /** + * Calcula do DV para o Banco do Brasil + * @param nossoNumero + * @param numCarteira + * @return + */ + public static String dacBB(String nossoNumero, Integer numCarteira){ + + int multiplicador = 9; + + int soma = 0; + + for (int i = nossoNumero.length() - 1; i >= 0 ; i--) { + + int current = Integer.parseInt(nossoNumero.charAt(i) + ""); + + current = current * multiplicador; + soma = soma + current; + multiplicador--; + + if(multiplicador == 2){ + multiplicador = 9; + } + } + + int mod = soma % 11; + + if(mod == 10){ + return "X"; + } + + return mod + ""; + } + + public static String dacSantander(String nossoNumero){ + + int multiplicador = 2; + + int soma = 0; + + for (int i = nossoNumero.length() - 1; i >= 0 ; i--) { + + int current = Integer.parseInt(nossoNumero.charAt(i) + ""); + + current = current * multiplicador; + soma = soma + current; + multiplicador++; + + if(multiplicador == 2){ + multiplicador = 9; + } + } + + int mod = soma % 11; + + if(mod == 10){ + return "1"; + }else if( mod == 0 || mod == 1 ) { + return "0"; + } + + return String.valueOf(11 - mod); + } + + /** + * Calcula do DV para o Itau (Numero Documento) + * @param codAgencia + * @param numConta + * @param numCarteira + * @param nossoNumero + * @return + */ + public static String dvDocumentoItau(Integer numeroDoc){ + + + int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2}; + int multiplicandos[] = new int[10]; + + String doc = StringUtils.right(ZERO_10 + numeroDoc, 10); + + String base = doc; + + for (int i = 0; i < multiplicandos.length; i++) { + + String d = base.charAt(i) + ""; + + multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i]; + } + + int dac = 0; + + for(Integer v : multiplicandos){ + + if(v < 10){ + dac += v; + }else{ + dac += 1 + (v - 10); + } + } + + dac = 10 - (dac % 10); + + return dac + ""; + } + + public static boolean validaNossoNumero(String nossoNumero, BancoLayout bancoLayout){ + + if(BancoLayout.BRADESCO_400_Envio.equals(bancoLayout) && nossoNumero.length() == 13 ){ + return Boolean.TRUE; + } + + if(BancoLayout.ITAU_400_Envio.equals(bancoLayout) && nossoNumero.length() == 10 ){ + return Boolean.TRUE; + } + + if(BancoLayout.MERCANTIL_400_Envio.equals(bancoLayout) && nossoNumero.length() == 12 ){ + return Boolean.TRUE; + } + + if(BancoLayout.SANTANDER_400_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){ + return Boolean.TRUE; + } + + if(BancoLayout.SAFRA_400_Envio.equals(bancoLayout) && nossoNumero.length() == 10 ){ + return Boolean.TRUE; + } + + if(BancoLayout.BB_240_Envio.equals(bancoLayout) && (nossoNumero.length() == 13 || nossoNumero.length() == 17)){ + return Boolean.TRUE; + } + + if(BancoLayout.SICOOB_240_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){ + return Boolean.TRUE; + } + + if(BancoLayout.CAIXA_400_Envio.equals(bancoLayout) && ( nossoNumero.length() == 10 && nossoNumero.startsWith("3"))){ + return Boolean.TRUE; + } + + return Boolean.FALSE; + } + + public static void main(String[] args) { + + System.out.println( calcularNossoNumeroSafra( new BigInteger("422979999") )); + System.out.println(dacItau(5435, 34787, 109, new BigInteger("81059"))); //codAgencia, numConta, numCarteira, nossoNumero + + } +} \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB240Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB240Envio.txg.xml new file mode 100644 index 000000000..2b58f2dcc --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB240Envio.txg.xml @@ -0,0 +1,188 @@ + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB400Envio.txg.xml new file mode 100644 index 000000000..c541e689f --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBBCNAB400Envio.txg.xml @@ -0,0 +1,108 @@ + + + + Arquivo-Remessa_BBCNAB240 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Envio.txg.xml new file mode 100644 index 000000000..0a494878c --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Envio.txg.xml @@ -0,0 +1,144 @@ + + + + Arquivo-Remessa_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 2 - Mensagem (opcional) + 3 - Rateio de Crédito (opcional) + 7 – Sacador Avalista (opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml new file mode 100644 index 000000000..8c6260b61 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400Retorno.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml new file mode 100644 index 000000000..95d014107 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaLer.txg.xml @@ -0,0 +1,123 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml new file mode 100644 index 000000000..4e5b40c5c --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutBradescoCNAB400RetornoParaReEscrever.txg.xml @@ -0,0 +1,67 @@ + + + + + Arquivo-Retorno_BradescoCNAB400 + Version 08, Published: 2009/09/30 + + + Arquivo para ler e reescrever ocorrencias e motivos. + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutCaixaCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutCaixaCNAB400Envio.txg.xml new file mode 100644 index 000000000..9260e7e3a --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutCaixaCNAB400Envio.txg.xml @@ -0,0 +1,104 @@ + + + + + Arquivo-Remessa_CaixaCNAB400 + Version 67.126 v021micro, Published: 02/04/2021 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Envio.txg.xml new file mode 100644 index 000000000..2434cf05b --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Envio.txg.xml @@ -0,0 +1,123 @@ + + + + Arquivo-Remessa_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Registro Header do Arquivo + 1 - Registro de Detalhe (Obrigatório) + 1 - Registro de Transação (Opcional – Cheque Devolvido) + 4 - Registro de Detalhe (Opcional) + 5 - Registro de Detalhe (Opcional) + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Retorno.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutItauCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutMercantilCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutMercantilCNAB400Envio.txg.xml new file mode 100644 index 000000000..8eeb2cd91 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutMercantilCNAB400Envio.txg.xml @@ -0,0 +1,113 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutSafraCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutSafraCNAB400Envio.txg.xml new file mode 100644 index 000000000..b85f31a17 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutSafraCNAB400Envio.txg.xml @@ -0,0 +1,109 @@ + + + + Arquivo-Remessa_SafraCNAB400 + Published: 2023/12/15 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 9 - Trailler (Papel de finalizador de lote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Envio.txg.xml new file mode 100644 index 000000000..1469832fe --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Envio.txg.xml @@ -0,0 +1,119 @@ + + + + + Arquivo-Remessa_SantanderCNAB400 + Version 2,0, Published: outubro/2009 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB REMESSA, REGISTROS: + + 0 = Header + 1 = Registro de Movimento + 2 = Mensagem Variável por Título (Opcional) + 4 = Mensagem Variável por Título (Opcional) + 5 = Mensagem Variável por Título (Opcional) + 6 = Mensagem Variável por Título (Opcional) + 7 = Mensagem Variável por Título (Opcional) + 9 = Trailler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml new file mode 100644 index 000000000..963c17dd1 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutSantanderCNAB400Retorno.txg.xml @@ -0,0 +1,130 @@ + + + + + Arquivo-Retorno_ItauCNAB400 + Version 01, Published: 2012/05/25 + + Layout para Cobrança. + + Arquivo texto - padrão CNAB + Meio de Registro Transmissão de Dados + Descrição de Registro - Tamanho 400 Bytes + Organização Sequencial + + ARQUIVO FORMATO CNAB RETORNO, REGISTROS: + + 0 - Header Label + 1 - Cobrança - Transação + 3 - Rateio de Crédito (opcional) + 9 - Trailler (Papel de finalizador de lote e totalizador) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GeneradorBoletosCNAB/src/layouts/LayoutSicoobCNAB240Envio.txg.xml b/GeneradorBoletosCNAB/src/layouts/LayoutSicoobCNAB240Envio.txg.xml new file mode 100644 index 000000000..0c3436de8 --- /dev/null +++ b/GeneradorBoletosCNAB/src/layouts/LayoutSicoobCNAB240Envio.txg.xml @@ -0,0 +1,185 @@ + + + + Arquivo-Remessa_SicoobCNAB240 + Version 01, Published: 2020/03/18 + + Layout para Cobrança. + Arquivo texto - padrão CNAB Meio de Registro Transmissão de Dados Descrição de Registro - Tamanho 240 Bytes + Organização Sequencial ARQUIVO FORMATO CNAB REMESSA, + REGISTROS: + 0 - Header do Arquivo + 1 - Header do Lote + 3 - Segmento P + 3 - Segmento Q + 5 - Trailler Lote + 9 - Trailler Arquivo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file