%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\DataTables\AwardDataTable;
use App\Helper\Reply;
use App\Http\Requests\Appreciation\AppreciationType\StoreRequest;
use App\Http\Requests\Appreciation\AppreciationType\UpdateRequest;
use App\Models\Award;
use App\Models\AwardIcon;
use App\Models\BaseModel;
use App\Models\Appreciation;
use App\Scopes\ActiveScope;
use Illuminate\Http\Request;
class AwardController extends AccountBaseController
{
public function __construct()
{
parent::__construct();
$this->pageTitle = 'app.menu.award';
}
public function index(AwardDataTable $dataTable)
{
$viewPermission = user()->permission('view_appreciation');
abort_403(!in_array($viewPermission, ['all', 'added', 'owned', 'both']));
return $dataTable->render('awards.index', $this->data);
}
public function create()
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$this->icons = AwardIcon::all();
$this->pageTitle = __('modules.appreciations.addAppreciationType');
if (request()->ajax()) {
$html = view('awards.ajax.create', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'awards.ajax.create';
return view('awards.create', $this->data);
}
public function quickCreate()
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$this->icons = AwardIcon::all();
$this->pageTitle = __('modules.appreciations.addAppreciationType');
return view('appreciations.ajax.create_appreciation_type', $this->data);
}
public function quickStore(StoreRequest $request)
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$award = new Award();
$award->title = $request->title;
$award->award_icon_id = $request->icon;
$award->color_code = $request->color_code;
$award->summary = $request->summery;
$award->save();
$awards = Award::with('awardIcon')->where('status', 'active')->get();
$options = $this->options($awards, $award);
return Reply::successWithData(__('messages.recordSaved'), ['data' => $options]);
}
public static function options($items, $group = null): string
{
$options = '<option value="">--</option>';
foreach ($items as $item) {
$name = $item->title;
$selected = (!is_null($group) && ($item->id == $group->id)) ? 'selected' : '';
$icon = "<i class='bi bi-". $item->awardIcon->icon."' style='color:".$item->color_code ."'></i> ";
$options .= '<option ' . $selected . ' data-content="'.$icon .' '. $name .'" value="'.$item->id.'">
'.$name.'
</option>';
}
return $options;
}
public function store(StoreRequest $request)
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$appreciation = new Award();
$appreciation->title = $request->title;
$appreciation->award_icon_id = $request->icon;
$appreciation->color_code = $request->color_code;
$appreciation->summary = $request->summery;
$appreciation->save();
return Reply::successWithData(__('messages.recordSaved'), ['redirectUrl' => route('awards.index')]);
}
public function show($id)
{
$this->appreciationType = Award::findOrFail($id);
$this->manageAppreciationPermission = user()->permission('view_appreciation');
abort_403(!($this->manageAppreciationPermission != 'none'));
$this->pageTitle = $this->appreciationType->title;
if (request()->ajax()) {
$html = view('awards.ajax.show', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'awards.ajax.show';
return view('awards.create', $this->data);
}
public function edit($id)
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$this->appreciationType = Award::findOrFail($id);
$this->icons = AwardIcon::all();
$this->pageTitle = __('modules.awards.appreciationType');
if (request()->ajax()) {
$html = view('awards.ajax.edit', $this->data)->render();
return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle]);
}
$this->view = 'awards.ajax.edit';
return view('awards.create', $this->data);
}
public function update(UpdateRequest $request, $id)
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
$appreciation = Award::findOrFail($id);
$appreciation->title = $request->title;
$appreciation->award_icon_id = $request->icon;
$appreciation->summary = $request->summery;
$appreciation->color_code = $request->color_code;
$appreciation->status = $request->status;
$appreciation->save();
return Reply::successWithData(__('messages.updateSuccess'), ['redirectUrl' => route('awards.index')]);
}
public function destroy($id)
{
$this->manageAppreciationPermission = user()->permission('manage_award');
abort_403(!($this->manageAppreciationPermission == 'all'));
Award::destroy($id);
return Reply::successWithData(__('messages.deleteSuccess'), ['redirectUrl' => route('awards.index')]);
}
public function changeStatus(Request $request)
{
abort_403(user()->permission('manage_award') != 'all');
$appreciationId = $request->appreciationId;
$status = $request->status;
$award = Award::findOrFail($appreciationId);
$award->status = $status;
$award->save();
return Reply::success(__('messages.updateSuccess'));
}
public function applyQuickAction(Request $request)
{
switch ($request->action_type) {
case 'delete':
$this->deleteRecords($request);
return Reply::success(__('messages.deleteSuccess'));
case 'change-leave-status':
$this->changeBulkStatus($request);
return Reply::success(__('messages.updateSuccess'));
default:
return Reply::error(__('messages.selectAction'));
}
}
protected function deleteRecords($request)
{
abort_403(user()->permission('manage_award') != 'all');
$item = explode(',', $request->row_ids);
if (($key = array_search('on', $item)) !== false) {
unset($item[$key]);
}
Award::whereIn('id', $item)->delete();
}
protected function changeBulkStatus($request)
{
abort_403(user()->permission('manage_award') != 'all');
$item = explode(',', $request->row_ids);
if (($key = array_search('on', $item)) !== false) {
unset($item[$key]);
}
Award::whereIn('id', $item)->update(['status' => $request->status]);
}
}