Class: Brcobranca::Boleto::Base

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

Overview

Classe base para todas as classes de boletos

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(campos = {}) ⇒ Base

Responsável por definir dados iniciais quando se cria uma nova intância da classe Base.



67
68
69
70
71
72
73
74
75
76
# File 'lib/brcobranca/boleto/base.rb', line 67

def initialize(campos={})
padrao = { :moeda => "9", :data_documento => Date.today, :dias_vencimento => 1, :quantidade => 1,
  :especie_documento => "DM", :especie => "R$", :aceite => "S", :valor => 0.0,
  :local_pagamento => "QUALQUER BANCO ATÉ O VENCIMENTO"}

  campos = padrao.merge!(campos)
  campos.each do |campo, valor|
    instance_variable_set "@#{campo}", valor if self.respond_to?(campo)
  end
end

Instance Attribute Details

#aceiteObject

REQUERIDO: Informa se o banco deve aceitar o boleto após o vencimento ou não( S ou N, quase sempre S)



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

def aceite
  @aceite
end

#agenciaObject

REQUERIDO: Número da agencia



24
25
26
# File 'lib/brcobranca/boleto/base.rb', line 24

def agencia
  @agencia
end

#bancoObject

REQUERIDO: Codigo do banco emissor (3 dígitos sempre)



6
7
8
# File 'lib/brcobranca/boleto/base.rb', line 6

def banco
  @banco
end

#carteiraObject

REQUERIDO: Carteira utilizada



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

def carteira
  @carteira
end

#cedenteObject

REQUERIDO: Nome do proprietario da conta corrente



28
29
30
# File 'lib/brcobranca/boleto/base.rb', line 28

def cedente
  @cedente
end

#codigo_servicoObject

OPCIONAL: Código utilizado para identificar o tipo de serviço cobrado



40
41
42
# File 'lib/brcobranca/boleto/base.rb', line 40

def codigo_servico
  @codigo_servico
end

#conta_correnteObject

REQUERIDO: Número da conta corrente



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

def conta_corrente
  @conta_corrente
end

#convenioObject

REQUERIDO: Número do convênio/contrato do cliente junto ao banco emissor



8
9
10
# File 'lib/brcobranca/boleto/base.rb', line 8

def convenio
  @convenio
end

#data_documentoObject

REQUERIDO: Data em que foi emitido o boleto



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

def data_documento
  @data_documento
end

#data_processamentoObject

OPCIONAL: Data de processamento do boleto, geralmente igual a data_documento



16
17
18
# File 'lib/brcobranca/boleto/base.rb', line 16

def data_processamento
  @data_processamento
end

#dias_vencimentoObject

REQUERIDO: Número de dias a vencer



18
19
20
# File 'lib/brcobranca/boleto/base.rb', line 18

def dias_vencimento
  @dias_vencimento
end

#documento_cedenteObject

REQUERIDO: Documento do proprietario da conta corrente (CPF ou CNPJ)



30
31
32
# File 'lib/brcobranca/boleto/base.rb', line 30

def documento_cedente
  @documento_cedente
end

#especieObject

REQUERIDO: Símbolo da moeda utilizada (R$ no brasil)



34
35
36
# File 'lib/brcobranca/boleto/base.rb', line 34

def especie
  @especie
end

#especie_documentoObject

REQUERIDO: Tipo do documento (Geralmente DM que quer dizer Duplicata Mercantil)



36
37
38
# File 'lib/brcobranca/boleto/base.rb', line 36

def especie_documento
  @especie_documento
end

#instrucao1Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



42
43
44
# File 'lib/brcobranca/boleto/base.rb', line 42

def instrucao1
  @instrucao1
end

#instrucao2Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



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

def instrucao2
  @instrucao2
end

#instrucao3Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



46
47
48
# File 'lib/brcobranca/boleto/base.rb', line 46

def instrucao3
  @instrucao3
end

#instrucao4Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



48
49
50
# File 'lib/brcobranca/boleto/base.rb', line 48

def instrucao4
  @instrucao4
end

#instrucao5Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



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

def instrucao5
  @instrucao5
end

#instrucao6Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



52
53
54
# File 'lib/brcobranca/boleto/base.rb', line 52

def instrucao6
  @instrucao6
end

#instrucao7Object

OPCIONAL: Utilizado para mostrar alguma informação ao sacado



54
55
56
# File 'lib/brcobranca/boleto/base.rb', line 54

def instrucao7
  @instrucao7
end

#local_pagamentoObject

REQUERIDO: Informação sobre onde o sacado podera efetuar o pagamento



56
57
58
# File 'lib/brcobranca/boleto/base.rb', line 56

def local_pagamento
  @local_pagamento
end

#moedaObject

REQUERIDO: Tipo de moeda utilizada (Real(R$) e igual a 9)



