Merge pull request #5931 from Matt-Yorkley/customer-totals-fees

Customer totals fee calculations
This commit is contained in:
Luis Ramos
2020-08-21 14:09:00 +01:00
committed by GitHub
2 changed files with 26 additions and 2 deletions

View File

@@ -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

View File

@@ -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,