From 8d3f25bb391ac758fb1736c04d1a7f723f3355c0 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 13 Mar 2015 17:50:01 +1100 Subject: [PATCH] Fix intermittent 500 error when updating the cart --- app/models/spree/tax_rate_decorator.rb | 1 + spec/models/spree/adjustment_spec.rb | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/app/models/spree/tax_rate_decorator.rb b/app/models/spree/tax_rate_decorator.rb index e41c20db70..835c001a05 100644 --- a/app/models/spree/tax_rate_decorator.rb +++ b/app/models/spree/tax_rate_decorator.rb @@ -2,6 +2,7 @@ Spree::TaxRate.class_eval do def adjust_with_included_tax(order) adjust_without_included_tax(order) + order.reload (order.adjustments.tax + order.price_adjustments).each do |a| a.set_absolute_included_tax! a.amount end diff --git a/spec/models/spree/adjustment_spec.rb b/spec/models/spree/adjustment_spec.rb index 35746b28fd..21475753be 100644 --- a/spec/models/spree/adjustment_spec.rb +++ b/spec/models/spree/adjustment_spec.rb @@ -23,6 +23,11 @@ module Spree adjustment.amount.should be > 0 adjustment.included_tax.should == adjustment.amount end + + it "does not crash when order data has been updated previously" do + order.price_adjustments.first.destroy + tax_rate.adjust(order) + end end describe "Shipment adjustments" do