Demo — Motor (Stok, Pindah Cabang, Request Unit, Riwayat Lokasi)
Panduan demo per alur untuk modul Motor: melihat stok unit per tipe, warna, cabang, dan status; memindahkan unit antar cabang (otomatis tercatat sebagai Request Unit); memindahkan lokasi di dalam cabang; dan membaca Riwayat Lokasi.
Semua gambar diambil dari build develop yang berjalan dengan data uji (database terpisah, satu akun per role, cabang Cabang E2E A dan Cabang E2E B).
Cara membaca gambar
- Kotak biru = tombol atau kolom yang diklik atau diisi.
- Kotak hijau = hasil yang benar; kotak merah = ditolak atau gagal.
- Kotak ungu = keterangan tambahan.
- Pita hitam di bawah gambar = alur dan role yang sedang berjalan.
Akun yang dipakai
| Role | Nama | Username | Dipakai di alur |
|---|---|---|---|
| Admin PDI | Agus Salim | e2e_admin_pdi | 1, 8 |
| Sales | Budi Santoso | e2e_sales | 2 |
| Kepala Cabang | Dewi Lestari | e2e_kepala_cabang | 3, 4 |
| Kawil | Bambang Sutrisno | e2e_kawil | 5 |
| SPV | Yusuf Hidayat | e2e_spv | 6 |
| ADH | Sri Wahyuni | e2e_adh | 7 |
Kawil ditugaskan ke cabang A dan B. Password semua akun uji sama.
Siapa boleh apa
| Kegiatan | Role |
|---|---|
| Melihat Stok Motor | semua role; Sales terkunci ke cabangnya |
| Pindah Cabang dan Pindah Lokasi (hak Request Unit) | Superadmin, Kawil, Kepala Cabang, SPV, ADH |
| Halaman Request Unit | Superadmin, Kawil, Kepala Cabang, SPV, ADH |
| Riwayat Lokasi | Kepala Cabang (menu terlihat, alur 3), Kawil, Admin H1, ADH; SPV, Admin PDI, Sales ditolak |
Semua baris diamati di layar (alur 1, 2, 5, 6, 7, 8, 9): Admin PDI, Admin H1 (Request Unit), SPV (Riwayat Lokasi), dan Sales (Request Unit) mendapat Tidak diizinkan. Unit hanya bisa dipindah bila berstatus Tersedia; unit Booked tidak punya tombol.
Alur satu halaman
Stok Motor ──> Pindah Cabang ──> Request Unit (Transfer / Retur) ──┐
│ ├─> Riwayat Lokasi
└──────> Pindah Lokasi (dalam cabang) ─────────────────────────┘
1. Melihat Stok Motor
Role: Admin PDI (Agus Salim)
- Buka Motor → Stok Motor. Halaman terbuka pada cabang akun sendiri.
- Kartu Rekap stok menghitung unit per tipe, warna, cabang, dan status (di demo: *Beat Street CBS Hitam Doff · Cabang E2E A · 1 unit (Booked)*).
- Tabel memuat Tipe, Warna, No Rangka, No Mesin, Cabang, Lokasi, Status (Tersedia, Booked, Terjual, Cancel). Admin PDI tidak punya tombol pindah.

- Filter: Tipe (kode unit atau variant), Warna, Status, Cabang. Memilih Semua cabang menampilkan juga unit cabang lain (di demo: unit B1 di Cabang E2E B).

2. Sales terkunci ke cabangnya
Role: Sales (Budi Santoso)
Stok Motor hanya memuat unit Cabang E2E A; filter cabang tidak ada, begitu pula tombol pindah.

3. Pindah Cabang (Transfer)
Role: Kepala Cabang (Dewi Lestari)
- Pada unit Tersedia muncul Pindah Cabang dan Pindah Lokasi. Unit Booked tidak punya tombol.

- Tekan Pindah Cabang. Pilih Cabang tujuan (cabang asal tidak ditawarkan) dan Jenis (Transfer atau Retur), lalu Pindahkan.

- Toast *Unit dipindahkan ke Cabang E2E B*. Unit keluar dari stok dan rekap cabang A.

4. Request Unit (riwayat)
Role: Kepala Cabang (Dewi Lestari)
Buka Drop Order → Request Unit. Setiap Pindah Cabang tercatat otomatis: waktu, unit (no rangka, tipe), Dari, Ke, Status (Transfer / Retur), dan Oleh. Filter: no rangka, status, cabang (untuk yang punya lebih dari satu cabang), rentang tanggal.

5. Retur
Role: Kawil (Bambang Sutrisno)
Setelah transfer, unit berada di cabang B, di luar jangkauan Kepala Cabang A. Kawil (cabang A dan B) yang mengembalikannya.
- Stok Motor, filter cabang Cabang E2E B: unit hasil transfer ada di sana.

- Pindah Cabang, tujuan Cabang E2E A, Jenis Retur, Pindahkan.

- Di Request Unit muncul baris Retur (B ke A) di atas baris Transfer.

6. Pindah Lokasi dalam cabang
Role: SPV (Yusuf Hidayat)
- Pada unit Tersedia tekan Pindah Lokasi, isi Lokasi baru.
- Lokasi sama dengan lokasi saat ini ditolak: *Lokasi tidak berubah*.

- Isi lokasi baru (di demo: *Gudang Belakang*), Simpan.

- Toast *Lokasi unit diubah ke Gudang Belakang*; kolom Lokasi berubah, Cabang tetap, dan tidak ada baris baru di Request Unit.

7. Riwayat Lokasi
Role: ADH (Sri Wahyuni)
Buka Motor → Riwayat Lokasi. Tiap perubahan tercatat dengan waktu, unit, Dari, Ke, Via, dan Oleh. Via Lokasi = pindah di dalam cabang; Transfer / Retur = antar cabang (berasal dari Request Unit).

8. Role tanpa hak
Role: Admin PDI (Agus Salim)
Admin PDI tidak punya menu Request Unit maupun Riwayat Lokasi. Bila alamat diketik manual, halaman menampilkan Tidak diizinkan.


9. Role lain dan penolakan dari server
Halaman yang tersedia atau ditolak
Admin H1 tidak punya Request Unit tetapi boleh membuka Riwayat Lokasi:


SPV boleh Request Unit dan Pindah, tetapi Riwayat Lokasi ditolak:

Sales ditolak di Request Unit:

Superadmin melihat semua cabang dan semua tombol pindah:

ADH melihat riwayat Request Unit cabangnya (transfer dan retur):

Penolakan dari server (UI menyembunyikan tombolnya, jadi dicoba lewat API)
| Percobaan | Jawaban |
|---|---|
| Kepala Cabang memindahkan unit Booked | 400 *Unit berstatus booked tidak dapat dipindahkan* |
| Kepala Cabang memilih cabang tujuan = cabang asal | 400 *Cabang tujuan harus berbeda dari cabang pengirim* |
| Admin PDI mencatat Request Unit | 403 *Role admin_pdi is not allowed here* |
| Sales atau Admin PDI mengubah lokasi unit | 403 *Role sales / admin_pdi is not allowed here* |
| Sales cabang B membaca unit cabang A | 404 *Motor dengan ID ... tidak ditemukan* |
Catatan teknis gambar
- Tabel stok lebih lebar dari kolom isi pada 1680 px; untuk gambar, font dasar dikecilkan dan lebar maksimum kolom dilepas lewat CSS suntikan. Perilaku tidak berbeda.
- Satu unit (A2) di-booking lebih dulu lewat API agar status Booked ada di data.
- Data demo ada di database
tirto_demo1_e2e. Skrip:_tools/motor.mjs.