Sha256: 5e0d40d1d60c5cb4068e8861f329eefee065a661fea5ee9c568ca6d83d1f69ad

Contents?: true

Size: 763 Bytes

Versions: 1

Compression:

Stored size: 763 Bytes

Contents

class PaymentCalculator::FlexiRate < Calculator
  preference :first_item,      :decimal, :default => 0
  preference :additional_item, :decimal, :default => 0
  preference :max_items,       :decimal, :default => 0
  
  # Register the calculator
  def self.register
    super
    PaymentMethod.register_calculator(self)
  end
  
  def self.description
    I18n.t("flexible_rate")
  end

  def self.available?(object)
    true
  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

1 entries across 1 versions & 1 rubygems

Version Path
spree_payment_calculator-0.70.0 app/model/payment_calculator/flexi_rate.rb