Class: BancoHsbc
- Inherits:
-
Brcobranca::Boleto::Base
- Object
- Brcobranca::Boleto::Base
- BancoHsbc
- Defined in:
- lib/brcobranca/boleto/banco_hsbc.rb
Overview
Banco HSBC
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 = {}) ⇒ BancoHsbc
constructor
Responsável por definir dados iniciais quando se cria uma nova intância da classe BancoBrasil.
-
#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
Campo usado apenas na exibição no boleto Deverá ser sobreescrito para cada banco.
Methods inherited from Brcobranca::Boleto::Base
#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #data_vencimento, #nosso_numero_dv, #valor_documento
Constructor Details
#initialize(campos = {}) ⇒ BancoHsbc
Responsável por definir dados iniciais quando se cria uma nova intância da classe BancoBrasil
5 6 7 8 9 |
# File 'lib/brcobranca/boleto/banco_hsbc.rb', line 5 def initialize(campos={}) padrao={:carteira => "CNR", :banco => "399"} campos = padrao.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ Object
Campo usado apenas na exibição no boleto
Dever
41 42 43 |
# File 'lib/brcobranca/boleto/banco_hsbc.rb', line 41 def agencia_conta_boleto "#{self.conta_corrente}" 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
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 |
# File 'lib/brcobranca/boleto/banco_hsbc.rb', line 46 def monta_codigo_43_digitos banco = self.banco.zeros_esquerda(:tamanho => 3) valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10) convenio = self.convenio.to_s conta = self.conta_corrente.zeros_esquerda(:tamanho => 7) # Montagem é baseada no tipo de carteira e na presença da data de vencimento if self.carteira == "CNR" if self.data_vencimento.kind_of?(Date) raise "numero_documento pode ser de no máximo 13 caracteres." if (self.numero_documento.to_s.size > 13) fator = self.data_vencimento.fator_vencimento dias_julianos = self.data_vencimento.to_juliano self.codigo_servico = 4 numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 13) numero = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{conta}#{numero_documento}#{dias_julianos}2" numero.size == 43 ? numero : nil else # TODO nil end else # TODO # raise "numero_documento pode ser de no máximo 6 caracteres." if (self.numero_documento.to_s.size > 6) # numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 6) # nosso_numero = self.nosso_numero.zeros_esquerda(:tamanho => 9) # self.codigo_servico = 5 nil end end |
#nosso_numero ⇒ Object
Número sequencial utilizado para distinguir os boletos na agência
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/brcobranca/boleto/banco_hsbc.rb', line 12 def nosso_numero if self.data_vencimento.kind_of?(Date) self.codigo_servico = 4 dia = self.data_vencimento.day.to_s.zeros_esquerda(:tamanho => 2) mes = self.data_vencimento.month.to_s.zeros_esquerda(:tamanho => 2) ano = self.data_vencimento.year.to_s[2..3] data = "#{dia}#{mes}#{ano}" numero_documento = "#{self.numero_documento.to_s}#{self.numero_documento.to_s.modulo11_9to2_10_como_zero}#{self.codigo_servico.to_s}" soma = numero_documento.to_i + self.conta_corrente.to_i + data.to_i numero = "#{numero_documento}#{soma.to_s.modulo11_9to2_10_como_zero}" numero else self.codigo_servico = 5 numero_documento = "#{self.numero_documento.to_s}#{self.numero_documento.to_s.modulo11_9to2_10_como_zero}#{self.codigo_servico.to_s}" soma = numero_documento.to_i + self.conta_corrente.to_i numero = "#{numero_documento}#{soma.to_s.modulo11_9to2_10_como_zero}" numero end end |
#nosso_numero_boleto ⇒ Object
Campo usado apenas na exibição no boleto
Dever
35 36 37 |
# File 'lib/brcobranca/boleto/banco_hsbc.rb', line 35 def nosso_numero_boleto "#{self.nosso_numero}" end |