Class: Spree::Admin::OrdersController
- Inherits:
-
BaseController
- Object
- ApplicationController
- BaseController
- Spree::Admin::OrdersController
- Includes:
- OrderConcern
- Defined in:
- app/controllers/spree/admin/orders_controller.rb
Instance Method Summary collapse
- #approve ⇒ Object
- #cancel ⇒ Object
- #cart ⇒ Object
- #close_adjustments ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #open_adjustments ⇒ Object
- #resend ⇒ Object
- #reset_digitals ⇒ Object
- #resume ⇒ Object
- #set_channel ⇒ Object
- #update ⇒ Object
Instance Method Details
#approve ⇒ Object
109 110 111 112 113 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 109 def approve @order.approved_by(try_spree_current_user) flash[:success] = Spree.t(:order_approved) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#cancel ⇒ Object
97 98 99 100 101 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 97 def cancel @order.canceled_by(try_spree_current_user) flash[:success] = Spree.t(:order_canceled) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#cart ⇒ Object
75 76 77 78 79 80 81 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 75 def cart @order.refresh_shipment_rates(ShippingMethod::DISPLAY_ON_BACK_END) unless @order.completed? if @order.shipments.shipped.exists? redirect_to spree.edit_admin_order_url(@order) end end |
#close_adjustments ⇒ Object
138 139 140 141 142 143 144 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 138 def close_adjustments adjustments = @order.all_adjustments.not_finalized adjustments.update_all(state: 'closed') flash[:success] = Spree.t(:all_adjustments_closed) redirect_back fallback_location: spree.admin_order_adjustments_url(@order) end |
#edit ⇒ Object
69 70 71 72 73 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 69 def edit can_not_transition_without_customer_info @order.refresh_shipment_rates(ShippingMethod::DISPLAY_ON_BACK_END) unless @order.completed? end |
#index ⇒ Object
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 14 def index params[:q] ||= {} params[:q][:completed_at_not_null] ||= '1' if Spree::Backend::Config[:show_only_complete_orders_by_default] @show_only_completed = params[:q][:completed_at_not_null] == '1' params[:q][:s] ||= @show_only_completed ? 'completed_at desc' : 'created_at desc' params[:q][:completed_at_not_null] = '' unless @show_only_completed # As date params are deleted if @show_only_completed, store # the original date so we can restore them into the params # after the search created_at_gt = params[:q][:created_at_gt] created_at_lt = params[:q][:created_at_lt] params[:q].delete(:inventory_units_shipment_id_null) if params[:q][:inventory_units_shipment_id_null] == '0' if params[:q][:created_at_gt].present? params[:q][:created_at_gt] = begin Time.zone.parse(params[:q][:created_at_gt]).beginning_of_day rescue StandardError '' end end if params[:q][:created_at_lt].present? params[:q][:created_at_lt] = begin Time.zone.parse(params[:q][:created_at_lt]).end_of_day rescue StandardError '' end end if @show_only_completed params[:q][:completed_at_gt] = params[:q].delete(:created_at_gt) params[:q][:completed_at_lt] = params[:q].delete(:created_at_lt) end @search = scope.preload(:user).accessible_by(current_ability, :index).ransack(params[:q]) # lazy loading other models here (via includes) may result in an invalid query # e.g. SELECT DISTINCT DISTINCT "spree_orders".id, "spree_orders"."created_at" AS alias_0 FROM "spree_orders" # see https://github.com/spree/spree/pull/3919 @orders = @search.result(distinct: true). page(params[:page]). per(params[:per_page] || Spree::Backend::Config[:admin_orders_per_page]) # Restore dates params[:q][:created_at_gt] = created_at_gt params[:q][:created_at_lt] = created_at_lt end |
#new ⇒ Object
64 65 66 67 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 64 def new @order = scope.create(order_params) redirect_to cart_admin_order_url(@order) end |
#open_adjustments ⇒ Object
130 131 132 133 134 135 136 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 130 def open_adjustments adjustments = @order.all_adjustments.finalized adjustments.update_all(state: 'open') flash[:success] = Spree.t(:all_adjustments_opened) redirect_back fallback_location: spree.admin_order_adjustments_url(@order) end |
#resend ⇒ Object
115 116 117 118 119 120 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 115 def resend @order.deliver_order_confirmation_email flash[:success] = Spree.t(:order_email_resent) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#reset_digitals ⇒ Object
122 123 124 125 126 127 128 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 122 def reset_digitals load_order @order.digital_links.each(&:reset!) flash[:notice] = Spree.t('admin.digitals.downloads_reset') redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#resume ⇒ Object
103 104 105 106 107 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 103 def resume @order.resume! flash[:success] = Spree.t(:order_resumed) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#set_channel ⇒ Object
146 147 148 149 150 151 152 153 154 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 146 def set_channel if @order.update(order_params) flash[:success] = (@order, :successfully_updated) else flash[:error] = @order.errors..join(', ') end redirect_to channel_admin_order_url(@order) end |
#update ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 83 def update if @order.update(params[:order]) && @order.line_items.present? @order.update_with_updater! unless @order.completed? # Jump to next step if order is not completed. redirect_to spree.admin_order_customer_path(@order) and return end elsif @order.line_items.empty? @order.errors.add(:line_items, Spree.t('errors.messages.blank')) end render action: :edit end |