All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jrimum.bopepo.campolivre.CLUnibancoCobrancaNaoRegistrada Maven / Gradle / Ivy

Go to download

This is a fork and merge from JRimum ( http://www.jrimum.org ), - Bopepo: https://github.com/jrimum/bopepo - Texgit: https://github.com/jrimum/texgit - Valia: https://github.com/jrimum/vallia - Utilix: https://github.com/jrimum/utilix - Domkee: https://github.com/jrimum/domkee For Brazillian Boleto Payment Method. So much thanks for original authors: Gilmar P. S. L, Misael Barreto and Rômulo Augusto.

The newest version!
package org.jrimum.bopepo.campolivre;

import org.apache.commons.lang3.StringUtils;
import org.jrimum.domkee.banco.ContaBancaria;
import org.jrimum.domkee.banco.Titulo;
import org.jrimum.texgit.Fillers;
import org.jrimum.texgit.FixedField;
import org.jrimum.utilix.Exceptions;
import org.jrimum.utilix.Objects;
import org.jrimum.utilix.Strings;

/**
 * 
 * 

* Representação do campo livre usado para boletos com carteiras (cobrança) * sem registro. *

* *

* Layout: *

*

* Cobrança Especial (sem registro) *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
PosiçãoCampo Livre No Código De * Barras (20 a 44)
20Código da transação = 5
21 a 26Número do Cliente (Espécie de conta)
27Dígito Verificador do Número do Cliente
28 a 29zeros
30 a 43Referência do Cliente (Nosso Número Gerado Pelo * Cliente)
44Dígito Verificador da Referência do Cliente
*

* * * @author Gilmar P.S.L. * * @since 0.2 * * @version 0.2 */ class CLUnibancoCobrancaNaoRegistrada extends AbstractCLUnibanco { /** * */ private static final long serialVersionUID = 487906631678160993L; /** * */ private static final Integer FIELDS_LENGTH = 6; private static final Integer CODIGO_TRANSACAO = 5; private static final Integer RESERVADO = 0; /** *

* Dado um título, cria um campo livre para o padrão do Banco Unibanco * que tenha o tipo de cobrança não registrada. *

* @param titulo título com as informações para geração do campo livre */ CLUnibancoCobrancaNaoRegistrada(Titulo titulo) { super(FIELDS_LENGTH); ContaBancaria conta = titulo.getContaBancaria(); Objects.checkNotNull(conta,"Conta Bancária NULA!"); Objects.checkNotNull(conta.getNumeroDaConta(),"Número da Conta Bancária NULO!"); Objects.checkNotNull(conta.getNumeroDaConta().getCodigoDaConta(),"Código da Conta Bancária NULO!"); Objects.checkNotNull(conta.getNumeroDaConta().getDigitoDaConta(),"Dígito da Conta Bancária NULO!"); Objects.checkNotNull(titulo.getNossoNumero(),"Nosso Número NULO!"); this.add(new FixedField(CODIGO_TRANSACAO, 1)); if(conta.getNumeroDaConta().getCodigoDaConta() > 0){ this.add(new FixedField(conta.getNumeroDaConta().getCodigoDaConta(), 6, Fillers.ZERO_LEFT)); }else{ throw new CampoLivreException(new IllegalArgumentException("Conta bancária com valor inválido, a conta deve ser um número inteiro positivo, e não: "+conta.getNumeroDaConta().getCodigoDaConta())); } if(StringUtils.isNumeric(conta.getNumeroDaConta().getDigitoDaConta())){ Integer digitoDaConta = Integer.valueOf(conta.getNumeroDaConta().getDigitoDaConta()); if(digitoDaConta >= 0){ this.add(new FixedField(Integer.valueOf(digitoDaConta), 1)); }else{ throw new CampoLivreException(new IllegalArgumentException("O dígito da conta deve ser um número inteiro não-negativo, e não: ["+conta.getNumeroDaConta().getDigitoDaConta()+"]")); } }else{ throw new CampoLivreException(new IllegalArgumentException("O dígito da conta deve ser numérico, e não: ["+conta.getNumeroDaConta().getDigitoDaConta()+"]")); } this.add(new FixedField(RESERVADO, 2, Fillers.ZERO_LEFT)); if(StringUtils.isNumeric(titulo.getNossoNumero())){ if(Long.valueOf(Strings.removeStartWithZeros(titulo.getNossoNumero()))>0){ this.add(new FixedField(titulo.getNossoNumero(), 14,Fillers.ZERO_LEFT)); }else{ throw new CampoLivreException(new IllegalArgumentException("O campo (nosso número) do título deve ser um número inteiro positivo, e não: ["+titulo.getNossoNumero()+"]")); } }else{ throw new CampoLivreException(new IllegalArgumentException("O campo (nosso número) do título deve ser numérico, e não: ["+titulo.getNossoNumero()+"]")); } this.add(new FixedField(calculeDigitoEmModulo11(titulo.getNossoNumero()), 1)); } @Override protected void addFields(Titulo titulo) { // TODO IMPLEMENTAR Exceptions.throwUnsupportedOperationException("AINDA NÃO IMPLEMENTADO!"); } @Override protected void checkValues(Titulo titulo) { // TODO IMPLEMENTAR Exceptions.throwUnsupportedOperationException("AINDA NÃO IMPLEMENTADO!"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy