From 4d7fa8b1bf9aa6243d43de7cafae8765c3b29f9a Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Tue, 10 Jun 2014 11:15:04 +1000 Subject: [PATCH] Removing payments when emptying order --- app/models/spree/order_decorator.rb | 7 ++++--- spec/models/spree/order_spec.rb | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 14c177f384..c0f4a8fb4f 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -76,11 +76,12 @@ Spree::Order.class_eval do end end - def empty_with_clear_shipping! - empty_without_clear_shipping! + def empty_with_clear_shipping_and_payments! + empty_without_clear_shipping_and_payments! + payments.clear update_attributes(shipping_method_id: nil) end - alias_method_chain :empty!, :clear_shipping + alias_method_chain :empty!, :clear_shipping_and_payments def set_order_cycle!(order_cycle) unless self.order_cycle == order_cycle diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 75ea22562a..3a7c19d775 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -218,6 +218,13 @@ describe Spree::Order do subject.empty! subject.shipping_method.should == nil end + + it "removes payments" do + subject.payments << create(:payment) + subject.save! + subject.empty! + subject.payments.should == [] + end end describe "setting the order cycle" do