Module: SolidusPromotions::OrderPatch
- Includes:
- selfself::ClassMethods
- Defined in:
- app/patches/models/solidus_promotions/order_patch.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #discountable_item_total ⇒ Object
-
#discountable_line_items ⇒ Object
This helper method excludes line items that are managed by an order benefit for the benefit of calculators and benefits that discount normal line items.
- #free_from_order_benefit?(line_item, _options) ⇒ Boolean
- #reset_current_discounts ⇒ Object
Class Method Details
.prepended(base) ⇒ Object
11 12 13 14 15 16 17 |
# File 'app/patches/models/solidus_promotions/order_patch.rb', line 11 def self.prepended(base) base.has_many :solidus_order_promotions, class_name: "SolidusPromotions::OrderPromotion", dependent: :destroy, inverse_of: :order base.has_many :solidus_promotions, through: :solidus_order_promotions, source: :promotion end |
Instance Method Details
#discountable_item_total ⇒ Object
19 20 21 |
# File 'app/patches/models/solidus_promotions/order_patch.rb', line 19 def discountable_item_total line_items.sum(&:discountable_amount) end |
#discountable_line_items ⇒ Object
This helper method excludes line items that are managed by an order benefit for the benefit of calculators and benefits that discount normal line items. Line items that are managed by an order benefits handle their discounts themselves.
31 32 33 |
# File 'app/patches/models/solidus_promotions/order_patch.rb', line 31 def discountable_line_items line_items.reject(&:managed_by_order_benefit) end |
#free_from_order_benefit?(line_item, _options) ⇒ Boolean
35 36 37 |
# File 'app/patches/models/solidus_promotions/order_patch.rb', line 35 def free_from_order_benefit?(line_item, ) !line_item.managed_by_order_benefit end |
#reset_current_discounts ⇒ Object
23 24 25 26 |
# File 'app/patches/models/solidus_promotions/order_patch.rb', line 23 def reset_current_discounts line_items.each(&:reset_current_discounts) shipments.each(&:reset_current_discounts) end |