Class: OrdersController

Inherits:
AdminController show all
Defined in:
app/controllers/orders_controller.rb

Instance Method Summary collapse

Methods inherited from AdminController

#clean_search, #require_admin

Methods inherited from OfficeController

#error

Methods included from OfficeHelper

#best_euros, #current_basket, #current_basket_or_nil, #current_clerk, #date, #euros, #has_ssl?, #markdown, #new_basket, #paginate, #shipping_method

Instance Method Details

#cancelObject

after many user mistakes we now let the user undo those, cancel to go back to edit



50
51
52
53
# File 'app/controllers/orders_controller.rb', line 50

def cancel
  @order.cancel!
  return redirect_to order_path(@order), :notice => t(:update_success)
end

#destroyObject



76
77
78
79
80
81
82
83
84
# File 'app/controllers/orders_controller.rb', line 76

def destroy
  if @order.basket.locked?
    flash.notice = t(:basket_locked)
  else
    @order.destroy
    flash.notice = t(:order) + " " + t(:deleted)
  end
  redirect_to orders_url
end

#editObject



60
61
# File 'app/controllers/orders_controller.rb', line 60

def edit
end

#indexObject



7
8
9
10
11
# File 'app/controllers/orders_controller.rb', line 7

def index
  @q = Order.search(params[:q])
  @order_scope = @q.result( :distinct => true).includes(:basket => :items )
  @orders = @order_scope.paginate(:page => params[:page],:per_page => 20)
end

#mailObject



29
30
31
32
33
34
35
# File 'app/controllers/orders_controller.rb', line 29

def mail
  action = params[:act]
  mail = eval("OrderMailer.#{action}(@order)")
  mail.deliver
  flash.notice = "Sent #{action}"
  redirect_to order_path(@order)
end

#newObject



17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/orders_controller.rb', line 17

def new
  basket = Basket.create!
  @order = Order.new :email => current_clerk.email , :basket => basket , :ordered_on => Date.today
  if( copy = params[:address])
    order = Order.find copy
    @order.email = order.email
    @order.address = order.address
  end
  @order.save!
  redirect_to edit_basket_path basket
end

#payObject



36
37
38
39
40
# File 'app/controllers/orders_controller.rb', line 36

def pay
  @order.pay_now
  @order.save
  return redirect_to orders_path , :notice => t(:update_success) + ":#{@order.number}"
end

#shipObject



42
43
44
45
46
47
# File 'app/controllers/orders_controller.rb', line 42

def ship
  @order.ship_now
  @order.basket.deduct!
  @order.save!
  return redirect_to order_path(@order), :notice => t(:update_success)
end

#shipmentObject



55
56
57
58
# File 'app/controllers/orders_controller.rb', line 55

def shipment
  return if request.get?
  return redirect_to order_path(@order), :notice => t(:update_success) if @order.update_attributes(params_for_order)
end

#showObject



13
14
15
# File 'app/controllers/orders_controller.rb', line 13

def show
  gon.order_id = @order.id
end

#updateObject



63
64
65
66
67
68
69
70
71
72
73
74
# File 'app/controllers/orders_controller.rb', line 63

def update
  @order.build_basket unless @order.basket
  respond_to do |format|
    if @order.update_attributes(params_for_order)
      format.html { redirect_to(@order, :notice => t(:update_success, :model => :order)) }
      format.json { respond_with_bip(@order) }
    else
      format.html { render :action => :edit }
      format.json { respond_with_bip(@order) }
    end
  end
end