Class: Brcobranca::Boleto::Hsbc
- Defined in:
- lib/brcobranca/boleto/hsbc.rb
Overview
Banco HSBC
Instance Attribute Summary
Attributes inherited from Base
#aceite, #agencia, #avalista, #avalista_documento, #carteira, #carteira_label, #cedente, #cedente_endereco, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #data_vencimento, #demonstrativo, #descontos_e_abatimentos, #documento_cedente, #documento_numero, #emv, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #instrucoes, #local_pagamento, #moeda, #nosso_numero, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao
Instance Method Summary collapse
-
#agencia_conta_boleto ⇒ String
Número do convênio/contrato do cliente para exibir no boleto.
-
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre).
-
#codigo_barras_segunda_parte ⇒ String
Segunda parte do código de barras.
-
#initialize(campos = {}) ⇒ Hsbc
constructor
Nova instancia do Hsbc.
-
#nosso_numero=(valor) ⇒ String
Número seqüencial utilizado para identificar o boleto.
-
#nosso_numero_boleto ⇒ String
Nosso número para exibir no boleto.
Methods inherited from Base
#agencia_dv, #banco_dv, #codigo_barras, #conta_corrente_dv, #fator_vencimento, #logotipo, #nosso_numero_dv, #valor_documento
Methods included from Template::Base
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
#initialize(campos = {}) ⇒ Hsbc
Nova instancia do Hsbc
14 15 16 17 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 14 def initialize(campos = {}) campos = { carteira: 'CNR' }.merge!(campos) super(campos) end |
Instance Method Details
#agencia_conta_boleto ⇒ String
Número do convênio/contrato do cliente para exibir no boleto.
70 71 72 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 70 def agencia_conta_boleto conta_corrente end |
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre)
22 23 24 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 22 def banco '399' end |
#codigo_barras_segunda_parte ⇒ String
Segunda parte do código de barras.
Montagem é baseada no tipo de carteira e na presença da data de vencimento<br/> OBS: Somente as carteiras CNR/CSB estão implementadas.<br/>
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 81 def case carteira when 'CNR' dias_julianos = data_vencimento.to_juliano "#{conta_corrente}#{nosso_numero}#{dias_julianos}2" when 'CSB' raise Brcobranca::NaoImplementado, 'Nosso número não definido.' unless @nosso_numero "#{nosso_numero}#{agencia}#{conta_corrente}001" else raise Brcobranca::NaoImplementado, 'Tipo de carteira não implementado.' end end |
#nosso_numero=(valor) ⇒ String
Número seqüencial utilizado para identificar o boleto.
28 29 30 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 28 def nosso_numero=(valor) @nosso_numero = valor.to_s.rjust(13, '0') if valor end |
#nosso_numero_boleto ⇒ String
Nosso número para exibir no boleto.
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 |
# File 'lib/brcobranca/boleto/hsbc.rb', line 36 def nosso_numero_boleto case carteira when 'CNR' if data_vencimento.is_a?(Date) self.codigo_servico = '4' dia = data_vencimento.day.to_s.rjust(2, '0') mes = data_vencimento.month.to_s.rjust(2, '0') ano = data_vencimento.year.to_s[2..3] data = "#{dia}#{mes}#{ano}" parte_1 = "#{nosso_numero}#{nosso_numero.modulo11(mapeamento: { 10 => 0 })}#{codigo_servico}" soma = parte_1.to_i + conta_corrente.to_i + data.to_i "#{parte_1}#{soma.to_s.modulo11(mapeamento: { 10 => 0 })}" else errors.add(:data_vencimento, 'não é uma data.') raise Brcobranca::BoletoInvalido, self end when 'CSB' @nosso_numero else raise Brcobranca::NaoImplementado, 'Tipo de carteira não implementado.' # TODO: - Verificar outras carteiras. # self.codigo_servico = "5" # parte_1 = "#{self.nosso_numero}#{self.nosso_numero.modulo11(mapeamento: { 10 => 0 })}#{self.codigo_servico}" # soma = parte_1.to_i + self.conta_corrente.to_i # numero = "#{parte_1}#{soma.to_s.modulo11(mapeamento: { 10 => 0 })}" # numero end end |