mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-05 02:41:33 +00:00
25 lines
580 B
Ruby
25 lines
580 B
Ruby
# frozen_string_literal: false
|
|
|
|
require_dependency 'spree/calculator'
|
|
require 'spree/localized_number'
|
|
|
|
module Calculator
|
|
class FlatPercentItemTotal < Spree::Calculator
|
|
extend Spree::LocalizedNumber
|
|
|
|
preference :flat_percent, :decimal, default: 0
|
|
|
|
localize_number :preferred_flat_percent
|
|
|
|
def self.description
|
|
Spree.t(:flat_percent)
|
|
end
|
|
|
|
def compute(object)
|
|
item_total = line_items_for(object).map(&:amount).sum
|
|
value = item_total * BigDecimal(preferred_flat_percent.to_s) / 100.0
|
|
(value * 100).round.to_f / 100
|
|
end
|
|
end
|
|
end
|