diff --git a/app/Http/Controllers/EventOrdersController.php b/app/Http/Controllers/EventOrdersController.php index 055451a1..5b7429ff 100644 --- a/app/Http/Controllers/EventOrdersController.php +++ b/app/Http/Controllers/EventOrdersController.php @@ -344,4 +344,26 @@ class EventOrdersController extends MyBaseController 'message' => 'Message Successfully Sent', ]); } + + /** + * Mark an order as payment received + * + * @param Request $request + * @param $order_id + * @return \Illuminate\Http\JsonResponse + */ + public function postMarkPaymentReceived(Request $request, $order_id) { + $order = Order::scope()->findOrFail($order_id); + + $order->is_payment_received = 1; + $order->order_status_id = 1; + + $order->save(); + + session()->flash('message', 'Order Payment Status Successfully Updated'); + + return response()->json([ + 'status' => 'success', + ]); + } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 5fff6d29..62cc1c12 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -494,6 +494,11 @@ Route::group(['middleware' => ['auth', 'first.run']], function () { 'uses' => 'EventOrdersController@postCancelOrder', ]); + Route::post('order/{order_id}/mark_payment_received', [ + 'as' => 'postMarkPaymentReceived', + 'uses' => 'EventOrdersController@postMarkPaymentReceived', + ]); + Route::get('{event_id}/orders/export/{export_as?}', [ 'as' => 'showExportOrders', 'uses' => 'EventOrdersController@showExportOrders', diff --git a/public/assets/javascript/app-public.js b/public/assets/javascript/app-public.js index 59a940ae..792297d7 100644 --- a/public/assets/javascript/app-public.js +++ b/public/assets/javascript/app-public.js @@ -161,6 +161,16 @@ $(function() { $('.card-number').payment('formatCardNumber'); $('.card-cvc').payment('formatCardCVC'); + $('#pay_offline').change(function () { + $('.online_payment').toggle(!this.checked); + $('.offline_payment').toggle(this.checked); + + // Disable CC form inputs to prevent Chrome trying to validate hidden fields + $('.online_payment input:hidden, .online_payment input select:hidden').attr('disabled', this.checked); + + }).change(); + + }); function processFormErrors($form, errors) diff --git a/public/assets/javascript/app.js b/public/assets/javascript/app.js index bfd1473f..3c356560 100644 --- a/public/assets/javascript/app.js +++ b/public/assets/javascript/app.js @@ -392,6 +392,38 @@ $(function () { } }); + $(document.body).on('click', '.markPaymentReceived', function (e) { + + var orderId = $(this).data('id'), + route = $(this).data('route'); + + $.post(route, 'order_id=' + orderId) + .done(function (data) { + + if (typeof data.message !== 'undefined') { + showMessage(data.message); + } + + switch (data.status) { + case 'success': + setTimeout(function () { + document.location.reload(); + }, 300); + break; + case 'error': + /* Error */ + break; + + default: + break; + } + }).fail(function (data) { + showMessage(Attendize.GenericErrorMessages); + }); + e.preventDefault(); + }); + + }); function changeQuestionType(select) diff --git a/public/assets/javascript/backend.js b/public/assets/javascript/backend.js index 8bf0c240..f3a1c437 100644 --- a/public/assets/javascript/backend.js +++ b/public/assets/javascript/backend.js @@ -9372,6 +9372,38 @@ $.cf = { } }); + $(document.body).on('click', '.markPaymentReceived', function (e) { + + var orderId = $(this).data('id'), + route = $(this).data('route'); + + $.post(route, 'order_id=' + orderId) + .done(function (data) { + + if (typeof data.message !== 'undefined') { + showMessage(data.message); + } + + switch (data.status) { + case 'success': + setTimeout(function () { + document.location.reload(); + }, 300); + break; + case 'error': + /* Error */ + break; + + default: + break; + } + }).fail(function (data) { + showMessage(Attendize.GenericErrorMessages); + }); + e.preventDefault(); + }); + + }); function changeQuestionType(select) diff --git a/public/assets/javascript/frontend.js b/public/assets/javascript/frontend.js index 6d39bec8..7f0e0679 100644 --- a/public/assets/javascript/frontend.js +++ b/public/assets/javascript/frontend.js @@ -4635,7 +4635,7 @@ function log() { toggleSubmitDisabled($submitButton); - if ($form.hasClass('payment-form') && !$('#pay_offline').is(":checked")) { + if ($form.hasClass('payment-form') && !$('#pay_offline').is(":checked")) { clearFormErrors($('.payment-form')); Stripe.setPublishableKey($form.data('stripe-pub-key')); @@ -4730,14 +4730,15 @@ function log() { $('.card-cvc').payment('formatCardCVC'); $('#pay_offline').change(function () { - $('.online_payment').toggle(!this.checked); - $('.offline_payment').toggle(this.checked); + $('.online_payment').toggle(!this.checked); + $('.offline_payment').toggle(this.checked); - // Disbale CC form inputs to prevent Chrome trying to validate hidden fields - $('.online_payment input:hidden, .online_payment input select:hidden').attr('disabled', this.checked); + // Disable CC form inputs to prevent Chrome trying to validate hidden fields + $('.online_payment input:hidden, .online_payment input select:hidden').attr('disabled', this.checked); }).change(); + }); function processFormErrors($form, errors) diff --git a/resources/views/ManageEvent/Modals/ManageOrder.blade.php b/resources/views/ManageEvent/Modals/ManageOrder.blade.php index 3a9b29c8..cbe0c0e0 100644 --- a/resources/views/ManageEvent/Modals/ManageOrder.blade.php +++ b/resources/views/ManageEvent/Modals/ManageOrder.blade.php @@ -21,6 +21,13 @@ @endif + @if(!$order->is_payment_received) +
+ This order is awaiting payment. +
+ Mark Payment Received + @endif +

Order Overview