diff --git a/app/Http/Controllers/Admin/Finance/PayrollController.php b/app/Http/Controllers/Admin/Finance/PayrollController.php index ebef0a3..d1b8676 100644 --- a/app/Http/Controllers/Admin/Finance/PayrollController.php +++ b/app/Http/Controllers/Admin/Finance/PayrollController.php @@ -16,20 +16,20 @@ public function __construct( public function pay(Payroll $payroll): RedirectResponse { return $this->handleAction( - fn () => $this->service->pay($payroll), + fn() => $this->service->pay($payroll), 'Gaji berhasil dibayar.', 'admin.finance.payroll-periods.show', - ['payroll_period' => $payroll->payroll_period_id] + parameters: ['payroll_period' => $payroll->payroll_period_id] ); } public function cancel(Payroll $payroll): RedirectResponse { return $this->handleAction( - fn () => $this->service->cancel($payroll), + fn() => $this->service->cancel($payroll), 'Gaji berhasil dibatalkan.', 'admin.finance.payroll-periods.show', - ['payroll_period' => $payroll->payroll_period_id] + parameters: ['payroll_period' => $payroll->payroll_period_id] ); } } diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 3cc2690..080b518 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -8,18 +8,19 @@ abstract class Controller { - protected function handleAction(callable $action, string $successMessage, string $redirectRoute, array $parameters = []): RedirectResponse + protected function handleAction(callable $action, string $successMessage, string $redirectRoute, ?string $errorRoute = null, array $parameters = []): RedirectResponse { try { $action(); Inertia::flash('toast', ['type' => 'success', 'message' => $successMessage]); + return to_route($redirectRoute, $parameters); } catch (ValidationException $e) { $firstError = collect($e->errors())->flatten()->first(); Inertia::flash('toast', ['type' => 'error', 'message' => $firstError ?? 'Terjadi kesalahan.']); + return to_route($errorRoute ?? $redirectRoute, $parameters); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); + return to_route($errorRoute ?? $redirectRoute, $parameters); } - - return to_route($redirectRoute, $parameters); } }