Class: Brcobranca::Boleto::Base
- Inherits:
-
Object
- Object
- Brcobranca::Boleto::Base
- Defined in:
- lib/brcobranca/boleto/base.rb
Overview
Classe base para todas as classes de boletos
Direct Known Subclasses
BancoBanespa, BancoBradesco, BancoBrasil, BancoCaixa, BancoHsbc, BancoItau, BancoReal, BancoUnibanco
Instance Attribute Summary collapse
-
#aceite ⇒ Object
REQUERIDO: Informa se o banco deve aceitar o boleto após o vencimento ou não( S ou N, quase sempre S).
-
#agencia ⇒ Object
REQUERIDO: Número da agencia.
-
#banco ⇒ Object
REQUERIDO: Codigo do banco emissor (3 dígitos sempre).
-
#carteira ⇒ Object
REQUERIDO: Carteira utilizada.
-
#cedente ⇒ Object
REQUERIDO: Nome do proprietario da conta corrente.
-
#codigo_servico ⇒ Object
OPCIONAL: Código utilizado para identificar o tipo de serviço cobrado.
-
#conta_corrente ⇒ Object
REQUERIDO: Número da conta corrente.
-
#convenio ⇒ Object
REQUERIDO: Número do convênio/contrato do cliente junto ao banco emissor.
-
#data_documento ⇒ Object
REQUERIDO: Data em que foi emitido o boleto.
-
#data_processamento ⇒ Object
OPCIONAL: Data de processamento do boleto, geralmente igual a data_documento.
-
#dias_vencimento ⇒ Object
REQUERIDO: Número de dias a vencer.
-
#documento_cedente ⇒ Object
REQUERIDO: Documento do proprietario da conta corrente (CPF ou CNPJ).
-
#especie ⇒ Object
REQUERIDO: Símbolo da moeda utilizada (R$ no brasil).
-
#especie_documento ⇒ Object
REQUERIDO: Tipo do documento (Geralmente DM que quer dizer Duplicata Mercantil).
-
#instrucao1 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao2 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao3 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao4 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao5 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao6 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#instrucao7 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado.
-
#local_pagamento ⇒ Object
REQUERIDO: Informação sobre onde o sacado podera efetuar o pagamento.
-
#moeda ⇒ Object
REQUERIDO: Tipo de moeda utilizada (Real(R$) e igual a 9).
-
#numero_documento ⇒ Object
OPCIONAL: Número sequencial utilizado identificar o boleto.
-
#quantidade ⇒ Object
REQUERIDO: Quantidade de boleto(padrão = 1).
-
#sacado ⇒ Object
REQUERIDO: Nome da pessoa que receberá o boleto.
-
#sacado_documento ⇒ Object
REQUERIDO: Documento da pessoa que receberá o boleto.
-
#sacado_endereco ⇒ Object
OPCIONAL: Endereco da pessoa que receberá o boleto.
-
#valor ⇒ Object
REQUERIDO: Valor do boleto.
-
#variacao ⇒ Object
OPCIONAL: Variacao da carteira(opcional para a maioria dos bancos).
Instance Method Summary collapse
-
#agencia_conta_boleto ⇒ Object
Campo usado apenas na exibição no boleto Deverá ser sobreescrito para cada banco.
-
#agencia_dv ⇒ Object
Retorna dígito verificador da agência, calculado com modulo11 de 9 para 2.
-
#banco_dv ⇒ Object
Retorna dígito verificador do banco, calculado com modulo11 de 9 para 2.
-
#codigo_barras ⇒ Object
Retorna uma String com 44 caracteres representando o codigo de barras do boleto O código de barra para cobrança contém 44 posições dispostas da seguinte forma: Posição Tamanho Conteúdo 01 a 03 3 Identificação do Banco 04 a 04 1 Código da Moeda (Real = 9, Outras=0) 05 a 05 1 Dígito verificador do Código de Barras 06 a 09 4 Fator de Vencimento (Vide Nota) 10 a 19 10 Valor 20 a 44 25 Campo Livre As posições do campo livre ficam a critério de cada Banco arrecadador.
-
#conta_corrente_dv ⇒ Object
Retorna dígito verificador da conta corrente, calculado com modulo11 de 9 para 2.
-
#data_vencimento ⇒ Object
Retorna data de vencimento baseado na data_documento + dias_vencimento ou false caso não consiga efetuar o cálculo.
-
#initialize(campos = {}) ⇒ Base
constructor
Responsável por definir dados iniciais quando se cria uma nova intância da classe Base.
-
#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 Este metodo precisa ser reescrito para cada classe de boleto a ser criada.
-
#nosso_numero ⇒ Object
Número sequencial utilizado para distinguir os boletos na agência.
-
#nosso_numero_boleto ⇒ Object
Campo usado apenas na exibição no boleto Deverá ser sobreescrito para cada banco.
-
#nosso_numero_dv ⇒ Object
Retorna dígito verificador do nosso número, calculado com modulo11 de 9 para 2.
-
#valor_documento ⇒ Object
Retorna o valor total do documento: quantidate * valor ou zero(0) caso não consiga efetuar o cálculo.
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
#aceite ⇒ Object
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 |
#agencia ⇒ Object
REQUERIDO: Número da agencia
24 25 26 |
# File 'lib/brcobranca/boleto/base.rb', line 24 def agencia @agencia end |
#banco ⇒ Object
REQUERIDO: Codigo do banco emissor (3 dígitos sempre)
6 7 8 |
# File 'lib/brcobranca/boleto/base.rb', line 6 def banco @banco end |
#carteira ⇒ Object
REQUERIDO: Carteira utilizada
12 13 14 |
# File 'lib/brcobranca/boleto/base.rb', line 12 def carteira @carteira end |
#cedente ⇒ Object
REQUERIDO: Nome do proprietario da conta corrente
28 29 30 |
# File 'lib/brcobranca/boleto/base.rb', line 28 def cedente @cedente end |
#codigo_servico ⇒ Object
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_corrente ⇒ Object
REQUERIDO: Número da conta corrente
26 27 28 |
# File 'lib/brcobranca/boleto/base.rb', line 26 def conta_corrente @conta_corrente end |
#convenio ⇒ Object
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_documento ⇒ Object
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_processamento ⇒ Object
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_vencimento ⇒ Object
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_cedente ⇒ Object
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 |
#especie ⇒ Object
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_documento ⇒ Object
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 |
#instrucao1 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
42 43 44 |
# File 'lib/brcobranca/boleto/base.rb', line 42 def instrucao1 @instrucao1 end |
#instrucao2 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
44 45 46 |
# File 'lib/brcobranca/boleto/base.rb', line 44 def instrucao2 @instrucao2 end |
#instrucao3 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
46 47 48 |
# File 'lib/brcobranca/boleto/base.rb', line 46 def instrucao3 @instrucao3 end |
#instrucao4 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
48 49 50 |
# File 'lib/brcobranca/boleto/base.rb', line 48 def instrucao4 @instrucao4 end |
#instrucao5 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
50 51 52 |
# File 'lib/brcobranca/boleto/base.rb', line 50 def instrucao5 @instrucao5 end |
#instrucao6 ⇒ Object
OPCIONAL: Utilizado para mostrar alguma informação ao sacado
52 53 54 |
# File 'lib/brcobranca/boleto/base.rb', line 52 def instrucao6 @instrucao6 end |
#instrucao7 ⇒ Object
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_pagamento ⇒ Object
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 |
#moeda ⇒ Object
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_documento ⇒ Object
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 |
#quantidade ⇒ Object
REQUERIDO: Quantidade de boleto(padrão = 1)
20 21 22 |
# File 'lib/brcobranca/boleto/base.rb', line 20 def quantidade @quantidade end |
#sacado ⇒ Object
REQUERIDO: Nome da pessoa que receberá o boleto
60 61 62 |
# File 'lib/brcobranca/boleto/base.rb', line 60 def sacado @sacado end |
#sacado_documento ⇒ Object
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_endereco ⇒ Object
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 |
#valor ⇒ Object
REQUERIDO: Valor do boleto
22 23 24 |
# File 'lib/brcobranca/boleto/base.rb', line 22 def valor @valor end |
#variacao ⇒ Object
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_boleto ⇒ Object
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_dv ⇒ Object
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_dv ⇒ Object
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_barras ⇒ Object
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 = 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_dv ⇒ Object
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_vencimento ⇒ Object
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_digitos ⇒ Object
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_numero ⇒ Object
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_boleto ⇒ Object
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_dv ⇒ Object
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_documento ⇒ Object
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 |