Package br.com.caelum.stella.boleto.bancos

Source Code of br.com.caelum.stella.boleto.bancos.Itau

package br.com.caelum.stella.boleto.bancos;

import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros;
import static br.com.caelum.stella.boleto.utils.StellaStringUtils.prefixNotNullStringOrDefault;

import java.net.URL;

import br.com.caelum.stella.boleto.Banco;
import br.com.caelum.stella.boleto.Beneficiario;
import br.com.caelum.stella.boleto.Boleto;

public class Itau extends AbstractBanco implements Banco {

  private static final long serialVersionUID = 1L;

  private static final String NUMERO_ITAU = "341";
  private static final String DIGITO_ITAU = "7";

  @Override
  public String geraCodigoDeBarrasPara(Boleto boleto) {
    Beneficiario beneficiario = boleto.getBeneficiario();
    StringBuilder campoLivre = new StringBuilder();
    campoLivre.append(getCarteiraFormatado(beneficiario));
    campoLivre.append(getNossoNumeroFormatado(beneficiario));
    campoLivre.append(beneficiario.getAgenciaFormatada());
    campoLivre.append(getCodigoBeneficiarioFormatado(beneficiario)).append("000");
    campoLivre.insert(20, this.geradorDeDigito
        .geraDigitoMod10(campoLivre.substring(11, 20)));
    campoLivre.insert(11, this.geradorDeDigito.geraDigitoMod10(campoLivre
        .substring(11, 20).concat(campoLivre.substring(0, 11))));
    return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre);
  }

  @Override
  public String getNumeroFormatadoComDigito() {
    StringBuilder builder = new StringBuilder();
    builder.append(getNumeroFormatado()).append("-");
    return builder.append(DIGITO_ITAU).toString();
  }

  @Override
  public String getCarteiraFormatado(Beneficiario beneficiario) {
    return leftPadWithZeros(beneficiario.getCarteira(), 3);
  }

  @Override
  public String getCodigoBeneficiarioFormatado(Beneficiario beneficiario) {
    return leftPadWithZeros(beneficiario.getCodigoBeneficiario(), 5);
  }

  @Override
  public URL getImage() {
    String arquivo = "/br/com/caelum/stella/boleto/img/%s.png";
    String imagem = String.format(arquivo, getNumeroFormatado());
    return getClass().getResource(imagem);
  }

  @Override
  public String getNossoNumeroFormatado(Beneficiario beneficiario) {
    return leftPadWithZeros(beneficiario.getNossoNumero(), 8);
  }
 
  @Override
  public String getNossoNumeroECodigoDocumento(Boleto boleto) {
    String valor = super.getNossoNumeroECodigoDocumento(boleto);
    Beneficiario beneficiario = boleto.getBeneficiario();
    return valor.concat("-").concat(beneficiario.getDigitoNossoNumero());
  }

  @Override
  public String getNumeroFormatado() {
    return NUMERO_ITAU;
  }
 
  @Override
  public String getAgenciaECodigoBeneficiario(Beneficiario beneficiario) {
    StringBuilder builder = new StringBuilder();
    builder.append(beneficiario.getAgenciaFormatada()).append("/");
    builder.append(getCodigoBeneficiarioFormatado(beneficiario));
    builder.append(prefixNotNullStringOrDefault(beneficiario.getDigitoCodigoBeneficiario(),"","-"))
    return builder.toString();
  }

}
TOP

Related Classes of br.com.caelum.stella.boleto.bancos.Itau

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.