gleimar 2017-11-08 21:07:41 +00:00
parent b5dc24aa9a
commit 7055b75a36
47 changed files with 4182 additions and 0 deletions

21
.classpath 100644
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.nondependency" value=""/>
</attributes>
</classpathentry>
<classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

36
.project 100644
View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>GeneradorBoletosCNAB</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,13 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.6

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

95
pom.xml 100644
View File

@ -0,0 +1,95 @@
<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>0.0.1-SNAPSHOT</version>
<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.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.9.0</version>
</dependency>
<!-- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency> -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.0.6</version>
</dependency>
<dependency>
<groupId>br.com.rjconsultores</groupId>
<artifactId>JRimum-Bopepo</artifactId>
<version>0.2.3</version>
</dependency>
<dependency>
<groupId>br.com.rjconsultores</groupId>
<artifactId>JRimum-Texgit</artifactId>
<version>0.2.0</version>
</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;
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 RodapeRemessa() : this.rodapeRemessa;
rodapeRemessa.setNumeroSequencialRegistro(titulos.size());
return rodapeRemessa;
}
public void setRodapeRemessa(RodapeRemessa rodapeRemessa) {
this.rodapeRemessa = rodapeRemessa == null ? new RodapeRemessa() : rodapeRemessa;
this.rodapeRemessa = rodapeRemessa;
}
public abstract void addTitulo(DetalheObrigatorio titulo);
public ArquivoRemessaItemInteface clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
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,97 @@
package com.rjconsultores.ventaboletos;
import java.io.File;
import java.math.BigDecimal;
import java.util.Date;
import com.rjconsultores.ventaboletos.blocos.RodapeRemessa;
import com.rjconsultores.ventaboletos.blocos.bradesco.ArquivoRemessaBradesco;
import com.rjconsultores.ventaboletos.blocos.bradesco.CabecalhoRemessaBradesco;
import com.rjconsultores.ventaboletos.blocos.bradesco.DetalheObrigatorioBradesco;
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco;
import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco;
import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador;
import com.rjconsultores.ventaboletos.layouts.BradescoFlatFile;
import com.rjconsultores.ventaboletos.layouts.RemessaInterface;
public class Main {
public static void main(String[] args) {
ArquivoRemessaItem arquivoRemessaItem = new ArquivoRemessaBradesco();
CabecalhoRemessaBradesco cabecalhoRemessa = new CabecalhoRemessaBradesco();
//cabecalhoRemessa.setCodigoBanco("123");
cabecalhoRemessa.setCodigoEmpresa("123456");
//cabecalhoRemessa.setCodigoServico("1222");
//cabecalhoRemessa.setLiteralRemessa("REMESSA");
cabecalhoRemessa.setDataGravacao(new Date());
//cabecalhoRemessa.setLiteralServico("COBRANCA");
cabecalhoRemessa.setNumeroSequencialRemessa(1);
cabecalhoRemessa.setNumeroSequencialRegistro(9);
cabecalhoRemessa.setNomeEmpresa("RJ Consultores");
arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessa);
DetalheObrigatorioBradesco tituloBradesco = new DetalheObrigatorioBradesco();
tituloBradesco.setValor(BigDecimal.TEN);
tituloBradesco.setVencimento(new Date());
tituloBradesco.setTipoInscricaoPagador(TipoInscricaoPagador.getInstanceByName("cpf"));
tituloBradesco.setNumeroInscricaoPagador(new Long(1452265658));
tituloBradesco.setCEP_Prefixo("32015");
tituloBradesco.setCEP_Sufixo("490");
//tituloBradesco.setOrigemDoPagamento(999);
try {
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
arquivoRemessaItem.addTitulo(tituloBradesco.clone());
} catch (CloneNotSupportedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
RemessaInterface remessaInterface = new BradescoFlatFile();
RodapeRemessa rodapeRemessa = new RodapeRemessa();
rodapeRemessa.setNumeroSequencialRegistro(9999);
arquivoRemessaItem.setRodapeRemessa(rodapeRemessa);
File arquivoRemessaFisico = new File("C:\\Users\\Rafael\\rafael.txt");
OcorrenciaBradesco oco = OcorrenciaBradesco.getInstance("02");
MotivoOcorrenciaBradesco mo = MotivoOcorrenciaBradesco.getInstance(oco, "00");
System.out.println(mo.getMotivo());
ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.BRADESCO_Envio);
try {
arquivoRemessa.addItem(arquivoRemessaItem.clone());
arquivoRemessa.addItem(arquivoRemessaItem.clone());
} catch (CloneNotSupportedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
remessaInterface.gerarRemessa(arquivoRemessaFisico, arquivoRemessa);
} catch (Exception e) {
// TODO Auto-generated catch block
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,21 @@
package com.rjconsultores.ventaboletos.blocos;
public class CabecalhoRetorno {
private String codEmpresa;
private String numeroDoAvisoBancario;
public String getCodEmpresa() {
return codEmpresa;
}
public void setCodEmpresa(String codEmpresa) {
this.codEmpresa = codEmpresa;
}
public String getNumeroDoAvisoBancario() {
return numeroDoAvisoBancario;
}
public void setNumeroDoAvisoBancario(String numeroDoAvisoBancario) {
this.numeroDoAvisoBancario = numeroDoAvisoBancario;
}
}

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,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,39 @@
package com.rjconsultores.ventaboletos.blocos;
import java.util.ArrayList;
import java.util.List;
import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco;
import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco;
public class DetalheRetorno {
private String numeroControleDoParticipante;
private OcorrenciaBradesco ocorrencia;
private List<MotivoOcorrenciaBradesco> motivoOcorrencias;
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);
}
}

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,15 @@
package com.rjconsultores.ventaboletos.blocos;
public class RodapeRemessa {
private Integer numeroSequencialRegistro;
public Integer getNumeroSequencialRegistro() {
return numeroSequencialRegistro;
}
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,36 @@
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;
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() + 1);
this.titulos.add(titulo);
}else{
throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioBradesco.class.getName());
}
}
}

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,285 @@
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 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 Long 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 DadosBoleto dadosBoleto;
private RateioDeCredito rateioDeCredito;
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 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 getEnderecoCompletoPagado() {
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;
}
private Integer idBoletoFechamento;
@Override
public void setIdBoletoFechamento(Integer id) {
this.idBoletoFechamento = id;
}
@Override
public Integer getIdBoletoFechamento(){
return this.idBoletoFechamento;
}
public DetalheObrigatorioBradesco clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return (DetalheObrigatorioBradesco) super.clone();
}
}

