Files
openfoodnetwork/app/models/calculator/per_item.rb
2020-07-07 17:26:23 +01:00

30 lines
701 B
Ruby

# frozen_string_literal: false
require_dependency 'spree/calculator'
require 'spree/localized_number'
module Calculator
class PerItem < Spree::Calculator
extend Spree::LocalizedNumber
preference :amount, :decimal, default: 0
preference :currency, :string, default: Spree::Config[:currency]
localize_number :preferred_amount
def self.description
I18n.t(:flat_rate_per_item)
end
def compute(object = nil)
return 0 if object.nil?
number_of_line_items = line_items_for(object).reduce(0) do |sum, line_item|
value_to_add = line_item.quantity
sum + value_to_add
end
preferred_amount * number_of_line_items
end
end
end