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

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

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

import java.net.URL;

import br.com.caelum.stella.boleto.Banco;
import br.com.caelum.stella.boleto.Boleto;
import br.com.caelum.stella.boleto.Emissor;
import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros;
import static java.lang.String.format;

public class Caixa extends AbstractBanco implements Banco {

  private static final long serialVersionUID = 1L;


  private static final String NUMERO_CAIXA = "104";
  private static final String DIGITO_CAIXA = "0";

  @Override
  public String geraCodigoDeBarrasPara(Boleto boleto) {
   
    Emissor emissor = boleto.getEmissor();
    String carteiraDoEmissor = emissor.getCarteira();
    StringBuilder campoLivre = new StringBuilder();
   
    if (carteiraDoEmissor.equals("1")) {
      campoLivre.append(carteiraDoEmissor);
      campoLivre.append(leftPadWithZeros(emissor.getContaCorrente(), 6));
      campoLivre.append(getNossoNumeroDoEmissorFormatado(emissor));
    }
    else if (carteiraDoEmissor.equals("2")) {
      String nossoNumeroCompleto = getNossoNumeroDoEmissorFormatado(emissor);
      campoLivre.append(leftPadWithZeros(emissor.getContaCorrente(), 6));
      campoLivre.append(emissor.getDigitoContaCorrente());
      campoLivre.append(nossoNumeroCompleto.substring(2, 5));
      campoLivre.append(nossoNumeroCompleto.substring(0, 1));
      campoLivre.append(nossoNumeroCompleto.substring(5 ,8));
      campoLivre.append(nossoNumeroCompleto.substring(1, 2));
      campoLivre.append(nossoNumeroCompleto.substring(8));
      campoLivre.append(geradorDeDigito.geraDigitoMod11(campoLivre.toString()));
    }
    else {
      throw new IllegalArgumentException("A carteira digitada não é suportada: " + carteiraDoEmissor);
    }
    return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre);
  }

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

  @Override
  public String getCarteiraDoEmissorFormatado(Emissor emissor) {
    return leftPadWithZeros(emissor.getCarteira(), 2);
  }

  @Override
  public String getContaCorrenteDoEmissorFormatado(Emissor emissor) {
    return leftPadWithZeros(emissor.getContaCorrente(), 5);
  }
 
  public String getCodigoFornecidoPelaAgenciaFormatado(Emissor emissor) {
    return leftPadWithZeros(emissor.getCodigoFornecidoPelaAgencia(), 8);
  }

  public String getCodigoOperacaoFormatado(Emissor emissor) {
    return leftPadWithZeros(emissor.getCodigoOperacao(), 3);
  }

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

  @Override
  public String getNossoNumeroDoEmissorFormatado(Emissor emissor) {
    return leftPadWithZeros(emissor.getNossoNumero(), 17);
  }

  @Override
  public String getNumeroFormatado() {
    return NUMERO_CAIXA;
  }
 
  @Override
  public String getNossoNumeroECodDocumento(Boleto boleto) {
   
    Emissor emissor = boleto.getEmissor();
   
    String nn = getNossoNumeroDoEmissorFormatado(emissor);
    StringBuilder builder = new StringBuilder(nn);
   
    if(emissor.getDigitoNossoNumero() != null
        && !emissor.getDigitoNossoNumero().isEmpty()){
      builder.append("-").append(emissor.getDigitoNossoNumero());
    }
    return builder.toString();
  }
}
TOP

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

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.