Added the delete of the code if the code usage count on the specific event is zero. Also the delete is a soft delete
This commit is contained in:
parent
3b60ad95d4
commit
3b83e97827
|
|
@ -67,4 +67,36 @@ class EventDiscountCodesController extends MyBaseController
|
|||
'redirectUrl' => route('showEventDiscountCodes', [ 'event_id' => $event_id ]),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $event_id
|
||||
* @param integer $access_code_id
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function postDelete($event_id, $access_code_id)
|
||||
{
|
||||
/** @var Event $event */
|
||||
$event = Event::scope()->findOrFail($event_id);
|
||||
|
||||
if ($event->hasAccessCode($access_code_id)) {
|
||||
/** @var EventAccessCodes $accessCode */
|
||||
$accessCode = EventAccessCodes::find($access_code_id);
|
||||
if ($accessCode->usage_count > 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans('DiscountCodes.cannot_delete_used_code'),
|
||||
]);
|
||||
}
|
||||
$accessCode->delete();
|
||||
}
|
||||
|
||||
session()->flash('message', trans('DiscountCodes.delete_message'));
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => trans("Controllers.refreshing"),
|
||||
'redirectUrl' => route('showEventDiscountCodes', [ 'event_id' => $event_id ]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -609,19 +609,21 @@ Route::group(
|
|||
'uses' => 'EventDiscountCodesController@show',
|
||||
]);
|
||||
|
||||
/**
|
||||
* Event access codes
|
||||
*/
|
||||
Route::get('{event_id}/access_codes/create', [
|
||||
'as' => 'showCreateEventAccessCode',
|
||||
'as' => 'showCreateEventAccessCode',
|
||||
'uses' => 'EventDiscountCodesController@showCreate',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/access_codes/create', [
|
||||
'as' => 'postCreateEventAccessCode',
|
||||
'as' => 'postCreateEventAccessCode',
|
||||
'uses' => 'EventDiscountCodesController@postCreate',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/access_codes/{access_code_id}/delete', [
|
||||
'as' => 'postDeleteEventAccessCode',
|
||||
'uses' => 'EventDiscountCodesController@postDelete',
|
||||
]);
|
||||
|
||||
/*
|
||||
* -------
|
||||
* Event Survey page
|
||||
|
|
|
|||
|
|
@ -412,4 +412,13 @@ ICSTemplate;
|
|||
|
||||
return $icsTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $accessCodeId
|
||||
* @return bool
|
||||
*/
|
||||
public function hasAccessCode($accessCodeId)
|
||||
{
|
||||
return (is_null($this->access_codes()->where('id', $accessCodeId)->first()) === false);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -228,6 +228,10 @@ $(function () {
|
|||
showMessage(data.message);
|
||||
}
|
||||
|
||||
if (typeof data.redirectUrl !== 'undefined') {
|
||||
window.location.href = data.redirectUrl;
|
||||
}
|
||||
|
||||
switch (data.status) {
|
||||
case 'success':
|
||||
$('#' + deleteType + '_' + deleteId).fadeOut();
|
||||
|
|
|
|||
|
|
@ -9628,6 +9628,10 @@ $.cf = {
|
|||
showMessage(data.message);
|
||||
}
|
||||
|
||||
if (typeof data.redirectUrl !== 'undefined') {
|
||||
window.location.href = data.redirectUrl;
|
||||
}
|
||||
|
||||
switch (data.status) {
|
||||
case 'success':
|
||||
$('#' + deleteType + '_' + deleteId).fadeOut();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
return [
|
||||
'title' => 'Discount Codes',
|
||||
'success_message' => 'Successfully Created Discount Code',
|
||||
'delete_message' => 'Successfully Removed Discount Code',
|
||||
'cannot_delete_used_code' => 'Cannot Delete a Used Code',
|
||||
'discount_codes_code' => 'Discount Code',
|
||||
'discount_codes_created_at' => 'Created At',
|
||||
'no_discount_codes_yet' => 'No Discount Codes yet!',
|
||||
|
|
|
|||
|
|
@ -43,10 +43,10 @@
|
|||
<table class="table" id="event_discount_codes">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="65%">@lang("DiscountCodes.discount_codes_code")</th>
|
||||
<th width="60%">@lang("DiscountCodes.discount_codes_code")</th>
|
||||
<th width="10%" class="has-text-center">@lang("DiscountCodes.discount_codes_usage_count")</th>
|
||||
<th width="20%" class="has-text-center">@lang("DiscountCodes.discount_codes_created_at")</th>
|
||||
<th width="5%"></th>
|
||||
<th width="10%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -55,8 +55,18 @@
|
|||
<td><strong>{{ $discountCode->code }}</strong></td>
|
||||
<td class="has-text-center"><strong>{{ $discountCode->usage_count }}</strong></td>
|
||||
<td class="has-text-center">{{ $discountCode->created_at }}</td>
|
||||
@if ($discountCode->usage_count === 0) {{-- Can only remove if haven't been used before--}}
|
||||
<td><a href="" class="remove" data-url="{{ $discountCode->id }}">Remove</a></td>
|
||||
{{-- Can only remove if haven't been used before--}}
|
||||
@if ($discountCode->usage_count === 0)
|
||||
<td class="has-text-right">
|
||||
<a class="deleteThis"
|
||||
style="cursor:pointer"
|
||||
data-route={{ route('postDeleteEventAccessCode', [
|
||||
'event_id' => $discountCode->event_id,
|
||||
'access_code_id' => $discountCode->id,
|
||||
]) }}>
|
||||
Remove
|
||||
</a>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
|
|
|
|||
Loading…
Reference in New Issue