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, #carteira, #cedente, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #dias_vencimento, #documento_cedente, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #local_pagamento, #moeda, #numero_documento, #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, #data_vencimento, #fator_vencimento, #logotipo, #valor_documento

Methods included from Template::Base

#define_template

Constructor Details

#initialize(campos = {}) ⇒ Itau

Nova instancia do Itau

Parameters:

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


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

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



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

def seu_numero
  @seu_numero
end

Instance Method Details

#agencia_conta_boletoString

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

Examples:

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

Returns:

  • (String)


87
88
89
# File 'lib/brcobranca/boleto/itau.rb', line 87

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

#agencia_conta_corrente_dvObject

Calcula o dígito verificador para conta corrente do Itau. Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.



71
72
73
# File 'lib/brcobranca/boleto/itau.rb', line 71

def agencia_conta_corrente_dv
  "#{self.agencia}#{self.conta_corrente}".modulo10
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



25
26
27
# File 'lib/brcobranca/boleto/itau.rb', line 25

def banco
  "341"
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras.

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

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

Returns:

  • (String)

    25 caracteres numéricos.



121
122
123
124
125
126
127
128
129
# File 'lib/brcobranca/boleto/itau.rb', line 121

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

#conta_corrente=(valor) ⇒ String

Conta corrente

Returns:

  • (String)

    5 caracteres numéricos.



37
38
39
# File 'lib/brcobranca/boleto/itau.rb', line 37

def conta_corrente=(valor)
  @conta_corrente = valor.to_s.rjust(5,'0') unless valor.nil?
end

#convenio=(valor) ⇒ String

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

Returns:

  • (String)

    5 caracteres numéricos.



31
32
33
# File 'lib/brcobranca/boleto/itau.rb', line 31

def convenio=(valor)
  @convenio = valor.to_s.rjust(5,'0') unless valor.nil?
end

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

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

Returns:

  • (String)


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

def nosso_numero_boleto
  "#{self.carteira}/#{self.numero_documento}-#{self.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.<br/> 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.



61
62
63
64
65
66
67
# File 'lib/brcobranca/boleto/itau.rb', line 61

def nosso_numero_dv
  if %w(112 126 131 146 150 168).include?(self.carteira)
    "#{self.carteira}#{self.numero_documento}".modulo10
  else
    "#{self.agencia}#{self.conta_corrente}#{self.carteira}#{self.numero_documento}".modulo10
  end
end

#numero_documento=(valor) ⇒ String

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

Returns:

  • (String)

    8 caracteres numéricos.



43
44
45
# File 'lib/brcobranca/boleto/itau.rb', line 43

def numero_documento=(valor)
  @numero_documento = valor.to_s.rjust(8,'0') unless valor.nil?
end