fixes bug#22494
dev: Celio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/GeneradorBoletosCNAB/trunk@108592 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
7473b5d7a8
commit
55cda01498
|
@ -0,0 +1,45 @@
|
|||
package com.rjconsultores.ventaboletos.blocos.caixa;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.rjconsultores.ventaboletos.ArquivoRemessaItem;
|
||||
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||
import com.rjconsultores.ventaboletos.blocos.RodapeRemessa;
|
||||
import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao;
|
||||
|
||||
public class ArquivoRemessaCaixa extends ArquivoRemessaItem {
|
||||
|
||||
@Override
|
||||
public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) {
|
||||
|
||||
if(cabecalhoRemessa instanceof CabecalhoRemessaCaixa){
|
||||
super.setCabecalhoRemessa(cabecalhoRemessa);
|
||||
}else{
|
||||
throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaCaixa.class.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTitulo(DetalheObrigatorio titulo){
|
||||
if(this.titulos == null){
|
||||
this.titulos = new ArrayList<DetalheObrigatorio>();
|
||||
}
|
||||
|
||||
if(titulo instanceof DetalheObrigatorioCaixa){
|
||||
|
||||
titulo.setNumeroSequencialRegistro(titulos.size() + 2);
|
||||
|
||||
this.titulos.add(titulo);
|
||||
}else{
|
||||
throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioCaixa.class.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public RodapeRemessa getRodapeRemessa() {
|
||||
this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa;
|
||||
rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2);
|
||||
return rodapeRemessa;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.rjconsultores.ventaboletos.blocos.caixa;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||
|
||||
public class CabecalhoRemessaCaixa implements CabecalhoRemessa {
|
||||
|
||||
private String codigoEmpresa;
|
||||
private String agenciaBeneficiario;
|
||||
private String nomeEmpresa;
|
||||
private Date dataGravacao;
|
||||
private Integer numeroSequencialRemessa;
|
||||
private Integer numeroSequencialRegistro;
|
||||
private String versaoLayout;
|
||||
|
||||
public String getCodigoEmpresa() {
|
||||
return codigoEmpresa;
|
||||
}
|
||||
|
||||
public void setCodigoEmpresa(String codigoEmpresa) {
|
||||
this.codigoEmpresa = codigoEmpresa;
|
||||
}
|
||||
|
||||
public String getNomeEmpresa() {
|
||||
return nomeEmpresa;
|
||||
}
|
||||
|
||||
public void setNomeEmpresa(String nomeEmpresa) {
|
||||
this.nomeEmpresa = nomeEmpresa;
|
||||
}
|
||||
|
||||
public Date getDataGravacao() {
|
||||
return dataGravacao;
|
||||
}
|
||||
|
||||
public void setDataGravacao(Date dataGravacao) {
|
||||
this.dataGravacao = dataGravacao;
|
||||
}
|
||||
|
||||
public Integer getNumeroSequencialRemessa() {
|
||||
return numeroSequencialRemessa;
|
||||
}
|
||||
|
||||
public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) {
|
||||
this.numeroSequencialRemessa = numeroSequencialRemessa;
|
||||
}
|
||||
|
||||
public Integer getNumeroSequencialRegistro() {
|
||||
return numeroSequencialRegistro;
|
||||
}
|
||||
|
||||
public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) {
|
||||
this.numeroSequencialRegistro = numeroSequencialRegistro;
|
||||
}
|
||||
|
||||
public String getAgenciaBeneficiario() {
|
||||
return agenciaBeneficiario;
|
||||
}
|
||||
|
||||
public void setAgenciaBeneficiario(String agenciaBeneficiario) {
|
||||
this.agenciaBeneficiario = agenciaBeneficiario;
|
||||
}
|
||||
|
||||
public String getVersaoLayout() {
|
||||
return versaoLayout;
|
||||
}
|
||||
|
||||
public void setVersaoLayout(String versaoLayout) {
|
||||
this.versaoLayout = versaoLayout;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
package com.rjconsultores.ventaboletos.blocos.caixa;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||
import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador;
|
||||
|
||||
public class DetalheObrigatorioCaixa implements DetalheObrigatorio, Cloneable {
|
||||
|
||||
private Integer idBoletoFechamento;
|
||||
private TipoInscricaoPagador tipoInscricaoPagador;
|
||||
private String numeroInscricao;
|
||||
private String nossoNumero;
|
||||
private String numeroDoDocumento;
|
||||
private Date vencimento;
|
||||
private BigDecimal valor;
|
||||
private String especieDeTitulo;
|
||||
private Date emissao;
|
||||
private BigDecimal valorAtraso = BigDecimal.ZERO;
|
||||
private BigDecimal valorMulta = BigDecimal.ZERO;
|
||||
private Date dataLimiteDesconto;
|
||||
private BigDecimal valorDesconto = BigDecimal.ZERO;
|
||||
private BigDecimal valorIOF = BigDecimal.ZERO;
|
||||
private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO;
|
||||
private String nomeSacado;
|
||||
private String enderecoSacado;
|
||||
private String bairroSacado;
|
||||
private String cepSacado;
|
||||
private String cidade;
|
||||
private String estado;
|
||||
private String sacadorAvalista;
|
||||
private Integer numeroSequencialRegistro;
|
||||
private String numeroInscricaoSacado;
|
||||
|
||||
|
||||
@Override
|
||||
public void setIdBoletoFechamento(Integer id) {
|
||||
this.idBoletoFechamento = id;
|
||||
|
||||
}
|
||||
@Override
|
||||
public Integer getIdBoletoFechamento(){
|
||||
return this.idBoletoFechamento;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DetalheObrigatorio clone() throws CloneNotSupportedException {
|
||||
return (DetalheObrigatorio) super.clone();
|
||||
}
|
||||
|
||||
public String getNumeroInscricao() {
|
||||
return numeroInscricao;
|
||||
}
|
||||
|
||||
public void setNumeroInscricao(String numeroInscricao) {
|
||||
this.numeroInscricao = numeroInscricao;
|
||||
}
|
||||
public String getNossoNumero() {
|
||||
return nossoNumero;
|
||||
}
|
||||
public void setNossoNumero(String nossoNumero) {
|
||||
this.nossoNumero = nossoNumero;
|
||||
}
|
||||
public Date getVencimento() {
|
||||
return vencimento;
|
||||
}
|
||||
public void setVencimento(Date vencimento) {
|
||||
this.vencimento = vencimento;
|
||||
}
|
||||
public String getNumeroDoDocumento() {
|
||||
return numeroDoDocumento;
|
||||
}
|
||||
public void setNumeroDoDocumento(String numeroDoDocumento) {
|
||||
this.numeroDoDocumento = numeroDoDocumento;
|
||||
}
|
||||
public String getEspecieDeTitulo() {
|
||||
return especieDeTitulo;
|
||||
}
|
||||
public void setEspecieDeTitulo(String especieDeTitulo) {
|
||||
this.especieDeTitulo = especieDeTitulo;
|
||||
}
|
||||
public BigDecimal getValor() {
|
||||
return valor;
|
||||
}
|
||||
public void setValor(BigDecimal valor) {
|
||||
this.valor = valor;
|
||||
}
|
||||
public Date getEmissao() {
|
||||
return emissao;
|
||||
}
|
||||
public void setEmissao(Date emissao) {
|
||||
this.emissao = emissao;
|
||||
}
|
||||
public BigDecimal getValorAtraso() {
|
||||
return valorAtraso;
|
||||
}
|
||||
public void setValorAtraso(BigDecimal valorAtraso) {
|
||||
this.valorAtraso = valorAtraso;
|
||||
}
|
||||
public BigDecimal getValorMulta() {
|
||||
return valorMulta;
|
||||
}
|
||||
public void setValorMulta(BigDecimal valorMulta) {
|
||||
this.valorMulta = valorMulta;
|
||||
}
|
||||
public Date getDataLimiteDesconto() {
|
||||
return dataLimiteDesconto;
|
||||
}
|
||||
public void setDataLimiteDesconto(Date dataLimiteDesconto) {
|
||||
this.dataLimiteDesconto = dataLimiteDesconto;
|
||||
}
|
||||
public BigDecimal getValorDesconto() {
|
||||
return valorDesconto;
|
||||
}
|
||||
public void setValorDesconto(BigDecimal valorDesconto) {
|
||||
this.valorDesconto = valorDesconto;
|
||||
}
|
||||
public BigDecimal getValorIOF() {
|
||||
return valorIOF;
|
||||
}
|
||||
public void setValorIOF(BigDecimal valorIOF) {
|
||||
this.valorIOF = valorIOF;
|
||||
}
|
||||
public BigDecimal getValorAbatimentoConcedido() {
|
||||
return valorAbatimentoConcedido;
|
||||
}
|
||||
public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) {
|
||||
this.valorAbatimentoConcedido = valorAbatimentoConcedido;
|
||||
}
|
||||
public TipoInscricaoPagador getTipoInscricaoPagador() {
|
||||
return tipoInscricaoPagador;
|
||||
}
|
||||
public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) {
|
||||
this.tipoInscricaoPagador = tipoInscricaoPagador;
|
||||
}
|
||||
public String getNomeSacado() {
|
||||
return nomeSacado;
|
||||
}
|
||||
public void setNomeSacado(String nomeSacado) {
|
||||
this.nomeSacado = nomeSacado;
|
||||
}
|
||||
public String getEnderecoSacado() {
|
||||
return enderecoSacado;
|
||||
}
|
||||
public void setEnderecoSacado(String enderecoSacado) {
|
||||
this.enderecoSacado = enderecoSacado;
|
||||
}
|
||||
public String getBairroSacado() {
|
||||
return bairroSacado;
|
||||
}
|
||||
public void setBairroSacado(String bairroSacado) {
|
||||
this.bairroSacado = bairroSacado;
|
||||
}
|
||||
public String getCepSacado() {
|
||||
return cepSacado;
|
||||
}
|
||||
public void setCepSacado(String cepSacado) {
|
||||
this.cepSacado = cepSacado;
|
||||
}
|
||||
public String getCidade() {
|
||||
return cidade;
|
||||
}
|
||||
public void setCidade(String cidade) {
|
||||
this.cidade = cidade;
|
||||
}
|
||||
public String getEstado() {
|
||||
return estado;
|
||||
}
|
||||
public void setEstado(String estado) {
|
||||
this.estado = estado;
|
||||
}
|
||||
public String getSacadorAvalista() {
|
||||
return sacadorAvalista;
|
||||
}
|
||||
public void setSacadorAvalista(String sacadorAvalista) {
|
||||
this.sacadorAvalista = sacadorAvalista;
|
||||
}
|
||||
public String getNumeroInscricaoSacado() {
|
||||
return numeroInscricaoSacado;
|
||||
}
|
||||
public void setNumeroInscricaoSacado(String numeroInscricaoSacado) {
|
||||
this.numeroInscricaoSacado = numeroInscricaoSacado;
|
||||
}
|
||||
public Integer getNumeroSequencialRegistro() {
|
||||
return numeroSequencialRegistro;
|
||||
}
|
||||
public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) {
|
||||
this.numeroSequencialRegistro = numeroSequencialRegistro;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -10,7 +10,8 @@ public enum BancoLayout {
|
|||
SANTANDER_400_Retorno("033", true, "/layouts/LayoutSantanderCNAB400Retorno.txg.xml"),
|
||||
BRADESCO_400_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"),
|
||||
ITAU_400_Retorno("341", true, ""),
|
||||
BB_240_Retorno("001", true, "");
|
||||
BB_240_Retorno("001", true, ""),
|
||||
CAIXA_400_Envio("104", false, "/layouts/LayoutCaixaCNAB400Envio.txg.xml");
|
||||
|
||||
private BancoLayout(String codBanco, boolean retorno, String path) {
|
||||
this.codBanco = codBanco;
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
|||
|
||||
public class CNABFactory {
|
||||
|
||||
|
||||
public static RemessaInterface createRemessa(BancoLayout bancoLayout){
|
||||
|
||||
switch (bancoLayout) {
|
||||
|
@ -12,6 +11,8 @@ public class CNABFactory {
|
|||
return new BradescoFlatFile();
|
||||
case SANTANDER_400_Envio:
|
||||
return new SantanderFlatFile();
|
||||
case CAIXA_400_Envio:
|
||||
return new CaixaFlatFile();
|
||||
case MERCANTIL_400_Envio:
|
||||
return new MercantilFlatFile();
|
||||
case ITAU_400_Envio:
|
||||
|
|
|
@ -0,0 +1,126 @@
|
|||
package com.rjconsultores.ventaboletos.layouts;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.jrimum.texgit.Record;
|
||||
|
||||
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||
import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno;
|
||||
import com.rjconsultores.ventaboletos.blocos.DadosBoleto;
|
||||
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||
import com.rjconsultores.ventaboletos.blocos.DetalheRetorno;
|
||||
import com.rjconsultores.ventaboletos.blocos.RateioDeCredito;
|
||||
import com.rjconsultores.ventaboletos.blocos.RodapeRemessa;
|
||||
import com.rjconsultores.ventaboletos.blocos.RodapeRetorno;
|
||||
import com.rjconsultores.ventaboletos.blocos.caixa.CabecalhoRemessaCaixa;
|
||||
import com.rjconsultores.ventaboletos.blocos.caixa.DetalheObrigatorioCaixa;
|
||||
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
||||
import com.rjconsultores.ventaboletos.utils.FormataUtil;
|
||||
|
||||
public class CaixaFlatFile extends AbstractFlatFile implements RemessaInterface {
|
||||
|
||||
private static BigDecimal valorTotal = BigDecimal.ZERO;
|
||||
private static Integer quantidadeRegistro = 0;
|
||||
|
||||
public CaixaFlatFile() {
|
||||
super(BancoLayout.CAIXA_400_Envio);
|
||||
valorTotal = BigDecimal.ZERO;
|
||||
quantidadeRegistro = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) {
|
||||
|
||||
Record header = getFlatFile().createRecord("Header");
|
||||
|
||||
CabecalhoRemessaCaixa cabecalhoRemessa = (CabecalhoRemessaCaixa) cabecalhoRemessaParam;
|
||||
|
||||
header.setValue("AgenciaBeneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaBeneficiario(), 4));
|
||||
header.setValue("NomeEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30));
|
||||
header.setValue("Beneficiario", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCodigoEmpresa(), 7));
|
||||
header.setValue("versaoLayout", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getVersaoLayout(), 3));
|
||||
header.setValue("DataGravacao", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy"));
|
||||
header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 7));
|
||||
|
||||
quantidadeRegistro = quantidadeRegistro + 1;
|
||||
|
||||
getFlatFile().addRecord(header);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) {
|
||||
|
||||
Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo");
|
||||
|
||||
DetalheObrigatorioCaixa titulo = (DetalheObrigatorioCaixa) tituloParam;
|
||||
|
||||
transacaoTitulos.setValue("NumeroInscricao", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricao().toString(), 14));
|
||||
transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 8));
|
||||
transacaoTitulos.setValue("DataJuros", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy"));
|
||||
transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10));
|
||||
transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy"));
|
||||
transacaoTitulos.setValue("ValorTitulo", titulo.getValor());
|
||||
transacaoTitulos.setValue("DataEmissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy"));
|
||||
transacaoTitulos.setValue("ValorJuros", titulo.getValorAtraso());
|
||||
transacaoTitulos.setValue("DataDesconto", FormataUtil.formataDataToString(titulo.getDataLimiteDesconto(), "000000", "ddMMyy"));
|
||||
transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto());
|
||||
transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF());
|
||||
transacaoTitulos.setValue("ValorAbatimento", titulo.getValorAbatimentoConcedido());
|
||||
transacaoTitulos.setValue("AgenciaCobradora", FormataUtil.formatarValorPorTamanho("", 6));
|
||||
transacaoTitulos.setValue("TipoSacado", FormataUtil.formatarValorPorTamanho(titulo.getTipoInscricaoPagador().toString(), 2));
|
||||
transacaoTitulos.setValue("DocumentoSacado", FormataUtil.formatarValorPorTamanho(titulo.getNumeroInscricaoSacado().toString(), 14));
|
||||
transacaoTitulos.setValue("NomeSacado", FormataUtil.formatarValorPorTamanho(titulo.getNomeSacado(), 40));
|
||||
transacaoTitulos.setValue("EnderecoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoSacado(), 40));
|
||||
transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairroSacado(), 12));
|
||||
transacaoTitulos.setValue("CepSacado", FormataUtil.formatarValorPorTamanho(titulo.getCepSacado().toString(), 8));
|
||||
transacaoTitulos.setValue("CidadeSacado", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15));
|
||||
transacaoTitulos.setValue("EstadoSacado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2));
|
||||
transacaoTitulos.setValue("DataMulta", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy"));
|
||||
transacaoTitulos.setValue("ValorMulta", titulo.getValorMulta());
|
||||
transacaoTitulos.setValue("SacadorAvalista", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalista(), 30));
|
||||
transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6));
|
||||
|
||||
valorTotal = valorTotal.add(titulo.getValor());
|
||||
quantidadeRegistro = quantidadeRegistro + 1;
|
||||
|
||||
getFlatFile().addRecord(transacaoTitulos);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createTrailler(RodapeRemessa trailler){
|
||||
|
||||
Record trailer = getFlatFile().createRecord("Trailler");
|
||||
|
||||
trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6));
|
||||
|
||||
getFlatFile().addRecord(trailer);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CabecalhoRetorno readHeader(Record header) {
|
||||
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
|
||||
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RodapeRetorno readTrailler(Record trailler) {
|
||||
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Record createDadosBoletos(DadosBoleto boleto) {
|
||||
throw new UnsupportedOperationException("Não necessário...");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) {
|
||||
throw new UnsupportedOperationException("Não necessário...");
|
||||
}
|
||||
}
|
|
@ -339,6 +339,10 @@ public class NossoNumeroUtils {
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
if(BancoLayout.CAIXA_400_Envio.equals(bancoLayout) && ( nossoNumero.length() == 10 && nossoNumero.startsWith("3"))){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
<txg:Texgit xmlns:txg="http://jrimum.org/texgit"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://jrimum.org/texgit http://jrimum.org/texgit/chrome/site/TexgitSchema.xsd"
|
||||
version="1.0-academic">
|
||||
|
||||
<FlatFile>
|
||||
<layout>
|
||||
<name>Arquivo-Remessa_CaixaCNAB400</name>
|
||||
<version>Version 67.126 v021micro, Published: 02/04/2021</version>
|
||||
<description>
|
||||
Layout para Cobrança.
|
||||
|
||||
Arquivo texto - padrão CNAB
|
||||
Meio de Registro Transmissão de Dados
|
||||
Descrição de Registro - Tamanho 400 Bytes
|
||||
Organização Sequencial
|
||||
</description>
|
||||
</layout>
|
||||
<GroupOfRecords>
|
||||
<Record name="Header" description="Protocolo de comunicação" >
|
||||
<GroupOfFields>
|
||||
<IdType name="CodigoDoRegistro" length="1" value="0" position="1" />
|
||||
<Field name="IdentificacaoRemessa" length="1" value="1" />
|
||||
<Field name="LiteralRemessa" length="7" value="REMESSA" />
|
||||
<Field name="CodigoServico" length="2" value="01" padding="ZERO_LEFT"/>
|
||||
<Field name="LiteralServico" length="15" value="COBRANCA" />
|
||||
<Field name="AgenciaBeneficiario" length="4" />
|
||||
<Field name="Beneficiario" length="7" />
|
||||
<Field name="Filler" length="9" />
|
||||
<Field name="NomeEmpresa" length="30" />
|
||||
<Field name="CodigoBanco" length="3" value="104" padding="ZERO_LEFT" />
|
||||
<Field name="NomeBanco" length="15" value="C ECON FEDERAL" />
|
||||
<Field name="DataGravacao" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||
<Field name="VersaoLayout" length="3" />
|
||||
<Field name="Filler" length="286" />
|
||||
<Field name="NumeroSequencialRemessa" length="5" padding="ZERO_LEFT" />
|
||||
<Field name="NumeroSequencialRegistro" length="6" value="000001" padding="ZERO_LEFT" />
|
||||
</GroupOfFields>
|
||||
</Record>
|
||||
|
||||
<Record name="TransacaoTitulo" repeatable="true">
|
||||
<GroupOfFields>
|
||||
<IdType name="CodigoRegistro" length="1" value="1" position="1" />
|
||||
<Field name="InscricaoEmpresa" length="2" value="02" />
|
||||
<Field name="NumeroInscricao" length="14" padding="ZERO_LEFT" />
|
||||
<Field name="Filler" length="3" />
|
||||
<Field name="Beneficiario" length="7" />
|
||||
<Field name="IdEmissao" length="1" value="2" />
|
||||
<Field name="IdPostagem" length="1" value="0" />
|
||||
<Field name="TaxaPermanencia" length="2" value="00" />
|
||||
<Field name="UsoEmpresa" length="25" />
|
||||
<Field name="NossoNumero" length="17" padding="ZERO_LEFT" />
|
||||
<Field name="Filler" length="2" />
|
||||
<Field name="UsoLivre" length="1" value="1" />
|
||||
<Field name="TipoJuros" length="1" value="1" />
|
||||
<Field name="DataJuros" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||
<Field name="CodigoDesconto" length="1" value="0" />
|
||||
<Field name="Filler" length="22" />
|
||||
<Field name="Carteira" length="2" value="01" />
|
||||
<Field name="CodigoOcorrencia" length="2" value="01" />
|
||||
<Field name="NumeroDoDocumento" length="10" padding="ZERO_LEFT"/>
|
||||
<Field name="Vencimento" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||
<Field name="ValorTitulo" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="CodigoBanco" length="3" value="104"/>
|
||||
<Field name="AgenciaCobradora" length="5" padding="ZERO_LEFT" />
|
||||
<Field name="EspecieTitulo" length="2" value="01" />
|
||||
<Field name="Aceite" length="1" value="N"/>
|
||||
<Field name="DataEmissao" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||
<Field name="PrimeiraInstrucao" length="2" value="01" />
|
||||
<Field name="SegundaInstrucao" length="2" value="00" />
|
||||
<Field name="ValorJuros" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="DataDesconto" length="6" padding="ZERO_LEFT" />
|
||||
<Field name="ValorDesconto" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="ValorIOF" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="ValorAbatimento" length="13" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="TipoSacado" length="2" padding="ZERO_LEFT" />
|
||||
<Field name="DocumentoSacado" length="14" padding="ZERO_LEFT" />
|
||||
<Field name="NomeSacado" length="40" />
|
||||
<Field name="EnderecoSacado" length="40" />
|
||||
<Field name="BairroSacado" length="12" />
|
||||
<Field name="CepSacado" length="8" padding="ZERO_LEFT" />
|
||||
<Field name="CidadeSacado" length="15" />
|
||||
<Field name="EstadoSacado" length="2" />
|
||||
<Field name="DataMulta" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||
<Field name="ValorMulta" length="10" type="BIGDECIMAL" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||
<Field name="SacadorAvalista" length="22" />
|
||||
<Field name="TerceiraInstrucao" length="2" value="00" />
|
||||
<Field name="DiasProtesto" length="2" padding="ZERO_LEFT" value="07" />
|
||||
<Field name="Moeda" length="1" value="1" />
|
||||
<Field name="NumeroSequencialRegistro" length="6" padding="ZERO_LEFT" />
|
||||
</GroupOfFields>
|
||||
</Record>
|
||||
|
||||
<Record name="Trailler">
|
||||
<GroupOfFields>
|
||||
<IdType name="CodigoDoRegistro" length="1" value="9" position="1" />
|
||||
<Field name="Filler" length="393" />
|
||||
<Field name="NumeroSequencialRegistro" length="6" padding="ZERO_LEFT"/>
|
||||
</GroupOfFields>
|
||||
</Record>
|
||||
</GroupOfRecords>
|
||||
</FlatFile>
|
||||
|
||||
</txg:Texgit>
|
Loading…
Reference in New Issue