Class: Spina::Shop::Admin::OrdersController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/spina/shop/admin/orders_controller.rb

Instance Method Summary collapse

Instance Method Details

#cancelObject



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

#createObject



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
    add_breadcrumb t('spina.shop.orders.new')
    render :new
  end
end

#deliveredObject



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

#editObject



74
75
76
77
78
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 74

def edit
  @order = Order.find(params[:id])
  add_breadcrumb @order.number, spina.shop_admin_order_path(@order)
  add_breadcrumb t('spina.edit')
end

#failedObject



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

#indexObject



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

#newObject



6
7
8
9
# File 'app/controllers/spina/shop/admin/orders_controller.rb', line 6

def new
  @order = Order.new
  add_breadcrumb t('spina.shop.orders.new')
end

#order_picked_upObject



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

#payObject



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

#receiveObject



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

#showObject



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])
  add_breadcrumb @order.number || 'Concept'
end

#to_processObject



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

#transitionObject



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

#updateObject



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