Class: Spree::Admin::OrdersController
- Inherits:
-
BaseController
- Object
- BaseController
- BaseController
- Spree::Admin::OrdersController
- 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
- #resume ⇒ Object
- #set_store ⇒ Object
- #store ⇒ Object
- #update ⇒ Object
Instance Method Details
#approve ⇒ Object
108 109 110 111 112 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 108 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
96 97 98 99 100 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 96 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
70 71 72 73 74 75 76 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 70 def cart @order.refresh_shipment_rates(ShippingMethod::DISPLAY_ON_BACK_END) unless @order.completed? if @order.shipments.shipped.exists? redirect_to edit_admin_order_url(@order) end end |
#close_adjustments ⇒ Object
129 130 131 132 133 134 135 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 129 def close_adjustments adjustments = @order.all_adjustments.not_finalized adjustments.update_all(state: 'closed') flash[:success] = Spree.t(:all_adjustments_closed) respond_with(@order) { |format| format.html { redirect_back fallback_location: spree.admin_order_adjustments_url(@order) } } end |
#edit ⇒ Object
64 65 66 67 68 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 64 def edit can_not_transition_without_customer_info @order.refresh_shipment_rates(ShippingMethod::DISPLAY_ON_BACK_END) unless @order.completed? end |
#index ⇒ Object
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 9 def index params[:q] ||= {} params[:q][:completed_at_not_null] ||= '1' if Spree::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 = Spree::Order.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::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
59 60 61 62 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 59 def new @order = Spree::Order.create(order_params) redirect_to cart_admin_order_url(@order) end |
#open_adjustments ⇒ Object
121 122 123 124 125 126 127 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 121 def open_adjustments adjustments = @order.all_adjustments.finalized adjustments.update_all(state: 'open') flash[:success] = Spree.t(:all_adjustments_opened) respond_with(@order) { |format| format.html { redirect_back fallback_location: spree.admin_order_adjustments_url(@order) } } end |
#resend ⇒ Object
114 115 116 117 118 119 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 114 def resend OrderMailer.confirm_email(@order.id, true).deliver_later flash[:success] = Spree.t(:order_email_resent) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#resume ⇒ Object
102 103 104 105 106 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 102 def resume @order.resume! flash[:success] = Spree.t(:order_resumed) redirect_back fallback_location: spree.edit_admin_order_url(@order) end |
#set_store ⇒ Object
137 138 139 140 141 142 143 144 145 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 137 def set_store if @order.update(store_id: params[:order][:store_id]) flash[:success] = (@order, :successfully_updated) else flash[:error] = @order.errors..join(', ') end redirect_to store_admin_order_url(@order) end |
#store ⇒ Object
78 79 80 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 78 def store @stores = Spree::Store.all end |
#update ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/controllers/spree/admin/orders_controller.rb', line 82 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 admin_order_customer_path(@order) and return end else @order.errors.add(:line_items, Spree.t('errors.messages.blank')) if @order.line_items.empty? end render action: :edit end |