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, #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, #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_boleto ⇒ String
Nosso número para exibir no boleto.
-
#nosso_numero_dv ⇒ String
Dígito verificador do nosso número.
-
#numero_documento ⇒ Object
Número seqüencial utilizado para identificar o boleto.
Methods inherited from Base
#codigo_barras, #data_vencimento, #fator_vencimento, #logotipo, #valor_documento
Methods included from Template::Base
Constructor Details
#initialize(campos = {}) ⇒ BancoBrasil
Nova instancia do BancoBrasil
33 34 35 36 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 33 def initialize(campos={}) campos = {:carteira => "18", :codigo_servico => false}.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ String
Agência + conta corrente do cliente para exibir no boleto.
132 133 134 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 132 def agencia_conta_boleto "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}" end |
#agencia_dv ⇒ String
Retorna dígito verificador da agência
62 63 64 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 62 def agencia_dv self.agencia.modulo11_9to2_10_como_x end |
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre)
41 42 43 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 41 def banco "001" end |
#banco_dv ⇒ String
Dígito verificador do banco
55 56 57 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 55 def banco_dv self.banco.modulo11_9to2_10_como_x end |
#carteira=(valor) ⇒ String
Carteira
48 49 50 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 48 def carteira=(valor) @carteira = valor.to_s.rjust(2,'0') unless valor.nil? 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.
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 139 def case self.convenio.to_s.size when 8 # Nosso Número de 17 dígitos com Convenio de 8 dígitos e numero_documento de 9 dígitos "000000#{self.convenio}#{self.numero_documento}#{self.carteira}" when 7 # Nosso Número de 17 dígitos com Convenio de 7 dígitos e numero_documento de 10 dígitos "000000#{self.convenio}#{self.numero_documento}#{self.carteira}" when 6 # Convenio de 6 dígitos if self.codigo_servico == false # Nosso Número de 11 dígitos com Convenio de 6 dígitos e numero_documento de 5 dígitos "#{self.convenio}#{self.numero_documento}#{self.agencia}#{self.conta_corrente}#{self.carteira}" else # Nosso Número de 17 dígitos com Convenio de 6 dígitos e sem numero_documento, 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 é #{self.carteira}" unless (["16","18"].include?(self.carteira)) "#{self.convenio}#{self.numero_documento}21" end when 4 # Nosso Número de 7 dígitos com Convenio de 4 dígitos e sem numero_documento "#{self.convenio}#{self.numero_documento}#{self.agencia}#{self.conta_corrente}#{self.carteira}" end end |
#conta_corrente=(valor) ⇒ String
Conta corrente
68 69 70 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 68 def conta_corrente=(valor) @conta_corrente = valor.to_s.rjust(8,'0') unless valor.nil? end |
#conta_corrente_dv ⇒ String
Dígito verificador da conta corrente
74 75 76 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 74 def conta_corrente_dv self.conta_corrente.modulo11_9to2_10_como_x end |
#nosso_numero_boleto ⇒ String
Nosso número para exibir no boleto.
124 125 126 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 124 def nosso_numero_boleto "#{self.convenio}#{self.numero_documento}-#{self.nosso_numero_dv}" end |
#nosso_numero_dv ⇒ String
Dígito verificador do nosso número.
116 117 118 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 116 def nosso_numero_dv "#{self.convenio}#{self.numero_documento}".modulo11_9to2_10_como_x end |
#numero_documento ⇒ String #numero_documento ⇒ String #numero_documento ⇒ String #numero_documento ⇒ String #numero_documento ⇒ String
Número seqüencial utilizado para identificar o boleto. (Número de dígitos depende do tipo de convênio).
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/brcobranca/boleto/banco_brasil.rb', line 97 def numero_documento quantidade = case @convenio.to_s.size when 8 9 when 7 10 when 4 7 when 6 self.codigo_servico ? 17 : 5 else raise Brcobranca::NaoImplementado.new("Tipo de convênio não implementado.") end quantidade ? @numero_documento.to_s.rjust(quantidade,'0') : @numero_documento end |