Class: SpreeCmCommissioner::PricingAction

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree_cm_commissioner/pricing_action.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.available_calculator_typesObject



23
24
25
# File 'app/models/spree_cm_commissioner/pricing_action.rb', line 23

def self.available_calculator_types
  SpreeCmCommissioner::Calculators.constants.map(&:to_s)
end

Instance Method Details

#perform(line_item) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/spree_cm_commissioner/pricing_action.rb', line 8

def perform(line_item)
  return if pricing_rule_group.pricing_rules.blank?

  amount = calculator&.compute(line_item)

  line_item.adjustments.create!(
    amount: amount,
    source: self,
    adjustable: line_item,
    order: line_item.order,
    label: pricing_rule_group.pricing_model.name,
    mandatory: true
  )
end