Files
openfoodnetwork/app/models/calculator/flat_percent_item_total.rb
David Cook 918425fd93 Remove customised error message
We're now handling these values on the frontend, so can keep this simple.

fixes up:
 Add numericality validation for *
 Add translation for Active Record error message
2023-04-28 14:02:12 +10:00

21 lines
501 B
Ruby

# frozen_string_literal: false
module Calculator
class FlatPercentItemTotal < Spree::Calculator
preference :flat_percent, :decimal, default: 0
validates :preferred_flat_percent,
numericality: true
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