Merge branch 'GeneradorBoletosCNAB-join'

master
Fabio 2024-10-31 14:19:31 -03:00
commit 592b5fb8cf
96 changed files with 11180 additions and 0 deletions

10
GeneradorBoletosCNAB/.gitignore vendored 100644
View File

@ -0,0 +1,10 @@
/.classpath
/.project
/.settings
/target
/settings.xml
/dist
/.factorypath
/*.BASE.xml
/*.LOCAL.xml
/*.REMOTE.xml

View File

@ -0,0 +1,78 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>GeneradorBoletosCNAB</artifactId>
<version>1.8.1</version>
<name>GeneradorBoletosCNAB</name>
<distributionManagement>
<repository>
<id>rj-releases</id>
<url>http://52.5.53.15:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>ISO-8859-1</encoding>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>br.com.rjconsultores</groupId>
<artifactId>jrimum-bopepo</artifactId>
<version>1.1.1</version>
<exclusions>
<exclusion>
<groupId>sun-jaxb-rj</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>sun-jaxb-rj</groupId>
<artifactId>jaxb-impl</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

@ -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<ArquivoRemessaItemInteface> 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<ArquivoRemessaItemInteface> getItens() {
return itens;
}
public void setItens(List<ArquivoRemessaItemInteface> itens) {
this.itens = itens;
}
public void addItem(ArquivoRemessaItemInteface item) {
if(this.itens == null){
this.itens = new ArrayList<ArquivoRemessaItemInteface>();
}
item.getCabecalhoRemessa().setNumeroSequencialRegistro(itens.size() + 1);
this.itens.add(item);
}
}

View File

@ -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<DetalheObrigatorio> titulos;
protected RodapeRemessa rodapeRemessa;
public CabecalhoRemessa getCabecalhoRemessa() {
return cabecalhoRemessa;
}
public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) {
this.cabecalhoRemessa = cabecalhoRemessa;
}
public List<DetalheObrigatorio> 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();
}
}

View File

@ -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<DetalheObrigatorio> getTitulos();
public RodapeRemessa getRodapeRemessa();
}

View File

@ -0,0 +1,26 @@
package com.rjconsultores.ventaboletos;
import java.util.ArrayList;
import java.util.List;
public class ArquivoRetorno {
private List<ArquivoRetornoItemInteface> itens;
public List<ArquivoRetornoItemInteface> getItens() {
return itens;
}
public void setItens(List<ArquivoRetornoItemInteface> itens) {
this.itens = itens;
}
public void addItem(ArquivoRetornoItemInteface item) {
if(this.itens == null){
this.itens = new ArrayList<ArquivoRetornoItemInteface>();
}
this.itens.add(item);
}
}

View File

@ -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<DetalheRetorno> 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<DetalheRetorno>();
}
this.titulos.add(titulo);
}
@Override
public void setRodapeRetorno(RodapeRetorno rodapeRetorno) {
this.rodapeRetorno = rodapeRetorno;
}
@Override
public CabecalhoRetorno getCabecalhoRetorno() {
return cabecalhoRetorno;
}
@Override
public List<DetalheRetorno> getTitulos() {
return titulos;
}
@Override
public RodapeRetorno getRodapeRetorno() {
return rodapeRetorno;
}
}

View File

@ -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<DetalheRetorno> getTitulos();
public RodapeRetorno getRodapeRetorno();
}

View File

@ -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();
}
}
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -0,0 +1,9 @@
package com.rjconsultores.ventaboletos.blocos;
public interface RodapeRemessa {
Integer getNumeroSequencialRegistro();
void setNumeroSequencialRegistro(Integer numeroSequencialRegistro);
}

View File

@ -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;
}
}

View File

@ -0,0 +1,5 @@
package com.rjconsultores.ventaboletos.blocos;
public class RodapeRetorno {
}

View File

@ -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<DetalheObrigatorio>();
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;
}
}

View File

@ -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
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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<MotivoOcorrenciaBradesco> 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<MotivoOcorrenciaBradesco> getMotivoOcorrencias() {
return motivoOcorrencias;
}
public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) {
if(this.motivoOcorrencias == null){
this.motivoOcorrencias = new ArrayList<MotivoOcorrenciaBradesco>();
}
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<MotivoOcorrenciaBradesco> 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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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; //<!--Enviar 4 Brancos -->
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; //<!-- A = Aceite N = Não 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; //<!--Enviar 10 Brancos -->
private String logradouroSacado;
private String bairroSacado;
private String cepSacado;
private String cidade;
private String estado;
private String sacadorAvalista;
//private String brancos3; //<!--Enviar 4 Brancos -->
private Date dataDeMora;
private Integer prazo;
//private String brancos4; //<!--Enviar 1 Branco -->
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();
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<MotivoOcorrenciaBradesco> 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<MotivoOcorrenciaBradesco> getMotivoOcorrencias() {
return motivoOcorrencias;
}
public void addMotivoOcorrencia(MotivoOcorrenciaBradesco motivoOcorrencias) {
if(this.motivoOcorrencias == null){
this.motivoOcorrencias = new ArrayList<MotivoOcorrenciaBradesco>();
}
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<MotivoOcorrenciaBradesco> 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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheObrigatorio>();
}
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;
}
}

View File

@ -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
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<String> getSuportados(){
List<String> 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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
/**
* <p>
* Implementação base para classes utilizadoras do <a href="http://www.jrimum.org/texgit"> JRimum-Texgit </a>.
* </p>
*
* @author <a href="http://gilmatryx.googlepages.com/">Gilmar P.S.L.</a>
*/
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<Record> flatFile;
/**
* Linhas do Arquivo
*/
private List<String> lines = new ArrayList<String>();
/**
* 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<Record> 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);
}
/**
* <p>
* Lê um arquivo do layout da instancia.
* </p>
*
* @param lines
* linhas do arquivo
*/
@SuppressWarnings("unchecked")
public <FF extends AbstractFlatFile> FF read(final List<String> lines) {
Collections.checkNotEmpty(lines, "Linhas ausentes!");
try {
getFlatFile().read(lines);
} catch (Exception e) {
e.printStackTrace();
}
return (FF) this;
}
/**
* <p>
* Lê um arquivo do layout da instancia com enconding UTF-8.
* </p>
*
* @param file
* arquivo texto
*/
@SuppressWarnings("unchecked")
public <FF extends AbstractFlatFile> 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;
}
/**
* <p>
* Lê um arquivo do layout da instancia.
* </p>
*
* @param file
* - Arquivo texto
* @param encoding
* - Econding em que o arquivo será lido
*/
@SuppressWarnings("unchecked")
public <FF extends AbstractFlatFile> 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;
}
/**
* <p>
* Escreve um arquivo do layout da instancia com enconding UTF-8.
* </p>
*
* @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;
}
/**
* <p>
* Escreve um arquivo do layout da instancia.
* </p>
* @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!"));
}
}
/**
* <p>
* Escreve um arquivo do layout da instancia.
* </p>
* @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<String> 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<Record> registrosDeTransacoes = getFlatFile().getRecords(
"TransacaoTitulo");
List<DetalheRetorno> 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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes);
protected abstract RodapeRetorno readTrailler(Record trailler);
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
// TODO Auto-generated method stub
return null;
}
@Override
protected RodapeRetorno readTrailler(Record trailler) {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
@Override
protected RodapeRetorno readTrailler(Record trailler) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
List<DetalheRetorno> retornos = new ArrayList<DetalheRetorno>();
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;
}
}

View File

@ -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;
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> 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...");
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> 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...");
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
@Override
protected RodapeRetorno readTrailler(Record trailler) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
}

View File

@ -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<String> gerarRemessa(File arquivoRemessaFisico, ArquivoRemessa arquivoRemessa) throws FileNotFoundException, IOException;
}

View File

@ -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;
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> 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...");
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
@Override
protected RodapeRetorno readTrailler(Record trailler) {
throw new UnsupportedOperationException("Somente classe de Retorno.");
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
List<DetalheRetorno> retornos = new ArrayList<DetalheRetorno>();
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;
}
}

View File

@ -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<DetalheRetorno> readTransacaoTitulos(Collection<Record> 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...");
}
}

View File

@ -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);
}
}

View File

@ -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
}
}

View File

@ -0,0 +1,188 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic"> <FlatFile>
<layout>
<name>Arquivo-Remessa_BBCNAB240</name>
<version>Version 01, Published: 2012/05/25</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="HeaderArquivo" description="Header do arquivo">
<GroupOfFields>
<IdType name="CodComp" value="001" length="3" position="1"/>
<Field name="LoteServico" value="0000" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="0" length="1"/>
<Field name="UsoExclusivo" length="9" blankAccepted="true"/>
<Field name="CpfCnpj" length="1" type="INTEGER"/>
<Field name="NumCpfCnpj" length="14" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NumConvenio" length="9" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="CobrancaCedente" length="4" value="0014"/>
<Field name="NumCarteira" length="2" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NumVarCarteira" length="3" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="Brancos1" length="2" blankAccepted="true"/>
<Field name="NumAgencia" length="5" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" type="CHARACTER"/>
<Field name="NumContaCorrente" length="12" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="CHARACTER"/>
<Field name="DigAgenciaConta" length="1" blankAccepted="true"/>
<Field name="NomeEmpresa" length="30" type="CHARACTER"/>
<Field name="NomeBanco" value="BANCO DO BRASIL S.A." length="30"/>
<Field name="Brancos3" length="10" blankAccepted="true"/>
<Field name="RemessaRetorno" value="1" type="INTEGER" length="1"/>
<Field name="DataGeracao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="HoraGeracao" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NumRemessa" type="INTEGER" length="6" padding="ZERO_LEFT"/>
<Field name="NumeroVersaoLayout" length="3" value="083"/>
<Field name="DensidadeArquivo" type="CHARACTER" length="5" padding="ZERO_LEFT"/>
<Field name="Brancos4" length="20" blankAccepted="true"/>
<Field name="Brancos5" length="20" blankAccepted="true"/>
<Field name="Brancos6" length="29" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="HeaderLote" description="Header do lote">
<GroupOfFields>
<IdType name="CodComp" value="001" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="1" length="1"/>
<Field name="TipoOperacao" value="R" length="1"/>
<Field name="TipoServico" value="01" length="2"/>
<Field name="UsoExclusivo" length="2" blankAccepted="true"/>
<Field name="NumeroVersaoLote" length="3" value="042" blankAccepted="true"/>
<Field name="UsoExclusivo1" length="1" blankAccepted="true"/>
<Field name="CpfCnpj" length="1" type="INTEGER"/>
<Field name="NumCpfCnpj" length="15" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NumConvenio" length="9" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="CobrancaCedente" length="4" value="0014"/>
<Field name="NumCarteira" length="2" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NumVarCarteira" length="3" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="RemessaTeste" length="2"/>
<Field name="NumAgencia" length="5" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" type="CHARACTER"/>
<Field name="NumContaCorrente" length="12" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="CHARACTER"/>
<Field name="DigAgenciaConta" length="1" type="CHARACTER" blankAccepted="true"/>
<Field name="NomeEmpresa" length="30" type="CHARACTER"/>
<Field name="Mensagem1" length="40" blankAccepted="true"/>
<Field name="Mensagem2" length="40" blankAccepted="true"/>
<Field name="NumeroRemessa" length="8" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="DataGeracao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="DataCredito" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT" blankAccepted="true"/>
<Field name="UsoExclusivo2" length="33" type="CHARACTER" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="SegmentoP" repeatable="true" description="Dados do título">
<GroupOfFields>
<IdType name="IDReg" value="001" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="3" length="1"/>
<Field name="NumSeqRegistro" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="CodSegmento" length="1" value="P"/>
<!-- Enviar fixo P -->
<Field name="Brancos1" length="1" value=" " blankAccepted="true"/>
<!-- Enviar 1 Branco -->
<Field name="CodigoRemessa" length="2" value="01"/>
<Field name="NumAgencia" length="5" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" type="CHARACTER"/>
<Field name="NumContaCorrente" length="12" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="CHARACTER"/>
<Field name="DigAgenciaConta" length="1" blankAccepted="true"/>
<Field name="NossoNumero" length="20" type="CHARACTER"/>
<Field name="CodCarteira" length="1" type="INTEGER" value="7"/>
<Field name="FormaCadTituloBanco" length="1" value="0"/>
<Field name="TipoDocumento" length="1" value="0"/>
<Field name="IdentEmissaoBloqueto" length="1" value="0"/>
<Field name="IdentDistribuicao" length="1" value="0"/>
<Field name="NumeroDoDocumento" length="15" type="CHARACTER"/>
<Field name="Vencimento" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="Valor" length="15" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="AgenciaCobradora" length="5" value="00000" padding="ZERO_LEFT"/>
<Field name="DigAgenciaCobradora" value=" " length="1" blankAccepted="true"/>
<Field name="EspecieDeTitulo" length="2" padding="ZERO_LEFT" value="02"/>
<Field name="Aceite" length="1" type="CHARACTER"/>
<!-- A = Aceite N = Não Aceite -->
<Field name="Emissao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="CodMora" length="1" type="INTEGER"/>
<Field name="DataMora" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="JurosDeMora" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="CodigoDesconto" type="INTEGER" length="1" value="0"/>
<Field name="DataDesconto" length="8" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DescontoConcedido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="IOF_Devido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="NossoNumeroEmp" type="CHARACTER" length="25"/>
<Field name="CodigoProtesto" length="1" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="DiasProtesto" length="2" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="CodigoBaixa" length="1" type="INTEGER" value="0"/>
<Field name="DiasBaixa" length="3" type="INTEGER" value="0" padding="ZERO_LEFT"/>
<Field name="Moeda" length="2" type="INTEGER" value="09" padding="ZERO_LEFT"/>
<Field name="NumeroContrato" length="10" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoExclusivo" length="1" blankAccepted="true"/>
</GroupOfFields>
<GroupOfInnerRecords>
<Record name="SegmentoQ" repeatable="true" description="Dados do Pagador">
<GroupOfFields>
<IdType name="IDReg" value="001" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="3" length="1"/>
<Field name="NumSeqRegistro" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="CodSegmento" length="1" value="Q"/>
<!-- Enviar fixo Q -->
<Field name="Brancos1" length="1" value=" " blankAccepted="true"/>
<!-- Enviar 1 Branco -->
<Field name="CodigoRemessa" length="2" value="01"/>
<Field name="TipoInscricaoSacado" length="1" type="INTEGER"/>
<Field name="NumeroInscricaoSacado" length="15" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NomeSacado" length="40" type="CHARACTER"/>
<Field name="LogradouroSacado" length="40" type="CHARACTER"/>
<Field name="BairroSacado" length="15" type="CHARACTER"/>
<Field name="CepSacado" length="5" type="INTEGER"/>
<Field name="SufixoCep" length="3" type="INTEGER"/>
<Field name="Cidade" length="15" type="CHARACTER"/>
<Field name="Estado" length="2" type="CHARACTER"/>
<Field name="TipoSacadorAvalista" length="1" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="SacadorAvalista" length="15" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NomeSacadorAvalista" length="40" type="CHARACTER"/>
<Field name="CodBancoCorresp" length="3" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NossoNumeroNoBancoCorresp" length="20"/>
<Field name="UsoExclusivo" length="8"/>
</GroupOfFields>
</Record>
</GroupOfInnerRecords>
</Record>
<Record name="TraillerLote">
<GroupOfFields>
<IdType name="IDReg" value="001" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4"/>
<Field name="TipoRegistro" value="5" length="1"/>
<Field name="UsoExclusivo1" length="9" blankAccepted="true"/>
<Field name="QtdRegistros" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoExclusivo2" length="217" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="TraillerArquivo">
<GroupOfFields>
<IdType name="IDReg" value="001" length="3" position="1"/>
<Field name="LoteServico" value="9999" length="4"/>
<Field name="TipoRegistro" value="9" length="1"/>
<Field name="UsoExclusivo1" length="9" blankAccepted="true"/>
<Field name="QtdLotes" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdArquivos" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdContas" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoExclusivo2" length="205"/>
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,108 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_BBCNAB240</name>
<version>Version 01, Published: 2012/05/25</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IdentificacaoRegistro" value="0" length="1" position="1" />
<Field name="TipoOperacao" length="1" padding="ZERO_LEFT" />
<Field name="IdentificacaoExtensoTipoOperacao" value="REMESSA" length="7" />
<Field name="IdentificacaoTipoServico" length="2" padding="ZERO_LEFT" />
<Field name="IdentificacaoExtensoTipoServico" length="8" />
<Field name="ComplementoRegistro" length="7" />
<Field name="PrefixoAgencia" length="4" padding="ZERO_LEFT" />
<Field name="DigitoVerificadorAgencia" length="1"/>
<Field name="NumeroContaCorrente" length="8" padding="ZERO_LEFT" />
<Field name="DigitoVerificadorContaCorrente" length="1" />
<Field name="Filler" length="6" />
<Field name="NomeCedente" length="30" />
<Field name="BB" length="18" value="001BANCODOBRASIL" />
<Field name="DataGravacao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="SequencialRemessa" length="7" />
<Field name="Filler" length="22" />
<Field name="NumeroConvencioLider" length="7" padding="ZERO_LEFT" />
<Field name="Filler" length="258" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true" description="Registro de Transação - Tipo 1">
<GroupOfFields>
<IdType name="IdentiFicacaoRegistroDetalhe" value="1" length="1" position="1" />
<Field name="TipoInscricaoCedente" length="2" padding="ZERO_LEFT" />
<Field name="NumeroCpfCnpjCedente" length="14" padding="ZERO_LEFT"/>
<Field name="PrefixoAgencia" length="4" padding="ZERO_LEFT" />
<Field name="DigitoVerificadorAgencia" length="1" />
<Field name="NumeroContaCorrenteCedente" length="8" padding="ZERO_LEFT" />
<Field name="DigitoVerificadorConta" length="1" />
<Field name="NumeroCovenioCobrancaCedente" length="7" padding="ZERO_LEFT" />
<Field name="CodigoControleEmpresa" length="25"/>
<Field name="NossoNumero" length="17" padding="ZERO_LEFT" />
<Field name="NumeroPrestacao" length="2" padding="ZERO_LEFT" />
<Field name="GrupoValor" length="2" padding="ZERO_LEFT"/>
<Field name="Filler" length="3" />
<Field name="IndicativoMensagemSacador" length="1" />
<Field name="PrefixoTitulo" length="3" />
<Field name="VariacaoCarteira" length="3" padding="ZERO_LEFT" />
<Field name="ContaCaucao" length="1" padding="ZERO_LEFT" />
<Field name="NumeroBordero" length="6" padding="ZERO_LEFT" />
<Field name="TipoCobranca" length="5"/>
<Field name="CarteiraCobranca" length="2" padding="ZERO_LEFT" />
<Field name="Comando" length="2" padding="ZERO_LEFT" />
<Field name="NumeroTituloAtribuidoCedente" length="10" />
<Field name="DataVencimento" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="ValorTitulo" length="11" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="NumeroBanco" length="3" padding="ZERO_LEFT" />
<Field name="PrefixoAgenciaCobradora" length="4" padding="ZERO_LEFT" />
<Field name="DigitoVerificadorPrefixoAgenciaCobradora" length="1" />
<Field name="EspecieTitulo" length="2" padding="ZERO_LEFT" />
<Field name="AceiteTitulo" length="1" />
<Field name="DataEmissao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="InstrucaoCodificada" length="2" padding="ZERO_LEFT" />
<Field name="InstrucaoCodificada" length="2" padding="ZERO_LEFT" />
<Field name="JurosMoraDiaAtraso" length="11" padding="ZERO_LEFT" />
<Field name="DataLimite" length="6" padding="ZERO_LEFT" type="DATE" format="DATE_DDMMYY" />
<Field name="ValorDesconto" length="11" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorIof" length="11" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorAbatimento" length="11" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoSacado" length="2" padding="ZERO_LEFT" />
<Field name="NumeroCnpjCpfSacado" length="14" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="37" />
<Field name="Complemento" length="3" />
<Field name="EnderecoSacado" length="40" />
<Field name="BairroSacado" length="12" />
<Field name="CepEnderecoSacado" length="8" padding="ZERO_LEFT" />
<Field name="CidadeSacado" length="15" />
<Field name="UfCidadeSacado" length="2" />
<Field name="Observacao" length="40" />
<Field name="NumeroDiasProtesto" length="2" />
<Field name="ComplementoRegistro" length="1" />
<Field name="SequencialRegistro" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="CodigoDoRegistro" value="9" length="1" position="1" />
<Field name="Filler" length="393" />
<Field name="NumeroSequencialRegistro" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,144 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_BradescoCNAB400</name>
<version>Version 08, Published: 2009/09/30</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRemessa" value="1" length="1" />
<Field name="LiteralRemessa" value="REMESSA" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="CodigoDaEmpresa" length="20" type="CHARACTER" padding="ZERO_LEFT" />
<Field name="NomeDaEmpresa" length="30" />
<Field name="CodigoCompensacao" value="237" length="3" />
<Field name="NomeBanco" value="BRADESCO" length="15" />
<!--<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" /> -->
<Field name="DataGravacaoArquivo" length="6" type="CHARACTER"/>
<Field name="Filler1" length="8" />
<Field name="IdentificacaoSistema" value="MX" length="2" />
<Field name="NumeroSequencialRemessa" length="7" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Filler2" length="277" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
<!--<SequencialNumber name="sequencia" type="INTEGER" length="6" position="15" padding="ZERO_LEFT" />-->
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="AgenciaDebito" length="5" />
<Field name="DigitoAgenciaDebito" length="1" />
<Field name="RazaoContaCorrente" length="5" />
<Field name="ContaCorrente" length="7" />
<Field name="DigitoContaCorrrente" length="1" />
<Field name="Filler0" length="1" type="INTEGER" value="0" />
<Field name="Carteira" type="INTEGER" length="3" padding="ZERO_LEFT"/>
<Field name="Agencia" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="Contacorrente" type="INTEGER" length="7" padding="ZERO_LEFT"/>
<Field name="DvConta" type="INTEGER" length="1" padding="ZERO_LEFT"/>
<Field name="NumeroControleDoParticipante" length="25" />
<Field name="BancoCamaraCompensacao" length="3" padding="ZERO_LEFT"/>
<Field name="Multa" length="1" padding="ZERO_LEFT"/>
<Field name="PercentualMulta" type="BIGDECIMAL" length="4" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="NossoNumeroComDigito" length="12" />
<Field name="DescontoBonificacaoDia" length="10" padding="ZERO_LEFT"/>
<Field name="EmissaoBoleto" length="1" value="2" />
<Field name="DebitoAuto" length="1" value="N" />
<Field name="IdentificacaoOperacaoBanco" length="10" />
<Field name="RateioCredito" length="1" />
<Field name="AvisoDebitoAutomatico" length="1" />
<Field name="QtdPagamento" length="2" type="INTEGER" blankAccepted="true"/>
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="01" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" type="CHARACTER" />
<!-- <Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" /> -->
<Field name="Vencimento" length="6" type="CHARACTER" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="BancoCobranca" value="0" length="3" padding="ZERO_LEFT" />
<Field name="AgenciaAgencia" type="INTEGER" value="0" length="5" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" />
<Field name="Identificacao" length="1" type="CHARACTER" value="N" />
<!-- <Field name="Emissao" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" /> -->
<Field name="Emissao" length="6" type="CHARACTER"/>
<Field name="Instrucao1" length="2" type="CHARACTER" />
<Field name="Instrucao2" length="2" type="CHARACTER" />
<Field name="ValorAtraso" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataLimiteDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="ValorDesconto" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorIOF" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorAbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoPagador" length="2" type="INTEGER" />
<Field name="NumeroInscricaoPagador" length="14" type="INTEGER" />
<Field name="NomePagador" length="40" type="CHARACTER" />
<Field name="EnderecoCompletoPagador" length="40" type="CHARACTER" />
<Field name="Mensagem1" length="12" type="CHARACTER" />
<Field name="CEP_Prefixo" length="5" />
<Field name="CEP_Sufixo" length="3" type="CHARACTER" />
<Field name="Sacador_Avalista_Mensagem2" length="60" type="CHARACTER" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
<!--
<GroupOfInnerRecords>
<Record name="DadosBoleto">
<GroupOfFields>
<IdType name="IDReg" value="2" length="1" position="1" />
<Field name="Mensagem1" length="80" />
<Field name="Mensagem2" length="80" />
<Field name="Mensagem3" length="80" />
<Field name="Mensagem4" length="80" />
<Field name="Filler" length="45" />
<Field name="Carteira" length="3" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Agencia" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ContaCorrente" length="7" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DigitoCC" length="1" type="CHARACTER" />
<Field name="NossoNumero" length="11" padding="ZERO_LEFT" />
<Field name="DigitoNN" length="1" type="CHARACTER" />
<SequencialNumber name="sequencia" type="INTEGER" length="6" position="13" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
Nao trabalhamos com rateio, mas se estiver no arquivo mostre esses dados
<Record name="RateioDeCredito">
<GroupOfFields>
<IdType name="IDReg" value="3" length="1" position="1" />
<Field name="IdentificacaoEmpresa" length="16" />
<Field name="NossoNumero" length="12" padding="ZERO_LEFT" />
<Field name="DadosIgnorados" length="371" />
</GroupOfFields>
</Record>
</GroupOfInnerRecords>
-->
</Record>
<Record name="Trailler" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="Filler" length="393" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
<!-- <SequencialNumber name="sequencia" type="INTEGER" length="6" position="3" padding="ZERO_LEFT" /> -->
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,123 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Retorno_BradescoCNAB400</name>
<version>Version 08, Published: 2009/09/30</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRetorno" value="1" length="1" />
<Field name="LiteralRetorno" value="RETORNO" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="CodigoDaEmpresa" length="20" type="STRING" padding="ZERO_LEFT" />
<Field name="NomeDaEmpresa" length="30" />
<Field name="CodigoCompensacao" value="237" length="3" />
<Field name="NomeBanco" value="BRADESCO" length="15" />
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Filler1" length="8" />
<Field name="NumeroDoAvisoBancario" length="5" />
<Field name="Filler2" length="266" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Filler3" length="9" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="DadosIgnorados1" length="36" />
<Field name="NumeroControleDoParticipante" length="25" />
<Field name="Filler1" length="8" padding="ZERO_LEFT" />
<Field name="NossoNumeroComDigito" length="12" />
<Field name="DadosIgnorados2" length="25" />
<Field name="Carteira" length="1" type="INTEGER" value="0" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DataDaOcorrencia" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" />
<Field name="NossoNumeroComDigito-Repetido" length="20" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoCompensacaoBancoRecebedor" value="0" length="3" padding="ZERO_LEFT" />
<Field name="PrefixoDaAgenciaRecebedora" type="INTEGER" value="0" length="5" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" />
<Field name="DespesasDeCobranca" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrasDespesasCustasDeProtesto" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosOperacaoEmAtraso" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="IOF_Devido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorPago" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosDeMora" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrosCreditos" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Filler2" length="2" />
<Field name="MotivoConfirmacaoDeProtesto" length="1" type="CHARACTER" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" blankAccepted="true" />
<Field name="OrigemDoPagamento" length="3" padding="ZERO_LEFT" />
<Field name="DadosIgnorados4" length="14" />
<!-- Campo Inteligente tamanho 10 ex: [0005712341]= rjeicao 00, rejeicao 05, rejeicao 71, .. -->
<Field name="CodigoDeMotivo1" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo2" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo3" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo4" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo5" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="Filler3" length="40" />
<Field name="NumeroDoCartorio" length="2" />
<Field name="NumeroDoProtocolo" length="10" />
<Field name="Filler4" length="14" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="DadosIgnorados1" length="16" />
<Field name="QuantidadeDeTitulosEmCobranca" length="8" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValorTotalEmCobranca" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DadosIgnorados2" length="18" />
<Field name="QtdEntradaConfirmadaC02" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValEntradaConfirmadaC02" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValTotLiquidacaoC06" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdLiquidacaoC06" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValLiquidacaoC06" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdBaixaC09C10" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValBaixaC09C10" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdAbatimentoCanceladoC13" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValAbatimentoCanceladoC13" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdVencimentoAlteradoC14" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValVencimentoAlteradoC14" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdAbatimentoConcedidoC12" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValAbatimentoConcedidoC12" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdConfirmacaoInstProtestoC19" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValConfirmacaoInstProtestoC19" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Filler1" length="174" />
<Field name="DadosIgnorados2" length="23" />
<Field name="Filler2" length="9" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,123 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Retorno_BradescoCNAB400</name>
<version>Version 08, Published: 2009/09/30</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRetorno" value="1" length="1" />
<Field name="LiteralRetorno" value="RETORNO" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="CodigoDaEmpresa" length="20" type="STRING" padding="ZERO_LEFT" />
<Field name="NomeDaEmpresa" length="30" />
<Field name="CodigoCompensacao" value="237" length="3" />
<Field name="NomeBanco" value="BRADESCO" length="15" />
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Filler1" length="8" />
<Field name="NumeroDoAvisoBancario" length="5" />
<Field name="Filler2" length="266" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Filler3" length="9" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="DadosIgnorados1" length="36" />
<Field name="NumeroControleDoParticipante" length="25" />
<Field name="Filler1" length="8" padding="ZERO_LEFT" />
<Field name="NossoNumeroComDigito" length="12" />
<Field name="DadosIgnorados2" length="25" />
<Field name="Carteira" length="1" type="INTEGER" value="0" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DataDaOcorrencia" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" />
<Field name="NossoNumeroComDigito-Repetido" length="20" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoCompensacaoBancoRecebedor" value="0" length="3" padding="ZERO_LEFT" />
<Field name="PrefixoDaAgenciaRecebedora" type="INTEGER" value="0" length="5" padding="ZERO_LEFT" blankAccepted="true"/>
<Field name="EspecieDeTitulo" length="2" />
<Field name="ValorDaTarifa" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrasDespesas" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosDoDesconto" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="IOF_DoDesconto" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorDoAbatimento" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorRecebido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosDeMora" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrosRecebimentos" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Filler2" length="2" />
<Field name="MotivoConfirmacaoDeProtesto" length="1" type="CHARACTER" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" blankAccepted="true" />
<Field name="OrigemDoPagamento" blankAccepted="true" length="3" type="INTEGER" value="0" padding="ZERO_LEFT"/>
<Field name="DadosIgnorados4" length="14" />
<!-- Campo Inteligente tamanho 10 ex: [0005712341]= rjeicao 00, rejeicao 05, rejeicao 71, .. -->
<Field name="CodigoDeMotivo1" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo2" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo3" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo4" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo5" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="Filler3" length="40" />
<Field name="NumeroDoCartorio" length="2" />
<Field name="NumeroDoProtocolo" length="10" />
<Field name="Filler4" length="14" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="DadosIgnorados1" length="16" />
<Field name="QuantidadeDeTitulosEmCobranca" length="8" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValorTotalEmCobranca" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="DadosIgnorados2" length="18" />
<Field name="QtdEntradaConfirmadaC02" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValEntradaConfirmadaC02" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="ValTotLiquidacaoC06" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="QtdLiquidacaoC06" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValLiquidacaoC06" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="QtdBaixaC09C10" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValBaixaC09C10" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="QtdAbatimentoCanceladoC13" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValAbatimentoCanceladoC13" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="QtdVencimentoAlteradoC14" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValVencimentoAlteradoC14" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="QtdAbatimentoConcedidoC12" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValAbatimentoConcedidoC12" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="QtdConfirmacaoInstProtestoC19" length="5" type="INTEGER" padding="ZERO_LEFT" value="0" />
<Field name="ValConfirmacaoInstProtestoC19" type="BIGDECIMAL" length="12" format="DECIMAL_DD" padding="ZERO_LEFT" value="0" />
<Field name="Filler1" length="174" />
<Field name="DadosIgnorados2" length="23" />
<Field name="Filler2" length="9" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,67 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Retorno_BradescoCNAB400</name>
<version>Version 08, Published: 2009/09/30</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="DadosIgnorados" length="399" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="DadosIgnorados0" length="19" />
<!-- Zeros/Carteira/Agência/Conta Corrente -->
<Field name="DadosBancariosNFM" length="17" />
<Field name="NumeroControleDoParticipante" length="25" />
<Field name="Filler1" length="8" padding="ZERO_LEFT" />
<Field name="NossoNumeroComDigito" length="12" />
<Field name="DadosIgnorados1" length="26" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DadosIgnorados2" length="185" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" blankAccepted="true" />
<Field name="DadosIgnorados3" length="17" />
<Field name="CodigoDeMotivo1" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo2" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo3" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo4" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="CodigoDeMotivo5" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DadosIgnorados4" length="72" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="DadosIgnorados" length="399" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,104 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_CaixaCNAB400</name>
<version>Version 67.126 v021micro, Published: 02/04/2021</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" >
<GroupOfFields>
<IdType name="CodigoDoRegistro" length="1" value="0" position="1" />
<Field name="IdentificacaoRemessa" length="1" value="1" />
<Field name="LiteralRemessa" length="7" value="REMESSA" />
<Field name="CodigoServico" length="2" value="01" padding="ZERO_LEFT"/>
<Field name="LiteralServico" length="15" value="COBRANCA" />
<Field name="AgenciaBeneficiario" length="4" />
<Field name="Beneficiario" length="7" />
<Field name="Filler" length="9" />
<Field name="NomeEmpresa" length="30" />
<Field name="CodigoBanco" length="3" value="104" padding="ZERO_LEFT" />
<Field name="NomeBanco" length="15" value="C ECON FEDERAL" />
<Field name="DataGravacao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="VersaoLayout" length="3" />
<Field name="Filler" length="286" />
<Field name="NumeroSequencialRemessa" length="5" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" length="6" value="000001" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="CodigoRegistro" length="1" value="1" position="1" />
<Field name="InscricaoEmpresa" length="2" value="02" />
<Field name="NumeroInscricao" length="14" padding="ZERO_LEFT" />
<Field name="Filler" length="3" />
<Field name="Beneficiario" length="7" />
<Field name="IdEmissao" length="1" value="2" />
<Field name="IdPostagem" length="1" value="0" />
<Field name="TaxaPermanencia" length="2" value="00" />
<Field name="UsoEmpresa" length="25" />
<Field name="NossoNumero" length="17" padding="ZERO_LEFT" />
<Field name="Filler" length="2" />
<Field name="UsoLivre" length="1" value="1" />
<Field name="TipoJuros" length="1" value="1" />
<Field name="DataJuros" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="CodigoDesconto" length="1" value="0" />
<Field name="Filler" length="22" />
<Field name="Carteira" length="2" value="01" />
<Field name="CodigoOcorrencia" length="2" value="01" />
<Field name="NumeroDoDocumento" length="10" padding="ZERO_LEFT"/>
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="ValorTitulo" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoBanco" length="3" value="104"/>
<Field name="AgenciaCobradora" length="5" padding="ZERO_LEFT" />
<Field name="EspecieTitulo" length="2" value="01" />
<Field name="Aceite" length="1" value="N"/>
<Field name="DataEmissao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="PrimeiraInstrucao" length="2" value="01" />
<Field name="SegundaInstrucao" length="2" value="00" />
<Field name="ValorJuros" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataDesconto" length="6" padding="ZERO_LEFT" />
<Field name="ValorDesconto" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorIOF" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorAbatimento" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoSacado" length="2" padding="ZERO_LEFT" />
<Field name="DocumentoSacado" length="14" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="40" />
<Field name="EnderecoSacado" length="40" />
<Field name="BairroSacado" length="12" />
<Field name="CepSacado" length="8" padding="ZERO_LEFT" />
<Field name="CidadeSacado" length="15" />
<Field name="EstadoSacado" length="2" />
<Field name="DataMulta" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="ValorMulta" length="10" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="SacadorAvalista" length="22" />
<Field name="TerceiraInstrucao" length="2" value="00" />
<Field name="DiasProtesto" length="2" padding="ZERO_LEFT" value="07" />
<Field name="Moeda" length="1" value="1" />
<Field name="NumeroSequencialRegistro" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="CodigoDoRegistro" length="1" value="9" position="1" />
<Field name="Filler" length="393" />
<Field name="NumeroSequencialRegistro" length="6" padding="ZERO_LEFT"/>
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,123 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_ItauCNAB400</name>
<version>Version 01, Published: 2012/05/25</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRemessa" value="1" length="1" />
<Field name="LiteralRemessa" value="REMESSA" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="Agencia" length="4" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Zeros" value="00" length="2" />
<Field name="Conta" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DacConta" length="1" type="INTEGER" />
<Field name="Brancos1" length="8" blankAccepted="true" /><!--Enviar 8 Brancos -->
<Field name="NomeEmpresa" length="30" type="CHARACTER" />
<Field name="CodigoCompensacao" value="341" length="3" />
<Field name="NomeBanco" value="BANCO ITAU SA" length="15" />
<Field name="DataGeracao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Brancos2" length="294" blankAccepted="true" /><!--Enviar 294 Brancos -->
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
<!--<SequencialNumber name="sequencia" type="INTEGER" length="6" position="15" padding="ZERO_LEFT" />-->
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="CodigoInscricao" length="2" value="02" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroInscricao" length="14" type="INTEGER" /><!-- CNPJ EMPRESA -->
<Field name="Agencia" length="4" padding="ZERO_LEFT" type="INTEGER" />
<Field name="Zeros" value="00" length="2" />
<Field name="Conta" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DacConta" length="1" type="INTEGER" />
<Field name="Brancos1" length="4" type="CHARACTER" /><!--Enviar 4 Brancos -->
<Field name="InstrucaoAlegacao" length="4" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoDaEmpresa" length="25" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NossoNumero" length="8" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdMoeda" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="NrCarteira" length="3" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoDoBanco" length="21" type="CHARACTER" />
<Field name="CodigoCarteira" length="1" type="CHARACTER" value="I" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoCompensacaoBancoRecebedor" value="341" length="3" type="INTEGER" padding="ZERO_LEFT" />
<Field name="AgenciaCobradora" length="5" value="00000" type="INTEGER" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" type="CHARACTER" padding="ZERO_LEFT" />
<Field name="Aceite" length="1" type="CHARACTER" /><!-- A = Aceite N = Não Aceite -->
<Field name="Emissao" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Instrucao1" length="2" type="INTEGER" />
<Field name="Instrucao2" length="2" type="INTEGER" padding="ZERO_LEFT" />
<Field name="JurosDeMora" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="IOF_Devido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoSacado" length="2" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroInscricaoSacado" length="14" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="30" type="CHARACTER" />
<Field name="Brancos2" length="10" type="CHARACTER" /><!--Enviar 10 Brancos -->
<Field name="LogradouroSacado" length="40" type="CHARACTER" />
<Field name="BairroSacado" length="12" type="CHARACTER" />
<Field name="CepSacado" length="8" type="INTEGER" />
<Field name="Cidade" length="15" type="CHARACTER" />
<Field name="Estado" length="2" type="CHARACTER" />
<Field name="SacadorAvalista" length="30" type="CHARACTER" />
<Field name="Brancos3" length="4" type="CHARACTER" /><!--Enviar 4 Brancos -->
<Field name="DataDeMora" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Prazo" length="2" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Brancos4" length="1" type="CHARACTER" /><!--Enviar 1 Branco -->
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
<GroupOfInnerRecords>
<Record name="DetalheMulta">
<GroupOfFields>
<IdType name="IDReg" value="2" length="1" position="1" />
<Field name="CodigoMulta" length="1" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DataMulta" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT" />
<Field name="ValorMulta" length="13" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Brancos" length="371" type="CHARACTER" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfInnerRecords>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="Filler" length="393" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
<!-- <SequencialNumber name="sequencia" type="INTEGER" length="6" position="3" padding="ZERO_LEFT" /> -->
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,130 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Retorno_ItauCNAB400</name>
<version>Version 01, Published: 2012/05/25</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRetorno" value="2" length="1" />
<Field name="LiteralRetorno" value="RETORNO" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="Agencia" length="04" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Zeros" length="02" value="00" padding="ZERO_LEFT" />
<Field name="Conta" length="05" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DacConta" length="01" type="INTEGER" />
<Field name="Brancos1" type="STRING" length="08" blankAccepted="true" />
<Field name="NomeDaEmpresa" length="30" />
<Field name="CodigoCompensacao" value="341" length="3" />
<Field name="NomeBanco" value="BANCO ITAU SA" length="15" />
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Densidade" value="00000" length="5" />
<Field name="UnidadeDensidade" value="BPI" length="3" />
<Field name="NumeroSequencialRetorno" type="INTEGER" length="5" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Brancos1" type="STRING" length="275" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="CodigoInscricao" length="02" value = "02" /><!-- 01 = CPF 02 = CNPJ -->
<Field name="NumeroControleDoParticipante" type="STRING" length="14" />
<Field name="Agencia" length="4" type="INTEGER" />
<Field name="Zeros" length="2" value="00" />
<Field name="Conta" length="5" type="INTEGER" />
<Field name="DacConta" length="1" type="INTEGER" />
<Field name="Brancos1" length="8" type="STRING" blankAccepted="true" />
<Field name="UsoDaEmpresa" length="25" type="STRING" />
<Field name="NossoNumero" length="08" type="INTEGER" />
<Field name="Brancos2" length="12" type="STRING" blankAccepted="true" />
<Field name="NumCarteira" length="3" type="INTEGER" />
<Field name="NossoNumeroComDigito" length="08" type="INTEGER" />
<Field name="DacNossoNumero" length="1" type="INTEGER" />
<Field name="Brancos3" length="13" type="STRING" blankAccepted="true" />
<Field name="CodCarteira" length="1" type="CHARACTER" value="I" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DataDaOcorrencia" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" />
<Field name="NossoNumeroComDigito-Repetido" length="8" />
<Field name="Brancos4" length="12" type="STRING" blankAccepted="true" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoCompensacaoBancoRecebedor" value="0" length="3" padding="ZERO_LEFT" />
<Field name="PrefixoDaAgenciaRecebedora" type="INTEGER" value="0" length="4" padding="ZERO_LEFT" />
<Field name="DacDaAgenciaRecebedora" type="INTEGER" value="0" length="1" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" />
<Field name="DespesasDeCobranca" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Brancos5" length="26" type="STRING" blankAccepted="true" />
<Field name="IOF_Devido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorPago" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosDeMora" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrosCreditos" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="BoletoDDA" type="CHARACTER" length="1" />
<Field name="Brancos6" length="2" type="STRING" blankAccepted="true" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" blankAccepted="true" />
<Field name="CodInstrucaoCancelada" length="4" type="INTEGER" />
<Field name="Brancos7" length="6" type="STRING" blankAccepted="true" />
<Field name="Zeros" length="13" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="30" type="STRING" />
<Field name="Brancos8" length="23" type="STRING" blankAccepted="true" />
<Field name="CodAlegacaoDoSacado" length="8" type="STRING" />
<Field name="Brancos9" length="7" type="STRING" blankAccepted="true" />
<Field name="CodLiquidacao" length="02" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" length="1" value="9" position="1" />
<Field name="CodigoRetorno" length="1" value="2" />
<Field name="CodigoServico" length="2" value="01"/>
<Field name="CodigoBanco" length="3" value="341" />
<Field name="Brancos" length="10" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobSimples" length="8" type="INTEGER" />
<Field name="VlrTotalCobSimples" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobSimples" type="STRING" length="08"/>
<Field name="Brancos" length="10" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobVinculada" length="8" type="INTEGER" />
<Field name="VlrTotalCobVinculada" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobVinculada" type="STRING" length="08"/>
<Field name="Brancos" length="90" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobEscritural" length="8" type="INTEGER" />
<Field name="VlrTotalCobEscritural" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobEscrituraL" type="STRING" length="08"/>
<Field name="NumSeqRetorno" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="QtdRegDetalhe" type="INTEGER" length="8" padding="ZERO_LEFT" />
<Field name="ValTotArquivo" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Brancos" length="160" type="STRING" blankAccepted="true" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,113 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_SantanderCNAB400</name>
<version>Version 2,0, Published: outubro/2009</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" length="1" value="0" position="1" />
<Field name="IdentificacaoRemessa" length="1" value="1" />
<Field name="LiteralRemessa" length="7" value="REMESSA" />
<Field name="CodigoDeServico" length="2" value="01" />
<Field name="LiteralServico" length="8" value="COBRANCA" />
<Field name="Brancos" length="7" blankAccepted="true" />
<Field name="AgenciaOrigem" length="4" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Cliente" length="15" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Brancos" length="1" blankAccepted="true" />
<Field name="NomeDaEmpresa" length="30" type="CHARACTER" />
<Field name="CodigoBanco" length="3" value="389" />
<Field name="NomeBanco" length="15" value="BANCANTIL" />
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Brancos" length="281" blankAccepted="true" />
<Field name="Densidade" length="5" value="01600" />
<Field name="BPI" length="3" blankAccepted="true" />
<Field name="NumeroSequencialRegistro" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRemessa" length="6" value="000001" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" length="1" position="1" value="1"/>
<Field name="IndicadorMulta" length="2" value="00" />
<Field name="CodigoMulta" length="1" value="0" />
<Field name="MultaPercentual" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="MultaData" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Brancos1" length="5" type="CHARACTER" blankAccepted="true" />
<Field name="NumeroContrato" length="9" type="INTEGER" />
<Field name="IdentificacaoTitulo" length="25" type="CHARACTER" />
<Field name="AgenciaOrigem" length="4" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NossoNumero" length="10" type="INTEGER" />
<Field name="DigitoVerificador" length="1" type="INTEGER" />
<Field name="Brancos2" length="5" type="CHARACTER" blankAccepted="true" />
<Field name="CNPJ" length="15" type="INTEGER" />
<Field name="QuantidadeMoeda" length="10" type="INTEGER" />
<Field name="CodigoOperacao" length="1" value="1" />
<Field name="CodigoMovimentacao" length="2" type="INTEGER" />
<Field name="SeuNumero" length="10" type="INTEGER" />
<Field name="DataVencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="ValorTitulo" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoBanco" length="3" type="INTEGER" value="389"/>
<Field name="Agencia" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" type="CHARACTER" padding="ZERO_LEFT" />
<Field name="Aceite" length="1" type="CHARACTER" value="N" />
<Field name="Emissao" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Instrucao1" length="2" type="CHARACTER" />
<Field name="Instrucao2" length="2" type="CHARACTER" />
<Field name="JurosDeMora" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataLimiteDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="IOF_Devido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoSacado" length="2" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroInscricaoSacado" length="14" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="40" type="CHARACTER" />
<Field name="EnderecoSacado" length="40" type="CHARACTER" />
<Field name="BairroSacado" length="12" type="CHARACTER" />
<Field name="CEPPrefixo" length="5" type="INTEGER" />
<Field name="CEPSufixo" length="3" type="INTEGER" />
<Field name="Cidade" length="15" type="CHARACTER" />
<Field name="Estado" length="2" type="CHARACTER" />
<Field name="SacadorAvalista" length="30" type="CHARACTER" />
<Field name="Brancos3" length="12" type="CHARACTER" blankAccepted="true" />
<Field name="CodigoMoeda" length="1" type="INTEGER" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" length="1" value="9" position="1" />
<Field name="Filler" length="393" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,109 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_SafraCNAB400</name>
<version>Published: 2023/12/15</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" length="1" value="0" position="1" />
<Field name="IdentificacaoRemessa" length="1" value="1" />
<Field name="LiteralRemessa" length="7" value="REMESSA" />
<Field name="CodigoDeServico" length="2" value="01" />
<Field name="LiteralServico" length="8" value="COBRANCA" />
<Field name="Filler1" length="6" />
<Field name="NumAgencia" length="5" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NumContaCorrente" length="8" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="Filler2" length="7" />
<Field name="NomeEmpresa" length="30" />
<Field name="CodigoCompensacao" length="3" value="422" />
<Field name="NomeBanco" length="11" value="SAFRA" />
<Field name="Filler3" length="4" />
<Field name="DataGravacao" length="6" type="CHARACTER"/>
<Field name="Filler4" length="291" />
<Field name="NumeroSequencialRemessa" length="3" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="CpfCnpj" type="INTEGER" length="2" padding="ZERO_LEFT"/>
<Field name="NumCpfCnpj" type="CHARACTER" length="14" />
<Field name="NumAgencia" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="NumContaCorrente" type="INTEGER" length="8" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" type="INTEGER" length="1" padding="ZERO_LEFT"/>
<Field name="Filler1" length="6" />
<Field name="UsoEmpresa" type="CHARACTER" length="25" />
<Field name="NossoNumero" length="9" />
<Field name="Filler2" length="30" />
<Field name="CodigoIof" value="0" length="1"/>
<Field name="TipoMoeda" value="00" length="2"/>
<Field name="Filler3" length="1" />
<Field name="DiasProtesto" value="00" length="2" />
<Field name="TipoCarteira" value="1" length="1"/>
<Field name="TipoOcorrencia" value="01" length="2"/>
<Field name="IdentificacaoTitulo" type="CHARACTER" length="10" />
<Field name="Vencimento" length="6" type="CHARACTER" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="BancoCobranca" value="422" length="3" />
<Field name="NumAgenciaCobranca" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="EspecieTitulo" value="01" length="2"/>
<Field name="Aceite" length="1" />
<Field name="Emissao" length="6" type="CHARACTER"/>
<Field name="Instrucao1" length="2"/>
<Field name="Instrucao2" length="2"/>
<Field name="ValorAtraso" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataLimiteDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="ValorDesconto" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorIOF" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorAbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoPagador" length="2" type="INTEGER" />
<Field name="NumeroInscricaoPagador" length="14" type="INTEGER" />
<Field name="NomePagador" length="40" type="CHARACTER" />
<Field name="EnderecoPagador" length="40" type="CHARACTER" />
<Field name="BairroPagador" length="10" type="CHARACTER" />
<Field name="Filler4" length="2" />
<Field name="CepPagador" length="8" type="CHARACTER" />
<Field name="CidadePagador" length="15" type="CHARACTER" />
<Field name="EstadoPagador" length="2" type="CHARACTER" />
<Field name="SacadorAvalista" length="30" type="CHARACTER" />
<Field name="Filler5" length="7" />
<Field name="BancoEmitente" value="422" length="3" />
<Field name="NumeroSequencialRemessa" length="3" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="9" length="1" position="1" />
<Field name="Filler" length="367" />
<Field name="QtdTitulos" length="8" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ValorTotal" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRemessa" length="3" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,119 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_SantanderCNAB400</name>
<version>Version 2,0, Published: outubro/2009</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" length="1" value="0" position="1" />
<Field name="IdentificacaoRemessa" length="1" value="1" />
<Field name="LiteralRemessa" length="7" value="REMESSA" />
<Field name="CodigoDeServico" length="2" value="01" />
<Field name="LiteralServico" length="15" value="COBRANCA" />
<Field name="CodigoTransmissao" length="20" type="CHARACTER" />
<Field name="NomeCedente" length="30" type="CHARACTER" />
<Field name="CodigoBanco" length="3" value="033" />
<Field name="NomeBanco" length="15" value="SANTANDER" />
<Field name="DataGravacao" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Zeros" length="16" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Brancos" length="275" blankAccepted="true" /><!--Enviar 274 Brancos -->
<Field name="NumeroVersao" length="3" type="INTEGER" padding="ZERO_LEFT" /><!--Opcional -->
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" length="1" position="1" value="1"/>
<Field name="TipoInscricao" length="2" type="INTEGER" />
<Field name="NumeroInscricao" length="14" type="INTEGER" /><!-- CNPJ EMPRESA -->
<Field name="Agencia" length="4" />
<Field name="CodigoEmpresa" length="8" type="INTEGER" padding="ZERO_LEFT" />
<Field name="ContaCorrente" length="8" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NumControleDoParticipante" length="25" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NossoNumeroComDigito" length="8" type="INTEGER" />
<Field name="DataSegundoDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Brancos1" length="1" type="CHARACTER" blankAccepted="true" /><!--Enviar 1 Brancos -->
<Field name="MultaInformacao" length="1" type="INTEGER" value="4"/>
<Field name="MultaPercentual" length="4" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="UnidadeMoeda" length="2" value="00" />
<Field name="ValorTitulo" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="Brancos2" length="4" type="CHARACTER" blankAccepted="true" /><!--Enviar 4 Brancos -->
<Field name="MultaDataCobranca" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="CodigoCarteira" length="1" value="5" />
<Field name="CodigoDeOcorrencia" length="2" value="01" />
<Field name="NumeroDoDocumento" length="10" type="CHARACTER" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoBanco" length="3" value="033" />
<Field name="AgenciaCobradora" length="4" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DVAgenciaCobradora" length="1" />
<Field name="EspecieDeTitulo" length="2" value="01" />
<Field name="Aceite" length="1" type="CHARACTER" value="N" /><!-- A = Aceite N = Não Aceite -->
<Field name="Emissao" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Instrucao1" length="2" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="Instrucao2" length="2" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="JurosDeMora" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DataLimiteDesconto" length="6" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="IOF_Devido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="TipoInscricaoSacado" length="2" value="02" />
<Field name="NumeroInscricaoPagador" length="14" type="CHARACTER" />
<Field name="NomeSacado" length="40" type="CHARACTER" />
<Field name="EnderecoSacado" length="40" type="CHARACTER" />
<Field name="BairroSacado" length="12" type="CHARACTER" />
<Field name="CepSacado" length="5" type="INTEGER" />
<Field name="ComplementoCepSacado" length="3" type="INTEGER" />
<Field name="Cidade" length="15" type="CHARACTER" />
<Field name="Estado" length="2" type="CHARACTER" />
<Field name="SacadorAvalista" length="30" type="CHARACTER" />
<Field name="Brancos3" length="1" type="CHARACTER" blankAccepted="true" /><!--Enviar 1 Brancos -->
<Field name="IdentificadorComplemento" length="1" type="CHARACTER" value="I"/>
<Field name="Complemento" length="2" type="INTEGER" />
<Field name="Brancos4" length="6" type="CHARACTER" blankAccepted="true" /><!--Enviar 6 Branco -->
<Field name="NumeroDiasProtesto" length="2" type="INTEGER" padding="ZERO_LEFT"/><!--Quando tiver registro no instrução -->
<Field name="Brancos5" length="1" type="CHARACTER" blankAccepted="true" /><!--Enviar 1 Brancos -->
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" length="1" value="9" position="1" />
<Field name="QuantidadeRegistro" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="ValorTotal" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Filler" length="374" value="0" type="CHARACTER" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,130 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Retorno_ItauCNAB400</name>
<version>Version 01, Published: 2012/05/25</version>
<description>
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)
</description>
</layout>
<GroupOfRecords>
<Record name="Header" description="Protocolo de comunicação">
<GroupOfFields>
<IdType name="IDReg" value="0" length="1" position="1" />
<Field name="IdentificacaoRetorno" value="2" length="1" />
<Field name="LiteralRetorno" value="RETORNO" length="7" />
<Field name="CodigoDeServico" value="01" length="2" />
<Field name="LiteralServico" value="COBRANCA" length="15" />
<Field name="Agencia" length="04" type="INTEGER" padding="ZERO_LEFT" />
<Field name="Zeros" length="02" value="00" padding="ZERO_LEFT" />
<Field name="Conta" length="05" type="INTEGER" padding="ZERO_LEFT" />
<Field name="DacConta" length="01" type="INTEGER" />
<Field name="Brancos1" type="STRING" length="08" blankAccepted="true" />
<Field name="NomeDaEmpresa" length="30" />
<Field name="CodigoCompensacao" value="341" length="3" />
<Field name="NomeBanco" value="BANCO ITAU SA" length="15" />
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Densidade" value="00000" length="5" />
<Field name="UnidadeDensidade" value="BPI" length="3" />
<Field name="NumeroSequencialRetorno" type="INTEGER" length="5" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" />
<Field name="Brancos1" type="STRING" length="275" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="TransacaoTitulo" repeatable="true">
<GroupOfFields>
<IdType name="IDReg" value="1" length="1" position="1" />
<Field name="CodigoInscricao" length="02" value = "02" /><!-- 01 = CPF 02 = CNPJ -->
<Field name="NumeroControleDoParticipante" type="STRING" length="14" />
<Field name="Agencia" length="4" type="INTEGER" />
<Field name="Zeros" length="2" value="00" />
<Field name="Conta" length="5" type="INTEGER" />
<Field name="DacConta" length="1" type="INTEGER" />
<Field name="Brancos1" length="8" type="STRING" blankAccepted="true" />
<Field name="UsoDaEmpresa" length="25" type="STRING" />
<Field name="NossoNumero" length="08" type="INTEGER" />
<Field name="Brancos2" length="12" type="STRING" blankAccepted="true" />
<Field name="NumCarteira" length="3" type="INTEGER" />
<Field name="NossoNumeroComDigito" length="08" type="INTEGER" />
<Field name="DacNossoNumero" length="1" type="INTEGER" />
<Field name="Brancos3" length="13" type="STRING" blankAccepted="true" />
<Field name="CodCarteira" length="1" type="CHARACTER" value="I" />
<Field name="CodigoDeOcorrencia" length="2" type="INTEGER" value="0" padding="ZERO_LEFT" />
<Field name="DataDaOcorrencia" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="NumeroDoDocumento" length="10" />
<Field name="NossoNumeroComDigito-Repetido" length="8" />
<Field name="Brancos4" length="12" type="STRING" blankAccepted="true" />
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
<Field name="Valor" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="CodigoCompensacaoBancoRecebedor" value="0" length="3" padding="ZERO_LEFT" />
<Field name="PrefixoDaAgenciaRecebedora" type="INTEGER" value="0" length="4" padding="ZERO_LEFT" />
<Field name="DacDaAgenciaRecebedora" type="INTEGER" value="0" length="1" padding="ZERO_LEFT" />
<Field name="EspecieDeTitulo" length="2" />
<Field name="DespesasDeCobranca" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Brancos5" length="26" type="STRING" blankAccepted="true" />
<Field name="IOF_Devido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="DescontoConcedido" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="ValorPago" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="JurosDeMora" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="OutrosCreditos" type="BIGDECIMAL" length="13" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="BoletoDDA" type="CHARACTER" length="1" />
<Field name="Brancos6" length="2" type="STRING" blankAccepted="true" />
<Field name="DataDoCredito" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" blankAccepted="true" />
<Field name="CodInstrucaoCancelada" length="4" type="INTEGER" />
<Field name="Brancos7" length="6" type="STRING" blankAccepted="true" />
<Field name="Zeros" length="13" type="INTEGER" padding="ZERO_LEFT" />
<Field name="NomeSacado" length="30" type="STRING" />
<Field name="Brancos8" length="23" type="STRING" blankAccepted="true" />
<Field name="CodAlegacaoDoSacado" length="8" type="STRING" />
<Field name="Brancos9" length="7" type="STRING" blankAccepted="true" />
<Field name="CodLiquidacao" length="02" padding="ZERO_LEFT" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
<Record name="Trailler">
<GroupOfFields>
<IdType name="IDReg" length="1" value="9" position="1" />
<Field name="CodigoRetorno" length="1" value="2" />
<Field name="CodigoServico" length="2" value="01"/>
<Field name="CodigoBanco" length="3" value="341" />
<Field name="Brancos" length="10" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobSimples" length="8" type="INTEGER" />
<Field name="VlrTotalCobSimples" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobSimples" type="STRING" length="08"/>
<Field name="Brancos" length="10" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobVinculada" length="8" type="INTEGER" />
<Field name="VlrTotalCobVinculada" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobVinculada" type="STRING" length="08"/>
<Field name="Brancos" length="90" type="STRING" blankAccepted="true" />
<Field name="QtdTitulosCobEscritural" length="8" type="INTEGER" />
<Field name="VlrTotalCobEscritural" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="AvisoBancarioCobEscrituraL" type="STRING" length="08"/>
<Field name="NumSeqRetorno" length="5" type="INTEGER" padding="ZERO_LEFT" />
<Field name="QtdRegDetalhe" type="INTEGER" length="8" padding="ZERO_LEFT" />
<Field name="ValTotArquivo" type="BIGDECIMAL" length="14" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="Brancos" length="160" type="STRING" blankAccepted="true" />
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>

View File

@ -0,0 +1,185 @@
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
version="1.0-academic">
<FlatFile>
<layout>
<name>Arquivo-Remessa_SicoobCNAB240</name>
<version>Version 01, Published: 2020/03/18</version>
<description>
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
</description>
</layout>
<GroupOfRecords>
<Record name="HeaderArquivo" description="Header do arquivo">
<GroupOfFields>
<IdType name="CodComp" length="3" value="756" position="1"/>
<Field name="LoteServico" length="4" value="0000" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" length="1" value="0" />
<Field name="CNAB" length="9" blankAccepted="true"/>
<Field name="CpfCnpj" length="1" type="INTEGER"/>
<Field name="NumCpfCnpj" length="14" padding="ZERO_LEFT"/>
<Field name="NumConvenio" length="20" blankAccepted="true"/>
<Field name="NumAgencia" length="5" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" />
<Field name="NumContaCorrente" length="12" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" />
<Field name="DigAgenciaConta" length="1" value="0" />
<Field name="NomeEmpresa" length="30" />
<Field name="NomeBanco" length="30" value="SICOOB" />
<Field name="Brancos3" length="10" blankAccepted="true"/>
<Field name="RemessaRetorno" length="1" value="1" type="INTEGER" />
<Field name="DataGeracao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="HoraGeracao" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NumRemessa" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NumeroVersaoLayout" length="3" value="081"/>
<Field name="DensidadeArquivo" length="5" value="00000"/>
<Field name="Brancos4" length="20" blankAccepted="true"/>
<Field name="Brancos5" length="20" blankAccepted="true"/>
<Field name="Brancos6" length="29" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="HeaderLote" description="Header do lote">
<GroupOfFields>
<IdType name="CodComp" value="756" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="1" length="1"/>
<Field name="TipoOperacao" value="R" length="1"/>
<Field name="TipoServico" value="01" length="2"/>
<Field name="UsoExclusivo" length="2" blankAccepted="true"/>
<Field name="NumeroVersaoLote" length="3" value="040" blankAccepted="true"/>
<Field name="UsoExclusivo1" length="1" blankAccepted="true"/>
<Field name="CpfCnpj" length="1" type="INTEGER"/>
<Field name="NumCpfCnpj" length="15" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="NumConvenio" length="20" blankAccepted="true"/>
<Field name="NumAgencia" length="5" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" type="CHARACTER"/>
<Field name="NumContaCorrente" length="12" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="CHARACTER"/>
<Field name="DigAgenciaConta" length="1" blankAccepted="true"/>
<Field name="NomeEmpresa" length="30" type="CHARACTER"/>
<Field name="Mensagem1" length="40" blankAccepted="true"/>
<Field name="Mensagem2" length="40" blankAccepted="true"/>
<Field name="NumeroRemessa" length="8" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="DataGeracao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="DataCredito" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT" blankAccepted="true"/>
<Field name="UsoExclusivo2" length="33" type="CHARACTER" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="SegmentoP" repeatable="true" description="Dados do título">
<GroupOfFields>
<IdType name="IDReg" value="756" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="3" length="1"/>
<Field name="NumSeqRegistro" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="CodSegmento" length="1" value="P"/>
<Field name="Brancos1" length="1" blankAccepted="true"/>
<Field name="CodigoMovimento" length="2" value="01"/>
<Field name="NumAgencia" length="5" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigAgencia" length="1" type="CHARACTER"/>
<Field name="NumContaCorrente" length="12" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DigContaCorrente" length="1" type="CHARACTER"/>
<Field name="DigAgenciaConta" length="1" blankAccepted="true"/>
<Field name="NossoNumero" length="20" type="CHARACTER"/>
<Field name="CodCarteira" length="1" type="INTEGER"/>
<Field name="Cadastramento" length="1" value="0"/>
<Field name="TipoDocumento" length="1" blankAccepted="true"/>
<Field name="IdentEmissaoBloqueto" length="1" value="2"/>
<Field name="IdentDistribuicao" length="1" value="2"/>
<Field name="NumeroDoDocumento" length="15" type="CHARACTER"/>
<Field name="Vencimento" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="Valor" length="15" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="AgenciaCobradora" length="5" value="00000" padding="ZERO_LEFT"/>
<Field name="DigAgenciaCobradora" length="1" blankAccepted="true"/>
<Field name="EspecieDeTitulo" length="2" padding="ZERO_LEFT" value="02"/>
<Field name="Aceite" length="1" type="CHARACTER" value="N"/>
<Field name="Emissao" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="CodMora" length="1" type="INTEGER"/>
<Field name="DataMora" length="8" type="DATE" format="DATE_DDMMYYYY" padding="ZERO_LEFT"/>
<Field name="JurosDeMora" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="CodigoDesconto" type="INTEGER" length="1" value="0"/>
<Field name="DataDesconto" length="8" type="CHARACTER" padding="ZERO_LEFT"/>
<Field name="DescontoConcedido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="IOF_Devido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="AbatimentoConcedido" type="BIGDECIMAL" length="15" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="NossoNumeroEmp" type="CHARACTER" length="25"/>
<Field name="CodigoProtesto" length="1" type="INTEGER" padding="ZERO_LEFT" value="3"/>
<Field name="DiasProtesto" length="2" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="CodigoBaixa" length="1" type="INTEGER" value="0"/>
<Field name="DiasBaixa" length="3" type="CHARACTER" blankAccepted="true"/>
<Field name="Moeda" length="2" type="INTEGER" value="09" padding="ZERO_LEFT"/>
<Field name="NumeroContrato" length="10" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoExclusivo" length="1" blankAccepted="true"/>
</GroupOfFields>
<GroupOfInnerRecords>
<Record name="SegmentoQ" repeatable="true" description="Dados do Pagador">
<GroupOfFields>
<IdType name="IDReg" value="756" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="3" length="1"/>
<Field name="NumSeqRegistro" type="INTEGER" length="5" padding="ZERO_LEFT"/>
<Field name="CodSegmento" length="1" value="Q"/>
<Field name="Brancos1" length="1" value=" " blankAccepted="true"/>
<Field name="CodigoRemessa" length="2" value="01"/>
<Field name="TipoInscricaoSacado" length="1" type="INTEGER"/>
<Field name="NumeroInscricaoSacado" length="15" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NomeSacado" length="40" type="CHARACTER"/>
<Field name="LogradouroSacado" length="40" type="CHARACTER"/>
<Field name="BairroSacado" length="15" type="CHARACTER"/>
<Field name="CepSacado" length="5" type="INTEGER"/>
<Field name="SufixoCep" length="3" type="INTEGER"/>
<Field name="Cidade" length="15" type="CHARACTER"/>
<Field name="Estado" length="2" type="CHARACTER"/>
<Field name="TipoSacadorAvalista" length="1" value="0"/>
<Field name="SacadorAvalista" length="15" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NomeSacadorAvalista" length="40" type="CHARACTER"/>
<Field name="CodBancoCorresp" length="3" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="NossoNumeroNoBancoCorresp" length="20"/>
<Field name="UsoExclusivo" length="8"/>
</GroupOfFields>
</Record>
</GroupOfInnerRecords>
</Record>
<Record name="TraillerLote">
<GroupOfFields>
<IdType name="CodComp" value="756" length="3" position="1"/>
<Field name="LoteServico" value="0001" length="4" padding="ZERO_LEFT"/>
<Field name="TipoRegistro" value="5" length="1"/>
<Field name="CNAB" length="9" blankAccepted="true"/>
<Field name="QtdRegistros" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdTitulosSimples" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="ValorTitulosSimples" length="17" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT"/>
<Field name="QtdTitulosVinculada" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="ValorTitulosVinculada" length="17" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdTitulosCaucionada" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="ValorTitulosCaucionada" length="17" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdTitulosDescontada" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="ValorTitulosDescontada" length="17" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="UsoExclusivo1" length="8" blankAccepted="true"/>
<Field name="UsoExclusivo2" length="117" blankAccepted="true"/>
</GroupOfFields>
</Record>
<Record name="TraillerArquivo">
<GroupOfFields>
<IdType name="IDReg" value="756" length="3" position="1"/>
<Field name="LoteServico" value="9999" length="4"/>
<Field name="TipoRegistro" value="9" length="1"/>
<Field name="UsoExclusivo1" length="9" blankAccepted="true"/>
<Field name="QtdLotes" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdArquivos" length="6" type="INTEGER" padding="ZERO_LEFT"/>
<Field name="QtdContas" length="6" value="000000" />
<Field name="UsoExclusivo2" length="205"/>
</GroupOfFields>
</Record>
</GroupOfRecords>
</FlatFile>
</txg:Texgit>