Class: BoletoBancario::Calculos::Modulo11FatorDe9a2RestoX

Inherits:
Modulo11FatorDe9a2 show all
Defined in:
lib/boleto_bancario/calculos/modulo11_fator_de9a2_resto_x.rb

Overview

Módulo 11 Fator de 9 a 2 - Resto 10, sendo X

Essa classe difere da outra com Modulo11FatorDe9a2, no momento de verificar o resto da divisão por 11.

Para mais detalhes veja a classe Modulo11FatorDe9a2.

Exemplo 10 como resto da divisão

Considerando o seguinte número: ‘100008’.

1) Multiplicando a seqüência de multiplicadores:

1    0    0    0    0    8
*    *    *    *    *    *
4    5    6    7    8    9

2) Soma-se o resultado dos produtos obtidos no item “1” acima:

4  + 0  + 0  + 0  + 0 + 72
# => 76

3) Determina-se o resto da Divisão:

76 % 11
# => 10

4) Quando o resultado for ‘10’, o dígito será:

resultado == 10
# => 'X' =============> Resultado final retornado.

Examples:


BoletoBancario::Calculos::Modulo11FatorDe9a2RestoX.new('184122')
# => 'X'

Instance Attribute Summary

Attributes inherited from Modulo11

#number

Instance Method Summary collapse

Methods inherited from Modulo11FatorDe9a2

#fatores

Methods inherited from Modulo11

#fatores, #initialize, #mod_division, #total

Constructor Details

This class inherits a constructor from BoletoBancario::Calculos::Modulo11

Instance Method Details

#calculateFixnum

Calcula o número pelos fatores de multiplicação de 9 a 2. Depois calcula o resto da divisão por 11. Se o resultado desse cálculo for igual a 10, então o DAC = X. Se o resultado desse cálculo for menor que 10, retornar o resultado.

Returns:

  • (Fixnum)


46
47
48
49
50
51
52
# File 'lib/boleto_bancario/calculos/modulo11_fator_de9a2_resto_x.rb', line 46

def calculate
  if mod_division.equal?(10)
    'X'
  else
    mod_division
  end
end