Sha256: 1f831be0b3225423a77d5288cb9137ef2b2093b540a1d3315b7a8c32143d6f59

Contents?: true

Size: 651 Bytes

Versions: 102

Compression:

Stored size: 651 Bytes

Contents

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

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

        def perform(options = {})
          order = options[:order]

          create_unique_adjustment(order, order)
        end

        def compute_amount(order)
          [order_total(order), compute(order)].min * -1
        end

        def order_total(order)
          order.item_total + order.ship_total - order.shipping_discount
        end
      end
    end
  end
end

Version data entries

102 entries across 102 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.10.0 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.9.0 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.8.3 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.8.2 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.7.3 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.6.6 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.5.5 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.0.9 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.1.15 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.2.7 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.3.3 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.4.1 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.5.4 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.6.5 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.7.2 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.7.1 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.6.4 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.7.0 app/models/spree/promotion/actions/create_adjustment.rb
spree_core-4.6.3 app/models/spree/promotion/actions/create_adjustment.rb