Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-STK-008 |
| Deskripsi | Mutasi aset: memindahkan aset dari cabang asal ke cabang tujuan beserta kurir, dengan simpan draft atau final, cetak, dan buka kembali ke draft |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat daftar mutasi aset (tanggal, nomor invoice, total nilai mutasi aset, cabang asal, cabang tujuan, status invoice)
- User mencari nomor invoice dan memfilter periode tanggal invoice
- User membuat mutasi aset: nomor invoice otomatis atau manual, tanggal, cabang asal, cabang tujuan, kurir (karyawan), keterangan, serta baris aset dengan kuantitas dan keterangan
- Pilihan aset diambil dari rincian aset yang berada di cabang asal
- User menyimpan mutasi sebagai draft atau final; draft dapat diubah dan dihapus
- User melihat detail, mencetak, dan (dengan hak akses) membuka kembali mutasi final ke draft
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar mutasi aset dengan pagination, pencarian nomor invoice, dan filter periode |
| FR-02 | Sistem membatasi daftar ke invoice milik user sendiri jika user tidak punya hak akses lihat semua user |
| FR-03 | User dapat membuat mutasi aset dengan cabang asal, cabang tujuan, kurir, dan baris aset |
| FR-04 | Sistem hanya menampilkan aset yang ada di cabang asal |
| FR-05 | Sistem memvalidasi cabang wajib dan tidak sama, kurir wajib, aset tidak duplikat, dan qty tidak melebihi sisa aset kecuali punya hak stok minus |
| FR-06 | User dapat menyimpan mutasi aset sebagai draft atau final |
| FR-07 | User dapat mengubah dan menghapus mutasi aset draft |
| FR-08 | User dapat melihat detail dan mencetak mutasi aset final |
| FR-09 | User berwenang dapat mengubah mutasi aset final ke draft |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan mencari daftar mutasi aset |
| UC-02 | Membuat mutasi aset (draft / final) |
| UC-03 | Mengubah mutasi aset draft |
| UC-04 | Menghapus mutasi aset draft |
| UC-05 | Melihat detail dan mencetak mutasi aset |
| UC-06 | Membuka kembali (unlock) mutasi aset final ke draft |
4. Use Case Scenario
UC-01 : Melihat dan mencari daftar mutasi aset
| Aktor | User brand dengan hak akses mutasi aset |
| Deskripsi | User melihat daftar mutasi aset |
| Prekondisi | User sudah login dan membuka route mutasi aset |
| Alur utama | 1. User membuka halaman Mutasi Aset. 2. Sistem menampilkan daftar (tanggal, nomor invoice, total nilai mutasi aset, cabang asal, cabang tujuan, status). 3. User mengetik nomor invoice atau memilih periode tanggal invoice. 4. Sistem memuat ulang daftar. |
| Alur negatif | - Jika gagal memuat, daftar dikosongkan. |
| Bisnis rule | - Halaman tidak ada di menu default, diakses lewat route /brand/:id/mutasi-aset.- Permintaan daftar selalu mengirim parameter status draft ( is_tercetak: false).- User tanpa hak akses lihat semua user hanya melihat invoice miliknya. |
| Postkondisi | Daftar mutasi aset tampil |
| Trigger | User membuka halaman Mutasi Aset |
| Kode FR | FR-01 FR-02 |
UC-02 : Membuat mutasi aset (draft / final)
| Aktor | User brand dengan hak akses basic mutasi aset |
| Deskripsi | User mencatat perpindahan aset antar cabang |
| Prekondisi | Ada rincian aset di cabang asal |
| Alur utama | 1. User klik Tambah. 2. User memilih nomor invoice otomatis atau manual, tanggal, cabang asal, cabang tujuan, kurir, dan keterangan. 3. User menambah baris aset dari cabang asal dan mengisi qty. 4. User klik Simpan Draft, atau Simpan lalu konfirmasi. 5. Sistem menyimpan dan kembali ke daftar. |
| Alur negatif | - Jika informasi belum lengkap, muncul alert "Tolong lengkapi form dengan benar!". - Jika rincian aset salah, muncul alert "Oops ada yg salah di rincian barang". - Jika cabang asal sama dengan tujuan, muncul pesan validasi cabang. - Jika user membatalkan konfirmasi final, data tidak disimpan. - Jika server gagal, muncul notifikasi error. |
| Bisnis rule | - Qty melebihi sisa aset hanya dengan hak akses #mutasi-stok-minus.- Simpan final membuat invoice tidak dapat diubah. |
| Postkondisi | Notifikasi "Mutasi cabang Berhasil dibuat" (final) atau "Draft Mutasi cabang Berhasil dibuat" (draft) |
| Trigger | User klik Simpan / Simpan Draft |
| Kode FR | FR-03 FR-04 FR-05 FR-06 |
UC-03 : Mengubah mutasi aset draft
| Aktor | User brand dengan hak akses basic mutasi aset |
| Deskripsi | User memperbaiki mutasi aset yang masih draft |
| Prekondisi | Invoice draft |
| Alur utama | 1. User klik Edit. 2. Sistem memuat detail mutasi aset. 3. User mengubah informasi atau baris aset. 4. User klik Simpan Draft atau Simpan lalu konfirmasi. |
| Alur negatif | - Jika form tidak valid, muncul alert "Tolong lengkapi form dengan benar!". - Jika rincian bermasalah, muncul alert "Ooops ada masalah di rincian barang!". |
| Bisnis rule | - Edit hanya untuk invoice draft. - Baris yang dihapus dikirim dengan penanda deleted. |
| Postkondisi | Notifikasi "Draft Mutasi Aset Berhasil diupdate" atau "Berhasil update Mutasi Aset" |
| Trigger | User klik Edit |
| Kode FR | FR-05 FR-06 FR-07 |
UC-04 : Menghapus mutasi aset draft
| Aktor | User brand dengan hak akses basic mutasi aset |
| Deskripsi | User menghapus mutasi aset draft |
| Prekondisi | Invoice draft |
| Alur utama | 1. User klik Hapus. 2. Sistem menampilkan konfirmasi "Anda yakin ingin menghapus (nomor invoice)?". 3. User klik "Ya, Hapus!". 4. Sistem menghapus invoice. |
| Alur negatif | - Jika user membatalkan, tidak ada perubahan. - Jika server gagal, muncul notifikasi error. |
| Bisnis rule | - Hapus hanya untuk invoice draft. |
| Postkondisi | Notifikasi "Invoice (nomor) berhasil dihapus" |
| Trigger | User klik Hapus |
| Kode FR | FR-07 |
UC-05 : Melihat detail dan mencetak mutasi aset
| Aktor | User brand dengan hak akses view / reprint mutasi aset |
| Deskripsi | User melihat isi mutasi aset dan mencetaknya |
| Prekondisi | Invoice ada |
| Alur utama | 1. User klik Lihat. 2. Sistem menampilkan informasi, baris aset, dan status Draft / Selesai. 3. Untuk invoice final, user klik Print, memilih kertas, lalu mencetak. |
| Alur negatif | - Jika gagal memuat atau menyiapkan cetak, muncul notifikasi error. |
| Bisnis rule | - Print hanya untuk invoice final dan mengikuti hak akses reprint. |
| Postkondisi | Detail tampil atau dokumen tercetak |
| Trigger | User klik Lihat / Print |
| Kode FR | FR-08 |
UC-06 : Membuka kembali (unlock) mutasi aset final ke draft
| Aktor | User brand dengan hak akses draft mutasi aset |
| Deskripsi | User mengembalikan mutasi aset final ke draft |
| Prekondisi | Invoice final |
| Alur utama | 1. User klik "Ubah ke Simpan Draft". 2. Sistem membuka kunci invoice. 3. Status berubah menjadi Draft. |
| Alur negatif | - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Butuh hak draft pada #mutasi-aset. |
| Postkondisi | Notifikasi "Berhasil Ubah ke Simpan Draft Invoice (nomor)" |
| Trigger | User klik Ubah ke Simpan Draft |
| Kode FR | FR-09 |
5. Data Flow Diagram
DFD-01 — Alur data mutasi aset
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan mencari daftar mutasi aset
SD-02 — UC-02 : Membuat mutasi aset (draft / final)
SD-03 — UC-03 : Mengubah mutasi aset draft
SD-04 — UC-04 : Menghapus mutasi aset draft
SD-05 — UC-05 : Melihat detail dan mencetak mutasi aset
SD-06 — UC-06 : Membuka kembali (unlock) mutasi aset final ke draft
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-mutasi-aset | existing | - |
GET /invoice-mutasi-aset/:id | existing | - |
DELETE /invoice-mutasi-aset/:id | existing | - |
PUT /invoice-mutasi-aset/unlock/:id | existing | - |
POST /mutasi-aset | existing | - |
PUT /mutasi-aset/:id | existing | - |
GET /aset-masuk | existing | - |