Added ability to mark orders as payment received from the manage orders page

This commit is contained in:
Dave Earley 2016-07-09 14:44:00 +01:00
parent 95b3f4f252
commit 47c3fdede1
8 changed files with 115 additions and 6 deletions

View File

@ -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',
]);
}
}

View File

@ -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',

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -21,6 +21,13 @@
</div>
@endif
@if(!$order->is_payment_received)
<div class="alert alert-info">
This order is awaiting payment.
</div>
<a data-id="{{ $order->id }}" data-route="{{ route('postMarkPaymentReceived', ['order_id' => $order->id]) }}" class="btn btn-primary btn-sm markPaymentReceived" href="javascript:void(0);">Mark Payment Received</a>
@endif
<h3>Order Overview</h3>
<style>
.order_overview b {

View File

@ -122,7 +122,7 @@ Event Orders
</a>
</td>
<td>
<span class="label label-{{($order->is_refunded || $order->is_partially_refunded) ? 'warning' : 'success'}}">
<span class="label label-{{(!$order->is_payment_received || $order->is_refunded || $order->is_partially_refunded) ? 'warning' : 'success'}}">
{{$order->orderStatus->name}}
</span>
</td>