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()
  • Method Details

    • montarLinhaDigitavel

      public static String montarLinhaDigitavel(CharSequence cb)
      Monta a linha digitável a partir do código de barras do boleto.
      Parameters:
      cb - o código de barras
      Returns:
      a linha digitável já formatada
    • montarCodigoDeBarras

      public static String montarCodigoDeBarras(int banco, Date vencimento, br.com.intersys.systextil.connection.Amount valor, CharSequence campoLivre)
      Monta o código de barras a partir dos dados do boleto.
      Parameters:
      banco - o código do banco
      vencimento - a data de vencimento
      valor - o valor do boleto
      campoLivre - o campo livre, já montado conforme o banco
      Returns:
      o código de barras montado
    • montarCodigoDeBarrasSafra

      public static String montarCodigoDeBarrasSafra(int banco, Date vencimento, br.com.intersys.systextil.connection.Amount valor, CharSequence campoLivre)
    • montarCodigoDeBarrasSofisa

      public static String montarCodigoDeBarrasSofisa(int banco, Date vencimento, br.com.intersys.systextil.connection.Amount valor, CharSequence campoLivre)
    • inverterModuloDaSoma

      public static byte inverterModuloDaSoma(CharSequence digitos, byte modulo, byte loop)
      Executa uma parte do cálculo do dígito verificador, que é o inverso do módulo da soma dos dígitos multiplicados pelos seus pesos.

      Na prática, da direita para a esquerda, vai multiplicando os dígitos por pesos que seguem segundo um loop (p. ex. de 2 a 9 e repetindo), e somando os resultados. No fim, calcula o módulo dessa soma por um inteiro (p. ex. 11), subtrai desse inteiro e retorna o resultado.

      Esta rotina tem aplicação em muitos tipos de cálculos de dígitos verificadores, incluindo para CNPJ e CPF. É conveniente mover esta rotina para uma classe mais genérica que possa usá-la e disponibilizá-la para todo o sistema.

      Parameters:
      digitos - os dígitos que serão analisados. Este String já deve estar limpo, isto é, contendo somente dígitos.
      modulo - o número inteiro usado para calcular o módulo (p. ex. 11)
      loop - a quantidade de pesos existentes no loop. Por exemplo, se o loop for de 2 a 9, então informar 8 (são 8 pesos)
      Returns:
      o módulo subtraído do número modulo informado. Assim, o retorno nunca será zero, e pode ir de 1 até modulo.