Skip to content

Commit

Permalink
melhorando documentação do HSBC
Browse files Browse the repository at this point in the history
  • Loading branch information
kivanio committed Sep 15, 2010
1 parent ecbdd78 commit 54c171f
Showing 1 changed file with 35 additions and 14 deletions.
49 changes: 35 additions & 14 deletions lib/brcobranca/boleto/hsbc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,25 @@ def initialize(campos={})
end

# Codigo do banco emissor (3 dígitos sempre)
#
# @return [String] 3 caracteres numéricos.
def banco
"399"
end

# Número seqüencial de 13 dígitos utilizado para identificar o boleto.
# Número seqüencial de 7 dígitos utilizado para identificar o boleto.
# Número seqüencial utilizado para identificar o boleto.
# @return [String] 13 caracteres numéricos.
def numero_documento=(valor)
@numero_documento = valor.to_s.rjust(13,'0') unless valor.nil?
end

# Número sequencial utilizado para distinguir os boletos na agência
# Número seqüencial utilizado para identificar o boleto.
#
# Montagem é baseada na presença da data de vencimento.<br/>
# <b>OBS:</b> Somente a carteira <b>CNR</b> está implementada.<br/>
#
# @return [String]
# @raise [Brcobranca::NaoImplementado] Caso a carteira informada não for CNR.
def nosso_numero
if self.data_vencimento.kind_of?(Date)
self.codigo_servico = "4"
Expand All @@ -40,32 +48,45 @@ def nosso_numero
numero = "#{parte_1}#{soma.to_s.modulo11_9to2_10_como_zero}"
numero
else
self.codigo_servico = "5"
parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11_9to2_10_como_zero}#{self.codigo_servico}"
soma = parte_1.to_i + self.conta_corrente.to_i
numero = "#{parte_1}#{soma.to_s.modulo11_9to2_10_como_zero}"
numero
raise Brcobranca::NaoImplementado.new("Tipo de carteira não implementado.")
# TODO - Verificar outras carteiras.
# self.codigo_servico = "5"
# parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11_9to2_10_como_zero}#{self.codigo_servico}"
# soma = parte_1.to_i + self.conta_corrente.to_i
# numero = "#{parte_1}#{soma.to_s.modulo11_9to2_10_como_zero}"
# numero
end
end

# Campo usado apenas na exibição no boleto
# Deverá ser sobreescrito para cada banco
# Nosso número para exibir no boleto.
# @return [String]
# @example
# boleto.nosso_numero_boleto #=> "0000000004042847"
def nosso_numero_boleto
self.nosso_numero
end

# Campo usado apenas na exibição no boleto
# Deverá ser sobreescrito para cada banco
# Número do convênio/contrato do cliente para exibir no boleto.
# @return [String]
# @example
# boleto.agencia_conta_boleto #=> "0061900"
def agencia_conta_boleto
self.conta_corrente
end

# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
# Segunda parte do código de barras.
#
# Montagem é baseada no tipo de carteira e na presença da data de vencimento<br/>
# <b>OBS:</b> Somente a carteira <b>CNR</b> está implementada.<br/>
#
# @return [String] 25 caracteres numéricos.
# @raise [Brcobranca::NaoImplementado] Caso a carteira informada não for CNR.
def codigo_barras_segunda_parte
# Montagem é baseada no tipo de carteira e na presença da data de vencimento
if self.carteira == "CNR"
dias_julianos = self.data_vencimento.to_juliano
"#{self.conta_corrente}#{self.numero_documento}#{dias_julianos}2"
else
raise Brcobranca::NaoImplementado.new("Tipo de carteira não implementado.")
end
end

Expand Down

0 comments on commit 54c171f

Please sign in to comment.