Class: BrBoleto::Boleto::BancoBrasil
- Inherits:
-
Base
- Object
- ActiveModelBase
- Base
- BrBoleto::Boleto::BancoBrasil
- Defined in:
- lib/br_boleto/boleto/banco_brasil.rb
Overview
Implementação de emissão de boleto bancário pelo Banco BancoBrasil.
Documentação Implementada
A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/bradesco’ 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
_ | Posição | Tamanho | Descrição | |—————–|—————|—————————————–| | 20-23 ou 20-25 | 4 ou 6 | Código do cedente (4 ou 6 dígitos) | | 24-30 ou 26-30 | 7 ou 5 | Número do documento (7 ou 5 dígitos) | | 31-34 | 04 | Agência (sem o dígito) | | 35-42 | 08 | Conta corrente (sem o dígito) | | 43-44 | 02 | Carteira | —————————————————————————–.
- #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 até o vencimento.
-
#digito_verificador_nosso_numero ⇒ String
Para o cálculo do dígito, será necessário acrescentar o código do convenio antes do Nosso Número (número do documento), e aplicar o módulo 11, com fatores de 2 a 7.
-
#nosso_numero ⇒ Object
Nosso Número descrito na documentação (Pag. 18 a 22):.
-
#numero_documento_esperado ⇒ Object
Código do Convênio VS.
- #valid_carteira_inclusion ⇒ Object
-
#valid_conta_corrente_maximum ⇒ Object
Tamanho máximo de uma conta corrente no Banco BancoBrasil.
-
#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, #nosso_numero_retorno, #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
_
| Posi
Código de barras do banco com Convênio de 7 e 8 dígitos
___________________________________________________________________________
| Posi
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 118 def tamanho = "#{conta.convenio}".strip.size = '' if tamanho == 4 or tamanho == 6 << "#{conta.convenio}" << "#{numero_documento}" << "#{conta.agencia}" << "#{conta.conta_corrente}" << "#{conta.carteira}" elsif tamanho == 7 or tamanho == 8 << "000000" << "#{conta.convenio}" << "#{numero_documento}" << "#{conta.carteira}" end end |
#conta_class ⇒ Object
11 12 13 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 11 def conta_class BrBoleto::Conta::BancoBrasil end |
#default_values ⇒ Object
Conforme descrito na documentação, o valor que deve constar em local do pagamento é “Pagável em qualquer banco até o vencimento. Após, atualize o boleto no site bb.com.br”
61 62 63 64 65 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 61 def default_values super.merge({ :local_pagamento => 'Pagável em qualquer banco até o vencimento. Após, atualize o boleto no site bb.com.br' }) end |
#digito_verificador_nosso_numero ⇒ String
Para o cálculo do dígito, será necessário acrescentar o código do convenio antes do Nosso Número (número do documento), e aplicar o módulo 11, com fatores de 2 a 7.
93 94 95 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 93 def digito_verificador_nosso_numero BrBoleto::Calculos::Modulo11FatorDe9a2RestoX.new("#{conta.convenio}#{numero_documento}") end |
#nosso_numero ⇒ Object
Nosso Número descrito na documentação (Pag. 18 a 22):
Código do Convênio (4 dígitos) Número do Documento (7 dígitos) - Nosso número DV
Exemplo: 44447777777-D
Código do Convênio (6 dígitos) Número do Documento (5 dígitos) - Nosso número DV
Exemplo: 66666655555-D
Código do Convênio (7 dígitos) Número do Documento (10 digitos)
Exemplo: 77777771010101010
Código do Convênio (8 dígitos) Número do Documento (9 dígitos)
Exemplo: 88888888999999999
81 82 83 84 85 86 87 88 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 81 def nosso_numero tamanho = conta.convenio.to_s.size if tamanho == 7 or tamanho == 8 "#{conta.convenio}#{numero_documento}" else "#{conta.convenio}#{numero_documento}-#{digito_verificador_nosso_numero}" end end |
#numero_documento_esperado ⇒ Object
Código do Convênio VS. Número do Documento
No caso do Banco do Brasil, o tamanho do código do cedente ditará o tamanho do número do documento. Ou seja, quando o código do cedente for X, o tamanho do número do documento deverá ser Y. Segue abaixo:
______________________________________________________________
| Tamanho do C
54 55 56 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 54 def numero_documento_esperado { 0 => 0, 4 => 7, 6 => 5, 7 => 10, 8 => 9 } end |
#valid_carteira_inclusion ⇒ Object
20 21 22 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 20 def valid_carteira_inclusion %w[11 12 15 16 17 18 31 51] end |
#valid_conta_corrente_maximum ⇒ Object
Tamanho máximo de uma conta corrente no Banco BancoBrasil
25 26 27 |
# File 'lib/br_boleto/boleto/banco_brasil.rb', line 25 def valid_conta_corrente_maximum 8 end |
#valid_convenio_required ⇒ Object
codigo_cedente/Convênio deve ser obrigatório
35 36 37 |
# File 'lib/br_boleto/boleto/banco_brasil.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/banco_brasil.rb', line 16 def valid_numero_documento_maximum numero_documento_esperado["#{conta.convenio}".strip.size] end |