Sha256: 3fa8118a06700f737025943fc9d5eebafadc4680384f2eb86919b5ef5e8d9f0b

Contents?: true

Size: 726 Bytes

Versions: 30

Compression:

Stored size: 726 Bytes

Contents

class Calculator::FlexiRate < Calculator
  preference :first_item,      :decimal, :default => 0
  preference :additional_item, :decimal, :default => 0
  preference :max_items,       :decimal, :default => 0

  def self.description
    I18n.t("flexible_rate")
  end

  def self.available?(object)
    true
  end

  def self.register
    super
    ShippingMethod.register_calculator(self)
  end

  def compute(object)
    sum = 0
    max = self.preferred_max_items
    items_count = object.line_items.map(&:quantity).sum
    items_count.times do |i|
      if (i % max == 0) && (max > 0)
        sum += self.preferred_first_item
      else
        sum += self.preferred_additional_item
      end
    end
    return(sum)
  end
end

Version data entries

30 entries across 30 versions & 6 rubygems

Version Path
apispree_core-0.0.0 app/models/calculator/flexi_rate.rb
My-Commerce_core-1.1.0 app/models/calculator/flexi_rate.rb
My-Commerce_core-1.0.0 app/models/calculator/flexi_rate.rb
MyCommerceapi-1.0.0 core/app/models/calculator/flexi_rate.rb
MyCommerce-0.0.3 core/app/models/calculator/flexi_rate.rb
rfcommerce_core-0.0.3 app/models/calculator/flexi_rate.rb
spree_core-0.60.6 app/models/calculator/flexi_rate.rb
spree_core-0.60.5 app/models/calculator/flexi_rate.rb
spree_core-0.30.2 app/models/calculator/flexi_rate.rb
spree_core-0.40.4 app/models/calculator/flexi_rate.rb
spree_core-0.50.4 app/models/calculator/flexi_rate.rb
spree_core-0.60.4 app/models/calculator/flexi_rate.rb
spree_core-0.50.3 app/models/calculator/flexi_rate.rb
spree_core-0.60.3 app/models/calculator/flexi_rate.rb
spree_core-0.60.2 app/models/calculator/flexi_rate.rb
spree_core-0.70.0.rc2 app/models/calculator/flexi_rate.rb
spree_core-0.70.RC1 app/models/calculator/flexi_rate.rb
spree_core-0.60.1 app/models/calculator/flexi_rate.rb
spree_core-0.60.0 app/models/calculator/flexi_rate.rb
spree_core-0.60.0.RC1 app/models/calculator/flexi_rate.rb