diff --git a/app/services/order_adjustments_fetcher.rb b/app/services/order_adjustments_fetcher.rb index 40d78cf6bc..560f04bdb1 100644 --- a/app/services/order_adjustments_fetcher.rb +++ b/app/services/order_adjustments_fetcher.rb @@ -57,11 +57,12 @@ class OrderAdjustmentsFetcher if adjustments_eager_loaded? adjustment_scope = public_send("#{scope}_scope") + # Adjustments are already loaded here, this block is using `Array#select` adjustments.select do |adjustment| - match_by_scope(adjustment, adjustment_scope) + match_by_scope(adjustment, adjustment_scope) && match_by_scope(adjustment, eligible_scope) end else - adjustments.where(nil).public_send scope + adjustments.where(nil).eligible.public_send scope end end diff --git a/spec/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report_spec.rb b/spec/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report_spec.rb index 6bae6da8a1..4799c3e4ac 100644 --- a/spec/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report_spec.rb +++ b/spec/lib/open_food_network/orders_and_fulfillments_report/customer_totals_report_spec.rb @@ -1,5 +1,7 @@ require "spec_helper" +require 'open_food_network/orders_and_fulfillments_report' require 'open_food_network/orders_and_fulfillments_report/customer_totals_report' +require 'open_food_network/order_grouper' RSpec.describe OpenFoodNetwork::OrdersAndFulfillmentsReport::CustomerTotalsReport do let!(:distributor) { create(:distributor_enterprise) } @@ -79,6 +81,27 @@ RSpec.describe OpenFoodNetwork::OrdersAndFulfillmentsReport::CustomerTotalsRepor end end + context "displaying payment fees" do + context "with both failed and completed payments present" do + let!(:order) { + create(:order_ready_to_ship, user: customer.user, + customer: customer, distributor: distributor) + } + let(:completed_payment) { order.payments.completed.first } + let!(:failed_payment) { create(:payment, order: order, state: "failed") } + + before do + completed_payment.adjustment.update amount: 123.00 + failed_payment.adjustment.update amount: 456.00, eligible: false, state: "finalized" + end + + it "shows the correct payment fee amount for the order" do + payment_fee_field = report_table.last[12] + expect(payment_fee_field).to eq completed_payment.adjustment.amount + end + end + end + context 'when a variant override applies' do let!(:order) do create(:completed_order_with_totals, line_items_count: 1, user: customer.user,