Sha256: e0e95be35e74660b0066378d3e44f638fd777b31323d4e8aa293346456936246

Contents?: true

Size: 824 Bytes

Versions: 17

Compression:

Stored size: 824 Bytes

Contents

require_dependency 'spree/calculator'

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

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

    def self.available?(_object)
      true
    end

    def compute(object)
      sum = 0
      max = preferred_max_items.to_i
      items_count = object.quantity
      items_count.times do |i|
        if i == 0
          sum += preferred_first_item.to_f
        elsif ((max > 0) && (i <= (max - 1))) || (max == 0)
          sum += preferred_additional_item.to_f
        end
      end

      sum
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
solidus_core-2.0.3 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.4.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-2.0.2 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.4.1 app/models/spree/calculator/flexi_rate.rb
solidus_core-2.0.1 app/models/spree/calculator/flexi_rate.rb
solidus_core-2.0.0 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.4.0 app/models/spree/calculator/flexi_rate.rb
solidus_core-2.0.0.rc1 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.4.0.rc1 app/models/spree/calculator/flexi_rate.rb
solidus_core-2.0.0.beta1 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.4.0.beta1 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.1 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.0 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.0.rc2 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.0.rc1 app/models/spree/calculator/flexi_rate.rb
solidus_core-1.3.0.beta1 app/models/spree/calculator/flexi_rate.rb