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

org.jrimum.bopepo.campolivre.CLBancoSantander 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 static org.jrimum.bopepo.parametro.ParametroBancoSantander.IOF_SEGURADORA;

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;

/**
 * 

* O campo livre do Banco Santander deve seguir esta forma: *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
PosiçãoTamanhoPictureConteúdo
20-2019(01)Fixo "9"
21-2779(7)Conta do cedente padrão Santander
28-40139(13) *

* Nosso Número com zeros a esquerda. OBS: Caso o arquivo de * registro para os títulos seja de 400 bytes (CNAB) *

*
    *
  • Banco 353 (Banco Santander) - Utilizar somente 08 posições do Nosso Numero (07 posições + * DV), zerando os 05 primeiros dígitos
  • *
  • Banco 008 (Meridional do Brasil S/A) - Utilizar somente 09 posições do Nosso Numero (08 posições + * DV), zerando os 04 primeiros dígitos
  • *
*
41-4119(1) *

* IOF – Seguradoras (Se 7% informar 7. Limitado a 9%) *

*

* Demais clientes usar 0 (zero) *

*
42-4439(3) *
    *
  • 101 - Cobrança Simples Rápida COM Registro
  • *
  • 102 - Cobrança simples – SEM Registro
  • *
  • 104 - Cobrança Simples Eletrônica - COM Registro
  • *
  • 201 - Penhor Rápida com Registro
  • *
*
* * @author Gilmar P.S.L. * @author Misael Barreto * @author Dani Schinniger */ class CLBancoSantander extends AbstractCLSantander implements CampoLivre { /** * */ private static final long serialVersionUID = -412221524249334574L; /** * */ private static final Integer FIELDS_LENGTH = 6; /** * Constante informada no manual. */ private static final Integer CONSTANTE = Integer.valueOf(9); /** * 101- Cobrança Simples Rápida COM Registro */ private static final int CARTEIRA_RAPIDA_COM_REGISTRO = 101; /** * 201- Penhor Rápida com Registro */ private static final int CARTEIRA_RAPIDA_SEM_REGISTRO = 201; /** * 102- Cobrança simples – SEM Registro */ private static final int CARTEIRA_SIMPLES_SEM_REGISTRO = 102; /** * 104- Cobrança Simples Eletrônica - COM Registro */ private static final int COBRANCA_SIMPLES_ELETRONICA_COM_REGISTRO = 104; CLBancoSantander(Titulo titulo) { super(FIELDS_LENGTH); ContaBancaria conta = titulo.getContaBancaria(); StringBuilder nossoNumero = new StringBuilder(titulo.getNossoNumero()); nossoNumero.append(titulo.getDigitoDoNossoNumero()); this.add(new FixedField(CONSTANTE, 1)); this.add(new FixedField(conta.getNumeroDaConta().getCodigoDaConta(), 6, Fillers.ZERO_LEFT)); this.add(new FixedField(conta.getNumeroDaConta().getDigitoDaConta(), 1)); this.add(new FixedField(nossoNumero.toString(), 13, Fillers.ZERO_LEFT)); // IOF – Seguradoras if (titulo.hasParametrosBancarios() && Objects.isNotNull(titulo.getParametrosBancarios().getValor( IOF_SEGURADORA))) { this.add(new FixedField(titulo .getParametrosBancarios().getValor(IOF_SEGURADORA), 1)); } else { this.add(new FixedField(0, 1)); } // Tipo de Modalidade Carteira switch (conta.getCarteira().getCodigo()) { case CARTEIRA_RAPIDA_COM_REGISTRO: case CARTEIRA_RAPIDA_SEM_REGISTRO: case CARTEIRA_SIMPLES_SEM_REGISTRO: case COBRANCA_SIMPLES_ELETRONICA_COM_REGISTRO: this.add(new FixedField(conta.getCarteira().getCodigo(), 3, Fillers.ZERO_LEFT)); break; default: Exceptions.throwIllegalArgumentException(String.format( "CARTEIRA [%s] NÃO SUPORTADA!", conta.getCarteira() .getCodigo())); } } @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