public function cancel(User $user, EmployeeLeave $leave) { if ($leave->employee->user->id == $user->id) { if ($leave->isStatus('filed') or $leave->isStatus('pending')) { return true; } } }
/** * Bind data to the view. * * @param View $view * @return void */ public function compose(View $view) { $user = $this->user; $travelOrderCount = 0; $regularLeaveCount = 0; $specialLeaveCount = 0; if ($user->employee && $user->employee->canApproveRegularLeave()) { $regularLeaveCount = $user->employee->regular_leave_recommending_approvals->merge($user->employee->regular_leave_approved_by)->count(); } if ($user->employee && $user->employee->canApproveSpecialLeave()) { $specialLeaveCount = $user->employee->special_leave_recommending_approvals->merge($user->employee->special_leave_approved_by)->count(); } if ($user->isAdmin()) { $regularLeaveCount = EmployeeLeave::approved()->count(); $specialLeaveCount = EmployeeSpecialLeave::approved()->count(); } if ($user->employee && $user->employee->canApproveTravelOrder()) { if ($user->isFinanceDirector()) { $travelOrderCount = TravelOrder::recommended()->count(); } else { $travelOrderCount = $user->employee->travel_order_recommending_approvals->merge($user->employee->travel_order_approved_by)->count(); } } $view->with(compact('user', 'regularLeaveCount', 'specialLeaveCount', 'travelOrderCount')); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if ($this->user->isAdmin()) { $regular_leaves = EmployeeLeave::certified()->orderBy('updated_at', 'desc')->get(); $special_leaves = EmployeeSpecialLeave::certified()->orderBy('updated_at', 'desc')->get(); return view('leaves.approved_leaves')->with(compact('regular_leaves', 'special_leaves')); } flash()->error('You are not allowed to view this.'); return redirect()->back(); }
/** * Bind data to the view. * * @param View $view * @return void */ public function compose(View $view) { if (auth()->user()->employee) { $stats = collect(); $sessions = $this->session->getActiveUsers(); $stats->push(['title' => 'System users', 'class' => 'info', 'icon' => 'users', 'number' => User::count(), 'description' => 'Registered user account in the system', 'url' => '/employee']); $stats->push(['title' => 'User with PDS', 'class' => 'success', 'icon' => 'user', 'number' => round(Employee::count() / User::count() * 100, 0) . '%', 'description' => Employee::count() . ' employees with Personal Data Sheet', 'url' => '/employee']); $stats->push(['title' => 'Leave Request', 'class' => 'danger', 'icon' => 'thumbs-o-up', 'number' => EmployeeLeave::approved()->count(), 'description' => '<i class="fa fa-thumbs-o-up"></i> ' . EmployeeLeave::count() . ' Total filed leaves', 'url' => 'leave']); $stats->push(['title' => 'Upcoming Trainings', 'class' => 'warning', 'icon' => 'calendar', 'number' => Training::where('start', '>', Carbon::today())->count(), 'description' => '<i class="fa fa-calendar"></i> ' . Training::count() . ' Trainings & Seminar', 'url' => '/calendar']); $view->with(compact('stats', 'sessions')); } }
public function destroy($id) { $leave = EmployeeLeave::findOrFail($id); $this->authorize('cancel', $leave); $leave->delete(); return response()->json(['success' => true], 200); }
public function pendingLeave() { return EmployeeLeave::pending()->with('employee')->get(); }