Sha256: 832797a0b456cd6e4e785910913da047dd5c7592e750cb86146f0c412427b7dc
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
require_relative "kit/content" require_relative "kit/contents_collection" require_relative "kit/stock_level" require_relative "kit/stock_levels_collection" module Stockman module Logic class Kit attr_reader :id def initialize(id) @id = id.to_i end def total_physical_amount stock_levels.sum(&:physical_amount) end def total_allocated_amount 0 end def total_available_amount stock_levels.sum(&:available_amount) end def stock_levels @stock_levels ||= StockLevelsCollection.new(id) end def warehouse_ids stock_levels.map(&:warehouse_id) end def summary @summary ||= Summary.from_object(self) end def physical_amount(warehouse_id) obtain_stock_level_amount(:physical, warehouse_id) end def allocated_amount(warehouse_id) 0 end def available_amount(warehouse_id) obtain_stock_level_amount(:available, warehouse_id) end private 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 end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stockman-logic-0.1.1 | lib/stockman/logic/kit.rb |
stockman-logic-0.1.0 | lib/stockman/logic/kit.rb |