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