class Keepr::Group

Public Class Methods

result() click to toggle source
# File lib/keepr/group.rb, line 18
def self.result
  where(is_result: true).first
end

Public Instance Methods

keepr_postings() click to toggle source
# File lib/keepr/group.rb, line 22
def keepr_postings
  if is_result
    Keepr::Posting
      .joins(:keepr_account)
      .where(keepr_accounts: { kind: [
               Keepr::Account.kinds[:revenue],
               Keepr::Account.kinds[:expense]
             ] })
  else
    Keepr::Posting
      .joins(keepr_account: :keepr_group)
      .merge(subtree)
  end
end

Private Instance Methods

check_result_and_target() click to toggle source
# File lib/keepr/group.rb, line 45
def check_result_and_target
  return unless is_result

  # Attribute `is_result` allowed for liability target only
  errors.add :base, :liability_needed_for_result unless liability?
end
set_target_from_parent() click to toggle source
# File lib/keepr/group.rb, line 39
def set_target_from_parent
  self.class.unscoped do
    self.target = parent.target if parent
  end
end