Sha256: 4390954650f5f9e17460b5379c3d51a2e727fb9590266cc9279701df87e065c6
Contents?: true
Size: 982 Bytes
Versions: 62
Compression:
Stored size: 982 Bytes
Contents
module Workarea module Pricing class Discount class ReconcileTotal def initialize(price_adjustments) @price_adjustments = price_adjustments end def over_discounted? over_discounted_amount > 0 end def over_discounted_amount 0.to_m - @price_adjustments.sum end def perform units = discount_adjustments.map do |adjustment| { id: adjustment.id, price: adjustment.amount.abs } end distributor = PriceDistributor.new(over_discounted_amount, units) distributor.results.each do |id, value| adjustment = discount_adjustments.detect { |a| a.id == id } adjustment.amount += value end end private def discount_adjustments @price_adjustments.select do |adjustment| adjustment.data['discount_id'].present? end end end end end end
Version data entries
62 entries across 62 versions & 1 rubygems