Class: Brcobranca::Boleto::BancoBrasil
- Defined in:
- lib/brcobranca/boleto/banco_brasil.rb
Overview
Banco do Brasil
Instance Attribute Summary
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, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao
Instance Method Summary collapse
-
#agencia_conta_boleto ⇒ String
Agência + conta corrente do cliente para exibir no boleto.
-
#agencia_dv ⇒ String
Retorna dígito verificador da agência.
-
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre).
-
#banco_dv ⇒ String
Dígito verificador do banco.
-
#carteira=(valor) ⇒ String
Carteira.
-
#codigo_barras_segunda_parte ⇒ String
Segunda parte do código de barras.
-
#conta_corrente=(valor) ⇒ String
Conta corrente.
-
#conta_corrente_dv ⇒ String
Dígito verificador da conta corrente.
-
#initialize(campos = {}) ⇒ BancoBrasil
constructor
Nova instancia do BancoBrasil.
-
#nosso_numero ⇒ Object
Número seqüencial utilizado para identificar o boleto.
-
#nosso_numero_boleto ⇒ String
Nosso número para exibir no boleto.
-
#nosso_numero_dv ⇒ String
Dígito verificador do nosso número.
Methods inherited from Base
#codigo_barras, #fator_vencimento, #logotipo, #valor_documento
Methods included from Template::Base
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
#initialize(campos = {}) ⇒ BancoBrasil
Nova instancia do BancoBrasil
31 32 33 34 35 36 37 38 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 31 def initialize(campos = {}) campos = { carteira: '18', codigo_servico: false, local_pagamento: 'PAGÁVEL EM QUALQUER BANCO.' }.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ String
Agência + conta corrente do cliente para exibir no boleto.
134 135 136 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 134 def agencia_conta_boleto "#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}" end |
#agencia_dv ⇒ String
Retorna dígito verificador da agência
64 65 66 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 64 def agencia_dv agencia.modulo11(mapeamento: { 10 => 'X' }) end |
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre)
43 44 45 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 43 def banco '001' end |
#banco_dv ⇒ String
Dígito verificador do banco
57 58 59 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 57 def banco_dv banco.modulo11(mapeamento: { 10 => 'X' }) end |
#carteira=(valor) ⇒ String
Carteira
50 51 52 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 50 def carteira=(valor) @carteira = valor.to_s.rjust(2, '0') if valor end |
#codigo_barras_segunda_parte ⇒ String
Segunda parte do código de barras. A montagem é feita baseada na quantidade de dígitos do convênio.
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 141 def case convenio.to_s.size when 8 # Nosso Número de 17 dígitos com Convenio de 8 dígitos e nosso_numero de 9 dígitos "000000#{convenio}#{nosso_numero}#{carteira}" when 7 # Nosso Número de 17 dígitos com Convenio de 7 dígitos e nosso_numero de 10 dígitos "000000#{convenio}#{nosso_numero}#{carteira}" when 6 # Convenio de 6 dígitos if codigo_servico == false # Nosso Número de 11 dígitos com Convenio de 6 dígitos e nosso_numero de 5 dígitos "#{convenio}#{nosso_numero}#{agencia}#{conta_corrente}#{carteira}" else # Nosso Número de 17 dígitos com Convenio de 6 dígitos e sem nosso_numero, carteira 16 e 18 raise "Só é permitido emitir boletos com nosso número de 17 dígitos com carteiras 16 ou 18. Sua carteira atual é #{carteira}" unless %w[ 16 18 ].include?(carteira) "#{convenio}#{nosso_numero}21" end when 4 # Nosso Número de 7 dígitos com Convenio de 4 dígitos e sem nosso_numero "#{convenio}#{nosso_numero}#{agencia}#{conta_corrente}#{carteira}" end end |
#conta_corrente=(valor) ⇒ String
Conta corrente
70 71 72 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 70 def conta_corrente=(valor) @conta_corrente = valor.to_s.rjust(8, '0') if valor end |
#conta_corrente_dv ⇒ String
Dígito verificador da conta corrente
76 77 78 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 76 def conta_corrente_dv conta_corrente.modulo11(mapeamento: { 10 => 'X' }) end |
#nosso_numero ⇒ String #nosso_numero ⇒ String #nosso_numero ⇒ String #nosso_numero ⇒ String #nosso_numero ⇒ String
Número seqüencial utilizado para identificar o boleto. (Número de dígitos depende do tipo de convênio).
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 99 def nosso_numero quantidade = case @convenio.to_s.size when 8 9 when 7 10 when 4 7 when 6 codigo_servico ? 17 : 5 else raise Brcobranca::NaoImplementado, 'Tipo de convênio não implementado.' end quantidade ? @nosso_numero.to_s.rjust(quantidade, '0') : @nosso_numero end |
#nosso_numero_boleto ⇒ String
Nosso número para exibir no boleto.
126 127 128 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 126 def nosso_numero_boleto "#{convenio}#{nosso_numero}" end |
#nosso_numero_dv ⇒ String
Dígito verificador do nosso número.
118 119 120 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 118 def nosso_numero_dv "#{convenio}#{nosso_numero}".modulo11(mapeamento: { 10 => 'X' }) end |