File "ExpenseFrontsController.php"
Full Path: /home/isoftco/public_html/hrm/app/Http/Controllers/Front/ExpenseFrontsController.php
File size: 2.58 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Controllers\Front;
use App\Classes\Files;
use App\Classes\Reply;
use App\Http\Controllers\FrontBaseController;
use App\Http\Requests\Front\Expense\ExpenseStore;
use App\Models\Expense;
use Carbon\Carbon;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\View;
use Yajra\DataTables\Facades\DataTables;
class ExpenseFrontsController extends FrontBaseController
{
public function __construct()
{
parent::__construct();
$this->pageTitle = Lang::get('core.jobTitle');
$this->accountActive = 'active';
}
public function index()
{
$this->expenses = Expense::where('expenses.employee_id', employee()->id)->get();
return View::make('front.expense.index', $this->data);
}
// Datatable ajax request
public function ajax_expenses()
{
$result = Expense::select('expenses.id', 'item_name', 'purchase_from', 'purchase_date', 'bill', 'price', 'expenses.status')
->where('expenses.employee_id', employee()->id)
->orderBy('expenses.id', 'desc');
return DataTables::of($result)->editColumn('purchase_date', function ($row) {
return date('d-M-Y', strtotime($row->purchase_date));
})->editColumn('bill', function ($row) {
if(!is_null($row->bill)){
return '<a href="'.$row->bill_url.'"
target="_blank" class="btn btn-sm purple">File Uploaded</a>' ;
}
return '';
})->editColumn('status', function ($row) {
$color = ['pending' => 'warning', 'approved' => 'success', 'rejected' => 'danger'];
return "<span class='label label-{$color[$row->status]}'>{$row->status}</span>";
})
->rawColumns(['status','bill'])
->make();
}
public function create()
{
return View::make('front.expense.create', $this->data);
}
/***
* @param ExpenseStore $request
* @return array
* @throws \Exception
*/
public function store(ExpenseStore $request)
{
$request->purchase_date = Carbon::createFromFormat('d-m-Y', $request->purchase_date)->format('Y-m-d');
$expense = Expense::create($request->toArray());
if ($request->hasFile('bill')) {
$file = new Files();
$filename = $file->upload($request->file('bill'), 'expense/bills', null, null, false);
$expense->bill = $filename;
$expense->save();
}
return Reply::redirect(route('front.expenses.index'), "messages.expenseAddMessage");
}
}