Class: Spree::Admin::LineItemsController
Instance Method Summary
collapse
belongs_to, #edit, #index, #new
#apply_table_sort, #custom_sort_active?, #process_table_query_state, #table, #table_key, #table_registered?
#add_breadcrumb_icon_instance_var
Instance Method Details
#create ⇒ Object
8
9
10
11
12
13
14
15
16
17
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/line_items_controller.rb', line 8
def create
@variant = variant_scope.find(params.dig(:line_item, :variant_id))
@order.transaction do
line_item_result = create_service.call(order: @order, line_item_attributes: permitted_resource_params)
if line_item_result.success?
unless @order.completed?
max_state = if @order.ship_address.present?
@order.ensure_updated_shipments
'payment'
else
'address'
end
result = Spree.checkout_advance_service.call(order: @order, state: max_state)
unless result.success?
flash[:error] = result.error.value.full_messages.to_sentence
raise ActiveRecord::Rollback
end
end
flash[:success] = Spree.t(:successfully_created, resource: Spree.t(:line_item))
else
flash[:error] = line_item_result.value.errors.full_messages.to_sentence
raise ActiveRecord::Rollback
end
end
redirect_to spree.edit_admin_order_path(@order, line_item_updated: true)
rescue ActiveRecord::Rollback
redirect_to spree.edit_admin_order_path(@order)
end
|
#destroy ⇒ Object
76
77
78
79
80
81
|
# File 'app/controllers/spree/admin/line_items_controller.rb', line 76
def destroy
result = destroy_service.call(line_item: @line_item)
flash[:success] = Spree.t(:successfully_removed, resource: Spree.t(:line_item)) if result.success?
redirect_to spree.edit_admin_order_path(@order, line_item_updated: true)
end
|
#reset_digital_links_limit ⇒ Object
83
84
85
86
87
88
|
# File 'app/controllers/spree/admin/line_items_controller.rb', line 83
def reset_digital_links_limit
@line_item.digital_links.update_all(access_counter: 0, created_at: Time.current, updated_at: Time.current)
flash[:success] = Spree.t('admin.successfully_reset_digital_links_limit')
redirect_to spree.edit_admin_order_path(@order)
end
|
#update ⇒ Object
43
44
45
46
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
|
# File 'app/controllers/spree/admin/line_items_controller.rb', line 43
def update
@order.transaction do
line_item_result = update_service.call(line_item: @line_item, line_item_attributes: permitted_resource_params)
if line_item_result.success?
unless @order.completed?
max_state = if @order.ship_address.present?
@order.ensure_updated_shipments
'payment'
else
'address'
end
result = Spree.checkout_advance_service.call(order: @order, state: max_state)
unless result.success?
flash[:error] = result.error.value.full_messages.to_sentence
raise ActiveRecord::Rollback
end
end
flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:line_item))
else
flash[:error] = line_item_result.value.errors.full_messages.to_sentence
raise ActiveRecord::Rollback
end
end
redirect_to spree.edit_admin_order_path(@order, line_item_updated: true)
rescue ActiveRecord::Rollback
redirect_to spree.edit_admin_order_path(@order)
end
|