Class: Spree::Admin::ImportNewOrdersController

Inherits:
BaseImportOrdersController show all
Defined in:
app/controllers/spree/admin/import_new_orders_controller.rb

Instance Method Summary collapse

Methods inherited from BaseImportOrdersController

#build_import_order, #create, #download, #model_class, #object_name, #permitted_resource_params, #show

Instance Method Details

#cancelObject

POST: /admin/orders/import_new_orders/:id/cancel



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/spree/admin/import_new_orders_controller.rb', line 28

def cancel
  import = model_class.find(params[:id])
  show_url = spree.admin_import_new_order_url(import.id)

  unless import.cancellable?
    flash[:error] = 'These orders cannot be canceled.' # rubocop:disable Rails/I18nLocaleTexts
    redirect_to show_url and return
  end

  if params[:confirm_name].to_s.strip != import.name.to_s.strip
    flash[:error] = 'Import name did not match. Cancellation aborted.' # rubocop:disable Rails/I18nLocaleTexts
    redirect_to show_url and return
  end

  SpreeCmCommissioner::CancelImportOrderJob.perform_later(
    import_order_id: import.id,
    canceled_by_user_id: spree_current_user.id,
    cancellation_reason: params[:cancellation_reason].to_s.strip.presence
  )

  flash[:success] = "Canceling orders from \"#{import.name}\". This runs in the background."
  redirect_to show_url
end

#collectionObject

override



5
6
7
8
9
10
# File 'app/controllers/spree/admin/import_new_orders_controller.rb', line 5

def collection
  @collection ||= model_class.new_order
                             .order(created_at: :desc)
                             .page(params[:page])
                             .per(params[:per_page])
end

#collection_urlObject

override



13
14
15
# File 'app/controllers/spree/admin/import_new_orders_controller.rb', line 13

def collection_url
  admin_import_new_orders_url
end

#download_new_order_csv_templateObject

GET: /admin/orders/download_new_order_csv_template



18
19
20
21
22
23
24
25
# File 'app/controllers/spree/admin/import_new_orders_controller.rb', line 18

def download_new_order_csv_template
  respond_with do |format|
    format.csv do
      context = SpreeCmCommissioner::ImportCsvTemplateDownloader.call(import_type: 'new_order')
      send_file context.filepath, filename: context.filename, type: 'text/csv'
    end
  end
end