Class: Spree::Admin::InventoryMonitoringsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/spree/admin/inventory_monitorings_controller.rb

Instance Method Summary collapse

Instance Method Details

#indexObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/spree/admin/inventory_monitorings_controller.rb', line 4

def index
  authorize! :manage, SpreeCmCommissioner::InventoryItem

  @time_range = params[:time_range] || 7
  @filter_type = params[:filter_type] || 'all'
  @vendor_id = params[:vendor_id]

  finder = SpreeCmCommissioner::InventoryItems::RecentlyChangedFinder.new(
    time_range: @time_range.to_i.days.ago,
    limit: 1000,
    vendor_id: @vendor_id,
    filter_type: @filter_type
  )

  @inventory_items = finder.execute
  @total_count = @inventory_items.size
  @out_of_sync_count = @inventory_items.count { |item| item[:out_of_sync] }
end

#resetObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/spree/admin/inventory_monitorings_controller.rb', line 23

def reset
  authorize! :manage, SpreeCmCommissioner::InventoryItem

  inventory_item = SpreeCmCommissioner::InventoryItem.find(params[:id])
  result = SpreeCmCommissioner::InventoryItems::Reset.call(inventory_item: inventory_item)

  if result.success?
    flash[:success] = "Successfully reset inventory for #{inventory_item.variant.product.name}"
  else
    flash[:error] = "Failed to reset inventory: #{result.message}"
  end

  redirect_to action: :index, time_range: params[:time_range], filter_type: params[:filter_type]
end