Class: Unidom::Inventory::InventoryItemVariance
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Unidom::Inventory::InventoryItemVariance
- Includes:
- Common::Concerns::ModelExtension
- Defined in:
- app/models/unidom/inventory/inventory_item_variance.rb
Overview
Inventory Item Variance 是库存项变化。#inventory_item 是被调整的库存项。#reason 是调整的原因。#quantity 是调整数量,正数表示库存增加,负数表示库存减少。
Class Method Summary collapse
Class Method Details
.adjust!(inventory_item, quantity: nil, due_to: nil, at: Time.now, description: nil, instruction: nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/models/unidom/inventory/inventory_item_variance.rb', line 26 def self.adjust!(inventory_item, quantity: nil, due_to: nil, at: Time.now, description: nil, instruction: nil) if inventory_item.respond_to? :quantity inventory_item.increment! :quantity, quantity else if quantity.nil? quantity = -1 inventory_item.soft_destroy else raise ArgumentError.new('The quantity should be -1 when Inventory Item Variance adjusts a Serialized Inventory Item.') end end create! inventory_item: inventory_item, reason: due_to, quantity: quantity, description: description, instruction: instruction, opened_at: at end |