From b6038c01a3dc450242a8dfa5c443e9599c1c4843 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 19 Mar 2021 16:56:09 +0000 Subject: [PATCH] Remove references to Adjustment source --- app/helpers/checkout_helper.rb | 6 +++--- app/models/spree/adjustment.rb | 2 +- app/models/spree/tax_rate.rb | 1 - app/serializers/api/adjustment_serializer.rb | 1 - app/services/order_adjustments_fetcher.rb | 4 ++-- app/services/order_fees_handler.rb | 2 +- app/services/order_tax_adjustments_fetcher.rb | 2 +- app/services/tax_rate_finder.rb | 20 +++++++++---------- .../reports/enterprise_fee_summary/scope.rb | 18 ++++++++--------- .../enterprise_fee_summary/summarizer.rb | 4 ++-- lib/tasks/data/truncate_data.rb | 16 +++++++-------- .../enterprise_fee_applicator_spec.rb | 2 -- .../spree/core/calculated_adjustments_spec.rb | 2 +- .../migrations/migrate_shipping_taxes_spec.rb | 1 - spec/models/spree/order_spec.rb | 1 - 15 files changed, 38 insertions(+), 44 deletions(-) diff --git a/app/helpers/checkout_helper.rb b/app/helpers/checkout_helper.rb index 18ab79969a..5d764e15c4 100644 --- a/app/helpers/checkout_helper.rb +++ b/app/helpers/checkout_helper.rb @@ -12,10 +12,10 @@ module CheckoutHelper adjustments.reject! { |a| a.originator_type == 'Spree::TaxRate' && a.amount == 0 } adjustments.reject! { |a| a.originator_type == 'Spree::ShippingMethod' } if exclude.include? :shipping adjustments.reject! { |a| a.originator_type == 'Spree::PaymentMethod' } if exclude.include? :payment - adjustments.reject! { |a| a.source_type == 'Spree::LineItem' } if exclude.include? :line_item + adjustments.reject! { |a| a.adjustable_type == 'Spree::LineItem' } if exclude.include? :line_item - enterprise_fee_adjustments = adjustments.select { |a| a.originator_type == 'EnterpriseFee' && a.source_type != 'Spree::LineItem' } - adjustments.reject! { |a| a.originator_type == 'EnterpriseFee' && a.source_type != 'Spree::LineItem' } + enterprise_fee_adjustments = adjustments.select { |a| a.originator_type == 'EnterpriseFee' && a.adjustable_type != 'Spree::LineItem' } + adjustments.reject! { |a| a.originator_type == 'EnterpriseFee' && a.adjustable_type != 'Spree::LineItem' } unless exclude.include? :admin_and_handling adjustments << Spree::Adjustment.new( label: I18n.t(:orders_form_admin), amount: enterprise_fee_adjustments.sum(&:amount) diff --git a/app/models/spree/adjustment.rb b/app/models/spree/adjustment.rb index 1f544b95e9..fbdb0a8697 100644 --- a/app/models/spree/adjustment.rb +++ b/app/models/spree/adjustment.rb @@ -72,7 +72,7 @@ module Spree scope :additional, -> { where(included: false) } scope :enterprise_fee, -> { where(originator_type: 'EnterpriseFee') } - scope :admin, -> { where(source_type: nil, originator_type: nil) } + scope :admin, -> { where(originator_type: nil) } scope :with_tax, -> { where('spree_adjustments.included_tax <> 0') } scope :without_tax, -> { where('spree_adjustments.included_tax = 0') } diff --git a/app/models/spree/tax_rate.rb b/app/models/spree/tax_rate.rb index a2368ad08e..c415efa324 100644 --- a/app/models/spree/tax_rate.rb +++ b/app/models/spree/tax_rate.rb @@ -69,7 +69,6 @@ module Spree order.adjustments.create( amount: amount, - source: order, originator: self, order: order, state: "closed", diff --git a/app/serializers/api/adjustment_serializer.rb b/app/serializers/api/adjustment_serializer.rb index 254b173777..44fa26f227 100644 --- a/app/serializers/api/adjustment_serializer.rb +++ b/app/serializers/api/adjustment_serializer.rb @@ -1,7 +1,6 @@ module Api class AdjustmentSerializer < ActiveModel::Serializer attributes :id, :amount, :label, :eligible, - :source_type, :source_id, :adjustable_type, :adjustable_id, :originator_type, :originator_id end diff --git a/app/services/order_adjustments_fetcher.rb b/app/services/order_adjustments_fetcher.rb index d840505bfc..09618b60f4 100644 --- a/app/services/order_adjustments_fetcher.rb +++ b/app/services/order_adjustments_fetcher.rb @@ -63,11 +63,11 @@ class OrderAdjustmentsFetcher adjustments.select do |adjustment| match_by_scope(adjustment, eligible_scope) && adjustment.originator_type == 'EnterpriseFee' && - adjustment.source_type != 'Spree::LineItem' + adjustment.adjustable_type != 'Spree::LineItem' end else adjustments.eligible. - where("originator_type = ? AND source_type != ?", 'EnterpriseFee', 'Spree::LineItem') + where("originator_type = ? AND adjustable_type != ?", 'EnterpriseFee', 'Spree::LineItem') end end diff --git a/app/services/order_fees_handler.rb b/app/services/order_fees_handler.rb index 17247dcca6..76e3695c90 100644 --- a/app/services/order_fees_handler.rb +++ b/app/services/order_fees_handler.rb @@ -48,7 +48,7 @@ class OrderFeesHandler end def update_order_fees! - order.adjustments.enterprise_fee.where(source_type: 'Spree::Order').each do |fee| + order.adjustments.enterprise_fee.where(adjustable_type: 'Spree::Order').each do |fee| fee.update!(order, force: true) end end diff --git a/app/services/order_tax_adjustments_fetcher.rb b/app/services/order_tax_adjustments_fetcher.rb index 06190e4c30..7c01a2b175 100644 --- a/app/services/order_tax_adjustments_fetcher.rb +++ b/app/services/order_tax_adjustments_fetcher.rb @@ -52,6 +52,6 @@ class OrderTaxAdjustmentsFetcher # Enterprise Fees and Admin Adjustments currently do not have tax adjustments. # The tax amount is stored in the included_tax attribute. adjustment.originator_type == "EnterpriseFee" || - (adjustment.source_type.nil? && adjustment.originator_type.nil?) + adjustment.originator_type.nil? end end diff --git a/app/services/tax_rate_finder.rb b/app/services/tax_rate_finder.rb index 01b955d3d0..1c979cf776 100644 --- a/app/services/tax_rate_finder.rb +++ b/app/services/tax_rate_finder.rb @@ -6,36 +6,36 @@ class TaxRateFinder def self.tax_rates_of(adjustment) new.tax_rates( adjustment.originator, - adjustment.source, + adjustment.adjustable, adjustment.amount, adjustment.included_tax ) end # @return [Array] - def tax_rates(originator, source, amount, included_tax) - find_associated_tax_rate(originator, source) || + def tax_rates(originator, adjustable, amount, included_tax) + find_associated_tax_rate(originator, adjustable) || find_closest_tax_rates_from_included_tax(amount, included_tax) end private - def find_associated_tax_rate(originator, source) + def find_associated_tax_rate(originator, adjustable) case originator when Spree::TaxRate [originator] when EnterpriseFee - enterprise_fee_tax_rates(originator, source) + enterprise_fee_tax_rates(originator, adjustable) end end - def enterprise_fee_tax_rates(enterprise_fee, source) - case source + def enterprise_fee_tax_rates(enterprise_fee, adjustable) + case adjustable when Spree::LineItem - tax_category = line_item_tax_category(enterprise_fee, source) - tax_category ? tax_category.tax_rates.match(source.order) : [] + tax_category = line_item_tax_category(enterprise_fee, adjustable) + tax_category ? tax_category.tax_rates.match(adjustable.order) : [] when Spree::Order - enterprise_fee.tax_category ? enterprise_fee.tax_category.tax_rates.match(source) : [] + enterprise_fee.tax_category ? enterprise_fee.tax_category.tax_rates.match(adjustable) : [] end end diff --git a/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb b/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb index c5ec42190a..78da81e503 100644 --- a/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb +++ b/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb @@ -181,8 +181,8 @@ module OrderManagement <<-JOIN_STRING.strip_heredoc LEFT OUTER JOIN spree_orders AS adjustment_source_orders ON ( - spree_adjustments.source_type = 'Spree::Order' - AND adjustment_source_orders.id = spree_adjustments.source_id + spree_adjustments.adjustable_type = 'Spree::Order' + AND adjustment_source_orders.id = spree_adjustments.adjustable_id ) JOIN_STRING ) @@ -207,8 +207,8 @@ module OrderManagement <<-JOIN_STRING.strip_heredoc LEFT OUTER JOIN spree_line_items ON ( - spree_adjustments.source_type = 'Spree::LineItem' - AND spree_line_items.id = spree_adjustments.source_id + spree_adjustments.adjustable_type = 'Spree::LineItem' + AND spree_line_items.id = spree_adjustments.adjustable_id ) JOIN_STRING ) @@ -217,7 +217,7 @@ module OrderManagement <<-JOIN_STRING.strip_heredoc LEFT OUTER JOIN spree_variants ON ( - spree_adjustments.source_type = 'Spree::LineItem' + spree_adjustments.adjustable_type = 'Spree::LineItem' AND spree_variants.id = spree_line_items.variant_id ) JOIN_STRING @@ -260,7 +260,7 @@ module OrderManagement ) ) ON ( - spree_adjustments.source_type = 'Spree::LineItem' + spree_adjustments.adjustable_type = 'Spree::LineItem' AND adjustment_metadata.enterprise_role = 'supplier' AND incoming_exchanges.order_cycle_id = spree_orders.order_cycle_id AND incoming_exchange_variants.id IS NOT NULL @@ -296,7 +296,7 @@ module OrderManagement ) ) ON ( - spree_adjustments.source_type = 'Spree::LineItem' + spree_adjustments.adjustable_type = 'Spree::LineItem' AND adjustment_metadata.enterprise_role = 'distributor' AND outgoing_exchanges.order_cycle_id = spree_orders.order_cycle_id AND outgoing_exchange_variants.id IS NOT NULL @@ -353,7 +353,7 @@ module OrderManagement "adjustment_metadata.enterprise_role", "spree_tax_categories.id", "product_tax_categories.id", - "spree_adjustments.source_type", + "spree_adjustments.adjustable_type", "adjustment_source_distributors.id", "incoming_exchange_enterprises.id", "outgoing_exchange_enterprises.id" @@ -378,7 +378,7 @@ module OrderManagement enterprise_fees.inherits_tax_category AS enterprise_fee_inherits_tax_category, product_tax_categories.name AS product_tax_category_name, adjustment_metadata.enterprise_role AS placement_enterprise_role, - spree_adjustments.source_type AS adjustment_source_type, + spree_adjustments.adjustable_type AS adjustment_adjustable_type, adjustment_source_distributors.name AS adjustment_source_distributor_name, incoming_exchange_enterprises.name AS incoming_exchange_enterprise_name, outgoing_exchange_enterprises.name AS outgoing_exchange_enterprise_name diff --git a/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/summarizer.rb b/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/summarizer.rb index a58b549490..554c11999e 100644 --- a/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/summarizer.rb +++ b/engines/order_management/app/services/order_management/reports/enterprise_fee_summary/summarizer.rb @@ -65,11 +65,11 @@ module OrderManagement end def for_order_adjustment_source? - data["adjustment_source_type"] == "Spree::Order" + data["adjustment_adjustable_type"] == "Spree::Order" end def for_line_item_adjustment_source? - data["adjustment_source_type"] == "Spree::LineItem" + data["adjustment_adjustable_type"] == "Spree::LineItem" end end end diff --git a/lib/tasks/data/truncate_data.rb b/lib/tasks/data/truncate_data.rb index 3a314fe478..86781b7f14 100644 --- a/lib/tasks/data/truncate_data.rb +++ b/lib/tasks/data/truncate_data.rb @@ -69,17 +69,17 @@ class TruncateData end def truncate_adjustments - sql_delete_from "spree_adjustments where source_type = 'Spree::Order' - and source_id in (select id from spree_orders #{where_oc_id_in_ocs_to_delete})" + sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Order' + and adjustable_id in (select id from spree_orders #{where_oc_id_in_ocs_to_delete})" - sql_delete_from "spree_adjustments where source_type = 'Spree::Shipment' - and source_id in (select id from spree_shipments #{where_order_id_in_orders_to_delete})" + sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Shipment' + and adjustable_id in (select id from spree_shipments #{where_order_id_in_orders_to_delete})" - sql_delete_from "spree_adjustments where source_type = 'Spree::Payment' - and source_id in (select id from spree_payments #{where_order_id_in_orders_to_delete})" + sql_delete_from "spree_adjustments where adjustable_type = 'Spree::Payment' + and adjustable_id in (select id from spree_payments #{where_order_id_in_orders_to_delete})" - sql_delete_from "spree_adjustments where source_type = 'Spree::LineItem' - and source_id in (select id from spree_line_items #{where_order_id_in_orders_to_delete})" + sql_delete_from "spree_adjustments where adjustable_type = 'Spree::LineItem' + and adjustable_id in (select id from spree_line_items #{where_order_id_in_orders_to_delete})" end def truncate_order_cycle_data diff --git a/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb b/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb index 8fee7bdad2..7ddab9d50d 100644 --- a/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb +++ b/spec/lib/open_food_network/enterprise_fee_applicator_spec.rb @@ -17,7 +17,6 @@ module OpenFoodNetwork adjustment = Spree::Adjustment.last expect(adjustment.label).to eq('label') expect(adjustment.adjustable).to eq(line_item) - expect(adjustment.source).to eq(line_item) expect(adjustment.originator).to eq(enterprise_fee) expect(adjustment).to be_mandatory @@ -40,7 +39,6 @@ module OpenFoodNetwork adjustment = Spree::Adjustment.last expect(adjustment.label).to eq('label') expect(adjustment.adjustable).to eq(order) - expect(adjustment.source).to eq(order) expect(adjustment.originator).to eq(enterprise_fee) expect(adjustment).to be_mandatory diff --git a/spec/lib/spree/core/calculated_adjustments_spec.rb b/spec/lib/spree/core/calculated_adjustments_spec.rb index f6870807e1..3bece5db69 100644 --- a/spec/lib/spree/core/calculated_adjustments_spec.rb +++ b/spec/lib/spree/core/calculated_adjustments_spec.rb @@ -37,7 +37,7 @@ describe Spree::Core::CalculatedAdjustments do adjustment = tax_rate.create_adjustment("foo", target, order) expect(adjustment).not_to be_nil expect(adjustment.amount).to eq 10 - expect(adjustment.source).to eq order + expect(adjustment.adjustable).to eq order expect(adjustment.originator).to eq tax_rate end diff --git a/spec/migrations/migrate_shipping_taxes_spec.rb b/spec/migrations/migrate_shipping_taxes_spec.rb index 218ff8ccc5..3c7282cfe9 100644 --- a/spec/migrations/migrate_shipping_taxes_spec.rb +++ b/spec/migrations/migrate_shipping_taxes_spec.rb @@ -79,7 +79,6 @@ describe MigrateShippingTaxes do expect(shipping_tax_adjustment.amount).to eq 0.23 expect(shipping_tax_adjustment.originator).to eq shipping_tax_rate - expect(shipping_tax_adjustment.source).to eq shipment expect(shipping_tax_adjustment.adjustable).to eq shipment expect(shipping_tax_adjustment.order_id).to eq order.id expect(shipping_tax_adjustment.included).to eq true diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 3a1b6988bd..e5e2c156e2 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -772,7 +772,6 @@ describe Spree::Order do line_item = order.line_items.where(variant_id: v1.id).first adjustment_scope = Spree::Adjustment.where(adjustable_type: "Spree::LineItem", adjustable_id: line_item.id) - expect(adjustment_scope.count).to eq(1) adjustment = adjustment_scope.first order.remove_variant v1