Class: SolidusPromotions::Benefits::CreateDiscountedItem

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

Instance Attribute Summary

Attributes inherited from SolidusPromotions::Benefit

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

Instance Method Summary collapse

Methods inherited from SolidusPromotions::Benefit

#adjustment_label, applicable_conditions, #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

Instance Method Details

#levelObject



20
21
22
# File 'app/models/solidus_promotions/benefits/create_discounted_item.rb', line 20

def level
  :order
end

#perform(order) ⇒ Object



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

def perform(order)
  line_item = find_item(order) || build_item(order)
  set_quantity(line_item, determine_item_quantity(order))
  discount_line_item(line_item)
end

#remove_from(order) ⇒ Object



16
17
18
# File 'app/models/solidus_promotions/benefits/create_discounted_item.rb', line 16

def remove_from(order)
  find_item(order)&.mark_for_destruction
end