From 4fbbbbca76866faeb6534f41a63915b576d45ab0 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 29 Mar 2021 13:26:59 +0100 Subject: [PATCH] Load relevant tax rates in a single query outside of find_each block --- db/migrate/20210224190247_migrate_shipping_taxes.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/db/migrate/20210224190247_migrate_shipping_taxes.rb b/db/migrate/20210224190247_migrate_shipping_taxes.rb index 84721310e7..992f330b89 100644 --- a/db/migrate/20210224190247_migrate_shipping_taxes.rb +++ b/db/migrate/20210224190247_migrate_shipping_taxes.rb @@ -56,13 +56,15 @@ class MigrateShippingTaxes < ActiveRecord::Migration end def migrate_tax_amounts_to_adjustments + shipping_tax_rates = Spree::TaxRate.where(tax_category: shipping_tax_category).to_a + # Migrate all shipping tax amounts from shipment field to tax adjustments Spree::Adjustment.shipping.where("included_tax <> 0").includes(:source, :order).find_each do |shipping_fee| shipment = shipping_fee.source order = shipping_fee.order next if order.nil? - tax_rate = Spree::TaxRate.find_by(tax_category: shipping_tax_category, zone: order.tax_zone) + tax_rate = shipping_tax_rates.detect{ |rate| rate.zone == order.tax_zone } # Move all tax totals to adjustments Spree::Adjustment.create!(