Class: Spree::StockItem

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree/stock_item.rb

Instance Method Summary collapse

Methods inherited from Base

belongs_to_required_by_default, page, spree_base_scopes

Methods included from Preferences::Preferable

#clear_preferences, #default_preferences, #defined_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_type, #set_preference

Instance Method Details

#adjust_count_on_hand(value) ⇒ Object


37
38
39
40
41
# File 'app/models/spree/stock_item.rb', line 37

def adjust_count_on_hand(value)
  with_lock do
    set_count_on_hand(count_on_hand + value)
  end
end

#available?Boolean

Tells whether it's available to be included in a shipment

Returns:

  • (Boolean)

55
56
57
# File 'app/models/spree/stock_item.rb', line 55

def available?
  in_stock? || backorderable?
end

#backordered_inventory_unitsObject


33
34
35
# File 'app/models/spree/stock_item.rb', line 33

def backordered_inventory_units
  Spree::InventoryUnit.backordered_for_stock_item(self)
end

#in_stock?Boolean

Returns:

  • (Boolean)

50
51
52
# File 'app/models/spree/stock_item.rb', line 50

def in_stock?
  count_on_hand > 0
end

#reduce_count_on_hand_to_zeroObject


63
64
65
# File 'app/models/spree/stock_item.rb', line 63

def reduce_count_on_hand_to_zero
  set_count_on_hand(0) if count_on_hand > 0
end

#set_count_on_hand(value) ⇒ Object


43
44
45
46
47
48
# File 'app/models/spree/stock_item.rb', line 43

def set_count_on_hand(value)
  self.count_on_hand = value
  process_backorders(count_on_hand - count_on_hand_was)

  save!
end

#variantObject


59
60
61
# File 'app/models/spree/stock_item.rb', line 59

def variant
  Spree::Variant.unscoped { super }
end