Add Income to Purchases
[cs356-p2-videostore.git] / app / controllers / purchase_controller.rb
index 1c40069..6be4254 100644 (file)
@@ -2,8 +2,8 @@ class PurchaseController < ApplicationController
   layout "admin"
 
   # Make sure that a user logs in before doing any action here
-  before_filter :authorize, :except => [:filter, :filterbycust, :filterbydate, :filterbytype, :list, :index]
-  before_filter :manager, :only => [:filter, :filterbycust, :filterbydate, :filterbytype, :list, :index]
+  before_filter :authorize, :except => [:filter, :filterbycust, :filterbydate, :filterbytype, :list, :index, :income]
+  before_filter :manager, :only => [:filter, :filterbycust, :filterbydate, :filterbytype, :list, :index, :income]
 
   def index
     render :action => 'index'
@@ -49,6 +49,26 @@ class PurchaseController < ApplicationController
     render :action => 'list'
   end
 
+  def income
+    if request.post?
+      # Find all purchases between :begin_date, and :end_date and sum up the total income
+      # from RentablePurchases, MerchandisePurchases. Print both sums, and the total sum.
+      @begin_date = Date.new params[:begin_date]['(1i)'].to_i, params[:begin_date]['(2i)'].to_i, params[:begin_date]['(3i)'].to_i
+      @end_date = Date.new params[:end_date]['(1i)'].to_i, params[:end_date]['(2i)'].to_i, params[:end_date]['(3i)'].to_i
+      merchandises = MerchandisePurchase.find(:all, :conditions => ['date >= ? AND date <= ?', @begin_date, @end_date])
+      rentables = RentablePurchase.find(:all, :conditions => ['date >= ? AND date <= ?', @begin_date, @end_date])
+
+      @merch_count = merchandises.length
+      @rent_count = rentables.length
+      @merch_sum = merchandises.sum(&:price)
+      @rent_sum = rentables.sum(&:price)
+      @total = @merch_sum + @rent_sum
+      render :action => 'income_results'
+    else
+      render :action => 'income'
+    end
+  end
+
   def begin
     # enter a customer id here
     render :action => 'begin'