jam-cloud/ruby/lib/jam_ruby/models/affiliate_payment.rb

50 lines
1.2 KiB
Ruby

module JamRuby
class AffiliatePayment < ActiveRecord::Base
belongs_to :affiliate_monthly_payment
belongs_to :affiliate_quarterly_payment
def self.index(user, options)
unless user.affiliate_partner
return [[], nil]
end
affiliate_partner_id = user.affiliate_partner.id
page = options[:page].to_i
per_page = options[:per_page].to_i
if page == 0
page = 1
end
if per_page == 0
per_page = 50
end
start = (page -1 ) * per_page
limit = per_page
query = AffiliatePayment
.includes(affiliate_quarterly_payment: [], affiliate_monthly_payment:[])
.where(affiliate_partner_id: affiliate_partner_id)
.where("(payment_type='quarterly' AND closed = true) OR payment_type='monthly'")
.where('(paid = TRUE or due_amount_in_cents < 10000 or paid is NULL)')
.paginate(:page => page, :per_page => limit)
.order('year ASC, time_sort ASC, payment_type ASC')
if query.length == 0
[query, nil]
elsif query.length < limit
[query, nil]
else
[query, start + limit]
end
end
end
end