From 4916f823aaaee49fbf78a0fe43833a2cdfde5b8c Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 11 Aug 2021 17:22:24 +0100 Subject: [PATCH] Handle order confirmation --- app/controllers/split_checkout_controller.rb | 23 +++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index b5fb482a49..e7e7221528 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -47,9 +47,8 @@ class SplitCheckoutController < ::BaseController end def update - if @order.update(order_params) - OrderWorkflow.new(@order).advance_to_confirmation - + if confirm_order || update_order + advance_order_state redirect_to_step else flash[:error] = "Saving failed, please update the highlighted fields" @@ -67,6 +66,24 @@ class SplitCheckoutController < ::BaseController private + def confirm_order + return unless @order.confirmation? && params[:confirm_order] + + @order.confirm! + end + + def update_order + return unless params[:order] + + @order.update(order_params) + end + + def advance_order_state + return if @order.confirmation? || @order.complete? + + OrderWorkflow.new(@order).advance_to_confirmation + end + def checkout_step @checkout_step ||= params[:step] end