Work Order
Modul inti pengelolaan pekerjaan servis kendaraan. Mencakup alur dari penerimaan kendaraan, diagnosa, pengerjaan mekanik, quality check, hingga serah terima dan pembayaran.
Status Work Order
| Status | Badge | Deskripsi | Actor |
|---|---|---|---|
antrian | Antrian | WO baru dibuat, menunggu mekanik tersedia | Admin |
diagnosa | Diagnosa | Mekanik sedang mendiagnosa kerusakan kendaraan | Mekanik |
pengerjaan | Pengerjaan | Pekerjaan servis sedang berlangsung | Mekanik |
qc | QC | Quality check oleh kepala mekanik | Kepala Mekanik |
selesai | Selesai | Pekerjaan selesai, siap diserahkan ke pelanggan | Admin/Kasir |
diserahkan | Diserahkan | Kendaraan sudah diserahkan ke pelanggan | Admin |
UI Mockup — Daftar Work Order
Bengkel
Pintar
Pintar
Operations
Work Order
Quotation
Kasir
Inventory
Parts
Purchase
Daftar Work Order
8
Antrian
3
Diagnosa
12
Dikerjakan
5
Selesai
WO-2025-001
Honda Jazz • B 1234 ABC • Budi Santoso
WO-2025-002
Toyota Avanza • B 5678 DEF • Siti Rahayu
WO-2025-003
Suzuki Ertiga • D 9012 GHI • Ahmad Fauzi
WO-2025-004
Mitsubishi Xpander • F 3456 JKL
Bengkel
Pintar
Pintar
Work Order
Quotation
Kasir
Info Kendaraan
Pelanggan
Ahmad Fauzi
No. Polisi
D 9012 GHI
Kendaraan
Suzuki Ertiga 2022
KM
45.230 km
Job Items
3 items
| Jenis | Deskripsi | Mekanik | Status |
|---|---|---|---|
| Servis | Ganti oli mesin | Rudi | Selesai |
| Servis | Cek rem depan | Rudi | Proses |
| Parts | Kampas rem depan | — | Menunggu |
Flow Diagram — Alur Work Order
Main Work Order Flow
Alur lengkap dari pembuatan WO hingga serah terima kendaraan
flowchart TD
A([Pelanggan Datang]) --> B[Admin: Registrasi\nData Kendaraan & Keluhan]
B --> C{Ada Quotation\nSebelumnya?}
C -->|Ya| D[Import dari Quotation/SPK]
C -->|Tidak| E[Buat WO Baru]
D --> F[WO Status: ANTRIAN]
E --> F
F --> G[Admin: Assign Mekanik]
G --> H[Mekanik: Mulai Diagnosa]
H --> I[WO Status: DIAGNOSA]
I --> J{Perlu\nSparepart?}
J -->|Ya| K[Buat Parts Request]
K --> L{Stok\nTersedia?}
L -->|Ya| M[Gudang: Keluarkan Parts]
L -->|Tidak| N[Buat Purchase Order]
N --> O[Supplier: Kirim Parts]
O --> M
M --> P[Mekanik: Mulai Pengerjaan]
J -->|Tidak| P
P --> Q[WO Status: PENGERJAAN]
Q --> R{Semua Job\nSelesai?}
R -->|Belum| Q
R -->|Ya| S[Kepala Mekanik: Quality Check]
S --> T[WO Status: QC]
T --> U{QC\nLulus?}
U -->|Tidak| V[Revisi Pekerjaan]
V --> P
U -->|Ya| W[WO Status: SELESAI]
W --> X[Kasir: Buat Invoice]
X --> Y[Pelanggan: Bayar]
Y --> Z[Admin: Serah Terima\nKendaraan]
Z --> AA([WO Selesai & Ditutup])
style A fill:#dbeafe,stroke:#3b82f6
style AA fill:#dcfce7,stroke:#16a34a
style F fill:#fef3c7,stroke:#f59e0b
style I fill:#ede9fe,stroke:#8b5cf6
style Q fill:#dbeafe,stroke:#3b82f6
style T fill:#cffafe,stroke:#06b6d4
style W fill:#dcfce7,stroke:#16a34a
Flow Diagram — Job Tracking Mekanik
Job Item Tracking
Status setiap item pekerjaan dalam satu Work Order
flowchart LR
J0([Job Item\nDibuat]) --> J1[pending]
J1 --> J2{Mekanik\nAssigned?}
J2 -->|Ya| J3[in_progress]
J3 --> J4{Perlu Parts?}
J4 -->|Ya| J5[waiting_parts]
J5 -->|Parts Tiba| J3
J4 -->|Tidak| J6[done]
J3 --> J6
J6 --> J7{QC\nLulus?}
J7 -->|Ya| J8([Job Selesai])
J7 -->|Revisi| J3
style J0 fill:#f1f5f9,stroke:#94a3b8
style J1 fill:#fef3c7,stroke:#f59e0b
style J3 fill:#dbeafe,stroke:#3b82f6
style J5 fill:#ede9fe,stroke:#8b5cf6
style J6 fill:#cffafe,stroke:#06b6d4
style J8 fill:#dcfce7,stroke:#16a34a
Aturan & Validasi
📋 Pembuatan WO
- Nomor WO auto-generate format
WO-YYYY-NNNNN - Data wajib: nama pelanggan, no. polisi, jenis kendaraan, keluhan
- Bisa import dari Quotation yang sudah disetujui
- Estimasi waktu pengerjaan wajib diisi
🔧 Pengerjaan
- Satu WO bisa memiliki banyak Job Item
- Satu mekanik bisa handle max 3 WO aktif bersamaan
- Mekanik log waktu mulai dan selesai setiap job
- Mekanik tidak bisa akses WO di cabang lain
🔍 Quality Check
- QC wajib dilakukan oleh Kepala Mekanik
- Kepala Mekanik tidak boleh QC pekerjaan milik sendiri
- Checklist QC disesuaikan per jenis servis
- Jika gagal QC, mekanik harus mengerjakan ulang
📦 Parts & Stok
- Parts request auto-create saat mekanik tambah item ke WO
- Gudang konfirmasi ketersediaan stok
- Jika stok habis, trigger PO ke supplier
- WO tidak bisa selesai jika ada parts belum tiba
API Endpoints
| Method | Endpoint | Deskripsi | Role |
|---|---|---|---|
| GET | /api/work-orders | List semua WO (filter by cabang, status) | Admin, Kasir |
| POST | /api/work-orders | Buat WO baru | Admin |
| GET | /api/work-orders/:id | Detail WO beserta job items | Semua |
| PATCH | /api/work-orders/:id/status | Update status WO | Admin, Mekanik, KM |
| POST | /api/work-orders/:id/jobs | Tambah job item ke WO | Admin, Mekanik |
| PATCH | /api/work-orders/:id/jobs/:jid | Update status job item | Mekanik |
| POST | /api/work-orders/:id/qc | Submit hasil QC | Kepala Mekanik |
| POST | /api/work-orders/:id/handover | Konfirmasi serah terima | Admin |