Class: SpreeCmCommissioner::InventoryItems::BulkAdjustQuantities

Inherits:
Object
  • Object
show all
Extended by:
ServiceModuleThrowable
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/inventory_items/bulk_adjust_quantities.rb

Instance Method Summary collapse

Methods included from ServiceModuleThrowable

call!

Instance Method Details

#call(inventory_id_and_quantities:, caller_source: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/services/spree_cm_commissioner/inventory_items/bulk_adjust_quantities.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
    inventory_items(inventory_id_and_quantities).each do |inventory_item|
      quantity = inventory_id_and_quantities.select { |item| item[:inventory_id] == inventory_item.id }
                                            .sum { |item| item[:quantity] }
      adjust_quantity_available(inventory_item, quantity, caller_source)
    end
  end

  success(nil)
end