Class: SolidusPromotions::Benefits::AdjustLineItem

Inherits:
SolidusPromotions::Benefit show all
Defined in:
app/models/solidus_promotions/benefits/adjust_line_item.rb

Direct Known Subclasses

AdjustLineItemQuantityGroups

Instance Attribute Summary

Attributes inherited from SolidusPromotions::Benefit

#adjustments, #conditions, #original_promotion_action, #promotion, #shipping_rate_discounts

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SolidusPromotions::Benefit

#adjustment_label, #applicable_line_items, #available_calculators, #available_conditions, #can_discount?, #compute_amount, #discount, #eligible_by_applicable_conditions?, inherited, of_type, #possible_conditions, #preload_relations, #to_partial_path

Class Method Details

.applicable_conditionsObject



6
7
8
# File 'app/models/solidus_promotions/benefits/adjust_line_item.rb', line 6

def self.applicable_conditions
  SolidusPromotions::Condition.applicable_to([Spree::Order, Spree::LineItem])
end

Instance Method Details

#discount_line_item(line_item) ⇒ Object



10
11
12
13
14
15
# File 'app/models/solidus_promotions/benefits/adjust_line_item.rb', line 10

def discount_line_item(line_item, ...)
  adjustment = find_adjustment(line_item) || build_adjustment(line_item)
  adjustment.amount = compute_amount(line_item, ...)
  adjustment.label = adjustment_label(line_item)
  adjustment
end

#levelObject



17
18
19
# File 'app/models/solidus_promotions/benefits/adjust_line_item.rb', line 17

def level
  :line_item
end