Class: Stockman::Logic::Summary
- Inherits:
-
Object
- Object
- Stockman::Logic::Summary
- Defined in:
- lib/stockman/logic/summary.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(data) ⇒ Summary
constructor
A new instance of Summary.
- #to_hash ⇒ Object
- #to_json(_ = nil) ⇒ Object
- #total_allocated_amount ⇒ Object
- #total_available_amount ⇒ Object
- #total_physical_amount ⇒ Object
- #warehouses ⇒ Object
Constructor Details
#initialize(data) ⇒ Summary
Returns a new instance of Summary.
32 33 34 |
# File 'lib/stockman/logic/summary.rb', line 32 def initialize(data) @data = data end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
4 5 6 |
# File 'lib/stockman/logic/summary.rb', line 4 def data @data end |
Class Method Details
.from_hash(hash) ⇒ Object
6 7 8 9 10 |
# File 'lib/stockman/logic/summary.rb', line 6 def self.from_hash(hash) data = transform_values(hash, &Utils.method(:deserialize_amount)) new(data) end |
.from_object(object) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/stockman/logic/summary.rb', line 12 def self.from_object(object) data = { physical_amount: object.total_physical_amount, allocated_amount: object.total_allocated_amount, available_amount: object.total_available_amount, warehouses: object.stock_levels.inject({}) do |memo, stock_level| memo.merge( stock_level.warehouse_id => { physical_amount: stock_level.physical_amount, allocated_amount: stock_level.allocated_amount, available_amount: stock_level.available_amount } ) end } new(data) end |
Instance Method Details
#to_hash ⇒ Object
52 53 54 |
# File 'lib/stockman/logic/summary.rb', line 52 def to_hash self.class.transform_values(data, &Utils.method(:serialize_amount)) end |
#to_json(_ = nil) ⇒ Object
56 57 58 |
# File 'lib/stockman/logic/summary.rb', line 56 def to_json(_ = nil) JSON.generate(to_hash) end |
#total_allocated_amount ⇒ Object
40 41 42 |
# File 'lib/stockman/logic/summary.rb', line 40 def total_allocated_amount data[:allocated_amount] end |
#total_available_amount ⇒ Object
44 45 46 |
# File 'lib/stockman/logic/summary.rb', line 44 def total_available_amount data[:available_amount] end |
#total_physical_amount ⇒ Object
36 37 38 |
# File 'lib/stockman/logic/summary.rb', line 36 def total_physical_amount data[:physical_amount] end |
#warehouses ⇒ Object
48 49 50 |
# File 'lib/stockman/logic/summary.rb', line 48 def warehouses data[:warehouses] end |