br.com.caelum.stella.boleto.bancos.Santander Maven / Gradle / Ivy
package br.com.caelum.stella.boleto.bancos;
import static br.com.caelum.stella.boleto.utils.StellaStringUtils.leftPadWithZeros;
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;
import br.com.caelum.stella.boleto.bancos.gerador.GeradorDeDigitoSantander;
public class Santander extends AbstractBanco {
private static final long serialVersionUID = 1L;
private final static String NUMERO_SANTANDER = "033";
private final static String DIGITO_SANTANDER = "7";
private GeradorDeDigitoSantander gdivSantander = new GeradorDeDigitoSantander();
@Override
public String geraCodigoDeBarrasPara(Boleto boleto) {
Beneficiario beneficiario = boleto.getBeneficiario();
StringBuilder campoLivre = new StringBuilder("9");
campoLivre.append(getNumeroConvenioFormatado(beneficiario));
campoLivre.append(getNossoNumeroFormatado(beneficiario));
campoLivre.append("0").append(beneficiario.getCarteira());
return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre);
}
@Override
public URL getImage() {
String pathDoArquivo = "/br/com/caelum/stella/boleto/img/%s.png";
String imagem = String.format(pathDoArquivo, NUMERO_SANTANDER);
return getClass().getResource(imagem);
}
@Override
public String getNumeroFormatado() {
return NUMERO_SANTANDER;
}
@Override
public String getCarteiraFormatado(Beneficiario beneficiario) {
return leftPadWithZeros(beneficiario.getCarteira(), 3);
}
@Override
public String getCodigoBeneficiarioFormatado(Beneficiario beneficiario) {
return leftPadWithZeros(beneficiario.getCodigoBeneficiario(), 7);
}
@Override
public String getNossoNumeroFormatado(Beneficiario beneficiario) {
String nossoNumero = beneficiario.getNossoNumero();
if (beneficiario.getDigitoNossoNumero() != null) {
return leftPadWithZeros(nossoNumero+beneficiario.getDigitoNossoNumero(), 13);
}
return leftPadWithZeros(nossoNumero+getGeradorDeDigito().calculaDVNossoNumero(nossoNumero), 13);
}
@Override
public String getNumeroFormatadoComDigito() {
StringBuilder builder = new StringBuilder();
builder.append(NUMERO_SANTANDER).append("-");
return builder.append(DIGITO_SANTANDER).toString();
}
@Override
public String getAgenciaECodigoBeneficiario(Beneficiario beneficiario) {
StringBuilder builder = new StringBuilder();
builder.append(leftPadWithZeros(beneficiario.getAgencia(), 5));
builder.append("/").append(getNumeroConvenioFormatado(beneficiario));
return builder.toString();
}
@Override
public String getNossoNumeroECodigoDocumento(Boleto boleto) {
Beneficiario beneficiario = boleto.getBeneficiario();
String nossoNumero = getNossoNumeroFormatado(beneficiario);
StringBuilder builder = new StringBuilder();
builder.append(nossoNumero.substring(0, 12));
builder.append("-").append(nossoNumero.substring(12));
return builder.toString();
}
@Override
public GeradorDeDigitoSantander getGeradorDeDigito() {
return gdivSantander;
}
public String getNumeroConvenioFormatado(Beneficiario beneficiario) {
return leftPadWithZeros(beneficiario.getNumeroConvenio(), 7);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy