From 856386fcb013c199a5efe68d6e9a149d4e16f66c Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Mon, 20 Mar 2023 16:26:58 +1100 Subject: [PATCH] SplitCheckoutController refactor add_voucher Now all redirection/render_error happen in #update, it makes it easier to understand. --- app/controllers/split_checkout_controller.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index 10b3632740..e8ab1d6e7f 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -32,7 +32,11 @@ class SplitCheckoutController < ::BaseController end def update - return add_voucher if payment_step? && params[:order][:voucher_code] + if add_voucher + return redirect_to checkout_step_path(:payment) + elsif @order.errors.present? + return render_error + end if confirm_order || update_order return if performed? @@ -191,19 +195,21 @@ class SplitCheckoutController < ::BaseController end def add_voucher + return unless payment_step? && params[:order] && params[:order][:voucher_code] + # Fetch Voucher voucher = Voucher.find_by(code: params[:order][:voucher_code], enterprise: @order.distributor) if voucher.nil? @order.errors.add(:voucher, I18n.t('split_checkout.errors.voucher_not_found')) - return render_error + return false end # Create adjustment # TODO add tax part of adjustement voucher.create_adjustment(voucher.code, @order) - redirect_to checkout_step_path(:payment) + true end def summary_step?