Class: Coupon::Calculator::ForceMsrpUnitPrice

Inherits:
Base
  • Object
show all
Defined in:
app/services/coupon/calculator/force_msrp_unit_price.rb

Overview

Force Discount Unit Price sets it to a specific amount, regardless
of trade discount

Instance Method Summary collapse

Constructor Details

#initialize(line_item_extractor, options = {}) ⇒ ForceMsrpUnitPrice

Returns a new instance of ForceMsrpUnitPrice.

Parameters:

Options Hash (options):

  • unit_price (Numeric)

    unit price to force on each qualifying line item (required)



8
9
10
11
12
# File 'app/services/coupon/calculator/force_msrp_unit_price.rb', line 8

def initialize(line_item_extractor, options = {})
  raise ":unit_price option must be specified" if options[:unit_price].blank?

  super
end

Instance Method Details

#calculate(discount) ⇒ Object



14
15
16
17
18
19
20
# File 'app/services/coupon/calculator/force_msrp_unit_price.rb', line 14

def calculate(discount)
  @line_item_extractor.discountable_line_items.each do |li|
    li.price = @options[:unit_price]
    discount.notes ||= ""
    discount.notes += "Unit price set to $#{@options[:unit_price]}. "
  end
end