class FeideeUtils::Account
Constants
- FieldMappings
- IgnoredFields
- NullPOID
Public Class Methods
validate_global_integrity()
click to toggle source
# File lib/feidee_utils/account.rb, line 32 def self.validate_global_integrity if self.find_by_id(-1) != nil raise "-1 is used as the parent POID placeholder of a parent account." + " Account of POID -1 should not exist." end end
Public Instance Methods
balance()
click to toggle source
NOTE: balance is not set for credit cards etc. Instead credit/debit are used. Guess: The special behavior is be controlled by account_group_poid. Again, the code can work in all cases, thus no check is done.
# File lib/feidee_utils/account.rb, line 72 def balance to_bigdecimal(raw_balance) + credit - debit end
children()
click to toggle source
# File lib/feidee_utils/account.rb, line 108 def children arr = [] self.class.database.query( "SELECT * FROM #{self.class.table_name} WHERE parent = ?", poid ) do |result| result.each do |raw_row| arr << self.class.new(raw_row) end end arr end
credit()
click to toggle source
# File lib/feidee_utils/account.rb, line 76 def credit to_bigdecimal(raw_credit) end
debit()
click to toggle source
# File lib/feidee_utils/account.rb, line 80 def debit to_bigdecimal(raw_debit) end
flagged_as_parent?()
click to toggle source
# File lib/feidee_utils/account.rb, line 97 def flagged_as_parent? # Account with POID -1 doesn't exist. It's just a special # POID used to indicate that this account itself is the parent # of some other accounts. parent_poid == -1 end
flat_parent_hierachy?()
click to toggle source
# File lib/feidee_utils/account.rb, line 104 def flat_parent_hierachy? !has_parent? or parent.flagged_as_parent? end
has_parent?()
click to toggle source
# File lib/feidee_utils/account.rb, line 93 def has_parent? parent_poid != NullPOID && !flagged_as_parent? end
parent()
click to toggle source
Parent related.
# File lib/feidee_utils/account.rb, line 89 def parent self.class.find_by_id(parent_poid) end
to_s()
click to toggle source
# File lib/feidee_utils/account.rb, line 120 def to_s "#{name} (Account/#{poid})" end
validate_integrity()
click to toggle source
# File lib/feidee_utils/account.rb, line 7 def validate_integrity unless not column("type") or column("type") == 0 raise "Account type should always be 0, but it's #{column("type")}.\n" + inspect end unless column("usedCount") == 0 raise "Account usedCount should always be 0," + " but it's #{column("usedCount")}.\n"+ inspect end unless column("uuid").to_s.empty? raise "Account uuid should always be empty,"+ " but it's #{column("uuid")}.\n" + inspect end unless flat_parent_hierachy? raise "Account hierachy contains more than 2 levels.\n" + inspect end unless (raw_hidden == 1 or raw_hidden == 0) raise "Account hidden should be either 0 or 1," + " but it's #{raw_hidden}.\n" + inspect end end