Module: Brcobranca::Util::Itau

Defined in:
lib/brcobranca/util/itau.rb

Overview

Regras de calculo de digito verificador (DAC) compartilhadas entre as implementacoes de Boleto e Remessa/Retorno CNAB do Itau (341), para evitar duplicacao e manter as duas em sincronia.

Constant Summary collapse

CARTEIRAS_SEM_AGENCIA_CONTA =

Carteiras cujo DAC do nosso numero e calculado apenas com "carteira/nosso_numero", sem agencia/conta.

%w[112 126 131 146 150 168].freeze

Class Method Summary collapse

Class Method Details

.agencia_conta_corrente_dv(agencia, conta_corrente) ⇒ Integer

Digito verificador (modulo 10) da agencia/conta corrente.

Returns:

  • (Integer)


18
19
20
# File 'lib/brcobranca/util/itau.rb', line 18

def agencia_conta_corrente_dv(agencia, conta_corrente)
  "#{agencia}#{conta_corrente}".modulo10
end

.nosso_numero_dv(agencia, conta_corrente, carteira, nosso_numero) ⇒ Integer

Digito verificador (modulo 10) do nosso numero.

Para a grande maioria das carteiras, e calculado sobre "agencia/conta_corrente/carteira/nosso_numero". Excecao: carteiras em CARTEIRAS_SEM_AGENCIA_CONTA, calculado apenas sobre "carteira/nosso_numero".

Returns:

  • (Integer)


30
31
32
33
34
35
36
# File 'lib/brcobranca/util/itau.rb', line 30

def nosso_numero_dv(agencia, conta_corrente, carteira, nosso_numero)
  if CARTEIRAS_SEM_AGENCIA_CONTA.include?(carteira.to_s)
    "#{carteira}#{nosso_numero}".modulo10
  else
    "#{agencia}#{conta_corrente}#{carteira}#{nosso_numero}".modulo10
  end
end