Class: BancoBanespa
- Inherits:
-
Brcobranca::Boleto::Base
- Object
- Brcobranca::Boleto::Base
- BancoBanespa
- Defined in:
- lib/brcobranca/boleto/banco_banespa.rb
Overview
Banco BANESPA
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_livre ⇒ Object
CAMPO LIVRE Código do cedente PIC 9 (011) Nosso número PIC 9 (007) Filler PIC 9 (002) = 00 Código do banco cedente PIC 9 (003) = 033 Dígito verificador 1 PIC 9 (001) Dígito verificador 2 PIC 9 (001).
-
#campo_livre_com_dv1_e_dv2 ⇒ Object
campo livre com os digitos verificadores como conta na documentação do banco.
-
#initialize(campos = {}) ⇒ BancoBanespa
constructor
A new instance of BancoBanespa.
-
#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 ⇒ Object
Número sequencial utilizado para distinguir os boletos na agência.
-
#nosso_numero_boleto ⇒ Object
Retorna nosso numero pronto para exibir no boleto.
-
#nosso_numero_dv ⇒ Object
Retorna dígito verificador do nosso número calculado como contas na documentação.
Methods inherited from Brcobranca::Boleto::Base
#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #data_vencimento, #valor_documento
Constructor Details
#initialize(campos = {}) ⇒ BancoBanespa
Returns a new instance of BancoBanespa.
4 5 6 7 8 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 4 def initialize(campos={}) padrao = {:carteira => "COB", :banco => "033"} campos = padrao.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ Object
25 26 27 28 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 25 def agencia_conta_boleto convenio = self.convenio.zeros_esquerda(:tamanho => 11) "#{convenio[0..2]} #{convenio[3..4]} #{convenio[5..9]} #{convenio[10..10]}" end |
#campo_livre ⇒ Object
CAMPO LIVRE
Código do cedente PIC 9 (011)
Nosso número PIC 9 (007)
Filler PIC 9 (002) = 00
Código do banco cedente PIC 9 (003) = 033
Dígito verificador 1 PIC 9 (001)
Dígito verificador 2 PIC 9 (001)
46 47 48 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 46 def campo_livre "#{self.convenio.zeros_esquerda(:tamanho => 11)}#{self.numero_documento.zeros_esquerda(:tamanho => 7)}00#{self.banco.zeros_esquerda(:tamanho => 3)}" end |
#campo_livre_com_dv1_e_dv2 ⇒ Object
campo livre com os digitos verificadores como conta na documentação do banco
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 51 def campo_livre_com_dv1_e_dv2 dv1 = self.campo_livre.modulo10 #dv 1 inicial dv2 = nil multiplicadores = [2,3,4,5,6,7] begin recalcular_dv2 = false valor_inicial = "#{self.campo_livre}#{dv1}" total = 0 multiplicador_posicao = 0 valor_inicial.split(//).reverse!.each do |caracter| multiplicador_posicao = 0 if (multiplicador_posicao == 6) total += (caracter.to_i * multiplicadores[multiplicador_posicao]) multiplicador_posicao += 1 end case total % 11 when 0 then dv2 = 0 when 1 then if dv1 == 9 dv1 = 0 else dv1 += 1 end recalcular_dv2 = true else dv2 = 11 - (total % 11) end end while(recalcular_dv2) return "#{self.campo_livre}#{dv1}#{dv2}" 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.
31 32 33 34 35 36 37 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 31 def monta_codigo_43_digitos banco = self.banco.zeros_esquerda(:tamanho => 3) fator = self.data_vencimento.fator_vencimento.zeros_esquerda(:tamanho => 4) valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10) numero = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{self.campo_livre_com_dv1_e_dv2}" numero.size == 43 ? numero : nil end |
#nosso_numero ⇒ Object
Número sequencial utilizado para distinguir os boletos na agência
11 12 13 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 11 def nosso_numero "#{self.agencia.zeros_esquerda(:tamanho => 3)}#{self.numero_documento.zeros_esquerda(:tamanho => 7)}" end |
#nosso_numero_boleto ⇒ Object
Retorna nosso numero pronto para exibir no boleto
21 22 23 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 21 def nosso_numero_boleto "#{self.nosso_numero[0..2]} #{self.nosso_numero[3..9]} #{self.nosso_numero_dv}" end |
#nosso_numero_dv ⇒ Object
Retorna dígito verificador do nosso número calculado como contas na documentação
16 17 18 |
# File 'lib/brcobranca/boleto/banco_banespa.rb', line 16 def nosso_numero_dv self.nosso_numero.zeros_esquerda(:tamanho => 10).modulo_10_banespa end |