Class: BoletoBancario::Core::Hsbc
- Defined in:
- lib/boleto_bancario/core/hsbc.rb
Overview
Implementação de emissão de boleto bancário pelo Banco HSBC.
Documentação Implementada
A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/hsbc’ dentro dessa biblioteca.
Carteiras
______________________________________________
| Carteira | Descrição | Produto |
| CNR | Cobrança não Registrada | 2 |
|______________________________________________|
Instance Attribute Summary
Attributes inherited from Boleto
#aceite, #agencia, #carteira, #cedente, #codigo_moeda, #conta_corrente, #data_documento, #data_vencimento, #documento_cedente, #documento_sacado, #endereco_cedente, #endereco_sacado, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #sacado, #valor_documento
Class Method Summary collapse
-
.carteiras_suportadas ⇒ Array
Carteiras suportadas. Método criado para validar se a carteira informada é suportada..
-
.tamanho_maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código do cedente emitido no Boleto.
-
.tamanho_maximo_numero_documento ⇒ Fixnum
Tamanho máximo do número do documento emitido no Boleto.
Instance Method Summary collapse
-
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente.
-
#codigo_banco ⇒ String
Código do Banco descrito na documentação.
-
#codigo_cedente ⇒ String
7 caracteres.
-
#codigo_de_barras_do_banco ⇒ String
Código de barras do banco.
-
#data_vencimento_formato_juliano ⇒ String
Data do vencimento no formato Juliano composta por 4 dígitos.
-
#data_vencimento_para_calculo ⇒ String
Data do vencimento para ser usada no calculo do segundto dígito identificador do nosso numero.
-
#digito_codigo_banco ⇒ String
Não possui dígito do código do banco.
-
#nosso_numero ⇒ String
Nosso numero calculado pelo Tipo Identificador 4 descrito na documentação.
- #nosso_numero_dv_1 ⇒ Object
- #nosso_numero_dv_2 ⇒ Object
-
#numero_documento ⇒ String
13 caracteres.
- #produto ⇒ Object
- #tipo_identificador ⇒ Object
Methods inherited from Boleto
#aceite_formatado, #carteira_formatada, #codigo_banco_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #default_options, #deve_validar_agencia?, #deve_validar_carteira?, #deve_validar_codigo_cedente?, #deve_validar_conta_corrente?, #deve_validar_numero_documento?, #digito_codigo_de_barras, #fator_de_vencimento, #initialize, #linha_digitavel, #persisted?, #to_partial_path, valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras
Constructor Details
This class inherits a constructor from BoletoBancario::Core::Boleto
Class Method Details
.carteiras_suportadas ⇒ Array
Carteiras suportadas. Método criado para validar se a carteira informada é suportada.
41 42 43 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 41 def self.carteiras_suportadas %w[CNR] end |
.tamanho_maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código do cedente emitido no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
23 24 25 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 23 def self.tamanho_maximo_codigo_cedente 7 end |
.tamanho_maximo_numero_documento ⇒ Fixnum
Tamanho máximo do número do documento emitido no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
32 33 34 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 32 def self.tamanho_maximo_numero_documento 13 end |
Instance Method Details
#agencia_codigo_cedente ⇒ String
Campo Agência / Código do Cedente
106 107 108 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 106 def agencia_codigo_cedente "#{codigo_cedente}" end |
#codigo_banco ⇒ String
Returns Código do Banco descrito na documentação.
92 93 94 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 92 def codigo_banco '399' end |
#codigo_cedente ⇒ String
Returns 7 caracteres.
76 77 78 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 76 def codigo_cedente @codigo_cedente.to_s.rjust(7, '0') if @codigo_cedente.present? end |
#codigo_de_barras_do_banco ⇒ String
Código de barras do banco
_______________________________________________________________________________________
| Posição | Tamanho | Descrição |
|----------|---------|------------------------------------------------------------------|
| 20 - 26 | 07 | Código do Cedente |
| 27 - 39 | 13 | Código do Documento |
| 40 - 43 | 04 | Data de Vencimento no Formato Juliano. |
| 44 – 44 | 01 | Código do Produto CNR, número 2. |
|_______________________________________________________________________________________|
157 158 159 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 157 def "#{codigo_cedente}#{numero_documento}#{data_vencimento_formato_juliano}#{produto}" end |
#data_vencimento_formato_juliano ⇒ String
Data do vencimento no formato Juliano composta por 4 dígitos
165 166 167 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 165 def data_vencimento_formato_juliano "#{@data_vencimento.yday.to_s.rjust(3, '0')}#{@data_vencimento.year.to_s.last}" if @data_vencimento.present? end |
#data_vencimento_para_calculo ⇒ String
Data do vencimento para ser usada no calculo do segundto dígito identificador do nosso numero
Exemplo: 18/03/2015 => 180315
140 141 142 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 140 def data_vencimento_para_calculo @data_vencimento.strftime('%d%m%y') if @data_vencimento.present? end |
#digito_codigo_banco ⇒ String
Returns Não possui dígito do código do banco.
98 99 100 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 98 def digito_codigo_banco '9' end |
#nosso_numero ⇒ String
Nosso numero calculado pelo Tipo Identificador 4 descrito na documentação
114 115 116 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 114 def nosso_numero "#{numero_documento}#{nosso_numero_dv_1}#{tipo_identificador}#{nosso_numero_dv_2}" end |
#nosso_numero_dv_1 ⇒ Object
118 119 120 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 118 def nosso_numero_dv_1 Modulo11FatorDe9a2.new(numero_documento) end |
#nosso_numero_dv_2 ⇒ Object
126 127 128 129 130 131 132 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 126 def nosso_numero_dv_2 soma = "#{numero_documento}#{nosso_numero_dv_1}#{tipo_identificador}".to_i soma += codigo_cedente.to_i soma += data_vencimento_para_calculo.to_i Modulo11FatorDe9a2.new(soma) end |
#numero_documento ⇒ String
Returns 13 caracteres.
82 83 84 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 82 def numero_documento @numero_documento.to_s.rjust(13, '0') if @numero_documento.present? end |
#produto ⇒ Object
86 87 88 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 86 def produto '2' end |
#tipo_identificador ⇒ Object
122 123 124 |
# File 'lib/boleto_bancario/core/hsbc.rb', line 122 def tipo_identificador 4 end |