mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-30 21:27:17 +00:00
See here https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#require-dependency
29 lines
663 B
Ruby
29 lines
663 B
Ruby
# frozen_string_literal: false
|
|
|
|
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
|