From 00c9dd7ece951260af878367d31d3bfc070cc8da Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Fri, 12 Jun 2020 13:01:24 +0200 Subject: [PATCH] Remove N+1 fetching order and li adjustments --- app/services/order_tax_adjustments_fetcher.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/services/order_tax_adjustments_fetcher.rb b/app/services/order_tax_adjustments_fetcher.rb index 8053d9e0ab..debce057b8 100644 --- a/app/services/order_tax_adjustments_fetcher.rb +++ b/app/services/order_tax_adjustments_fetcher.rb @@ -20,10 +20,15 @@ class OrderTaxAdjustmentsFetcher attr_reader :order def all - order.adjustments.with_tax + - order.line_items.includes(:adjustments).map { |li| - li.adjustments.with_tax - }.flatten + Spree::Adjustment + .with_tax + .where(adjustable_id: order.id, adjustable_type: 'Spree::Order') + .order('created_at ASC') + + + Spree::Adjustment + .with_tax + .where(adjustable_id: order.line_item_ids, adjustable_type: 'Spree::LineItem') + .order('created_at ASC') end def tax_rates_hash(adjustment)