Class: BancoReal
- Inherits:
-
Brcobranca::Boleto::Base
- Object
- Brcobranca::Boleto::Base
- BancoReal
- Defined in:
- lib/brcobranca/boleto/banco_real.rb
Overview
Banco REAL
Instance Attribute Summary
Attributes inherited from Brcobranca::Boleto::Base
#aceite, #agencia, #banco, #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
-
#agencia_conta_boleto ⇒ Object
Campo usado apenas na exibição no boleto Deverá ser sobreescrito para cada banco.
-
#agencia_conta_corrente_nosso_numero_dv ⇒ Object
CALCULO DO DIGITO: APLICA-SE OS PESOS 2,1,2,1,.…
-
#initialize(campos = {}) ⇒ BancoReal
constructor
Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoReal.
-
#monta_codigo_43_digitos ⇒ Object
Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras.
-
#nosso_numero_boleto ⇒ Object
Campo usado apenas na exibição no boleto Deverá ser sobreescrito para cada banco.
Methods inherited from Brcobranca::Boleto::Base
#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #data_vencimento, #nosso_numero, #nosso_numero_dv, #valor_documento
Constructor Details
#initialize(campos = {}) ⇒ BancoReal
Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoReal
4 5 6 7 8 |
# File 'lib/brcobranca/boleto/banco_real.rb', line 4 def initialize(campos={}) padrao={:carteira => "57", :banco => "356"} campos = padrao.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ Object
Campo usado apenas na exibição no boleto
Deverá ser sobreescrito para cada banco
18 19 20 |
# File 'lib/brcobranca/boleto/banco_real.rb', line 18 def agencia_conta_boleto "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}" end |
#agencia_conta_corrente_nosso_numero_dv ⇒ Object
CALCULO DO DIGITO:
APLICA-SE OS PESOS 2,1,2,1,.... AOS ALGARISMOS DO NUMERO COMPOSTO POR:
NUMERO DO BANCO : COM 7 DIGITOS P/ COBRANCA REGISTRADA
ATE 15 DIGITOS P/ COBRANCA SEM REGISTRO
CODIGO DA AGENCIA: 4 DIGITOS
NUMERO DA CONTA : 7 DIGITOS
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/brcobranca/boleto/banco_real.rb', line 28 def agencia_conta_corrente_nosso_numero_dv case self.carteira.to_i when 57 #agencia é 4 digitos agencia = self.agencia.zeros_esquerda(:tamanho => 4) #conta é 7 digitos conta = self.conta_corrente.zeros_esquerda(:tamanho => 7) #nosso número com maximo de 13 digitos numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 13) "#{numero_documento}#{agencia}#{conta}".modulo10 else #agencia é 4 digitos agencia = self.agencia.zeros_esquerda(:tamanho => 4) #conta é 7 digitos conta = self.conta_corrente.zeros_esquerda(:tamanho => 7) #nosso número com maximo de 13 digitos numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 7) "#{numero_documento}#{agencia}#{conta}".modulo10 end end |
#monta_codigo_43_digitos ⇒ Object
Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/brcobranca/boleto/banco_real.rb', line 50 def monta_codigo_43_digitos banco = self.banco.zeros_esquerda(:tamanho => 3) valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10) conta = self.conta_corrente.zeros_esquerda(:tamanho => 7) agencia = self.agencia.zeros_esquerda(:tamanho => 4) fator = self.data_vencimento.fator_vencimento # Montagem é baseada no tipo de carteira, com registro e sem registro case self.carteira.to_i # Carteira sem registro when 57 numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 13) codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}" codigo.size == 43 ? codigo : nil else # TODO verificar com o banco, pois não consta na documentação numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 7) codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}000000#{agencia}#{conta}#{self.agencia_conta_corrente_nosso_numero_dv}#{numero_documento}" codigo.size == 43 ? codigo : nil end end |
#nosso_numero_boleto ⇒ Object
Campo usado apenas na exibição no boleto
Deverá ser sobreescrito para cada banco
12 13 14 |
# File 'lib/brcobranca/boleto/banco_real.rb', line 12 def nosso_numero_boleto "#{self.numero_documento}-#{self.nosso_numero_dv}" end |