diff --git a/app/controllers/split_checkout_controller.rb b/app/controllers/split_checkout_controller.rb index 83116d6d8ff..be6301d8dc3 100644 --- a/app/controllers/split_checkout_controller.rb +++ b/app/controllers/split_checkout_controller.rb @@ -30,11 +30,7 @@ def edit end def update - if add_voucher - return render_voucher_section - elsif @order.errors.present? - return render_error - end + return process_voucher if params[:apply_voucher].present? if confirm_order || update_order return if performed? @@ -196,8 +192,19 @@ def shipping_method_ship_address_not_required? selected_shipping_method.first.require_ship_address == false end + def process_voucher + if add_voucher + render_voucher_section + elsif @order.errors.present? + render_error + end + end + def add_voucher - return unless payment_step? && params.dig(:order, :voucher_code).present? + if params.dig(:order, :voucher_code).blank? + @order.errors.add(:voucher, I18n.t('split_checkout.errors.voucher_not_found')) + return false + end # Fetch Voucher voucher = Voucher.find_by(code: params[:order][:voucher_code], enterprise: @order.distributor) diff --git a/app/views/split_checkout/_voucher_section.html.haml b/app/views/split_checkout/_voucher_section.html.haml index 44d1499054f..1e760b3c903 100644 --- a/app/views/split_checkout/_voucher_section.html.haml +++ b/app/views/split_checkout/_voucher_section.html.haml @@ -17,4 +17,4 @@ = t("split_checkout.step2.voucher.warning_forfeit_remaining_amount") - else = text_field_tag "[order][voucher_code]", params.dig(:order, :voucher_code), data: { action: "input->toggle-button-disabled#inputIsChanged", }, placeholder: t("split_checkout.step2.voucher.placeholder") , class: "voucher" - = submit_tag t("split_checkout.step2.voucher.apply"), disabled: true, class: "button cancel voucher", data: { "toggle-button-disabled-target": "button" }, id: "testdisable" + = submit_tag t("split_checkout.step2.voucher.apply"), name: "apply_voucher", disabled: true, class: "button cancel voucher", data: { "toggle-button-disabled-target": "button" }, id: "testdisable"