7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'app/services/spree_cm_commissioner/inventory_items/bulk_adjust_quantities_on_hold.rb', line 7
def call(inventory_id_and_quantities:, caller_source: nil)
CmAppLogger.log(
label: "#{self.class.name}#call started",
data: {
caller_source: caller_source,
inventory_id_and_quantities: inventory_id_and_quantities
}
)
ActiveRecord::Base.transaction do
items_by_id = inventory_items(inventory_id_and_quantities).index_by(&:id)
grouped_deltas(inventory_id_and_quantities).each do |(inventory_id, locked), quantity|
inventory_item = items_by_id[inventory_id]
next if inventory_item.nil?
adjust_quantity_on_hold(inventory_item, quantity, caller_source, locked: locked)
end
end
success(nil)
end
|