Adding payment graph

This commit is contained in:
2013-09-28 02:42:30 -07:00
parent b5383eaafb
commit 16e5e8d584
3 changed files with 139 additions and 31 deletions

View File

@@ -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