diff --git a/app/Http/Controllers/EventCheckoutController.php b/app/Http/Controllers/EventCheckoutController.php index e040ad53..8f6e18c1 100644 --- a/app/Http/Controllers/EventCheckoutController.php +++ b/app/Http/Controllers/EventCheckoutController.php @@ -299,6 +299,15 @@ class EventCheckoutController extends Controller * Begin payment attempt before creating the attendees etc. * */ if ($ticket_order['order_requires_payment']) { + + /* + * Check if the user has chosen to pay offline + * and if they are allowed + */ + if($request->get('pay_offline') && $event->enable_offline_payments) { + return $this->completeOrder($event_id); + } + try { $gateway = Omnipay::create($ticket_order['payment_gateway']->name); @@ -479,13 +488,14 @@ class EventCheckoutController extends Controller $order->first_name = $request_data['order_first_name']; $order->last_name = $request_data['order_last_name']; $order->email = $request_data['order_email']; - $order->order_status_id = config('attendize.order_complete'); + $order->order_status_id = $request_data['pay_offline'] ? config('attendize.order_awaiting_payment') : config('attendize.order_complete'); $order->amount = $ticket_order['order_total']; $order->booking_fee = $ticket_order['booking_fee']; $order->organiser_booking_fee = $ticket_order['organiser_booking_fee']; $order->discount = 0.00; $order->account_id = $event->account->id; $order->event_id = $ticket_order['event_id']; + $order->is_payment_received = $request_data['pay_offline'] ? 0 : 1; $order->save(); /* @@ -609,7 +619,7 @@ class EventCheckoutController extends Controller /* * Queue up some tasks - Emails to be sent, PDFs etc. */ - Log::info('Firiing the event'); + Log::info('Firing the event'); event(new OrderCompletedEvent($order)); diff --git a/config/attendize.php b/config/attendize.php index 7de896e5..94454cd4 100644 --- a/config/attendize.php +++ b/config/attendize.php @@ -43,6 +43,7 @@ return [ 'order_refunded' => 2, 'order_partially_refunded' => 3, 'order_cancelled' => 4, + 'order_awaiting_payment' => 5, /* Attendee question types */ 'question_textbox_single' => 1,