parseDataTableQuery($request); $periodId = $request->integer('period_id') ?: null; $period = $this->payrollService->resolvePeriod($periodId); return Inertia::render('admin/finance/payroll/Index', [ 'periods' => $this->payrollService->listPeriods(), 'currentPeriod' => $period, 'payrolls' => $period ? $this->payrollService->paginateForPeriod($period, $tableQuery) : null, 'summary' => $period ? $this->payrollService->periodSummary($period) : null, 'adjustmentTypes' => PayrollAdjustmentType::selectOptions(), 'filters' => array_merge( $this->dataTableFilters($tableQuery), ['period_id' => $period?->id], ), ]); } public function close(PayrollPeriod $payrollPeriod): RedirectResponse { $this->payrollService->closePeriod($payrollPeriod, auth()->user()); $this->flashSuccess('Periode gaji berhasil ditutup.'); return redirect()->route('admin.finance.payroll.index', [ 'period_id' => $payrollPeriod->id, ]); } }