Class: Stockman::Logic::Variant

Inherits:
Object
  • Object
show all
Defined in:
lib/stockman/logic/variant.rb,
lib/stockman/logic/variant/stock_level.rb,
lib/stockman/logic/variant/stock_levels_collection.rb

Defined Under Namespace

Classes: StockLevel, StockLevelsCollection

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id) ⇒ Variant

Returns a new instance of Variant.



9
10
11
# File 'lib/stockman/logic/variant.rb', line 9

def initialize(id)
  @id = id.to_i
end

Instance Attribute Details

#idObject (readonly)

Returns the value of attribute id.



7
8
9
# File 'lib/stockman/logic/variant.rb', line 7

def id
  @id
end

Instance Method Details

#allocated_amount(warehouse_id) ⇒ Object



37
38
39
# 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) ⇒ Object



41
42
43
# 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) ⇒ Object



33
34
35
# File 'lib/stockman/logic/variant.rb', line 33

def physical_amount(warehouse_id)
  obtain_stock_level_amount(:physical, warehouse_id)
end

#stock_levelsObject



25
26
27
# File 'lib/stockman/logic/variant.rb', line 25

def stock_levels
  @stock_levels ||= StockLevelsCollection.new(id)
end

#summaryObject



45
46
47
# File 'lib/stockman/logic/variant.rb', line 45

def summary
  @summary ||= Summary.from_object(self)
end

#total_allocated_amountObject



17
18
19
# File 'lib/stockman/logic/variant.rb', line 17

def total_allocated_amount
  stock_levels.sum(&:allocated_amount)
end

#total_available_amountObject



21
22
23
# File 'lib/stockman/logic/variant.rb', line 21

def total_available_amount
  total_physical_amount - total_allocated_amount
end

#total_physical_amountObject



13
14
15
# File 'lib/stockman/logic/variant.rb', line 13

def total_physical_amount
  stock_levels.sum(&:physical_amount)
end

#warehouse_idsObject



29
30
31
# File 'lib/stockman/logic/variant.rb', line 29

def warehouse_ids
  stock_levels.map(&:warehouse_id)
end