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:
Etienne Marais 2019-02-13 16:16:56 +02:00
parent 3b60ad95d4
commit 3b83e97827
No known key found for this signature in database
GPG Key ID: 5CE3285D17AE9F29
7 changed files with 72 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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