class Dolla::ReferenceNumber
Constants
- BANK_FILLER
- REFERENCE_NUMBER_FORMAT
Attributes
amount[R]
due_date[R]
id[R]
request[R]
Public Class Methods
new(payment_id:, due_date:, amount:)
click to toggle source
# File lib/dolla/reference_number.rb, line 11 def initialize(payment_id:, due_date:, amount:) @id = payment_id @due_date = due_date @amount = amount end
Public Instance Methods
number()
click to toggle source
# File lib/dolla/reference_number.rb, line 17 def number final_reference_number_format % [ref, ref_hash] end
Private Instance Methods
final_reference_number_format()
click to toggle source
# File lib/dolla/reference_number.rb, line 54 def final_reference_number_format REFERENCE_NUMBER_FORMAT[:final] end
hash_amount()
click to toggle source
# File lib/dolla/reference_number.rb, line 46 def hash_amount PaymentSlip::Amount.new( amount ).hash end
hash_date()
click to toggle source
# File lib/dolla/reference_number.rb, line 42 def hash_date PaymentSlip::DueDate.new( due_date ).hash end
initial_reference_number_format()
click to toggle source
# File lib/dolla/reference_number.rb, line 50 def initial_reference_number_format REFERENCE_NUMBER_FORMAT[:initial] end
ref()
click to toggle source
# File lib/dolla/reference_number.rb, line 23 def ref initial_reference_number_format % [id, hash_date, hash_amount, 2] end
ref_hash()
click to toggle source
# File lib/dolla/reference_number.rb, line 27 def ref_hash numbers_container = [] BANK_FILLER.cycle do |filler| numbers_container << filler break if numbers_container.length >= length end numbers_container.reverse! (0..length-1).inject(0) do |sum, position| sum += (ref[ position, 1 ].to_i * numbers_container[ position ].to_i) end % 97 + 1 end