Class: SpreeCmCommissioner::PricingActions::CreateGuestAdjustments

Inherits:
SpreeCmCommissioner::PricingAction show all
Defined in:
app/models/spree_cm_commissioner/pricing_actions/create_guest_adjustments.rb

Instance Method Summary collapse

Methods inherited from SpreeCmCommissioner::PricingAction

available_calculator_types, #compute_amount

Instance Method Details

#perform(line_item) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/spree_cm_commissioner/pricing_actions/create_guest_adjustments.rb', line 4

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

  eligible_guests = find_eligible_guests(line_item)
  return if eligible_guests.empty?

  total_amount = eligible_guests.sum do |guest|
    compute_guest_amount(line_item, guest)
  end

  return if total_amount.zero?

  create_adjustment(line_item, total_amount)
end