Class: Brcobranca::Boleto::Banespa

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/boleto/banespa.rb

Overview

Banco BANESPA

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, #numero_documento, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Base

#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #data_vencimento, #fator_vencimento, #logotipo, #valor_documento

Methods included from Template::Base

#define_template

Constructor Details

#initialize(campos = {}) ⇒ Banespa

Nova instancia do Banespa

Parameters:

  • campos (Hash) (defaults to: {})


12
13
14
15
# File 'lib/brcobranca/boleto/banespa.rb', line 12

def initialize(campos={})
  campos = {:carteira => "COB"}.merge!(campos)
  super(campos)
end

Instance Method Details

#agencia=(valor) ⇒ String

Código da agência

Returns:

  • (String)

    3 caracteres numéricos.



26
27
28
# File 'lib/brcobranca/boleto/banespa.rb', line 26

def agencia=(valor)
  @agencia = valor.to_s.rjust(3,'0') unless valor.nil?
end

#agencia_conta_boletoString

Número do convênio/contrato do cliente para exibir no boleto.

Examples:

boleto.agencia_conta_boleto #=> "000 12 38798 9"

Returns:

  • (String)


66
67
68
# File 'lib/brcobranca/boleto/banespa.rb', line 66

def agencia_conta_boleto
  self.convenio.gsub(/^(.{3})(.{2})(.{5})(.{1})$/,'\1 \2 \3 \4')
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



20
21
22
# File 'lib/brcobranca/boleto/banespa.rb', line 20

def banco
  "033"
end

#codigo_barras_segunda_parteString

Segunda parte do código de barras.

Código do cedente | (011)<br/> Nosso número | (007)<br/> Filler | (002) = 00<br/> Código do banco cedente | (003) = 033<br/> Dígito verificador 1 | (001)<br/> Dígito verificador 2 | (001)<br/>

Returns:

  • (String)

    25 caracteres numéricos.



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/brcobranca/boleto/banespa.rb', line 80

def codigo_barras_segunda_parte
  dv1 = campo_livre.modulo10 #dv 1 inicial
  dv2 = nil

  begin
    recalcular_dv2 = false
    valor_inicial = "#{campo_livre}#{dv1}"
    total = valor_inicial.multiplicador([2,3,4,5,6,7])

    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 "#{campo_livre}#{dv1}#{dv2}"
end

#convenio=(valor) ⇒ String

Número do convênio/contrato do cliente junto ao banco.

Returns:

  • (String)

    11 caracteres numéricos.



32
33
34
# File 'lib/brcobranca/boleto/banespa.rb', line 32

def convenio=(valor)
  @convenio = valor.to_s.rjust(11,'0') unless valor.nil?
end

#nosso_numeroString

Agência + Número sequencial.

Returns:

  • (String)

    10 caracteres numéricos.



44
45
46
# File 'lib/brcobranca/boleto/banespa.rb', line 44

def nosso_numero
  "#{self.agencia}#{self.numero_documento}"
end

#nosso_numero_boletoString

Nosso número para exibir no boleto.

Examples:

boleto.nosso_numero_boleto #=> "400 0403005 6"

Returns:

  • (String)


58
59
60
# File 'lib/brcobranca/boleto/banespa.rb', line 58

def nosso_numero_boleto
  "#{self.nosso_numero.gsub(/^(.{3})(.{7})$/,'\1 \2')} #{self.nosso_numero_dv}"
end

#nosso_numero_dvString

Dígito verificador do nosso número.

Returns:

  • (String)

    1 caracteres numéricos.



50
51
52
# File 'lib/brcobranca/boleto/banespa.rb', line 50

def nosso_numero_dv
  self.nosso_numero.modulo_10_banespa
end

#numero_documento=(valor) ⇒ String

Número seqüencial utilizado para identificar o boleto.

Returns:

  • (String)

    7 caracteres numéricos.



38
39
40
# File 'lib/brcobranca/boleto/banespa.rb', line 38

def numero_documento=(valor)
  @numero_documento = valor.to_s.rjust(7,'0') unless valor.nil?
end