Class: BrBoleto::Boleto::Itau
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- BrBoleto::Boleto::Itau
- Defined in:
- lib/br_boleto/boleto/itau.rb
Overview
Implementação de emissão de boleto bancário pelo Banco Itau.
Documentação Implementada
A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/itau’ dentro dessa biblioteca.
Instance Attribute Summary
Attributes inherited from Base
#aceite, #codigo_moeda, #data_documento, #data_vencimento, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #numero_documento, #parcelas, #valor_documento
Instance Method Summary collapse
-
#codigo_de_barras_do_banco ⇒ Object
As carteiras de cobrança 107, 122, 142, 143, 196 e 198 são carteiras especiais, sem registro, na qual são utilizadas 15 posições numéricas para identificação do título liquidado (8 do Nosso Número e 7 do Seu Número).
- #conta_class ⇒ Object
-
#default_values ⇒ Object
Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PAGÁVEL EM QUALQUER BANCO OU CORRESPONDENTE ATÉ O VENCIMENTO.”.
-
#digito_verificador_nosso_numero ⇒ Object
Para a grande maioria das carteiras, são considerados para a obtenção do dígito do nosso número, os dados “AGÊNCIA / CONTA (sem dígito) / CARTEIRA / NOSSO NÚMERO”, calculado pelo critério do Módulo 10.
-
#nosso_numero ⇒ Object
Nosso Número descrito na documentação (Pag. 50).
-
#nosso_numero_retorno ⇒ Object
No arquivo de retorno a carteira não vem junto com o nosso núemro.
- #valid_carteira_inclusion ⇒ Object
-
#valid_conta_corrente_maximum ⇒ Object
Tamanho máximo de uma conta corrente no Banco Itau.
-
#valid_convenio_maximum ⇒ Object
Tamanho máximo para o codigo_cedente/Convênio.
-
#valid_convenio_required ⇒ Object
codigo_cedente/Convênio deve ser obrigatório.
-
#valid_numero_documento_maximum ⇒ Object
VALIDAÇÕES DINÂMICAS #################.
Methods inherited from Base
#aceite_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #digito_codigo_de_barras, #fator_de_vencimento, #linha_digitavel, #persisted?, #to_partial_path, #valid_valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras
Methods included from HavePagador
Methods included from HaveConta
Methods inherited from ActiveModelBase
#assign_attributes, #initialize
Constructor Details
This class inherits a constructor from BrBoleto::ActiveModelBase
Instance Method Details
#codigo_de_barras_do_banco ⇒ Object
As carteiras de cobrança 107, 122, 142, 143, 196 e 198 são carteiras especiais, sem registro, na qual são utilizadas 15 posições numéricas para identificação do título liquidado (8 do Nosso Número e 7 do Seu Número).
=== Código de barras do banco (Carteiras 107, 122, 142, 143, 196 e 198)
Para essas carteiras o formato do código de barras é o seguinte:
___________________________________________________________________________________________________
| Posição | Tamanho | Descrição |
|----------|---------|-----------------------------------------------------------------------------|
| 20-22 | 03 | Carteira |
| 23-30 | 08 | Nosso Número (Sem o digito verificador) |
| 31-37 | 07 | Seu Número (Número do Documento) |
| 38-42 | 05 | Códgigo Cedente (Convênio) |
| 43-43 | 01 | DAC dos campos acima (posições 20 a 42) MOD 10 |
| 44-44 | 01 | Zero |
----------------------------------------------------------------------------------------------------
Demais Carteiras
Para as demais carteiras o formato do código de barras é o seguinte:
_________________________________________________________________________________________
| Posição | Tamanho | Descrição |
|----------|---------|-------------------------------------------------------------------|
| 20-22 | 03 | Carteira |
| 23-30 | 08 | Número do documento |
| 31-31 | 01 | Digito verificador nosso numero |
| 32-35 | 04 | Agência |
| 36-40 | 05 | Número da conta corrente |
| 41-41 | 01 | Digito verificador conta corrente |
| 42-44 | 03 | Zeros |
------------------------------------------------------------------------------------------
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/br_boleto/boleto/itau.rb', line 108 def if conta.carteira.in?(conta.) seu_numero = numero_documento.adjust_size_to(7) codigo = "#{conta.carteira}#{numero_documento}#{seu_numero}#{conta.codigo_cedente}" mod_10 = BrBoleto::Calculos::Modulo10.new(codigo) "#{codigo}#{mod_10}0" else "#{conta.carteira}#{numero_documento}#{digito_verificador_nosso_numero}#{conta.agencia}#{conta.conta_corrente}#{conta.conta_corrente_dv}000" end end |
#conta_class ⇒ Object
11 12 13 |
# File 'lib/br_boleto/boleto/itau.rb', line 11 def conta_class BrBoleto::Conta::Itau end |
#default_values ⇒ Object
Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PAGÁVEL EM QUALQUER BANCO OU CORRESPONDENTE ATÉ O VENCIMENTO.”
42 43 44 45 46 |
# File 'lib/br_boleto/boleto/itau.rb', line 42 def default_values super.merge({ :local_pagamento => "PAGÁVEL EM QUALQUER BANCO OU CORRESPONDENTE ATÉ O VENCIMENTO." }) end |
#digito_verificador_nosso_numero ⇒ Object
Para a grande maioria das carteiras, são considerados para a obtenção do dígito do nosso número, os dados “AGÊNCIA / CONTA (sem dígito) / CARTEIRA / NOSSO NÚMERO”, calculado pelo critério do Módulo 10.
À exceção, estão as carteiras 126 - 131 - 146 - 150 e 168 cuja obtenção está baseada apenas nos dados “CARTEIRA/NOSSO NÚMERO” da operação.
66 67 68 69 70 71 72 |
# File 'lib/br_boleto/boleto/itau.rb', line 66 def digito_verificador_nosso_numero if conta.carteira.in?(conta.carteiras_especiais_nosso_numero_dv) BrBoleto::Calculos::Modulo10.new("#{conta.carteira}#{numero_documento}") else BrBoleto::Calculos::Modulo10.new("#{conta.agencia}#{conta.conta_corrente}#{conta.carteira}#{numero_documento}") end end |
#nosso_numero ⇒ Object
Nosso Número descrito na documentação (Pag. 50). Carteira com 3 caracteres / N.Número com 8 caracteres + digito. Exemplo: 999 / 99999999-D
51 52 53 |
# File 'lib/br_boleto/boleto/itau.rb', line 51 def nosso_numero "#{conta.carteira}/#{numero_documento}-#{digito_verificador_nosso_numero}" end |
#nosso_numero_retorno ⇒ Object
No arquivo de retorno a carteira não vem junto com o nosso núemro
57 58 59 |
# File 'lib/br_boleto/boleto/itau.rb', line 57 def nosso_numero_retorno "#{nosso_numero}".gsub(/[^\w\d]/i, '')[3..-1] end |
#valid_carteira_inclusion ⇒ Object
20 21 22 |
# File 'lib/br_boleto/boleto/itau.rb', line 20 def valid_carteira_inclusion %w[104 105 107 108 109 112 113 116 117 119 121 122 126 131 134 135 136 142 143 146 147 150 168 169 174 175 180 191 196 198] end |
#valid_conta_corrente_maximum ⇒ Object
Tamanho máximo de uma conta corrente no Banco Itau
30 31 32 |
# File 'lib/br_boleto/boleto/itau.rb', line 30 def valid_conta_corrente_maximum 5 end |
#valid_convenio_maximum ⇒ Object
Tamanho máximo para o codigo_cedente/Convênio
25 26 27 |
# File 'lib/br_boleto/boleto/itau.rb', line 25 def valid_convenio_maximum 5 end |
#valid_convenio_required ⇒ Object
codigo_cedente/Convênio deve ser obrigatório
35 36 37 |
# File 'lib/br_boleto/boleto/itau.rb', line 35 def valid_convenio_required true end |
#valid_numero_documento_maximum ⇒ Object
VALIDAÇÕES DINÂMICAS #################
16 17 18 |
# File 'lib/br_boleto/boleto/itau.rb', line 16 def valid_numero_documento_maximum 8 end |