Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-STK-005 |
| Deskripsi | Pemakaian barang: mencatat pengurangan stok bukan karena penjualan (mis. pemakaian internal) per cabang, dibebankan ke akun beban, dengan cetak invoice dan buka kembali ke draft untuk koreksi |
| 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 invoice pemakaian (nomor invoice, tanggal, cabang, status Done / Draft)
- User mencari nomor invoice serta memfilter periode tanggal invoice dan barang
- User membuat invoice pemakaian: nomor invoice otomatis atau manual, tanggal, lokasi (opsional), cabang, keterangan, cluster, akun beban, serta baris barang dengan qty, satuan, dan keterangan baris
- Pemakaian langsung tersimpan final dan mengurangi stok cabang
- User berwenang membuka kembali invoice ke draft, lalu mengubah atau menghapusnya
- User melihat detail pemakaian beserta jurnal stok dan mencetak invoice
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar invoice pemakaian dengan pagination, pencarian nomor invoice, dan filter periode serta barang |
| FR-02 | Sistem membatasi daftar ke invoice milik user sendiri jika user tidak punya hak akses lihat semua user |
| FR-03 | User dapat membuat invoice pemakaian dengan cabang, akun beban, dan minimal satu baris barang |
| FR-04 | Sistem memvalidasi tanggal, cabang, akun beban wajib, barang tidak duplikat, satuan wajib, dan qty minimal 0,1 |
| FR-05 | Sistem menyediakan pilihan akun beban dari kelompok akun perkiraan beban / biaya |
| FR-06 | Pemakaian disimpan sebagai transaksi final yang mengurangi stok (qty kurang) |
| FR-07 | User berwenang dapat mengubah invoice final kembali ke draft |
| FR-08 | User dapat mengubah dan menghapus invoice yang berstatus draft |
| FR-09 | User dapat melihat detail dan mencetak invoice pemakaian |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan memfilter daftar pemakaian barang |
| UC-02 | Membuat invoice pemakaian barang |
| UC-03 | Membuka kembali (unlock) invoice pemakaian ke draft |
| UC-04 | Mengubah invoice pemakaian draft |
| UC-05 | Menghapus invoice pemakaian draft |
| UC-06 | Melihat detail dan mencetak invoice pemakaian |
4. Use Case Scenario
UC-01 : Melihat dan memfilter daftar pemakaian barang
| Aktor | User brand dengan hak akses pemakaian barang |
| Deskripsi | User melihat daftar pemakaian dan menyaringnya |
| Prekondisi | User sudah login di brand aktif |
| Alur utama | 1. User membuka menu Inventory, Pemakaian. 2. Sistem menampilkan daftar (nomor invoice, tanggal, cabang, status). 3. User mengetik nomor invoice, atau membuka Filter dan memilih periode tanggal invoice dan barang. 4. Sistem memuat ulang daftar. |
| Alur negatif | - Jika gagal memuat, daftar dikosongkan. |
| Bisnis rule | - Daftar hanya memuat transaksi bermodul Pemakaian. - User tanpa hak akses lihat semua user hanya melihat invoice miliknya. - Status final tampil Done, selain itu Draft. |
| Postkondisi | Daftar pemakaian sesuai filter tampil |
| Trigger | User membuka halaman Pemakaian |
| Kode FR | FR-01 FR-02 |
UC-02 : Membuat invoice pemakaian barang
| Aktor | User brand dengan hak akses basic pemakaian barang |
| Deskripsi | User mencatat barang yang dipakai sehingga stok berkurang dan dibebankan ke akun beban |
| Prekondisi | Master cabang, barang, dan akun perkiraan tersedia |
| Alur utama | 1. User klik Buat Invoice. 2. User memilih nomor invoice otomatis atau manual, mengisi tanggal, lokasi, cabang, keterangan, cluster, dan akun beban. 3. User menambah baris barang, qty, satuan, dan keterangan. 4. User klik Simpan. 5. Sistem menyimpan invoice dan kembali ke daftar. |
| Alur negatif | - Jika ada field wajib kosong, muncul notifikasi "Oops ada data yang kosong!". - Jika menambah baris saat baris sebelumnya belum lengkap, muncul peringatan "Nama Barang, Qty dan Satuan Tidak Boleh Kosong!". - Jika server gagal, muncul notifikasi error dengan pesan server. |
| Bisnis rule | - Akun beban wajib, dipilih dari akun dengan awalan nomor 13, 4, 5, 6, 7, 8, 9. - Barang yang sama tidak boleh dipilih dua kali. - Qty minimal 0,1 dan dikirim sebagai qty kurang dalam satuan terkecil. - Invoice langsung final (tidak ada simpan draft di form tambah). - Cluster hanya tampil jika fitur #cluster aktif, lokasi jika fitur #lokasi aktif. |
| Postkondisi | Notifikasi "Berhasil buat Pemakaian Barang", stok cabang berkurang |
| Trigger | User klik Simpan |
| Kode FR | FR-03 FR-04 FR-05 FR-06 |
UC-03 : Membuka kembali (unlock) invoice pemakaian ke draft
| Aktor | User brand dengan hak akses draft pemakaian barang |
| Deskripsi | User mengembalikan invoice final ke draft agar dapat dikoreksi |
| Prekondisi | Invoice final |
| Alur utama | 1. User klik "Ubah ke Simpan Draft" dari daftar atau halaman lihat. 2. Sistem membuka kunci invoice. 3. Status berubah menjadi Draft. |
| Alur negatif | - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Butuh hak akses #can-draft dan hak draft pada #pemakaian-barang. |
| Postkondisi | Notifikasi "Berhasil Ubah ke Simpan Draft Invoice (nomor)" |
| Trigger | User klik Ubah ke Simpan Draft |
| Kode FR | FR-07 |
UC-04 : Mengubah invoice pemakaian draft
| Aktor | User brand dengan hak akses basic pemakaian barang |
| Deskripsi | User memperbaiki invoice pemakaian yang sudah dibuka ke draft |
| Prekondisi | Invoice berstatus draft |
| Alur utama | 1. User klik Edit. 2. Sistem memuat detail invoice dan baris barang. 3. User mengubah informasi atau baris barang. 4. User klik Simpan. 5. Sistem memperbarui invoice dan menyimpannya kembali sebagai final. |
| Alur negatif | - Jika invoice tidak ditemukan, user dikembalikan ke daftar. - Validasi sama dengan UC-02. |
| Bisnis rule | - Edit hanya untuk invoice draft. - Baris yang dihapus dikirim dengan penanda deleted. |
| Postkondisi | Invoice terupdate dan final kembali |
| Trigger | User klik Edit |
| Kode FR | FR-04 FR-08 |
UC-05 : Menghapus invoice pemakaian draft
| Aktor | User brand dengan hak akses basic pemakaian barang |
| Deskripsi | User menghapus invoice pemakaian yang masih draft |
| Prekondisi | Invoice berstatus draft |
| Alur utama | 1. User klik Hapus. 2. Sistem menghapus invoice. 3. Daftar dimuat ulang. |
| Alur negatif | - Jika server gagal, muncul notifikasi error. |
| Bisnis rule | - Hapus hanya untuk invoice draft dan dijalankan tanpa dialog konfirmasi. |
| Postkondisi | Notifikasi "Berhasil Hapus Invoice (nomor)" |
| Trigger | User klik Hapus |
| Kode FR | FR-08 |
UC-06 : Melihat detail dan mencetak invoice pemakaian
| Aktor | User brand dengan hak akses view / reprint pemakaian barang |
| Deskripsi | User melihat isi pemakaian dan mencetak invoicenya |
| Prekondisi | Invoice ada |
| Alur utama | 1. User klik Lihat. 2. Sistem menampilkan informasi invoice, baris barang, dan jurnal stok. 3. Untuk invoice final, user klik Cetak Invoice. 4. Sistem menandai invoice sudah dicetak lalu mencetak dengan kop surat. |
| Alur negatif | - Jika invoice tidak ditemukan, user dikembalikan ke daftar. - Jika gagal menyiapkan cetak, muncul notifikasi error. |
| Bisnis rule | - Cetak hanya untuk invoice final dan mengikuti hak akses reprint. |
| Postkondisi | Detail tampil atau invoice tercetak |
| Trigger | User klik Lihat / Cetak Invoice |
| Kode FR | FR-09 |
5. Data Flow Diagram
DFD-01 — Alur data pemakaian barang
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan memfilter daftar pemakaian barang
SD-02 — UC-02 : Membuat invoice pemakaian barang
SD-03 — UC-03 : Membuka kembali (unlock) invoice pemakaian ke draft
SD-04 — UC-04 : Mengubah invoice pemakaian draft
SD-05 — UC-05 : Menghapus invoice pemakaian draft
SD-06 — UC-06 : Melihat detail dan mencetak invoice pemakaian
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-penyesuaian-stok | existing | - |
GET /invoice-penyesuaian-stok/:id | existing | - |
POST /invoice-penyesuaian-stok | existing | - |
PUT /invoice-penyesuaian-stok/:id | existing | - |
PUT /invoice-penyesuaian-stok/invoice-only/:id | existing | - |
PUT /invoice-penyesuaian-stok/unlock/:id | existing | - |
DELETE /invoice-penyesuaian-stok/:id | existing | - |
GET /rekening | existing | - |