Adding payment graph
This commit is contained in:
@@ -16,28 +16,6 @@ class PaymentsController < ApplicationController
|
||||
# GET /payments.json
|
||||
def index
|
||||
@payments = @payments.order("date DESC")
|
||||
payment_months = @payments.group_by{ |p| p.date.beginning_of_month }
|
||||
@payments_by_month = []
|
||||
payment_months.each do |month|
|
||||
# Only grab the last year from today
|
||||
if month.first > (Date.today - 1.year) && month.first < Date.today
|
||||
# Calculate sum of amounts for each month and store at end of month array
|
||||
@payments_by_month << {:month => month.first, :sum => month.last.sum{|p|
|
||||
if p.amount
|
||||
p.amount.to_i
|
||||
else
|
||||
if p.user
|
||||
Rails.logger.info p.user.member_level
|
||||
p.user.member_level.to_i
|
||||
else
|
||||
Rails.logger.info p.inspect
|
||||
Rails.logger.info p.user.inspect
|
||||
0
|
||||
end
|
||||
end
|
||||
}}
|
||||
end
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
@@ -45,6 +23,62 @@ class PaymentsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def chart
|
||||
chart_name = params[:name] || "total"
|
||||
if chart_name == "total"
|
||||
chart_type = [25, 50, 100]
|
||||
elsif chart_name == "members"
|
||||
chart_type = [25, 50, 100]
|
||||
elsif chart_name == "basic"
|
||||
chart_type = [50]
|
||||
elsif chart_name == "associate"
|
||||
chart_type = [25]
|
||||
else
|
||||
chart_type = []
|
||||
end
|
||||
|
||||
payment_months = @payments.sort_by(&:date).group_by{ |p| p.date.beginning_of_month }
|
||||
@payments_by_month = []
|
||||
payment_months.each do |month|
|
||||
# Only grab the last year from today
|
||||
if month.first > (Date.today - 1.year) && month.first < Date.today
|
||||
# Calculate sum of amounts for each month and store at end of month array
|
||||
@payments_by_month << [month.first.to_time.to_i*1000, month.last.sum{|p|
|
||||
amount = amount_or_level(p)
|
||||
if chart_type.include?(amount)
|
||||
if chart_name == "members"
|
||||
1 # Output 1 to count members
|
||||
else
|
||||
amount # Output dollars to count amount
|
||||
end
|
||||
else
|
||||
0
|
||||
end
|
||||
}]
|
||||
end
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.json { render :json => @payments_by_month }
|
||||
end
|
||||
end
|
||||
|
||||
def amount_or_level p
|
||||
if p.amount
|
||||
return p.amount.to_i
|
||||
else
|
||||
if p.user
|
||||
Rails.logger.info p.user.member_level
|
||||
return p.user.member_level.to_i
|
||||
else
|
||||
Rails.logger.info p.inspect
|
||||
Rails.logger.info p.user.inspect
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# GET /payments/1
|
||||
# GET /payments/1.json
|
||||
def show
|
||||
|
||||
Reference in New Issue
Block a user