Class: SpreeCmCommissioner::Stock::LineItemAvailabilityChecker

Inherits:
Object
  • Object
show all
Defined in:
app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(line_item) ⇒ LineItemAvailabilityChecker

Returns a new instance of LineItemAvailabilityChecker.



6
7
8
# File 'app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb', line 6

def initialize(line_item)
  @line_item = line_item
end

Instance Attribute Details

#line_itemObject (readonly)

Returns the value of attribute line_item.



4
5
6
# File 'app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb', line 4

def line_item
  @line_item
end

Instance Method Details

#checkerObject



10
11
12
# File 'app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb', line 10

def checker
  @checker ||= ::SpreeCmCommissioner::Stock::AvailabilityChecker.new(line_item.variant, options)
end

#optionsObject



14
15
16
17
18
19
20
21
22
23
# File 'app/models/spree_cm_commissioner/stock/line_item_availability_checker.rb', line 14

def options
  {
    from_date: line_item.date_range.first,
    to_date: line_item.date_range.last,
    # A locked-stock line is measured against the operator's allotment, not public stock. Without
    # this it would read sold out whenever public stock ran out — which is precisely when the
    # allotment is supposed to still be sellable.
    locked: line_item.locked_stock?
  }
end