Class: Spree::Admin::Orders::ShippingAddressController
Instance Method Summary
collapse
#add_breadcrumb_icon_instance_var
Instance Method Details
#create ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'app/controllers/spree/admin/orders/shipping_address_controller.rb', line 18
def create
@order.ship_address_attributes = address_params
@address = @order.ship_address
if @order.save
@order.shipments.update_all(address_id: @order.ship_address.id, updated_at: Time.current)
if !@order.completed? && @order.line_items.any?
@order.ensure_updated_shipments
advance_to_payment_result = Spree.checkout_advance_service.call(order: @order, state: 'payment')
unless advance_to_payment_result.success?
flash[:error] = advance_to_payment_result.error.value.full_messages.to_sentence
@order.ensure_updated_shipments
return redirect_to spree.edit_admin_order_path(@order)
end
end
flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:shipping_address))
redirect_to spree.edit_admin_order_path(@order)
else
render :create, status: :unprocessable_content
end
end
|
#edit ⇒ Object
43
44
45
|
# File 'app/controllers/spree/admin/orders/shipping_address_controller.rb', line 43
def edit
@address = @order.ship_address
end
|
#new ⇒ Object
9
10
11
12
13
14
15
16
|
# File 'app/controllers/spree/admin/orders/shipping_address_controller.rb', line 9
def new
@address = @order.build_ship_address
if @order.user.present?
@address.first_name = @order.user.first_name
@address.last_name = @order.user.last_name
@address.phone = @order.user.phone
end
end
|
#update ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'app/controllers/spree/admin/orders/shipping_address_controller.rb', line 47
def update
if params[:shipping_address_id].present?
@address = Spree::Address.accessible_by(current_ability, :manage).find_by_prefix_id!(params[:shipping_address_id])
@order.ship_address_id = @address.id
else
@order.ship_address_attributes = address_params
@address = @order.ship_address
end
if @order.save
@order.shipments.update_all(address_id: @order.ship_address.id, updated_at: Time.current)
if !@order.completed? && @order.line_items.any?
@order.ensure_updated_shipments
advance_to_payment_result = Spree.checkout_advance_service.call(order: @order, state: 'payment')
unless advance_to_payment_result.success?
flash[:error] = advance_to_payment_result.error.value.full_messages.to_sentence
@order.ensure_updated_shipments
return redirect_to spree.edit_admin_order_path(@order)
end
end
flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:shipping_address))
redirect_to spree.edit_admin_order_path(@order)
else
render :update, status: :unprocessable_content
end
end
|