class Finance::OrdergroupsController < Finance::BaseController def index m = /^(?name|sum_of_class_\d+)(?_reverse)?$/.match params['sort'] if m sort = m[:col] sort += ' DESC' if m[:reverse] else sort = 'name' end @ordergroups = Ordergroup.undeleted.order(sort) @ordergroups = @ordergroups.include_transaction_class_sum @ordergroups = @ordergroups.where('groups.name LIKE ?', "%#{params[:query]}%") unless params[:query].nil? @ordergroups = @ordergroups.page(params[:page]).per(@per_page) @total_balances = FinancialTransactionClass.sorted.each_with_object({}) do |c, tmp| tmp[c.id] = c.financial_transactions.reduce(0) { |sum, t| sum + (t.amount || 0) } end end end