fixes bug#14158
dev: Wallace qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/GeneradorBoletosCNAB/trunk@94488 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
947898873f
commit
60c4385bdb
|
@ -5,64 +5,57 @@ import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao;
|
import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao;
|
||||||
import com.rjconsultores.ventaboletos.blocos.santander.ArquivoRemessaSantander;
|
import com.rjconsultores.ventaboletos.blocos.mercantil.ArquivoRemessaMercantil;
|
||||||
import com.rjconsultores.ventaboletos.blocos.santander.CabecalhoRemessaSantander;
|
import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil;
|
||||||
import com.rjconsultores.ventaboletos.blocos.santander.DetalheObrigatorioSantander;
|
import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil;
|
||||||
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
||||||
import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador;
|
import com.rjconsultores.ventaboletos.layouts.MercantilFlatFile;
|
||||||
import com.rjconsultores.ventaboletos.layouts.RemessaInterface;
|
import com.rjconsultores.ventaboletos.layouts.RemessaInterface;
|
||||||
import com.rjconsultores.ventaboletos.layouts.SantanderFlatFile;
|
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
ArquivoRemessaItem arquivoRemessaItem = new ArquivoRemessaSantander();
|
ArquivoRemessaItem arquivoRemessaItem = new ArquivoRemessaMercantil();
|
||||||
|
|
||||||
CabecalhoRemessaSantander cabecalhoRemessa = new CabecalhoRemessaSantander();
|
CabecalhoRemessaMercantil cabecalhoRemessa = new CabecalhoRemessaMercantil();
|
||||||
|
|
||||||
//cabecalhoRemessa.setCodigoBanco("123");
|
|
||||||
cabecalhoRemessa.setCodigoEmpresa("123456");
|
cabecalhoRemessa.setCodigoEmpresa("123456");
|
||||||
//cabecalhoRemessa.setCodigoServico("1222");
|
cabecalhoRemessa.setAgenciaOrigem("0555");
|
||||||
//cabecalhoRemessa.setLiteralRemessa("REMESSA");
|
|
||||||
cabecalhoRemessa.setDataGravacao(new Date());
|
cabecalhoRemessa.setDataGravacao(new Date());
|
||||||
//cabecalhoRemessa.setLiteralServico("COBRANCA");
|
cabecalhoRemessa.setCnpj(new Long("1452265658222"));
|
||||||
cabecalhoRemessa.setNumeroSequencialRemessa(1);
|
cabecalhoRemessa.setNumeroSequencialRemessa(1);
|
||||||
cabecalhoRemessa.setNumeroSequencialRegistro(9);
|
cabecalhoRemessa.setNumeroSequencialRegistro(9);
|
||||||
cabecalhoRemessa.setCodigoTransmissao(1234567890);
|
|
||||||
cabecalhoRemessa.setNomeEmpresa("RJ Consultores");
|
cabecalhoRemessa.setNomeEmpresa("RJ Consultores");
|
||||||
|
|
||||||
arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessa);
|
arquivoRemessaItem.setCabecalhoRemessa(cabecalhoRemessa);
|
||||||
|
|
||||||
DetalheObrigatorioSantander tituloSantander = new DetalheObrigatorioSantander();
|
DetalheObrigatorioMercantil titulo = new DetalheObrigatorioMercantil();
|
||||||
|
|
||||||
tituloSantander.setValor(new BigDecimal("4567.88"));
|
|
||||||
tituloSantander.setVencimento(new Date());
|
|
||||||
tituloSantander.setTipoInscricao(TipoInscricaoPagador.getInstanceByName("cpf"));
|
|
||||||
tituloSantander.setNumeroInscricao(new Long(1452265658));
|
|
||||||
tituloSantander.setCepSacado("32015");
|
|
||||||
tituloSantander.setComplementoCepSacado("490");
|
|
||||||
tituloSantander.setNumeroDoDocumento("555666777");
|
|
||||||
tituloSantander.setAgencia("0555");
|
|
||||||
tituloSantander.setEmissao( new Date() );
|
|
||||||
//tituloSantander.setOrigemDoPagamento(999);
|
|
||||||
|
|
||||||
|
titulo.setValorTitulo(new BigDecimal("4567.88"));
|
||||||
|
titulo.setVencimento(new Date());
|
||||||
|
titulo.setCnpj(new Long("1452265658222"));
|
||||||
|
titulo.setCepPrefixo("32015");
|
||||||
|
titulo.setCepSufixo("490");
|
||||||
|
titulo.setNumeroDoDocumento("555666777");
|
||||||
|
titulo.setAgenciaOrigem("0555");
|
||||||
|
titulo.setEmissao( new Date() );
|
||||||
|
|
||||||
try {
|
try {
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
arquivoRemessaItem.addTitulo(tituloSantander.clone());
|
arquivoRemessaItem.addTitulo(titulo.clone());
|
||||||
} catch (CloneNotSupportedException e1) {
|
} catch (CloneNotSupportedException e1) {
|
||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RemessaInterface remessaInterface = new SantanderFlatFile();
|
RemessaInterface remessaInterface = new MercantilFlatFile();
|
||||||
|
|
||||||
RodapeRemessaPadrao rodapeRemessa = new RodapeRemessaPadrao();
|
RodapeRemessaPadrao rodapeRemessa = new RodapeRemessaPadrao();
|
||||||
rodapeRemessa.setNumeroSequencialRegistro(9999);
|
rodapeRemessa.setNumeroSequencialRegistro(9999);
|
||||||
|
@ -71,7 +64,7 @@ public class Main {
|
||||||
|
|
||||||
File arquivoRemessaFisico = new File("C:\\Fabio\\fabio.txt");
|
File arquivoRemessaFisico = new File("C:\\Fabio\\fabio.txt");
|
||||||
|
|
||||||
ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.SANTANDER_400_Envio);
|
ArquivoRemessa arquivoRemessa = new ArquivoRemessa(BancoLayout.MERCANTIL_400_Envio);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
arquivoRemessa.addItem(arquivoRemessaItem.clone());
|
arquivoRemessa.addItem(arquivoRemessaItem.clone());
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.rjconsultores.ventaboletos.blocos.mercantil;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.ArquivoRemessaItem;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.RodapeRemessa;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.RodapeRemessaPadrao;
|
||||||
|
|
||||||
|
public class ArquivoRemessaMercantil extends ArquivoRemessaItem {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCabecalhoRemessa(CabecalhoRemessa cabecalhoRemessa) {
|
||||||
|
|
||||||
|
if(cabecalhoRemessa instanceof CabecalhoRemessaMercantil){
|
||||||
|
super.setCabecalhoRemessa(cabecalhoRemessa);
|
||||||
|
}else{
|
||||||
|
throw new ClassCastException("Somente cabecalho tipo: " + CabecalhoRemessaMercantil.class.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addTitulo(DetalheObrigatorio titulo){
|
||||||
|
if(this.titulos == null){
|
||||||
|
this.titulos = new ArrayList<DetalheObrigatorio>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(titulo instanceof DetalheObrigatorioMercantil){
|
||||||
|
titulo.setNumeroSequencialRegistro(titulos.size() + 2);
|
||||||
|
this.titulos.add(titulo);
|
||||||
|
}else{
|
||||||
|
throw new ClassCastException("Somente cabecalho tipo: " + DetalheObrigatorioMercantil.class.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RodapeRemessa getRodapeRemessa() {
|
||||||
|
this.rodapeRemessa = this.rodapeRemessa == null ? new RodapeRemessaPadrao() : this.rodapeRemessa;
|
||||||
|
rodapeRemessa.setNumeroSequencialRegistro(titulos.size() + 2);
|
||||||
|
return rodapeRemessa;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
package com.rjconsultores.ventaboletos.blocos.mercantil;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||||
|
|
||||||
|
public class CabecalhoRemessaMercantil implements CabecalhoRemessa {
|
||||||
|
|
||||||
|
private String agenciaOrigem;
|
||||||
|
private Long cnpj;
|
||||||
|
private String codigoEmpresa;
|
||||||
|
private String nomeEmpresa;
|
||||||
|
private Date dataGravacao;
|
||||||
|
private Integer numeroSequencialRemessa;
|
||||||
|
private Integer numeroSequencialRegistro;
|
||||||
|
|
||||||
|
public String getCodigoEmpresa() {
|
||||||
|
return codigoEmpresa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigoEmpresa(String codigoEmpresa) {
|
||||||
|
this.codigoEmpresa = codigoEmpresa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNomeEmpresa() {
|
||||||
|
return nomeEmpresa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNomeEmpresa(String nomeEmpresa) {
|
||||||
|
this.nomeEmpresa = nomeEmpresa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataGravacao() {
|
||||||
|
return dataGravacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataGravacao(Date dataGravacao) {
|
||||||
|
this.dataGravacao = dataGravacao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumeroSequencialRemessa() {
|
||||||
|
return numeroSequencialRemessa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroSequencialRemessa(Integer numeroSequencialRemessa) {
|
||||||
|
this.numeroSequencialRemessa = numeroSequencialRemessa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumeroSequencialRegistro() {
|
||||||
|
return numeroSequencialRegistro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) {
|
||||||
|
this.numeroSequencialRegistro = numeroSequencialRegistro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCnpj() {
|
||||||
|
return cnpj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCnpj(Long cnpj) {
|
||||||
|
this.cnpj = cnpj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAgenciaOrigem() {
|
||||||
|
return agenciaOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAgenciaOrigem(String agenciaOrigem) {
|
||||||
|
this.agenciaOrigem = agenciaOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,391 @@
|
||||||
|
package com.rjconsultores.ventaboletos.blocos.mercantil;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DadosBoleto;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||||
|
import com.rjconsultores.ventaboletos.enuns.TipoInscricaoPagador;
|
||||||
|
|
||||||
|
public class DetalheObrigatorioMercantil implements DetalheObrigatorio, Cloneable {
|
||||||
|
|
||||||
|
private Integer idBoletoFechamento;
|
||||||
|
private String agenciaOrigem;
|
||||||
|
private String numeroControleDoParticipante;
|
||||||
|
private String nossoNumero;
|
||||||
|
private String digitoVerificador;
|
||||||
|
private Long cnpj;
|
||||||
|
private Integer QtdPagamento = 0;
|
||||||
|
private Integer codigoDeOcorrencia = 0;
|
||||||
|
private Date dataOcorrencia;
|
||||||
|
private String numeroDoDocumento;
|
||||||
|
private Date vencimento;
|
||||||
|
private BigDecimal ValorTitulo;
|
||||||
|
private String especieDeTitulo;
|
||||||
|
private Date emissao;
|
||||||
|
private String instrucao1;
|
||||||
|
private String instrucao2;
|
||||||
|
private BigDecimal valorAtraso = BigDecimal.ZERO;
|
||||||
|
private Date dataLimiteDesconto;
|
||||||
|
private BigDecimal valorDesconto = BigDecimal.ZERO;
|
||||||
|
private BigDecimal valorIOF = BigDecimal.ZERO;
|
||||||
|
private BigDecimal valorAbatimentoConcedido = BigDecimal.ZERO;
|
||||||
|
private TipoInscricaoPagador tipoInscricaoPagador;
|
||||||
|
private Long numeroInscricaoPagador;
|
||||||
|
private String nomePagador;
|
||||||
|
private String enderecoCompletoPagador;
|
||||||
|
private String bairro;
|
||||||
|
private String cidade;
|
||||||
|
private String estado;
|
||||||
|
private String mensagem1;
|
||||||
|
private String cepPrefixo;
|
||||||
|
private String cepSufixo;
|
||||||
|
private String sacadorAvalistaMensagem2;
|
||||||
|
private Integer numeroSequencialRegistro;
|
||||||
|
private Integer multaPercentual;
|
||||||
|
private Integer numeroContrato;
|
||||||
|
private Integer seuNumero;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
MultaPercentual"
|
||||||
|
MultaData"
|
||||||
|
"
|
||||||
|
IdentificacaoTitulo"
|
||||||
|
AgenciaOrigem"
|
||||||
|
DigitoVerificador"
|
||||||
|
|
||||||
|
CNPJ"
|
||||||
|
QuantidadeMoeda"
|
||||||
|
CodigoOperacao"
|
||||||
|
CodigoMovimentacao"
|
||||||
|
SeuNumero"
|
||||||
|
DataVencimento"
|
||||||
|
|
||||||
|
CodigoBanco"
|
||||||
|
Agencia"
|
||||||
|
Aceite"
|
||||||
|
JurosDeMora"
|
||||||
|
DataLimiteDesconto"
|
||||||
|
DescontoConcedido"
|
||||||
|
IOF_Devido"
|
||||||
|
AbatimentoConcedido"
|
||||||
|
TipoInscricaoSacado"
|
||||||
|
NumeroInscricaoSacado"
|
||||||
|
NomeSacado"
|
||||||
|
EnderecoSacado"
|
||||||
|
BairroSacado"
|
||||||
|
CepSacado"
|
||||||
|
ComplementoCepSacado"
|
||||||
|
Cidade"
|
||||||
|
Estado"
|
||||||
|
SacadorAvalista"
|
||||||
|
|
||||||
|
CodigoMoeda"
|
||||||
|
*/
|
||||||
|
|
||||||
|
private DadosBoleto dadosBoleto;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setIdBoletoFechamento(Integer id) {
|
||||||
|
this.idBoletoFechamento = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getIdBoletoFechamento(){
|
||||||
|
return this.idBoletoFechamento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DetalheObrigatorio clone() throws CloneNotSupportedException {
|
||||||
|
return (DetalheObrigatorio) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAgenciaOrigem() {
|
||||||
|
return agenciaOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAgenciaOrigem(String agenciaOrigem) {
|
||||||
|
this.agenciaOrigem = agenciaOrigem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumeroControleDoParticipante() {
|
||||||
|
return numeroControleDoParticipante;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroControleDoParticipante(String numeroControleDoParticipante) {
|
||||||
|
this.numeroControleDoParticipante = numeroControleDoParticipante;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNossoNumero() {
|
||||||
|
return nossoNumero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNossoNumero(String nossoNumero) {
|
||||||
|
this.nossoNumero = nossoNumero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDigitoVerificador() {
|
||||||
|
return digitoVerificador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDigitoVerificador(String digitoVerificador) {
|
||||||
|
this.digitoVerificador = digitoVerificador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getQtdPagamento() {
|
||||||
|
return QtdPagamento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQtdPagamento(Integer qtdPagamento) {
|
||||||
|
QtdPagamento = qtdPagamento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCodigoDeOcorrencia() {
|
||||||
|
return codigoDeOcorrencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodigoDeOcorrencia(Integer codigoDeOcorrencia) {
|
||||||
|
this.codigoDeOcorrencia = codigoDeOcorrencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataOcorrencia() {
|
||||||
|
return dataOcorrencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataOcorrencia(Date dataOcorrencia) {
|
||||||
|
this.dataOcorrencia = dataOcorrencia;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNumeroDoDocumento() {
|
||||||
|
return numeroDoDocumento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroDoDocumento(String numeroDoDocumento) {
|
||||||
|
this.numeroDoDocumento = numeroDoDocumento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getVencimento() {
|
||||||
|
return vencimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVencimento(Date vencimento) {
|
||||||
|
this.vencimento = vencimento;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorTitulo() {
|
||||||
|
return ValorTitulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorTitulo(BigDecimal valorTitulo) {
|
||||||
|
ValorTitulo = valorTitulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEspecieDeTitulo() {
|
||||||
|
return especieDeTitulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEspecieDeTitulo(String especieDeTitulo) {
|
||||||
|
this.especieDeTitulo = especieDeTitulo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getEmissao() {
|
||||||
|
return emissao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmissao(Date emissao) {
|
||||||
|
this.emissao = emissao;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInstrucao1() {
|
||||||
|
return instrucao1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInstrucao1(String instrucao1) {
|
||||||
|
this.instrucao1 = instrucao1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInstrucao2() {
|
||||||
|
return instrucao2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInstrucao2(String instrucao2) {
|
||||||
|
this.instrucao2 = instrucao2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorAtraso() {
|
||||||
|
return valorAtraso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorAtraso(BigDecimal valorAtraso) {
|
||||||
|
this.valorAtraso = valorAtraso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataLimiteDesconto() {
|
||||||
|
return dataLimiteDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataLimiteDesconto(Date dataLimiteDesconto) {
|
||||||
|
this.dataLimiteDesconto = dataLimiteDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorDesconto() {
|
||||||
|
return valorDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorDesconto(BigDecimal valorDesconto) {
|
||||||
|
this.valorDesconto = valorDesconto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorIOF() {
|
||||||
|
return valorIOF;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorIOF(BigDecimal valorIOF) {
|
||||||
|
this.valorIOF = valorIOF;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValorAbatimentoConcedido() {
|
||||||
|
return valorAbatimentoConcedido;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValorAbatimentoConcedido(BigDecimal valorAbatimentoConcedido) {
|
||||||
|
this.valorAbatimentoConcedido = valorAbatimentoConcedido;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TipoInscricaoPagador getTipoInscricaoPagador() {
|
||||||
|
return tipoInscricaoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipoInscricaoPagador(TipoInscricaoPagador tipoInscricaoPagador) {
|
||||||
|
this.tipoInscricaoPagador = tipoInscricaoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getNumeroInscricaoPagador() {
|
||||||
|
return numeroInscricaoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroInscricaoPagador(Long numeroInscricaoPagador) {
|
||||||
|
this.numeroInscricaoPagador = numeroInscricaoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNomePagador() {
|
||||||
|
return nomePagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNomePagador(String nomePagador) {
|
||||||
|
this.nomePagador = nomePagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEnderecoCompletoPagador() {
|
||||||
|
return enderecoCompletoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnderecoCompletoPagador(String enderecoCompletoPagador) {
|
||||||
|
this.enderecoCompletoPagador = enderecoCompletoPagador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMensagem1() {
|
||||||
|
return mensagem1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMensagem1(String mensagem1) {
|
||||||
|
this.mensagem1 = mensagem1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSacadorAvalistaMensagem2() {
|
||||||
|
return sacadorAvalistaMensagem2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSacadorAvalistaMensagem2(String sacadorAvalistaMensagem2) {
|
||||||
|
this.sacadorAvalistaMensagem2 = sacadorAvalistaMensagem2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumeroSequencialRegistro() {
|
||||||
|
return numeroSequencialRegistro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroSequencialRegistro(Integer numeroSequencialRegistro) {
|
||||||
|
this.numeroSequencialRegistro = numeroSequencialRegistro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DadosBoleto getDadosBoleto() {
|
||||||
|
return dadosBoleto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDadosBoleto(DadosBoleto dadosBoleto) {
|
||||||
|
this.dadosBoleto = dadosBoleto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMultaPercentual() {
|
||||||
|
return multaPercentual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMultaPercentual(Integer multaPercentual) {
|
||||||
|
this.multaPercentual = multaPercentual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCepPrefixo() {
|
||||||
|
return cepPrefixo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCepPrefixo(String cepPrefixo) {
|
||||||
|
this.cepPrefixo = cepPrefixo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCepSufixo() {
|
||||||
|
return cepSufixo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCepSufixo(String cepSufixo) {
|
||||||
|
this.cepSufixo = cepSufixo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getCnpj() {
|
||||||
|
return cnpj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCnpj(Long cnpj) {
|
||||||
|
this.cnpj = cnpj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumeroContrato() {
|
||||||
|
return numeroContrato;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNumeroContrato(Integer numeroContrato) {
|
||||||
|
this.numeroContrato = numeroContrato;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getSeuNumero() {
|
||||||
|
return seuNumero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSeuNumero(Integer seuNumero) {
|
||||||
|
this.seuNumero = seuNumero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBairro() {
|
||||||
|
return bairro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBairro(String bairro) {
|
||||||
|
this.bairro = bairro;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCidade() {
|
||||||
|
return cidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCidade(String cidade) {
|
||||||
|
this.cidade = cidade;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEstado() {
|
||||||
|
return estado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEstado(String estado) {
|
||||||
|
this.estado = estado;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ public enum BancoLayout {
|
||||||
ITAU_400_Envio("341", false, "/layouts/LayoutItauCNAB400Envio.txg.xml"),
|
ITAU_400_Envio("341", false, "/layouts/LayoutItauCNAB400Envio.txg.xml"),
|
||||||
BB_240_Envio("001", false, "/layouts/LayoutBBCNAB240Envio.txg.xml"),
|
BB_240_Envio("001", false, "/layouts/LayoutBBCNAB240Envio.txg.xml"),
|
||||||
SANTANDER_400_Envio("033", false, "/layouts/LayoutSantanderCNAB400Envio.txg.xml"),
|
SANTANDER_400_Envio("033", false, "/layouts/LayoutSantanderCNAB400Envio.txg.xml"),
|
||||||
|
MERCANTIL_400_Envio("389", false, "/layouts/LayoutMercantilCNAB400Envio.txg.xml"),
|
||||||
SANTANDER_400_Retorno("033", true, "/layouts/LayoutSantanderCNAB400Retorno.txg.xml"),
|
SANTANDER_400_Retorno("033", true, "/layouts/LayoutSantanderCNAB400Retorno.txg.xml"),
|
||||||
BRADESCO_400_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"),
|
BRADESCO_400_Retorno("237", true, "/layouts/LayoutBradescoCNAB400Retorno.txg.xml"),
|
||||||
ITAU_400_Retorno("341", true, ""),
|
ITAU_400_Retorno("341", true, ""),
|
||||||
|
@ -14,13 +15,11 @@ public enum BancoLayout {
|
||||||
this.codBanco = codBanco;
|
this.codBanco = codBanco;
|
||||||
this.retorno = retorno;
|
this.retorno = retorno;
|
||||||
this.path = path;
|
this.path = path;
|
||||||
this.valido = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String codBanco;
|
private String codBanco;
|
||||||
private boolean retorno;
|
private boolean retorno;
|
||||||
private String path;
|
private String path;
|
||||||
private boolean valido = true;
|
|
||||||
|
|
||||||
public String getCodBanco() {
|
public String getCodBanco() {
|
||||||
return codBanco;
|
return codBanco;
|
||||||
|
@ -38,14 +37,6 @@ public enum BancoLayout {
|
||||||
return path.substring(path.lastIndexOf("/"));
|
return path.substring(path.lastIndexOf("/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isValido() {
|
|
||||||
return valido;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValido(boolean valido) {
|
|
||||||
this.valido = valido;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BancoLayout getInstanceByCodBanco(String codBanco){
|
public static BancoLayout getInstanceByCodBanco(String codBanco){
|
||||||
|
|
||||||
for(BancoLayout o : BancoLayout.values()){
|
for(BancoLayout o : BancoLayout.values()){
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.rjconsultores.ventaboletos.enuns;
|
||||||
|
|
||||||
|
public enum OcorrenciaMercantil {
|
||||||
|
|
||||||
|
EntNor("01","REMESSA – ENTRADA NORMAL"),
|
||||||
|
PedCli("02","BAIXA – PEDIDO DO CLIENTE"),
|
||||||
|
ConAba("04","ALTERAÇÃO – CONCESSÃO DE ABATIMENTO"),
|
||||||
|
CanAba("05","ALTERAÇÃO – CANCELAMENTO DE ABATIMENTO"),
|
||||||
|
ProVen("06","ALTERAÇÃO – PRORROGAÇÃO DE VENCIMENTO"),
|
||||||
|
ConDes("07","CONCEDER DESCONTO DE R$"),
|
||||||
|
ProAvi("09","PROTESTAR SEM MAIS AVISO CONSULTA");
|
||||||
|
|
||||||
|
private OcorrenciaMercantil(String id, String label){
|
||||||
|
this.id = id;
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String label;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OcorrenciaMercantil getInstance(String id){
|
||||||
|
|
||||||
|
for(OcorrenciaMercantil o : OcorrenciaMercantil.values()){
|
||||||
|
|
||||||
|
if(o.getId().equals(id)){
|
||||||
|
return o;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,6 +12,8 @@ public class CNABFactory {
|
||||||
return new BradescoFlatFile();
|
return new BradescoFlatFile();
|
||||||
case SANTANDER_400_Envio:
|
case SANTANDER_400_Envio:
|
||||||
return new SantanderFlatFile();
|
return new SantanderFlatFile();
|
||||||
|
case MERCANTIL_400_Envio:
|
||||||
|
return new MercantilFlatFile();
|
||||||
case ITAU_400_Envio:
|
case ITAU_400_Envio:
|
||||||
return new ItauFlatFile();
|
return new ItauFlatFile();
|
||||||
case BB_240_Envio:
|
case BB_240_Envio:
|
||||||
|
@ -20,7 +22,6 @@ public class CNABFactory {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +36,6 @@ public class CNABFactory {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,131 @@
|
||||||
|
package com.rjconsultores.ventaboletos.layouts;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.jrimum.texgit.Record;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.CabecalhoRemessa;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.CabecalhoRetorno;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DadosBoleto;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DetalheObrigatorio;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.DetalheRetorno;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.RateioDeCredito;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.RodapeRemessa;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.RodapeRetorno;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.mercantil.CabecalhoRemessaMercantil;
|
||||||
|
import com.rjconsultores.ventaboletos.blocos.mercantil.DetalheObrigatorioMercantil;
|
||||||
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
||||||
|
import com.rjconsultores.ventaboletos.utils.FormataUtil;
|
||||||
|
|
||||||
|
public class MercantilFlatFile extends AbstractFlatFile implements RemessaInterface {
|
||||||
|
|
||||||
|
public MercantilFlatFile() {
|
||||||
|
super(BancoLayout.MERCANTIL_400_Envio);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createHeader(CabecalhoRemessa cabecalhoRemessaParam) {
|
||||||
|
|
||||||
|
Record header = getFlatFile().createRecord("Header");
|
||||||
|
|
||||||
|
CabecalhoRemessaMercantil cabecalhoRemessa = (CabecalhoRemessaMercantil) cabecalhoRemessaParam;
|
||||||
|
|
||||||
|
header.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getAgenciaOrigem(), 4));
|
||||||
|
header.setValue("Cliente", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getCnpj().toString(), 15));
|
||||||
|
header.setValue("NomeDaEmpresa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNomeEmpresa(), 30));
|
||||||
|
header.setValue("DataGravacaoArquivo", FormataUtil.formataDataToString(cabecalhoRemessa.getDataGravacao(), "000000", "ddMMyy"));
|
||||||
|
header.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRegistro().toString(), 5));
|
||||||
|
header.setValue("NumeroSequencialRemessa", FormataUtil.formatarValorPorTamanho(cabecalhoRemessa.getNumeroSequencialRemessa().toString(), 6));
|
||||||
|
|
||||||
|
getFlatFile().addRecord(header);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createTransacaoTitulos(DetalheObrigatorio tituloParam) {
|
||||||
|
|
||||||
|
Record transacaoTitulos = getFlatFile().createRecord("TransacaoTitulo");
|
||||||
|
|
||||||
|
DetalheObrigatorioMercantil titulo = (DetalheObrigatorioMercantil) tituloParam;
|
||||||
|
|
||||||
|
transacaoTitulos.setValue("AgenciaOrigem", FormataUtil.formatarValorPorTamanho(titulo.getAgenciaOrigem(), 5));
|
||||||
|
transacaoTitulos.setValue("MultaPercentual", FormataUtil.formatarValorPorTamanho(titulo.getMultaPercentual(), 2));
|
||||||
|
transacaoTitulos.setValue("CNPJ", FormataUtil.formatarValorPorTamanho(titulo.getCnpj().toString(), 15));
|
||||||
|
transacaoTitulos.setValue("NumeroContrato", FormataUtil.formatarValorPorTamanho(titulo.getNumeroContrato(), 9));
|
||||||
|
transacaoTitulos.setValue("NumeroControleDoParticipante", FormataUtil.formatarValorPorTamanho(titulo.getNumeroControleDoParticipante(), 25));
|
||||||
|
transacaoTitulos.setValue("Filler1", FormataUtil.formatarValorPorTamanho("0", 8));
|
||||||
|
transacaoTitulos.setValue("NossoNumero", FormataUtil.formatarValorPorTamanho(titulo.getNossoNumero(), 10));
|
||||||
|
transacaoTitulos.setValue("DigitoVerificador", FormataUtil.formatarValorPorTamanho(titulo.getDigitoVerificador(), 1));
|
||||||
|
transacaoTitulos.setValue("SeuNumero", FormataUtil.formatarValorPorTamanho(titulo.getSeuNumero(), 10));
|
||||||
|
transacaoTitulos.setValue("DadosIgnorados2", FormataUtil.formatarValorPorTamanho("", 25));
|
||||||
|
transacaoTitulos.setValue("QtdPagamento", FormataUtil.formatarValorPorTamanho(titulo.getQtdPagamento(), 25));
|
||||||
|
//transacaoTitulos.setValue("CodigoDeOcorrencia", FormataUtil.formatarValorPorTamanho(titulo.getCodigoDeOcorrencia().toString(), 2));
|
||||||
|
transacaoTitulos.setValue("NumeroDoDocumento", FormataUtil.formatarValorPorTamanho(titulo.getNumeroDoDocumento(), 10));
|
||||||
|
transacaoTitulos.setValue("Vencimento", FormataUtil.formataDataToString(titulo.getVencimento(), "000000", "ddMMyy"));
|
||||||
|
transacaoTitulos.setValue("ValorTitulo", titulo.getValorTitulo());
|
||||||
|
//transacaoTitulos.setValue("BancoCobranca", FormataUtil.formatarValorPorTamanho("0", 3));
|
||||||
|
//transacaoTitulos.setValue("AgenciaAgencia", FormataUtil.formatarValorPorTamanho("0", 5));
|
||||||
|
transacaoTitulos.setValue("EspecieDeTitulo", FormataUtil.formatarValorPorTamanho(titulo.getEspecieDeTitulo(), 2));
|
||||||
|
//transacaoTitulos.setValue("Identificação", FormataUtil.formatarValorPorTamanho("N", 1));
|
||||||
|
transacaoTitulos.setValue("Emissao", FormataUtil.formataDataToString(titulo.getEmissao(), "000000", "ddMMyy"));
|
||||||
|
transacaoTitulos.setValue("Instrucao1", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao1(), 2));
|
||||||
|
transacaoTitulos.setValue("Instrucao2", FormataUtil.formatarValorPorTamanho(titulo.getInstrucao2(), 2));
|
||||||
|
transacaoTitulos.setValue("ValorAtraso", titulo.getValorAtraso());
|
||||||
|
transacaoTitulos.setValue("DataLimiteDesconto", FormataUtil.formataData(titulo.getDataLimiteDesconto()));
|
||||||
|
transacaoTitulos.setValue("ValorDesconto", titulo.getValorDesconto());
|
||||||
|
transacaoTitulos.setValue("ValorIOF", titulo.getValorIOF());
|
||||||
|
transacaoTitulos.setValue("ValorAbatimentoConcedido", titulo.getValorAbatimentoConcedido());
|
||||||
|
transacaoTitulos.setValue("NomePagador", FormataUtil.formatarValorPorTamanho(titulo.getNomePagador(), 40));
|
||||||
|
transacaoTitulos.setValue("EnderecoCompletoPagador", FormataUtil.formatarValorPorTamanho(titulo.getEnderecoCompletoPagador(), 40));
|
||||||
|
transacaoTitulos.setValue("Mensagem1", FormataUtil.formatarValorPorTamanho(titulo.getMensagem1(), 12));
|
||||||
|
transacaoTitulos.setValue("CEPPrefixo", FormataUtil.formatarValorPorTamanho(titulo.getCepPrefixo(), 5));
|
||||||
|
transacaoTitulos.setValue("CEPSufixo", FormataUtil.formatarValorPorTamanho(titulo.getCepSufixo(), 3));
|
||||||
|
transacaoTitulos.setValue("BairroSacado", FormataUtil.formatarValorPorTamanho(titulo.getBairro(), 12));
|
||||||
|
transacaoTitulos.setValue("Cidade", FormataUtil.formatarValorPorTamanho(titulo.getCidade(), 15));
|
||||||
|
transacaoTitulos.setValue("Estado", FormataUtil.formatarValorPorTamanho(titulo.getEstado(), 2));
|
||||||
|
transacaoTitulos.setValue("Sacador_Avalista_Mensagem2", FormataUtil.formatarValorPorTamanho(titulo.getSacadorAvalistaMensagem2(), 60));
|
||||||
|
transacaoTitulos.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(titulo.getNumeroSequencialRegistro().toString(), 6));
|
||||||
|
|
||||||
|
DadosBoleto dadosBoleto = titulo.getDadosBoleto();
|
||||||
|
|
||||||
|
try{
|
||||||
|
if(dadosBoleto != null){
|
||||||
|
transacaoTitulos.addInnerRecord(createDadosBoletos(dadosBoleto));
|
||||||
|
}
|
||||||
|
}catch(UnsupportedOperationException e){ }
|
||||||
|
|
||||||
|
getFlatFile().addRecord(transacaoTitulos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Record createDadosBoletos(DadosBoleto boleto) {
|
||||||
|
throw new UnsupportedOperationException("Não necessário...");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Record createRateioDeCredito(RateioDeCredito rateioDeCredito) {
|
||||||
|
throw new UnsupportedOperationException("Não necessário...");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createTrailler(RodapeRemessa trailler){
|
||||||
|
Record trailer = getFlatFile().createRecord("Trailler");
|
||||||
|
trailer.setValue("NumeroSequencialRegistro", FormataUtil.formatarValorPorTamanho(trailler.getNumeroSequencialRegistro().toString(), 6));
|
||||||
|
getFlatFile().addRecord(trailer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CabecalhoRetorno readHeader(Record header) {
|
||||||
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<DetalheRetorno> readTransacaoTitulos(Collection<Record> registrosDeTransacoes) {
|
||||||
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected RodapeRetorno readTrailler(Record trailler) {
|
||||||
|
throw new UnsupportedOperationException("Somente classe de Retorno.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,6 +16,13 @@ public class FormataUtil {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String formatarValorPorTamanho(Integer valor, int tamanho) {
|
||||||
|
|
||||||
|
String value = valor == null ? "" : valor.toString();
|
||||||
|
|
||||||
|
return formatarValorPorTamanho(value, tamanho) ;
|
||||||
|
}
|
||||||
|
|
||||||
public static String formatarValorPorTamanhoZeroEsquerda(String value, int tamanho) {
|
public static String formatarValorPorTamanhoZeroEsquerda(String value, int tamanho) {
|
||||||
|
|
||||||
value = value == null ? "" : value;
|
value = value == null ? "" : value;
|
||||||
|
|
|
@ -30,11 +30,14 @@ public class NossoNumeroUtils {
|
||||||
return StringUtils.right("00000000" + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero);
|
return StringUtils.right("00000000" + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String calcularNossoNumeroSantander(BigInteger nossoNumero){
|
public static String calcularNossoNumeroSantander(BigInteger nossoNumero){
|
||||||
return StringUtils.right("0000000" + nossoNumero, 7)+dacSantander( nossoNumero.toString() );
|
return StringUtils.right("0000000" + nossoNumero, 7)+dacSantander( nossoNumero.toString() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String calcularNossoNumeroMercantil(Integer agencia, BigInteger nossoNumero){
|
||||||
|
return StringUtils.right("0000000000" + nossoNumero, 10)+dacMercantil( agencia, nossoNumero );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Devolve o nosso numero do BB com o DV calculado (Tamanho 20)...
|
* Devolve o nosso numero do BB com o DV calculado (Tamanho 20)...
|
||||||
* @param convenioBanco
|
* @param convenioBanco
|
||||||
|
@ -105,6 +108,31 @@ public class NossoNumeroUtils {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String dacMercantil(Integer agencia, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
int multiplicadores[] = {7,6,5,4,3,2,9,8,7,6,5,4,3,2};
|
||||||
|
|
||||||
|
String agenciaformatada = StringUtils.right("0000" + agencia, 4);
|
||||||
|
String nNumero = StringUtils.right("00000000000" + nossoNumero, 10);
|
||||||
|
|
||||||
|
String base = agenciaformatada + nNumero;
|
||||||
|
|
||||||
|
int soma = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < base.length(); i++) {
|
||||||
|
String d = base.charAt(i)+"";
|
||||||
|
soma = Integer.valueOf(d) * multiplicadores[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int mod = soma % 11;
|
||||||
|
|
||||||
|
if( mod == 0 || mod == 1 ) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
return String.valueOf(11 - mod);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calcula do DV para o Itau
|
* Calcula do DV para o Itau
|
||||||
* @param codAgencia
|
* @param codAgencia
|
||||||
|
@ -185,7 +213,6 @@ public class NossoNumeroUtils {
|
||||||
return mod + "";
|
return mod + "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String dacSantander(String nossoNumero){
|
public static String dacSantander(String nossoNumero){
|
||||||
|
|
||||||
int multiplicador = 2;
|
int multiplicador = 2;
|
||||||
|
@ -216,7 +243,6 @@ public class NossoNumeroUtils {
|
||||||
return String.valueOf(11 - mod);
|
return String.valueOf(11 - mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calcula do DV para o Itau (Numero Documento)
|
* Calcula do DV para o Itau (Numero Documento)
|
||||||
* @param codAgencia
|
* @param codAgencia
|
||||||
|
@ -255,8 +281,6 @@ public class NossoNumeroUtils {
|
||||||
|
|
||||||
dac = 10 - (dac % 10);
|
dac = 10 - (dac % 10);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return dac + "";
|
return dac + "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,6 +294,10 @@ public class NossoNumeroUtils {
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(BancoLayout.MERCANTIL_400_Envio.equals(bancoLayout) && nossoNumero.length() == 12 ){
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if(BancoLayout.SANTANDER_400_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){
|
if(BancoLayout.SANTANDER_400_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
@ -281,10 +309,9 @@ public class NossoNumeroUtils {
|
||||||
return Boolean.FALSE;
|
return Boolean.FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
System.out.println( calcularNossoNumeroSantander( new BigInteger("2457800") ));
|
System.out.println( calcularNossoNumeroMercantil( 89, new BigInteger("0032861174") ));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
<?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_SantanderCNAB400</name>
|
||||||
|
<version>Version 2,0, Published: outubro/2009</version>
|
||||||
|
<description>
|
||||||
|
Layout para Cobrança.
|
||||||
|
|
||||||
|
Arquivo texto - padrão CNAB
|
||||||
|
Meio de Registro Transmissão de Dados
|
||||||
|
Descrição de Registro - Tamanho 400 Bytes
|
||||||
|
Organização Sequencial
|
||||||
|
|
||||||
|
ARQUIVO FORMATO CNAB REMESSA, REGISTROS:
|
||||||
|
|
||||||
|
0 = Header
|
||||||
|
1 = Registro de Movimento
|
||||||
|
2 = Mensagem Variável por Título (Opcional)
|
||||||
|
4 = Mensagem Variável por Título (Opcional)
|
||||||
|
5 = Mensagem Variável por Título (Opcional)
|
||||||
|
6 = Mensagem Variável por Título (Opcional)
|
||||||
|
7 = Mensagem Variável por Título (Opcional)
|
||||||
|
9 = Trailler
|
||||||
|
</description>
|
||||||
|
</layout>
|
||||||
|
<GroupOfRecords>
|
||||||
|
<Record name="Header" description="Protocolo de comunicação" repeatable="true">
|
||||||
|
<GroupOfFields>
|
||||||
|
<IdType name="IDReg" length="1" value="0" position="1" />
|
||||||
|
<Field name="IdentificacaoRemessa" length="1" value="1" />
|
||||||
|
<Field name="LiteralRemessa" length="7" value="REMESSA" />
|
||||||
|
<Field name="CodigoDeServico" length="2" value="01" />
|
||||||
|
<Field name="LiteralServico" length="8" value="COBRANCA" />
|
||||||
|
<Field name="Brancos" length="7" blankAccepted="true" />
|
||||||
|
<Field name="AgenciaOrigem" length="4" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="Cliente" length="15" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="Brancos" length="1" blankAccepted="true" />
|
||||||
|
<Field name="NomeDaEmpresa" length="30" type="CHARACTER" />
|
||||||
|
<Field name="CodigoBanco" length="3" value="389" />
|
||||||
|
<Field name="NomeBanco" length="15" value="BANCANTIL" />
|
||||||
|
<Field name="DataGravacaoArquivo" length="6" type="DATE" format="DATE_DDMMYY" />
|
||||||
|
<Field name="Brancos" length="281" blankAccepted="true" />
|
||||||
|
<Field name="Densidade" length="5" value="01600" />
|
||||||
|
<Field name="BPI" length="3" blankAccepted="true" />
|
||||||
|
<Field name="NumeroSequencialRegistro" length="5" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="NumeroSequencialRemessa" length="6" value="000001" />
|
||||||
|
|
||||||
|
</GroupOfFields>
|
||||||
|
</Record>
|
||||||
|
|
||||||
|
<Record name="TransacaoTitulo" repeatable="true">
|
||||||
|
<GroupOfFields>
|
||||||
|
<IdType name="IDReg" length="1" position="1" value="1"/>
|
||||||
|
<Field name="IndicadorMulta" length="2" value="00" />
|
||||||
|
<Field name="CodigoMulta" length="1" value="0" />
|
||||||
|
<Field name="MultaPercentual" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="MultaData" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
|
||||||
|
<Field name="Brancos1" length="5" type="CHARACTER" blankAccepted="true" />
|
||||||
|
<Field name="NumeroContrato" length="9" type="INTEGER" />
|
||||||
|
<Field name="IdentificacaoTitulo" length="25" type="CHARACTER" />
|
||||||
|
<Field name="AgenciaOrigem" length="4" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="NossoNumero" length="10" type="INTEGER" />
|
||||||
|
<Field name="DigitoVerificador" length="1" type="INTEGER" />
|
||||||
|
<Field name="Brancos2" length="5" type="CHARACTER" blankAccepted="true" />
|
||||||
|
<Field name="CNPJ" length="15" type="INTEGER" />
|
||||||
|
<Field name="QuantidadeMoeda" length="10" type="INTEGER" />
|
||||||
|
<Field name="CodigoOperacao" length="1" value="1" />
|
||||||
|
<Field name="CodigoMovimentacao" length="2" type="INTEGER" />
|
||||||
|
<Field name="SeuNumero" length="10" type="INTEGER" />
|
||||||
|
<Field name="DataVencimento" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
|
||||||
|
<Field name="ValorTitulo" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="CodigoBanco" length="3" type="INTEGER" value="389"/>
|
||||||
|
<Field name="Agencia" length="5" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="EspecieDeTitulo" length="2" type="CHARACTER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="Aceite" length="1" type="CHARACTER" value="N" />
|
||||||
|
<Field name="Emissao" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
|
||||||
|
<Field name="Instrucao1" length="2" type="CHARACTER" />
|
||||||
|
<Field name="Instrucao2" length="2" type="CHARACTER" />
|
||||||
|
<Field name="JurosDeMora" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="DataLimiteDesconto" length="6" type="DATE" format="DATE_DDMMYY" padding="ZERO_LEFT" />
|
||||||
|
<Field name="DescontoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="IOF_Devido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="AbatimentoConcedido" length="13" type="BIGDECIMAL" value="0" format="DECIMAL_DD" padding="ZERO_LEFT" />
|
||||||
|
<Field name="TipoInscricaoSacado" length="2" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="NumeroInscricaoSacado" length="14" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
<Field name="NomeSacado" length="40" type="CHARACTER" />
|
||||||
|
<Field name="EnderecoSacado" length="40" type="CHARACTER" />
|
||||||
|
<Field name="BairroSacado" length="12" type="CHARACTER" />
|
||||||
|
<Field name="CEPPrefixo" length="5" type="INTEGER" />
|
||||||
|
<Field name="CEPSufixo" length="3" type="INTEGER" />
|
||||||
|
<Field name="Cidade" length="15" type="CHARACTER" />
|
||||||
|
<Field name="Estado" length="2" type="CHARACTER" />
|
||||||
|
<Field name="SacadorAvalista" length="30" type="CHARACTER" />
|
||||||
|
<Field name="Brancos3" length="12" type="CHARACTER" blankAccepted="true" />
|
||||||
|
<Field name="CodigoMoeda" length="1" type="INTEGER" />
|
||||||
|
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
</GroupOfFields>
|
||||||
|
</Record>
|
||||||
|
<Record name="Trailler">
|
||||||
|
<GroupOfFields>
|
||||||
|
<IdType name="IDReg" length="1" value="9" position="1" />
|
||||||
|
<Field name="Filler" length="393" />
|
||||||
|
<Field name="NumeroSequencialRegistro" length="6" type="INTEGER" padding="ZERO_LEFT" />
|
||||||
|
</GroupOfFields>
|
||||||
|
</Record>
|
||||||
|
</GroupOfRecords>
|
||||||
|
</FlatFile>
|
||||||
|
|
||||||
|
</txg:Texgit>
|
Loading…
Reference in New Issue