class Skr::ExpenseEntry

Public Class Methods

access_limits_for_query(query, user, params) click to toggle source
# File lib/skr/models/expense_entry.rb, line 29
def self.access_limits_for_query(query, user, params)
    if user.roles.include?('accounting') && (params['id'] || params['review'] == 'true')
        query
    else
        query.where(created_by_id: user.id)
    end
end

Public Instance Methods

amount() click to toggle source
# File lib/skr/models/expense_entry.rb, line 48
def amount
    categories.total
end
approve!(bank, location: Location.default) click to toggle source
# File lib/skr/models/expense_entry.rb, line 52
def approve!(bank, location: Location.default)
    debit = bank.gl_account
    glt = GlTransaction.record(
        location: location, description: "Expenses"
    ) do | transaction |
        transaction.source = self
        categories.each do | entry_category |
            GlTransaction.push_or_save(
                owner: self, amount: entry_category.amount,
                debit: debit, credit: entry_category.category.gl_account
            )
        end
    end
end
total() click to toggle source
# File lib/skr/models/expense_entry.rb, line 14
def total
    proxy_association.loaded? ? inject(0){ | sum, cat | sum+cat.amount } : sum('amount')
end

Private Instance Methods

set_defaults() click to toggle source
# File lib/skr/models/expense_entry.rb, line 69
def set_defaults
    self.uuid    ||= SecureRandom.uuid
    self.occured ||= Time.now
end