WIP; only advance order to delivery state

Use the hidden_field_tag rails helper and move it
This commit is contained in:
Jean-Baptiste Bellet
2021-07-06 11:18:13 +02:00
parent af79969d96
commit 87a0a5846d
4 changed files with 28 additions and 4 deletions

View File

@@ -46,7 +46,7 @@ class CheckoutController < ::BaseController
params_adapter = Checkout::FormDataAdapter.new(permitted_params, @order, spree_current_user)
return action_failed unless @order.update(params_adapter.params[:order] || {})
checkout_workflow(params_adapter.shipping_method_id)
checkout_workflow(params_adapter.shipping_method_id, params[:advance_to_state])
rescue Spree::Core::GatewayError => e
rescue_from_spree_gateway_error(e)
rescue StandardError => e
@@ -167,8 +167,8 @@ class CheckoutController < ::BaseController
end
end
def checkout_workflow(shipping_method_id)
while @order.state != "complete"
def checkout_workflow(shipping_method_id, advance_to_state = "complete")
while @order.state != advance_to_state
if @order.state == "payment"
return if redirect_to_payment_gateway

View File

@@ -1,3 +1,26 @@
class SplitCheckoutController < CheckoutController
def update
byebug
params_adapter = Checkout::FormDataAdapter.new(permitted_params, @order, spree_current_user)
return action_failed unless @order.update(params_adapter.params[:order] || {})
checkout_workflow(params_adapter.shipping_method_id, params[:advance_to_state] || "delivery")
rescue Spree::Core::GatewayError => e
byebug
rescue_from_spree_gateway_error(e)
rescue StandardError => e
byebug
flash[:error] = I18n.t("checkout.failed")
action_failed(e)
ensure
@order.update_order!
end
private
def redirect_to_payment_gateway
return unless params&.dig(:order)&.dig(:payments_attributes)&.first&.dig(:payments_attributes)
super
end
end

View File

@@ -145,7 +145,7 @@ module Spree
adjustment.originator = payment_method
adjustment.label = adjustment_label
adjustment.save
else
elsif payment_method.present?
payment_method.create_adjustment(adjustment_label, self, true)
adjustment.reload
end

View File

@@ -7,4 +7,5 @@
%div.checkout-step.medium-6
- if true ## test step
= hidden_field_tag "advance_to_state", "delivery"
= render "split_checkout/your_details", f: f