Class: Spree::StockLocation
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Spree::StockLocation
- Defined in:
- app/models/spree/stock_location.rb
Instance Method Summary collapse
- #backorderable?(variant) ⇒ Boolean
- #count_on_hand(variant) ⇒ Object
- #fill_status(variant, quantity) ⇒ Object
- #move(variant, quantity, originator = nil) ⇒ Object
- #restock(variant, quantity, originator = nil) ⇒ Object
- #stock_item(variant) ⇒ Object
- #unstock(variant, quantity, originator = nil) ⇒ Object
Instance Method Details
#backorderable?(variant) ⇒ Boolean
26 27 28 |
# File 'app/models/spree/stock_location.rb', line 26 def backorderable?(variant) stock_item(variant).try(:backorderable?) end |
#count_on_hand(variant) ⇒ Object
22 23 24 |
# File 'app/models/spree/stock_location.rb', line 22 def count_on_hand(variant) stock_item(variant).try(:count_on_hand) end |
#fill_status(variant, quantity) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/models/spree/stock_location.rb', line 42 def fill_status(variant, quantity) if item = stock_item(variant) if item.count_on_hand >= quantity on_hand = quantity backordered = 0 else on_hand = item.count_on_hand on_hand = 0 if on_hand < 0 backordered = item.backorderable? ? (quantity - on_hand) : 0 end [on_hand, backordered] else [0, 0] end end |
#move(variant, quantity, originator = nil) ⇒ Object
38 39 40 |
# File 'app/models/spree/stock_location.rb', line 38 def move(variant, quantity, originator = nil) stock_item(variant).stock_movements.create!(quantity: quantity, originator: originator) end |
#restock(variant, quantity, originator = nil) ⇒ Object
30 31 32 |
# File 'app/models/spree/stock_location.rb', line 30 def restock(variant, quantity, originator = nil) move(variant, quantity, originator) end |
#stock_item(variant) ⇒ Object
18 19 20 |
# File 'app/models/spree/stock_location.rb', line 18 def stock_item(variant) stock_items.where(variant_id: variant).order(:id).first end |
#unstock(variant, quantity, originator = nil) ⇒ Object
34 35 36 |
# File 'app/models/spree/stock_location.rb', line 34 def unstock(variant, quantity, originator = nil) move(variant, -quantity, originator) end |