Sha256: 9be10dc72775ff1a7b7751318723286b472d4d1f674e8975053e04f52cd76e30
Contents?: true
Size: 1.12 KB
Versions: 43
Compression:
Stored size: 1.12 KB
Contents
module Spree module Adjustable class AdjustmentsUpdater def self.update(adjustable) new(adjustable).update end def initialize(adjustable) @adjustable = adjustable adjustable.reload if shipment? && adjustable.persisted? end def update return unless @adjustable.persisted? totals = { non_taxable_adjustment_total: 0, taxable_adjustment_total: 0 } adjusters.each do |klass| klass.adjust(@adjustable, totals) end persist_totals totals end private def persist_totals(totals) attributes = totals attributes[:adjustment_total] = totals[:non_taxable_adjustment_total] + totals[:taxable_adjustment_total] + totals[:additional_tax_total] attributes[:updated_at] = Time.current @adjustable.update_columns(totals) end def shipment? @adjustable.is_a?(Shipment) end def adjusters Rails.application.config.spree.adjusters end end end end
Version data entries
43 entries across 43 versions & 1 rubygems