Sha256: 1ab59a27df64bbd6754b701a6579406b83702ecf3523ee70549e8cbf3e50f977

Contents?: true

Size: 704 Bytes

Versions: 4

Compression:

Stored size: 704 Bytes

Contents

class Calculator::PriceSack < Calculator
  preference :minimal_amount, :decimal, :default => 0
  preference :normal_amount, :decimal, :default => 0
  preference :discount_amount, :decimal, :default => 0

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

  # as object we always get line items, as calculable we have Coupon, ShippingMethod
  def compute(object)
    if object.is_a?(Array)
      base = object.map{ |o| o.respond_to?(:amount) ? o.amount : o.to_d }.sum
    else
      base = object.respond_to?(:amount) ? object.amount : object.to_d
    end

    if base >= self.preferred_minimal_amount
      self.preferred_normal_amount
    else
      self.preferred_discount_amount
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spree_core-0.70.7 app/models/calculator/price_sack.rb
spree_core-0.70.6 app/models/calculator/price_sack.rb
spree_core-0.70.5 app/models/calculator/price_sack.rb
spree_core-0.70.4 app/models/calculator/price_sack.rb