diff --git a/app/models/exchange_variant.rb b/app/models/exchange_variant.rb index ac835523af..ca3169bde8 100644 --- a/app/models/exchange_variant.rb +++ b/app/models/exchange_variant.rb @@ -3,9 +3,13 @@ class ExchangeVariant < ApplicationRecord belongs_to :exchange belongs_to :variant, class_name: 'Spree::Variant' - after_destroy :destroy_related_outgoing_variants - def destroy_related_outgoing_variants - VariantDeleter.new.destroy_related_outgoing_variants(variant_id, exchange.order_cycle) + after_destroy :delete_related_outgoing_variants + + def delete_related_outgoing_variants + ExchangeVariant.where(variant_id: variant_id). + joins(:exchange). + where(exchanges: { order_cycle: exchange.order_cycle, incoming: false }). + delete_all end end diff --git a/app/services/variant_deleter.rb b/app/services/variant_deleter.rb index d294dfcb98..fb9637f780 100644 --- a/app/services/variant_deleter.rb +++ b/app/services/variant_deleter.rb @@ -11,15 +11,6 @@ class VariantDeleter variant.destroy end - def destroy_related_outgoing_variants(variant_id, order_cycle) - internal_variants = ExchangeVariant.where(variant_id: variant_id). - joins(:exchange). - where( - exchanges: { order_cycle: order_cycle, incoming: false } - ) - internal_variants.destroy_all - end - private def only_variant_on_product?(variant)