From 9a9b455e66f8a87d6bd513ac1fb8187b87c18775 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 6 Aug 2020 19:45:27 +0100 Subject: [PATCH] Fix problem in default_tax related to sum in active record --- app/models/calculator/default_tax.rb | 2 +- app/models/calculator/flat_percent_per_item.rb | 2 +- app/models/calculator/weight.rb | 2 +- spec/features/admin/bulk_product_update_spec.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/calculator/default_tax.rb b/app/models/calculator/default_tax.rb index de888c9283..5293dfd1cb 100644 --- a/app/models/calculator/default_tax.rb +++ b/app/models/calculator/default_tax.rb @@ -49,7 +49,7 @@ module Calculator # Finds relevant fees for each line_item, # calculates the tax on them, and returns the total tax def per_item_fees_total(order, calculator) - order.line_items.sum do |line_item| + order.line_items.to_a.sum do |line_item| calculator.per_item_enterprise_fee_applicators_for(line_item.variant) .select { |applicator| applicable_rate?(applicator, line_item) } .sum { |applicator| applicator.enterprise_fee.compute_amount(line_item) } diff --git a/app/models/calculator/flat_percent_per_item.rb b/app/models/calculator/flat_percent_per_item.rb index ff6e222e89..b1b6a851a0 100644 --- a/app/models/calculator/flat_percent_per_item.rb +++ b/app/models/calculator/flat_percent_per_item.rb @@ -18,7 +18,7 @@ class Calculator::FlatPercentPerItem < Spree::Calculator end def compute(object) - line_items_for(object).sum do |li| + line_items_for(object).to_a.sum do |li| unless li.price.present? && li.quantity.present? raise ArgumentError, "object must respond to #price and #quantity" end diff --git a/app/models/calculator/weight.rb b/app/models/calculator/weight.rb index f4f451b785..8f060bb826 100644 --- a/app/models/calculator/weight.rb +++ b/app/models/calculator/weight.rb @@ -32,7 +32,7 @@ module Calculator private def total_weight(line_items) - line_items.sum do |line_item| + line_items.to_a.sum do |line_item| line_item_weight(line_item) end end diff --git a/spec/features/admin/bulk_product_update_spec.rb b/spec/features/admin/bulk_product_update_spec.rb index cc4601385b..f0226d1a61 100644 --- a/spec/features/admin/bulk_product_update_spec.rb +++ b/spec/features/admin/bulk_product_update_spec.rb @@ -133,7 +133,7 @@ feature ' expect(page).to have_selector "a.view-variants", count: 1 all("a.view-variants").each(&:click) - expect(page).to have_selector "span[name='on_hand']", text: p1.variants.sum(&:on_hand).to_s + expect(page).to have_selector "span[name='on_hand']", text: p1.variants.to_a.sum(&:on_hand).to_s expect(page).to have_field "variant_on_hand", with: "15" expect(page).to have_field "variant_on_hand", with: "6" end