class Stockman::Logic::Variant
Attributes
id[R]
Public Class Methods
new(id)
click to toggle source
# File lib/stockman/logic/variant.rb, line 9 def initialize(id) @id = id.to_i end
Public Instance Methods
allocated_amount(warehouse_id)
click to toggle source
# File lib/stockman/logic/variant.rb, line 37 def allocated_amount(warehouse_id) obtain_stock_level_amount(:allocated, warehouse_id) end
available_amount(warehouse_id)
click to toggle source
# File lib/stockman/logic/variant.rb, line 41 def available_amount(warehouse_id) obtain_stock_level_amount(:available, warehouse_id) end
physical_amount(warehouse_id)
click to toggle source
# File lib/stockman/logic/variant.rb, line 33 def physical_amount(warehouse_id) obtain_stock_level_amount(:physical, warehouse_id) end
stock_levels()
click to toggle source
# File lib/stockman/logic/variant.rb, line 25 def stock_levels @stock_levels ||= StockLevelsCollection.new(id) end
summary()
click to toggle source
# File lib/stockman/logic/variant.rb, line 45 def summary @summary ||= Summary.from_object(self) end
total_allocated_amount()
click to toggle source
# File lib/stockman/logic/variant.rb, line 17 def total_allocated_amount stock_levels.sum(&:allocated_amount) end
total_available_amount()
click to toggle source
# File lib/stockman/logic/variant.rb, line 21 def total_available_amount total_physical_amount - total_allocated_amount end
total_physical_amount()
click to toggle source
# File lib/stockman/logic/variant.rb, line 13 def total_physical_amount stock_levels.sum(&:physical_amount) end
warehouse_ids()
click to toggle source
# File lib/stockman/logic/variant.rb, line 29 def warehouse_ids stock_levels.map(&:warehouse_id) end
Private Instance Methods
obtain_stock_level_amount(type, warehouse_id)
click to toggle source
# File lib/stockman/logic/variant.rb, line 51 def obtain_stock_level_amount(type, warehouse_id) return 0 unless warehouse_ids.include?(warehouse_id.to_i) stock_levels.find_by_warehouse(warehouse_id).send(:"#{type}_amount") end