diff --git a/app/Services/Asset/AssetService.php b/app/Services/Asset/AssetService.php index 32bdd6e..a6bbd47 100644 --- a/app/Services/Asset/AssetService.php +++ b/app/Services/Asset/AssetService.php @@ -270,7 +270,8 @@ class AssetService 'description' => $data['description'] ?? null, 'vendor' => $data['vendor'] ?? null, 'cost' => $data['cost'] ?? null, - 'status' => $requireApproval ? 'pending' : 'approved', + // Flow: pending (menunggu approval) -> planned (approved, belum mulai) -> in_progress -> completed + 'status' => $requireApproval ? 'pending' : 'planned', 'notes' => $data['notes'] ?? null, 'requested_by' => auth()->id(), 'approved_by' => $requireApproval ? null : auth()->id(), diff --git a/app/Services/Workflow/ApprovalService.php b/app/Services/Workflow/ApprovalService.php index 6216f0d..d225543 100644 --- a/app/Services/Workflow/ApprovalService.php +++ b/app/Services/Workflow/ApprovalService.php @@ -120,7 +120,7 @@ class ApprovalService if ($approvable instanceof AssetMaintenance) { $approvable->update([ - 'status' => 'approved', + 'status' => 'planned', 'approved_by' => auth()->id(), 'approved_at' => now(), ]); @@ -143,6 +143,13 @@ class ApprovalService private function notifyDecision(AssetApprovalRequest $approval, bool $approved, ?string $notes = null): void { + // Jika maintenance ditolak, tandai status maintenance sebagai rejected + if (!$approved && $approval->approvable instanceof AssetMaintenance) { + $approval->approvable->update([ + 'status' => 'rejected', + ]); + } + if ($approval->requested_by) { $requester = \App\Models\User::find($approval->requested_by); if ($requester) { diff --git a/resources/views/assets/maintenances.blade.php b/resources/views/assets/maintenances.blade.php index e0cd917..d97bcbd 100644 --- a/resources/views/assets/maintenances.blade.php +++ b/resources/views/assets/maintenances.blade.php @@ -39,9 +39,10 @@