Class BoletosBaseCalculos

java.lang.Object
systextil.bancos.BoletosBaseCalculos

public class BoletosBaseCalculos extends Object
Representa um centralizador de cálculos genéricos e que são utilizados por todos os bancos, no ato de emissão do boleto bancário.

Importante: Alguns bancos chamam o Dígito Verificador do Código de barras de DAC (dígito de autoconferência), ou de Dígito Verificador Geral. Ambos significam a mesma coisa.
  • Constructor Details

    • BoletosBaseCalculos

      public BoletosBaseCalculos(int banco)
  • Method Details

    • getDAC

      public long getDAC(String campo)

      Responsável por calcular o dígito de autoconferência que é incluído na linha digitável dos boletos. A sequência dos valores atribuídos no código de barras, que é recebido como parâmetro, pode variar de acordo com as especificações de cada banco.

      Conforme padrão utilizado pelos bancos, o peso é aplicado de 2 até 9, da direita para a esquerda. O produto da multiplicação de cada valor do código de barras é incrementado em um total, e o mesmo é dividido por 11. Caso o resto dessa divisão for 0, 1 ou 10, o dígito de autoconferência será 1. Caso contrário, será 11 subtraído do resto da somatória.

      Parameters:
      campo - O código concatenado com as informações para o banco
      Returns:
      o valor do DAC(Dígito de autoconferência)
    • getDvDaLinhaDigitavel

      public int getDvDaLinhaDigitavel(String bloco)
      Método responsável por efetuar o cálculo do dígito verificador de cada bloco da linha digitável. O mesmo cálculo aplicado aqui pode ser utilizado por todos os bancos.

      Cada bloco recebido pode ter de 9 a 10 posições, sendo o primeiro bloco que compõe a linha digitável sempre de 9 dígitos. Neste caso, o último dígito a ser utilizado no cálculo é zero. Em outros casos, cada campo dentre as dez posições será calculado normalmente com o valor da décima posição.

      Tomando como base o bloco 3 9 9 9 1 1 1 1 1, o cálculo é realizado da seguinte maneira:

       
      1. Aplica-se os pesos da multiplicação:

      2. (3 x 2)
        (9 x 1)
        (9 x 2)
        (9 x 1)
        (1 x 2)
        (1 x 1)
        (1 x 2)
        (1 x 1)
        (1 x 2)
      3. Divide-se este somatório, pelo fator 10:

      4. 41/10 = 4
        Resto = 1
        Obs.: Quando o somatório for menor que 10, adotar a fórmula: (10 - somatório = dígito Verificador).
        Quando o resto for igual a “0” o dígito verificador será também igual a “0”.

      5. Aplica-se a fórmula :
      6. Fator 10 menos o Resto = Dígito Verificador 10 - 1 = 9
        Então o Dígito Verificador é igual a 9.
      Parameters:
      bloco - O bloco desejado para o cálculo
      Returns:
      o D.V. calculado conforme regra.
    • getDigitosDoCampo

      public int[] getDigitosDoCampo(String campo)
      Convenção utilizada para quebrar o campo informado em números.
      Parameters:
      campo - um bloco de números em formato de String
      Returns:
      Um vetor com todos os números que estão dentro do campo.
    • getMultiplicadorDoDAC

      public int getMultiplicadorDoDAC(int contador)