Class: BancoUnibanco
- Inherits:
-
Brcobranca::Boleto::Base
- Object
- Brcobranca::Boleto::Base
- BancoUnibanco
- Defined in:
- lib/brcobranca/boleto/banco_unibanco.rb
Overview
Banco UNIBANCO
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.
-
#initialize(campos = {}) ⇒ BancoUnibanco
constructor
Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoUnibanco Com Registro 4 Sem Registro 5.
-
#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.
- #nosso_numero_dv ⇒ Object
Methods inherited from Brcobranca::Boleto::Base
#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #data_vencimento, #nosso_numero, #valor_documento
Constructor Details
#initialize(campos = {}) ⇒ BancoUnibanco
Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoUnibanco
Com Registro 4
Sem Registro 5
6 7 8 9 10 |
# File 'lib/brcobranca/boleto/banco_unibanco.rb', line 6 def initialize(campos={}) padrao={:carteira => "5", :banco => "409"} 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
24 25 26 |
# File 'lib/brcobranca/boleto/banco_unibanco.rb', line 24 def agencia_conta_boleto "#{self.agencia} / #{self.conta_corrente}-#{self.conta_corrente_dv}" 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
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 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 |
# File 'lib/brcobranca/boleto/banco_unibanco.rb', line 29 def monta_codigo_43_digitos banco = self.banco.zeros_esquerda(:tamanho => 3) fator = self.data_vencimento.fator_vencimento valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10) carteira = self.carteira.zeros_esquerda(:tamanho => 1) case carteira.to_i when 5 # Cobrança sem registro (CÓDIGO DE BARRAS) # Posição Tamanho Descrição # 1 a 3 3 número de identificação do Unibanco: 409 (número FIXO) # 4 1 código da moeda. Real (R$)=9 (número FIXO) # 5 1 dígito verificador do CÓDIGO DE BARRAS # 6 a 9 4 fator de vencimento # 10 a 19 10 valor do título com zeros à esquerda # 20 1 código para transação CVT: 5 (número FIXO)(5=7744-5) # 21 a 27 7 número do cliente no CÓDIGO DE BARRAS + dígito verificador # 28 a 29 2 vago. Usar 00 (número FIXO) # 30 a 43 14 Número de referência do cliente # 44 1 Dígito verificador convenio = self.convenio.zeros_esquerda(:tamanho => 6) numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 14) codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{carteira}#{convenio}00#{numero_documento}#{self.nosso_numero_dv}" codigo.size == 43 ? codigo : nil when 4 # Cobrança com registro (CÓDIGO DE BARRAS) # Posição Tamanho Descrição # 1 a 3 3 Número de identificação do Unibanco: 409 (número FIXO) # 4 1 Código da moeda. Real (R$)=9 (número FIXO) # 5 1 dígito verificador do CÓDIGO DE BARRAS # 6 a 9 4 fator de vencimento em 4 algarismos, conforme tabela da página 14 # 10 a 19 10 valor do título com zeros à esquerda # 20 a 21 2 Código para transação CVT: 04 (número FIXO) (04=5539-5) # 22 a 27 6 data de vencimento (AAMMDD) # 28 a 32 5 Código da agência + dígito verificador # 33 a 43 11 “Nosso Número” (NNNNNNNNNNN) # 44 1 Super dígito do “Nosso Número” (calculado com o MÓDULO 11 (de 2 a 9)) data = self.data_vencimento.strftime('%y%m%d') agencia = self.agencia.zeros_esquerda(:tamanho => 4) numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 11) codigo = "#{banco}#{self.moeda}#{fator}#{valor_documento}0#{carteira}#{data}#{agencia}#{self.agencia_dv}#{numero_documento}#{self.nosso_numero_dv}" codigo.size == 43 ? codigo : nil else nil end end |
#nosso_numero_boleto ⇒ Object
Campo usado apenas na exibição no boleto
Deverá ser sobreescrito para cada banco
18 19 20 |
# File 'lib/brcobranca/boleto/banco_unibanco.rb', line 18 def nosso_numero_boleto "#{self.numero_documento.zeros_esquerda(:tamanho => 14)}-#{self.nosso_numero_dv}" end |
#nosso_numero_dv ⇒ Object
12 13 14 |
# File 'lib/brcobranca/boleto/banco_unibanco.rb', line 12 def nosso_numero_dv self.numero_documento.modulo11_2to9 end |