parseDataTableQuery($request); $role = $request->string('role')->toString(); $gender = $request->string('gender')->toString(); $employmentStatus = $request->string('employment_status')->toString(); $isActive = $request->string('is_active')->toString(); return Inertia::render('admin/hr/employees/Index', [ 'employees' => $this->employeeService->paginateForIndex( $tableQuery, $role, $gender, $employmentStatus, $isActive ), 'filters' => $this->dataTableFilters($tableQuery, [ 'role' => $role, 'gender' => $gender, 'employment_status' => $employmentStatus, 'is_active' => $isActive, ]), 'roles' => Role::assignableSelectOptions(), 'genders' => Gender::selectOptions(), 'employmentStatuses' => EmploymentStatus::selectOptions(), ]); } public function create(): Response { return Inertia::render('admin/hr/employees/Create', [ 'genders' => Gender::selectOptions(), 'employmentStatuses' => EmploymentStatus::selectOptions(), 'roles' => Role::assignableSelectOptions(), ]); } public function store(EmployeeRequest $request): RedirectResponse { $this->employeeService->create($request->validated()); $this->flashCreated('Pegawai'); return redirect()->route('admin.hr.employees.index'); } public function edit(User $user): Response { $user->load(['profile', 'employee', 'roles']); return Inertia::render('admin/hr/employees/Edit', [ 'genders' => Gender::selectOptions(), 'employmentStatuses' => EmploymentStatus::selectOptions(), 'roles' => Role::assignableSelectOptions(), 'employee' => $user, ]); } public function update(EmployeeRequest $request, User $user): RedirectResponse { $this->employeeService->update($user, $request->validated()); $this->flashSuccess('Data pegawai berhasil diperbarui.'); return redirect()->route('admin.hr.employees.index'); } public function toggleStatus(ToggleStatusRequest $request, User $user): RedirectResponse { $this->employeeService->toggleStatus($user, $request->validated()); $this->flashStatusUpdated('pegawai'); return back(); } public function resetPassword(User $user): RedirectResponse { $this->employeeService->resetPassword($user); $this->flashSuccess('Kata sandi berhasil direset. Pengguna telah logout dari semua sesi.'); return back(); } public function destroy(User $user): RedirectResponse { $this->employeeService->delete($user); $this->flashDeleted('Pegawai'); return redirect()->route('admin.hr.employees.index'); } }