Files
openfoodnetwork/app/services/restart_checkout.rb

33 lines
547 B
Ruby

# Resets the passed order to cart state while clearing associated payments and shipments
class RestartCheckout
def initialize(order)
@order = order
end
def call
return if order.cart?
reset_state_to_cart
clear_shipments
clear_payments
order.reload
end
private
attr_reader :order
def reset_state_to_cart
order.restart_checkout!
end
def clear_shipments
order.shipments.with_state(:pending).destroy_all
end
def clear_payments
order.payments.with_state(:checkout).destroy_all
end
end