Class: KitConsolidationWorker
- Inherits:
-
Object
- Object
- KitConsolidationWorker
- Includes:
- Sidekiq::Job
- Defined in:
- app/workers/kit_consolidation_worker.rb
Overview
Sidekiq worker: kit consolidation.
Re-rolls kit-level qty / COGS for one or more kit items in a store. Accepts a
single item id (legacy callers such as KitConsolidationAllWorker) or an array
of ids — the coalesced batch that ItemLedgerEntry#consolidate_kits enqueues so
a kit-RMA receive fans out to one job instead of hundreds. Each kit is
consolidated independently: a per-kit rescue keeps one bad/stale kit from
failing the whole batch, and non-kit / missing ids are skipped.
Instance Method Summary collapse
Instance Method Details
#perform(item_ids, store_id = nil) ⇒ void
This method returns an undefined value.
19 20 21 22 23 24 25 26 27 28 |
# File 'app/workers/kit_consolidation_worker.rb', line 19 def perform(item_ids, store_id = nil) Array(item_ids).each do |item_id| item = Item.find_by(id: item_id) next unless item&.is_kit? Item::KitConsolidator.new(item, store_id: store_id).populate_components.consolidate_qty.consolidate_unit_cogs.commit rescue StandardError => e Rails.logger.error("KitConsolidationWorker: kit #{item_id} (store #{store_id || 'all'}) failed: #{e.class}: #{e.}") end end |