6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'app/services/spree_cm_commissioner/line_items/apply_pricing_models.rb', line 6
def call(order:, line_item:)
return success(nil) if line_item.blank?
return success(line_item) unless order&.persisted?
return success(line_item) if line_item.variant.blank?
active_pricing_models = line_item.variant.pricing_models.active
return success(line_item) unless active_pricing_models.exists?
line_item.adjustments.pricing_action.delete_all
active_pricing_models.each do |pricing_model|
SpreeCmCommissioner::PricingModels::Apply.new(
line_item: line_item,
pricing_model: pricing_model
).call
end
success(line_item)
end
|