middleware('check.permission:attendance-reports.read')->only(['index']); } public function index(Request $request) { $employees = Employee::where('business_id', auth()->user()->business_id)->whereStatus('active')->latest()->get(); $attendances = Attendance::with(['employee:id,name', 'shift:id,name']) ->where('business_id', auth()->user()->business_id) ->when($request->search, function ($query) use ($request) { $search = $request->search; $query->whereHas('employee', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }) ->orWhereHas('shift', function ($q) use ($search) { $q->where('name', 'like', '%' . $search . '%'); }); }) ->when($request->employee, function ($query) use ($request) { $employeeId = $request->employee; $query->where('employee_id', $employeeId); }) ->when($request->filled('month'), function ($query) use ($request) { $query->where('month', $request->month); }) ->latest() ->paginate($request->per_page ?? 20)->appends($request->query()); if ($request->ajax()) { return response()->json([ 'data' => view('hrmaddon::reports.attendances.datas', compact('attendances'))->render() ]); } return view('hrmaddon::reports.attendances.index', compact('attendances', 'employees')); } }