Sha256: 537fc847321c54671bde38ea4befb357d697871970b02058a1e1b208c1606221

Contents?: true

Size: 681 Bytes

Versions: 3

Compression:

Stored size: 681 Bytes

Contents

require_dependency 'spree/calculator'

module Spree
  class Calculator::FlatRate < Calculator
    preference :amount, :decimal, default: 0
    preference :currency, :string, default: -> { Spree::Store.default.default_currency }
    preference :apply_only_on_full_priced_items, :boolean, default: false

    def self.description
      Spree.t(:flat_rate_per_order)
    end

    def compute(object = nil)
      return 0 if preferred_apply_only_on_full_priced_items && object&.variant&.compare_at_amount_in(object.currency).present?

      if object && preferred_currency.casecmp(object.currency.upcase).zero?
        preferred_amount
      else
        0
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/models/spree/calculator/flat_rate.rb
spree_core-4.10.0 app/models/spree/calculator/flat_rate.rb
spree_core-4.9.0 app/models/spree/calculator/flat_rate.rb