10
11
12
# File 'lib/brcobranca/boleto/base.rb', line 10

def moeda
  @moeda
end

#numero_documentoObject

OPCIONAL: Número sequencial utilizado identificar o boleto



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

def numero_documento
  @numero_documento
end

#quantidadeObject

REQUERIDO: Quantidade de boleto(padrão = 1)



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

def quantidade
  @quantidade
end

#sacadoObject

REQUERIDO: Nome da pessoa que receberá o boleto



60
61
62
# File 'lib/brcobranca/boleto/base.rb', line 60

def sacado
  @sacado
end

#sacado_documentoObject

REQUERIDO: Documento da pessoa que receberá o boleto



64
65
66
# File 'lib/brcobranca/boleto/base.rb', line 64

def sacado_documento
  @sacado_documento
end

#sacado_enderecoObject

OPCIONAL: Endereco da pessoa que receberá o boleto



62
63
64
# File 'lib/brcobranca/boleto/base.rb', line 62

def sacado_endereco
  @sacado_endereco
end

#valorObject

REQUERIDO: Valor do boleto



22
23
24
# File 'lib/brcobranca/boleto/base.rb', line 22

def valor
  @valor
end

#variacaoObject

OPCIONAL: Variacao da carteira(opcional para a maioria dos bancos)



14
15
16
# File 'lib/brcobranca/boleto/base.rb', line 14

def variacao
  @variacao
end

Instance Method Details

#agencia_conta_boletoObject

Campo usado apenas na exibição no boleto

Dever


111
112
113
# File 'lib/brcobranca/boleto/base.rb', line 111

def agencia_conta_boleto
  "Sobreescreva este método na classe referente ao banco que você esta criando"
end

#agencia_dvObject

Retorna dígito verificador da agência, calculado com modulo11 de 9 para 2



84
85
86
# File 'lib/brcobranca/boleto/base.rb', line 84

def agencia_dv
  self.agencia.modulo11_9to2
end

#banco_dvObject

Retorna dígito verificador do banco, calculado com modulo11 de 9 para 2



79
80
81
# File 'lib/brcobranca/boleto/base.rb', line 79

def banco_dv
  self.banco.modulo11_9to2
end

#codigo_barrasObject

Retorna uma String com 44 caracteres representando o codigo de barras do boleto

O c


137
138
139
140
141
142
143
144
# File 'lib/brcobranca/boleto/base.rb', line 137

def codigo_barras
  codigo = monta_codigo_43_digitos
  return unless codigo
  return if codigo.size != 43
  codigo_dv = codigo.modulo11_2to9

  "#{codigo[0..3]}#{codigo_dv}#{codigo[4..42]}"
end

#conta_corrente_dvObject

Retorna dígito verificador da conta corrente, calculado com modulo11 de 9 para 2



89
90
91
# File 'lib/brcobranca/boleto/base.rb', line 89

def conta_corrente_dv
  self.conta_corrente.modulo11_9to2
end

#data_vencimentoObject

Retorna data de vencimento baseado na data_documento + dias_vencimento ou false caso não consiga efetuar o cálculo.



122
123
124
125
# File 'lib/brcobranca/boleto/base.rb', line 122

def data_vencimento
  return nil unless self.data_documento.kind_of?(Date) && self.dias_vencimento.kind_of?(Numeric)
  (self.data_documento + self.dias_vencimento.to_i)
end

#monta_codigo_43_digitosObject

Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras

Este metodo precisa ser reescrito para cada classe de boleto a ser criada.


148
149
150
# File 'lib/brcobranca/boleto/base.rb', line 148

def monta_codigo_43_digitos
  "Sobreescreva este método na classe referente ao banco que você esta criando"
end

#nosso_numeroObject

Número sequencial utilizado para distinguir os boletos na agência



99
100
101
# File 'lib/brcobranca/boleto/base.rb', line 99

def nosso_numero
  self.numero_documento
end

#nosso_numero_boletoObject

Campo usado apenas na exibição no boleto

Dever


105
106
107
# File 'lib/brcobranca/boleto/base.rb', line 105

def nosso_numero_boleto
  "Sobreescreva este método na classe referente ao banco que você esta criando"
end

#nosso_numero_dvObject

Retorna dígito verificador do nosso número, calculado com modulo11 de 9 para 2



94
95
96
# File 'lib/brcobranca/boleto/base.rb', line 94

def nosso_numero_dv
  self.numero_documento.modulo11_9to2
end

#valor_documentoObject

Retorna o valor total do documento: quantidate * valor ou zero(0) caso não consiga efetuar o cálculo.



116
117
118
119
# File 'lib/brcobranca/boleto/base.rb', line 116

def valor_documento
  return 0 unless self.quantidade.kind_of?(Numeric) && self.valor.kind_of?(Numeric)
  self.quantidade * self.valor.to_f
end