Class: Spina::Shop::Admin::OrdersController
- Inherits:
-
AdminController
- Object
- Admin::AdminController
- AdminController
- Spina::Shop::Admin::OrdersController
- Defined in:
- app/controllers/spina/shop/admin/orders_controller.rb
Instance Method Summary collapse
- #cancel ⇒ Object
- #create ⇒ Object
- #delivered ⇒ Object
- #edit ⇒ Object
- #failed ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #order_picked_up ⇒ Object
- #pay ⇒ Object
- #receive ⇒ Object
- #show ⇒ Object
- #to_process ⇒ Object
- #transition ⇒ Object
- #update ⇒ Object
Instance Method Details
#cancel ⇒ Object
22 23 24 25 26 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 22 def cancel @order = Order.find(params[:id]) @order.transition_to!(:cancelled, user: current_spina_user.name, ip_address: request.remote_ip) redirect_to spina.shop_admin_order_path(@order) end |
#create ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 11 def create @order = Order.new(order_params) @order.validate_details = true if @order.save redirect_to spina.shop_admin_order_path(@order) else t('spina.shop.orders.new') render :new end end |
#delivered ⇒ Object
46 47 48 49 50 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 46 def delivered @order = Order.find(params[:id]) @order.transition_to!(:delivered, user: current_spina_user.name, ip_address: request.remote_ip) redirect_to spina.shop_admin_order_path(@order) end |
#edit ⇒ Object
74 75 76 77 78 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 74 def edit @order = Order.find(params[:id]) @order.number, spina.shop_admin_order_path(@order) t('spina.edit') end |
#failed ⇒ Object
63 64 65 66 67 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 63 def failed @q = Order.ransack(params[:q]) @orders = @q.result.in_state(:failed).sorted.includes(:order_items, :order_transitions).page(params[:page]).per(15) render :index end |
#index ⇒ Object
52 53 54 55 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 52 def index @q = Order.ransack(params[:q]) @orders = @q.result.confirmed.sorted.includes(:order_items, :order_transitions).page(params[:page]).per(15) end |
#new ⇒ Object
6 7 8 9 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 6 def new @order = Order.new t('spina.shop.orders.new') end |
#order_picked_up ⇒ Object
40 41 42 43 44 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 40 def order_picked_up @order = Order.find(params[:id]) @order.transition_to!(:picked_up, user: current_spina_user.name, ip_address: request.remote_ip) redirect_to spina.shop_admin_order_path(@order) end |
#pay ⇒ Object
34 35 36 37 38 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 34 def pay @order = Order.find(params[:id]) @order.transition_to!(:paid, user: current_spina_user.name, ip_address: request.remote_ip) redirect_to spina.shop_admin_order_path(@order) end |
#receive ⇒ Object
28 29 30 31 32 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 28 def receive @order = Order.find(params[:id]) @order.transition_to!(:received, user: current_spina_user.name, ip_address: request.remote_ip) redirect_to spina.shop_admin_order_path(@order) end |
#show ⇒ Object
69 70 71 72 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 69 def show @order = Order.includes(order_items: :orderable).find(params[:id]) @order.number || 'Concept' end |
#to_process ⇒ Object
57 58 59 60 61 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 57 def to_process @q = Order.ransack(params[:q]) @orders = @q.result.in_state(:paid, :preparing).sorted.includes(:order_items, :order_transitions).page(params[:page]).per(15) render :index end |
#transition ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 89 def transition @orders = Order.where(id: params[:order_ids]) if params[:transition_to] == "preparing_and_shipped" @orders.each do |order| order.transition_to("preparing", user: current_spina_user.name, ip_address: request.remote_ip) order.transition_to("shipped", user: current_spina_user.name, ip_address: request.remote_ip) end else @orders.each do |order| order.transition_to(params[:transition_to], user: current_spina_user.name, ip_address: request.remote_ip) end end if params[:transition_to] == "preparing" flash[:success] = t('spina.shop.orders.start_preparing_success_html') elsif params[:transition_to] == "shipping" flash[:success] = t('spina.shop.orders.ship_order_success_html') else flash[:success] = t('spina.shop.orders.start_preparing_and_ship_success_html') end redirect_to :back end |
#update ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 80 def update @order = Order.find(params[:id]) if @order.update_attributes!(order_params) redirect_to spina.shop_admin_order_path(@order) else render :edit end end |