Class: Spree::LineItem

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

Instance Method Summary collapse

Instance Method Details

#adjust_quantityObject



43
44
45
# File 'app/models/spree/line_item.rb', line 43

def adjust_quantity
  self.quantity = 0 if quantity.nil? || quantity < 0
end

#amountObject Also known as: total



38
39
40
# File 'app/models/spree/line_item.rb', line 38

def amount
  price * quantity
end

#copy_priceObject



26
27
28
# File 'app/models/spree/line_item.rb', line 26

def copy_price
  self.price = variant.price if variant && price.nil?
end

#decrement_quantityObject



34
35
36
# File 'app/models/spree/line_item.rb', line 34

def decrement_quantity
  self.quantity -= 1
end

#increment_quantityObject



30
31
32
# File 'app/models/spree/line_item.rb', line 30

def increment_quantity
  self.quantity += 1
end

#insufficient_stock?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'app/models/spree/line_item.rb', line 56

def insufficient_stock?
  !sufficient_stock?
end

#sufficient_stock?Boolean

Returns:

  • (Boolean)


47
48
49
50
51
52
53
54
# File 'app/models/spree/line_item.rb', line 47

def sufficient_stock?
  return true if Spree::Config[:allow_backorders]
  if new_record? || !order.completed?
    variant.on_hand >= quantity
  else
    variant.on_hand >= (quantity - self.changed_attributes['quantity'].to_i)
  end
end