Align maintenance status flow with approval (planned/in_progress/completed)

This commit is contained in:
Arya Dwi Putra
2025-12-02 14:28:55 +07:00
parent 7e0caa0cb6
commit 5019fc16cf
3 changed files with 12 additions and 3 deletions

View File

@@ -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(),

View File

@@ -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) {

View File

@@ -39,9 +39,10 @@
<select name="status" class="form-select" onchange="this.form.submit()">
<option value="">Semua</option>
<option value="pending" @selected(($status ?? '')==='pending')>Pending</option>
<option value="approved" @selected(($status ?? '')==='approved')>Approved</option>
<option value="planned" @selected(($status ?? '')==='planned')>Planned</option>
<option value="rejected" @selected(($status ?? '')==='rejected')>Rejected</option>
<option value="completed" @selected(($status ?? '')==='completed')>Completed</option>
<option value="in_progress" @selected(($status ?? '')==='in_progress')>In Progress</option>
</select>
</div>
<div class="col-md-3 align-self-end">