From 2fda5508212824f62f7e1450674f5fda1caf2021 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 28 Apr 2021 21:40:08 +0100 Subject: [PATCH 1/3] Add test for shipment state after ship action --- spec/features/admin/orders_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/features/admin/orders_spec.rb b/spec/features/admin/orders_spec.rb index 63e9feb687..df9bc5725c 100644 --- a/spec/features/admin/orders_spec.rb +++ b/spec/features/admin/orders_spec.rb @@ -93,6 +93,7 @@ feature ' expect(page).to have_css "i.success" expect(order.reload.shipments.any?(&:shipped?)).to be true + expect(order.shipment_state).to eq("shipped") end end end From 290c1d0ebf2268652986e8ae477c256f53b06107 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 28 Apr 2021 21:43:28 +0100 Subject: [PATCH 2/3] Bring in shipment state updating from Spree 2.2 --- app/models/spree/shipment.rb | 9 +++++++++ .../app/services/order_management/order/updater.rb | 1 + 2 files changed, 10 insertions(+) diff --git a/app/models/spree/shipment.rb b/app/models/spree/shipment.rb index b5f7516f06..e4790a7ad5 100644 --- a/app/models/spree/shipment.rb +++ b/app/models/spree/shipment.rb @@ -331,6 +331,15 @@ module Spree fee_adjustment.finalize! send_shipped_email touch :shipped_at + update_order_shipment_state + end + + def update_order_shipment_state + new_state = order.updater.update_shipment_state + order.update_columns( + shipment_state: new_state, + updated_at: Time.now, + ) end def send_shipped_email diff --git a/engines/order_management/app/services/order_management/order/updater.rb b/engines/order_management/app/services/order_management/order/updater.rb index e1bd346619..649a5e604d 100644 --- a/engines/order_management/app/services/order_management/order/updater.rb +++ b/engines/order_management/app/services/order_management/order/updater.rb @@ -101,6 +101,7 @@ module OrderManagement end order.state_changed('shipment') + order.shipment_state end # Updates the +payment_state+ attribute according to the following logic: From 2f49d089ea6cc005040ff2396fb14c56c22697c7 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 29 Apr 2021 08:56:17 +0100 Subject: [PATCH 3/3] Use Time.zone.now --- app/models/spree/shipment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/spree/shipment.rb b/app/models/spree/shipment.rb index e4790a7ad5..2db789a98d 100644 --- a/app/models/spree/shipment.rb +++ b/app/models/spree/shipment.rb @@ -338,7 +338,7 @@ module Spree new_state = order.updater.update_shipment_state order.update_columns( shipment_state: new_state, - updated_at: Time.now, + updated_at: Time.zone.now, ) end