module BankApi::SignDeposits
Public Instance Methods
sign(deposits)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 4 def sign(deposits) entries = get_entry_occurrencies(deposits) sign_entries(entries) end
Private Instance Methods
entry_key(entry)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 39 def entry_key(entry) rut_or_client = entry.rut || entry.client.to_s.downcase.delete(' ') "#{entry.amount}|#{entry.date}|#{rut_or_client}|#{entry.bank}" end
entry_signature(entry, occurrencies)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 34 def entry_signature(entry, occurrencies) key = entry_key(entry) "#{key}|#{occurrencies}" end
get_entry_occurrencies(deposits)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 11 def get_entry_occurrencies(deposits) entry_occurrencies_keys = {} deposits.map do |entry| key = entry_key(entry) occurrency = entry_occurrencies_keys[key] || 0 entry_occurrencies_keys[key] = occurrency + 1 { deposit_entry: entry, occurrencies: entry_occurrencies_keys[key] } end end
sign_entries(entries)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 23 def sign_entries(entries) entries.each { |entry_occurrency| sign_entry(entry_occurrency) } end
sign_entry(entry_occurrency)
click to toggle source
# File lib/bank_api/sign_deposits.rb, line 27 def sign_entry(entry_occurrency) entry = entry_occurrency[:deposit_entry] occurrencies = entry_occurrency[:occurrencies] entry.signature = entry_signature(entry, occurrencies) end