File "AwardsController.php"

Full Path: /home/isoftco/public_html/hrm/app/Http/Controllers/Admin/AwardsController.php
File size: 4.05 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace App\Http\Controllers\Admin;

use App\Classes\Reply;
use App\Http\Controllers\AdminBaseController;
use App\Http\Requests\Admin\Award\DeleteRequest;
use App\Http\Requests\Admin\Award\EditRequest;
use App\Http\Requests\Admin\Award\StoreRequest;
use App\Http\Requests\Admin\Award\UpdateRequest;
use App\Models\Award;

use App\Models\Employee;
use Illuminate\Support\Facades\View;
use Yajra\DataTables\Facades\DataTables;

class AwardsController extends AdminBaseController
{
    public function __construct()
    {
        parent::__construct();
        $this->awardsOpen = 'active';
        $this->awardsActive = 'active';
        $this->hrMenuActive = 'active';
        $this->addAwardsActive = 'active';
        $this->pageTitle = trans('pages.awards.indexTitle');
    }

    /**
     * @return \Illuminate\Contracts\View\View
     */
    public function index()
    {

        $this->awardsActive = 'active';
        return View::make('admin.awards.index', $this->data);
    }


    /**
     * @return mixed
     * @throws \Exception
     */
    public function ajax_awards()
    {
        $result = Award::select('awards.id', 'awards.employee_id', 'full_name', 'award_name', 'gift', 'month', 'awards.year', 'awards.created_at')
            ->join('employees', 'awards.employee_id', '=', 'employees.id')
            ->get();

        return DataTables::of($result)->addColumn('For Month', function ($row) {
            return ucfirst($row->month) . ' ' . $row->year;
        })->addColumn('edit', function ($row) {
            return '<a  class="btn purple btn-sm margin-bottom-10"  onclick="loadView(\'' . route("admin.awards.edit", $row->id) . '\');"><i class="fa fa-edit"></i> <span class="hidden-sm hidden-xs">' . trans("core.btnViewEdit") . '</span></a>
                          <a href="javascript:;" onclick="del(\'' . $row->id . '\',\'' . $row->award_name . '\');return false;" class="btn red btn-sm margin-bottom-10">
                        <i class="fa fa-trash"></i> <span class="hidden-sm hidden-xs">' . trans("core.btnDelete") . '</span></a>';
        })->editColumn('full_name', function ($row) {
            $employee = Employee::find($row->employee_id);
            return $employee->decryptToCollection()->full_name;
        })->removeColumn('year')
            ->removeColumn('eid')
            ->rawColumns(['For Month', 'edit'])
            ->make();
    }

    public function create()
    {
        $this->pageTitle = trans('pages.awards.createTitle');
        $this->addAwardsActive = 'active';
        $this->employees = Employee::manager()
            ->select('full_name', 'employees.id','employeeID')
            ->where('status', '=', 'active')->get();

        return View::make('admin.awards.create', $this->data);
    }

    /**
     * @param StoreRequest $request
     * @return mixed
     */
    public function store(StoreRequest $request)
    {

        Award::create($request->toArray());
        return Reply::redirect(route('admin.awards.index'), "messages.awardAddMessage");
    }


    /**
     * @param EditRequest $request
     * @param $id
     * @return \Illuminate\Contracts\View\View
     */
    public function edit(EditRequest $request, $id)
    {
        $this->pageTitle = trans('pages.awards.editTitle');

        $this->award = Award::find($id);

        $this->employees = Employee::manager()
            ->select('full_name', 'employees.id','employeeID')
            ->where('status', '=', 'active')->get();


        return View::make('admin.awards.edit', $this->data);
    }

    /**
     * @param UpdateRequest $request
     * @param $id
     * @return array|\Illuminate\Contracts\View\View
     */
    public function update(UpdateRequest $request, $id)
    {
        $award = Award::findOrFail($id);
        $award->update($request->toArray());

        return Reply::success("messages.updateSuccess");
    }

    /**
     * @param DeleteRequest $request
     * @param $id
     * @return array
     */
    public function destroy(DeleteRequest $request, $id)
    {
        Award::destroy($id);
        return Reply::success("messages.awardDeleteMessage");
    }

}