1 class PurchaseController < ApplicationController
4 redirect_to :action => :begin
8 @purchase_pages, @purchase = paginate :purchases, :per_page => 100
12 # enter a customer id here
13 render :action => 'begin'
14 session[:total] = 0.00
19 if Customer.find_by_id(params[:customer_id])
20 session[:customer_id] = params[:customer_id]
21 redirect_to :action => :menu
23 flash[:error] = "Customer ID is invalid"
24 redirect_to :action => :begin
29 @customer = Customer.find_by_id(session[:customer_id])
30 @total_price = session[:total]
31 @items = session[:items]
32 render :action => 'menu'
36 render :action => 'rent_begin'
40 @customer = Customer.find_by_id(session[:customer_id])
41 @rentable = Rentable.find_by_id(params[:rentable_id])
44 flash[:error] = "Customer ID is invalid"
45 redirect_to :action => :begin
50 flash[:error] = "Rentable ID is invalid"
51 redirect_to :action => :rent_begin
55 if @rentable.checkedout?
56 flash[:error] = "This #{@rentable.type} is already checked out!"
57 redirect_to :action => :rent_begin
63 checkout.customer = @customer
64 checkout.rentable = @rentable
65 checkout.out_date = Time.now.to_date
66 checkout.due_date = @rentable.due_date
69 # Actually record the purchase
70 purchase = RentablePurchase.new
71 purchase.customer_id = session[:customer_id]
72 purchase.date = Time.now.to_date
73 purchase.price = @rentable.calculated_price
74 purchase.rentable = @rentable
77 # Add te session variables
78 session[:total] += @rentable.calculated_price
79 session[:items].push @rentable
81 flash[:notice] = "Successfully made purchase"
82 redirect_to :action => :menu
86 render :action => 'buy_begin'
90 @customer = Customer.find_by_id(session[:customer_id])
91 @merchandise = Merchandise.find_by_id(params[:merchandise_id])
94 flash[:error] = "Customer ID is invalid"
95 redirect_to :action => :begin
100 flash[:error] = "Merchandise ID is invalid"
101 redirect_to :action => :buy_begin
105 if @merchandise.quantity < 1
106 flash[:error] = "The system thinks we are out of this merchandise item!"
107 redirect_to :action => :buy_begin
111 # Actually record the purchase
112 purchase = MerchandisePurchase.new
113 purchase.customer_id = session[:customer_id]
114 purchase.date = Time.now.to_date
115 purchase.price = @merchandise.price
116 purchase.merchandise = @merchandise
117 purchase.quantity = 1
118 @merchandise.quantity -= 1
120 # Add to session variables
121 session[:total] += @merchandise.price
122 session[:items].push @merchandise
124 # Save both the merchandise (we changed the quantity) and the purchase to the log
128 flash[:notice] = "Successfully made purchase"
129 redirect_to :action => :menu