From 84a40e6ae052ecc29430a0ec39d4c0d27c100016 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 19 Mar 2021 13:06:38 +0000 Subject: [PATCH] Improve Order#enterpise_fee_tax --- app/models/spree/order.rb | 2 +- spec/models/spree/order_spec.rb | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index ba0cdc2b80..817a0d716b 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -565,7 +565,7 @@ module Spree end def enterprise_fee_tax - all_adjustments.reload.enterprise_fee.sum(:included_tax) + all_adjustments.tax.where(adjustable: all_adjustments.enterprise_fee).sum(:amount) end def total_tax diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index f5d25a2b5a..5286c02fa2 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -627,21 +627,28 @@ describe Spree::Order do end end - describe "getting the enterprise fee tax" do + describe "#enterprise_fee_tax" do let!(:order) { create(:order) } - let(:enterprise_fee1) { create(:enterprise_fee) } - let(:enterprise_fee2) { create(:enterprise_fee) } - let!(:adjustment1) { - create(:adjustment, adjustable: order, originator: enterprise_fee1, label: "EF 1", - amount: 123, included_tax: 10.00, order: order) + let(:enterprise_fee) { create(:enterprise_fee) } + let!(:fee_adjustment) { + create(:adjustment, adjustable: order, originator: enterprise_fee, + amount: 100, order: order, state: "closed") } - let!(:adjustment2) { - create(:adjustment, adjustable: order, originator: enterprise_fee2, label: "EF 2", - amount: 123, included_tax: 2.00, order: order) + let!(:fee_tax1) { + create(:adjustment, adjustable: fee_adjustment, originator_type: "Spree::TaxRate", + amount: 12.3, order: order, state: "closed") + } + let!(:fee_tax2) { + create(:adjustment, adjustable: fee_adjustment, originator_type: "Spree::TaxRate", + amount: 4.5, order: order, state: "closed") + } + let!(:admin_adjustment) { + create(:adjustment, adjustable: order, originator: nil, + amount: 6.7, order: order, state: "closed") } - it "returns a sum of the tax included in all enterprise fees" do - expect(order.reload.enterprise_fee_tax).to eq(12) + it "returns a sum of all taxes on enterprise fees" do + expect(order.reload.enterprise_fee_tax).to eq(16.8) end end