Sha256: d8b329335316742280e7e9af866f693e65b1ae2fc0ae579c00a5ed2b64fa9dea

Contents?: true

Size: 718 Bytes

Versions: 67

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true

require_dependency 'spree/calculator'

module Spree
  class Calculator::FlexiRate < Calculator
    preference :first_item,      :decimal, default: 0
    preference :additional_item, :decimal, default: 0
    preference :max_items,       :integer, default: 0
    preference :currency,        :string,  default: ->{ Spree::Config[:currency] }

    def compute(object)
      items_count = object.quantity
      items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero?

      return BigDecimal(0) if items_count == 0

      additional_items_count = items_count - 1
      preferred_first_item + preferred_additional_item * additional_items_count
    end
  end
end

Version data entries

67 entries across 67 versions & 2 rubygems

Version Path
solidus_legacy_promotions-4.4.2 app/models/spree/calculator/flexi_rate.rb
solidus_legacy_promotions-4.4.1 app/models/spree/calculator/flexi_rate.rb
solidus_legacy_promotions-4.4.0 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.3.4 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.2.4 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.1.5 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.3.3 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.3.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.1.4 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.3.1 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.3.0 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.2.3 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.1.3 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.0.4 app/models/spree/calculator/flexi_rate.rb
solidus_core-3.4.6 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.0.3 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.1.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.2.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-3.4.5 app/models/spree/calculator/flexi_rate.rb
solidus_core-4.2.1 app/models/spree/calculator/flexi_rate.rb