View File

@ -0,0 +1,35 @@
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;
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){
titulo.setNumeroSequencialRegistro(titulos.size() + 1);
this.titulos.add(titulo);
}else{
throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioItau.class.getName());
}
}
}

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,361 @@
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.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 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 Integer 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;
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 Integer getCepSacado() {
return cepSacado;
}
public void setCepSacado(Integer 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 DetalheObrigatorioItau clone() throws CloneNotSupportedException {
return (DetalheObrigatorioItau) super.clone();
}
}

View File

@ -0,0 +1,49 @@
package com.rjconsultores.ventaboletos.enuns;
public enum BancoLayout {
BRADESCO_Envio("237", false, "/layouts/LayoutBradescoCNAB400Envio.txg.xml"),
ITAU_Envio("341", false, "/layouts/LayoutItauCNAB400Envio.txg.xml"),
BRADESCO_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"),
ITAU_Retorno("341", true, "/layouts/LayoutItauCNAB400Envio.txg.xml");
private BancoLayout(String codBanco, boolean retorno, String path) {
this.codBanco = codBanco;
this.retorno = retorno;
this.path = path;
}
private String codBanco;
private boolean retorno;
private String path;
public String getCodBanco() {
return codBanco;
}
public boolean isRetorno() {
return retorno;
}
public String getPath() {
return path;
}
public String getTemp() {
return path.substring(path.lastIndexOf("/"));
}
public static BancoLayout getInstanceByCodBanco(String codBanco){
for(BancoLayout o : BancoLayout.values()){
if(o.getCodBanco().equals(codBanco) && !o.isRetorno()){
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ção 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,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,402 @@
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.ClassLoaders;
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 Logger log = LoggerFactory.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 inicializçã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());
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);
}
/**
* <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, this.lines, "\r\n");
}
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...");
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,142 @@
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.RodapeRemessa;
import com.rjconsultores.ventaboletos.blocos.RodapeRetorno;
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
import com.rjconsultores.ventaboletos.blocos.DetalheRetorno;
import com.rjconsultores.ventaboletos.blocos.RateioDeCredito;
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_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.formataData(cabecalhoRemessa.getDataGravacao()));
//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("DadosIgnorados1", FormataUtil.formatarValorPorTamanho(" ", 36));
transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25));
transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8));
transacaoTitulos.setValue("NossoNumeroComDigito", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumeroComDigito(), 12));
transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 25));
transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento().toString(), 25));
//transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2));
transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10));
transacaoTitulos.setValue("Vencimento", FormataUtil.formataData(titulo.getVencimento()));
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ção", FormataUtil.formatarValorPorTamanho("N", 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("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("TipoInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2));
transacaoTitulos.setValue("NumeroInscricaoPagador", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoPagador().toString(), 14));
transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40));
transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagado(), 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,138 @@
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;
import com.rjconsultores.ventaboletos.enuns.MotivoOcorrenciaBradesco;
import com.rjconsultores.ventaboletos.enuns.OcorrenciaBradesco;
public class BradescoProcessaRetorno extends AbstractFlatFile implements RetornoInteface {
protected BradescoProcessaRetorno() {
super(BancoLayout.BRADESCO_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");
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,37 @@
package com.rjconsultores.ventaboletos.layouts;
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
public class CNABFactory {
public static RemessaInterface createRemessa(BancoLayout bancoLayout){
switch (bancoLayout) {
case BRADESCO_Envio:
return new BradescoFlatFile();
case ITAU_Envio:
return new ItauFlatFile();
default:
break;
}
return null;
}
public static RetornoInteface createRetorno(BancoLayout bancoLayout){
switch (bancoLayout) {
case BRADESCO_Retorno:
return new BradescoProcessaRetorno();
case ITAU_Retorno:
return null;
default:
break;
}
return null;
}
}

View File

@ -0,0 +1,160 @@
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.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 {
public ItauFlatFile() {
super(BancoLayout.ITAU_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.getIdentificacaoRemessa(), 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.getNumeroInscricao().toString(), 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("NossoNumeroSemDigito", 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){ }
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,15 @@
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;
import com.rjconsultores.ventaboletos.ArquivoRemessaItem;
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,27 @@
package com.rjconsultores.ventaboletos.utils;
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 Date formataData(Date dataGravacao) {
if(dataGravacao == null){
dataGravacao = new Date();
}
return dataGravacao;
}
}

View File

@ -0,0 +1,172 @@
package com.rjconsultores.ventaboletos.utils;
import java.math.BigInteger;
import org.apache.commons.lang.StringUtils;
public class NossoNumeroUtils {
/**
* 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("00000000000" + 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("00000000" + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero);
}
/**
* 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("00000000000" + 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 == 10) ? "P" : 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("00000000" + 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 + "";
}
/**
* 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("0000000000" + 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 void main(String[] args) {
System.out.println(calcularNossonumeroBradesco(19, new BigInteger("00166509652")));
System.out.println(calcularNossonumeroBradesco(19, new BigInteger("00000000001")));
System.out.println(calcularNossoNumeroItau(57, 72192, 109, new BigInteger("987123451")));
System.out.println(dvDocumentoItau(1108954));
}
}

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/WORKSPACE/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="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="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="DadosIgnorados1" length="36" />
<Field name="NumeroControleDoParticipante" length="25" />
<Field name="Filler1" type="INTEGER" length="8" padding="ZERO_LEFT" />
<Field name="NossoNumeroComDigito" length="12" />
<Field name="DadosIgnorados2" length="24" />
<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" />
<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="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="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" />
<Field name="EnderecoCompletoPagador" length="40" />
<Field name="Mensagem1" length="12" />
<Field name="CEP_Prefixo" length="5" />
<Field name="CEP_Sufixo" length="3" />
<Field name="Sacador_Avalista_Mensagem2" length="60" />
<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,124 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/NFM/WORKSPACE/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,124 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/WORKSPACE/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,68 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/WORKSPACE/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,133 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/NFM/WORKSPACE/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" />
<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" />
<Field name="UsoDaEmpresa" length="25" type="CHARACTER" />
<Field name="NossoNumero" length="8" type="INTEGER" />
<Field name="QtdMoeda" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
<Field name="NrCarteira" length="3" type="INTEGER" />
<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="CHARACTER" />
<Field name="Instrucao2" length="2" type="CHARACTER" />
<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" />
<Field name="Brancos4" length="1" type="CHARACTER" /><!--Enviar 1 Branco -->
<Field name="NumeroSequencialRegistro" type="INTEGER" length="6" padding="ZERO_LEFT" />
</GroupOfFields>
<!-- De forma aninhada mesmo
<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>
</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,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<txg:Texgit xmlns:txg="http://gilmatryx.googlepages.com/Texgit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://gilmatryx.googlepages.com/Texgit file:////home/gilmar/NFM/WORKSPACE/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>