Class: Brcobranca::Boleto::Itau

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/boleto/itau.rb

Overview

Banco Itaú

Instance Attribute Summary collapse

Attributes inherited from Base

#aceite, #agencia, #avalista, #avalista_documento, #carteira, #carteira_label, #cedente, #cedente_endereco, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #data_vencimento, #demonstrativo, #descontos_e_abatimentos, #documento_cedente, #documento_numero, #emv, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #instrucoes, #local_pagamento, #moeda, #nosso_numero, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Base

#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #fator_vencimento, #logotipo, #valor_documento

Methods included from Template::Base

define_template

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

#initialize(campos = {}) ⇒ Itau

Nova instancia do Itau

Parameters:

  • campos (Hash) (defaults to: {})


19
20
21
22
# File 'lib/brcobranca/boleto/itau.rb', line 19

def initialize(campos = {})
  campos = { carteira: '175' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#seu_numeroObject

Usado somente em carteiras especiais com registro para complementar o número do cocumento



8
9
10
# File 'lib/brcobranca/boleto/itau.rb', line 8

def seu_numero
  @seu_numero
end

Instance Method Details

#agencia=(valor) ⇒ String

Agencia mantenedora da conta.

Returns:

  • (String)

    4 caracteres numericos.



33
34
35
# File 'lib/brcobranca/boleto/itau.rb', line 33

def agencia=(valor)
  @agencia = valor.to_s.rjust(4, "0") if valor
end

#agencia_conta_boletoString

Agência + conta corrente do cliente para exibir no boleto.

Examples:

boleto.agencia_conta_boleto #=> "0811 / 53678-8"

Returns:

  • (String)


106
107
108
# File 'lib/brcobranca/boleto/itau.rb', line 106

def agencia_conta_boleto
  "#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
end

#agencia_conta_corrente_dvObject

Calcula o digito verificador para conta corrente do Itau. Retorna apenas o digito verificador da conta, ou nil se nao for possivel calcular.



88
89
90
91
92
# File 'lib/brcobranca/boleto/itau.rb', line 88

def agencia_conta_corrente_dv
  Brcobranca::Util::Itau.agencia_conta_corrente_dv(
    agencia, conta_corrente
  )
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



27
28
29
# File 'lib/brcobranca/boleto/itau.rb', line 27

def banco
  '341'
end

#carteira=(valor) ⇒ String

Numero da carteira no banco.

Returns:

  • (String)

    3 caracteres numericos.



39
40
41
# File 'lib/brcobranca/boleto/itau.rb', line 39

def carteira=(valor)
  @carteira = valor.to_s.rjust(3, "0") if valor
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras.

CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196
01 a 03 | 03 | 9(3) | Código do Banco na Câmara de Compensação = ‘341’
04 a 04 | 01 | 9(1) | Código da Moeda = '9'
05 a 05 | 01 | 9(1) | DAC do Código de Barras MOD 11-2a9
06 a 09 | 04 | 9(04) | Fator de Vencimento
10 a 19 | 10 | 9(08) | V(2) Valor
20 a 22 | 03 | 9(3) | Carteira
23 a 30 | 08 | 9(8) | Nosso Número
31 a 37 | 07 | 9(7) | Seu Número (Número do Documento)
38 a 42 | 05 | 9(5) | Código do Cliente (fornecido pelo Banco)
43 a 43 | 01 | 9(1) | DAC dos campos acima (posições 20 a 42) MOD 10
44 a 44 | 01 | 9(1) | Zero

DEMAIS CARTEIRAS
01 a 03 | 03 | 9(03) | Código do Banco na Câmara de Compensação = '341'
04 a 04 | 01 | 9(01) | Código da Moeda = '9'
05 a 05 | 01 | 9(01) | DAC código de Barras MOD 11-2a9
06 a 09 | 04 | 9(04) | Fator de Vencimento
10 a 19 | 10 | 9(08)V(2) | Valor
20 a 22 | 03 | 9(03) | Carteira
23 a 30 | 08 | 9(08) | Nosso Número
31 a 31 | 01 | 9(01) | DAC [Agência /Conta/Carteira/Nosso Número] MOD 10
32 a 35 | 04 | 9(04) | N.º da Agência cedente
36 a 40 | 05 | 9(05) | N.º da Conta Corrente
41 a 41 | 01 | 9(01) | DAC [Agência/Conta Corrente] MOD 10
42 a 44 | 03 | 9(03) | Zeros

Returns:

  • (String)

    25 caracteres numéricos.



140
141
142
143
144
145
146
147
148
# File 'lib/brcobranca/boleto/itau.rb', line 140

def codigo_barras_segunda_parte
  case carteira.to_i
  when 198, 106, 107, 122, 142, 143, 195, 196
    dv = "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}".modulo10
    "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}#{dv}0"
  else
    "#{carteira}#{nosso_numero}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
  end
end

#conta_corrente=(valor) ⇒ String

Conta corrente

Returns:

  • (String)

    5 caracteres numéricos.



51
52
53
# File 'lib/brcobranca/boleto/itau.rb', line 51

def conta_corrente=(valor)
  @conta_corrente = valor.to_s.rjust(5, '0') if valor
end

#convenio=(valor) ⇒ String

Número do convênio/contrato do cliente junto ao banco.

Returns:

  • (String)

    5 caracteres numéricos.



45
46
47
# File 'lib/brcobranca/boleto/itau.rb', line 45

def convenio=(valor)
  @convenio = valor.to_s.rjust(5, '0') if valor
end

#nosso_numero=(valor) ⇒ String

Número seqüencial utilizado para identificar o boleto.

Returns:

  • (String)

    8 caracteres numéricos.



57
58
59
# File 'lib/brcobranca/boleto/itau.rb', line 57

def nosso_numero=(valor)
  @nosso_numero = valor.to_s.rjust(8, '0') if valor
end

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

boleto.nosso_numero_boleto #=> "175/12345678-4"

Returns:

  • (String)


98
99
100
# File 'lib/brcobranca/boleto/itau.rb', line 98

def nosso_numero_boleto
  "#{carteira}/#{nosso_numero}-#{nosso_numero_dv}"
end

#nosso_numero_dvString

Dígito verificador do nosso número.

Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.
A excecao, estão as carteiras 112, 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos dados "CARTEIRA/NOSSO NUMERO".

Returns:

  • (String)

    1 caracteres numéricos.



79
80
81
82
83
# File 'lib/brcobranca/boleto/itau.rb', line 79

def nosso_numero_dv
  Brcobranca::Util::Itau.nosso_numero_dv(
    agencia, conta_corrente, carteira, nosso_numero
  )
end

#usa_seu_numero?Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/brcobranca/boleto/itau.rb', line 67

def usa_seu_numero?
  %w[198 106 107 122 142 143 195 196].include?(carteira.to_s)
end