Sha256: 1a8cb86bf5611ddd93f0387b4303eb11fe42dea1014576f49b1e48eb6e93dee3
Contents?: true
Size: 766 Bytes
Versions: 7
Compression:
Stored size: 766 Bytes
Contents
module Spree module AdjustmentSource extend ActiveSupport::Concern included do def deals_with_adjustments_for_deleted_source adjustment_scope = self.adjustments.joins(:order) # For incomplete orders, remove the adjustment completely. adjustment_scope.where(spree_orders: { completed_at: nil }).destroy_all # For complete orders, the source will be invalid. # Therefore we nullify the source_id, leaving the adjustment in place. # This would mean that the order's total is not altered at all. attrs = { source_id: nil, updated_at: Time.current } adjustment_scope.where.not(spree_orders: { completed_at: nil }).update_all(attrs) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems