Sha256: 00d9bc5483eb5b78c9df24485acfbb9eb2a5ec1566c7153a235334deffb2713d

Contents?: true

Size: 773 Bytes

Versions: 20

Compression:

Stored size: 773 Bytes

Contents

module Spree
  class Promotion
    module Actions
      class CreateItemAdjustments < PromotionAction
        include Spree::CalculatedAdjustments
        include Spree::AdjustmentSource

        before_validation -> { self.calculator ||= Calculator::PercentOnLineItem.new }

        def perform(options = {})
          order = options[:order]
          promotion = options[:promotion]
          create_unique_adjustments(order, order.line_items) do |line_item|
            promotion.line_item_actionable?(order, line_item)
          end
        end

        def compute_amount(line_item)
          return 0 unless promotion.line_item_actionable?(line_item.order, line_item)
          [line_item.amount, compute(line_item)].min * -1
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
spree_core-3.4.6 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.6 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.5 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.4 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.3 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.2 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.1 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.0 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.5.0 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.6.0.rc1 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.5.0.rc2 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.5.0.rc1 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.5 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.4 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.3 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.2 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.1 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.0 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.0.rc2 app/models/spree/promotion/actions/create_item_adjustments.rb
spree_core-3.4.0.rc1 app/models/spree/promotion/actions/create_item_adjustments.rb