Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-FIN-010 |
| Deskripsi | Mencatat hutang atas biaya operasional yang belum dibayar: daftar, tambah massal, ubah draft, finalisasi, unlock, hapus, dan cetak, dengan akun hutang biaya dari master biaya serta hak akses kelompok Transaksi |
| 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 hutang biaya (draft / final, sisa hutang, status lunas).
- User menambah satu atau banyak baris hutang biaya sekaligus (bulk) dengan lawan transaksi, master biaya, nominal, cabang opsional, tempo, serta opsi pungut PPh / PPN.
- User melihat detail, mengubah draft, menyimpan final, mengubah final kembali ke draft (unlock), menghapus draft, dan mencetak.
- Sistem memakai master Biaya yang sudah punya akun hutang biaya (
hutang_biaya_id) sebagai sumber pemetaan akun. - Hak akses mengikuti permission
#hutang-biayadi kelompok hak akses Transaksi (demo §4.2.C).
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | User dengan hak lihat dapat melihat daftar hutang biaya |
| FR-02 | User dengan hak dasar dapat menambah hutang biaya secara bulk |
| FR-03 | User dapat melihat detail hutang biaya |
| FR-04 | User dengan hak dasar dapat mengubah hutang biaya berstatus draft |
| FR-05 | User dapat menyimpan final hutang biaya (draft menjadi final) |
| FR-06 | User dengan permission draft pada #hutang-biaya dapat mengembalikan final ke draft |
| FR-07 | User dengan permission draft pada #hutang-biaya dapat menghapus hutang biaya draft |
| FR-08 | User dapat mencetak dokumen hutang biaya (halaman lihat memakai permission reprint) |
| FR-09 | Setiap baris hutang biaya wajib terhubung ke master biaya yang memiliki akun hutang biaya |
| FR-10 | Hak akses memakai permission #hutang-biaya (basic, draft, all, reprint) pada kelompok Transaksi |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar hutang biaya |
| UC-02 | Menambah hutang biaya |
| UC-03 | Melihat detail hutang biaya |
| UC-04 | Mengubah hutang biaya draft |
| UC-05 | Menyimpan final hutang biaya |
| UC-06 | Mengubah hutang biaya ke draft |
| UC-07 | Menghapus hutang biaya draft |
| UC-08 | Mencetak hutang biaya |
4. Use Case Scenario
UC-01 : Melihat daftar hutang biaya
| Aktor | User keuangan dengan hak lihat |
| Deskripsi | User melihat daftar hutang biaya brand |
| Prekondisi | User sudah login Brand aktif Route /hutang-biaya dapat diakses |
| Alur utama | 1. User membuka halaman Hutang Biaya (entri menu default dikomentari; hak akses tetap di kelompok Transaksi). 2. Sistem memuat daftar dengan status Draft/Selesai dan sisa hutang. 3. User dapat filter status, lawan transaksi, person, dan nomor invoice. |
| Alur negatif | - Jika gagal memuat, daftar kosong. - Jika tanpa permission all, daftar dibatasi user_id user login. |
| Bisnis rule | - Hutang biaya masuk kelompok hak akses Transaksi (demo §4.2.C). - Tombol tambah hanya tampil bila permission basic.- Enrich status lunas di FE bergantung InvoiceHutang.getStatusHutang yang saat ini tidak tersedia di modul API invoice-hutang. |
| Postkondisi | Daftar tampil |
| Trigger | User membuka /brand/:id/hutang-biaya |
| Kode FR | FR-01 FR-10 |
UC-02 : Menambah hutang biaya
| Aktor | User keuangan dengan hak dasar |
| Deskripsi | User mencatat satu atau banyak hutang biaya baru |
| Prekondisi | Permission basic Master biaya sudah tersedia |
| Alur utama | 1. User membuka Tambah. 2. User mengisi tanggal, cabang opsional, nomor invoice (manual/auto), tempo, opsi PPh/PPN. 3. User menambah baris: lawan (supplier/customer/karyawan), pilih lawan, master biaya, nominal, keterangan opsional. 4. User memilih Simpan Draft atau Simpan Final. 5. Sistem mengirim create bulk. |
| Alur negatif | - Jika form invalid, simpan dibatalkan. - Jika Simpan Final dibatalkan pada konfirmasi, data tidak tersimpan. - Jika server menolak, muncul pesan error. |
| Bisnis rule | - Satu submit dapat membuat banyak record (createBulk).- Field kunci baris: biaya_id, lawan_transaksi, lawan_transaksi_id, nominal_diluar_ppn, is_tercetak.- Akun hutang biaya tidak diisi manual di form transaksi; diambil dari master Biaya lewat biaya_id → hutang_biaya_id.- Default PPN 11% bila pungut PPN diaktifkan. |
| Postkondisi | Hutang biaya tersimpan (draft atau final) |
| Trigger | User menekan Simpan Draft / Simpan Final |
| Kode FR | FR-02 FR-09 |
UC-03 : Melihat detail hutang biaya
| Aktor | User keuangan dengan hak lihat |
| Deskripsi | User membuka detail satu hutang biaya |
| Prekondisi | Record hutang biaya ada |
| Alur utama | 1. User memilih Lihat dari daftar. 2. Sistem memuat detail beserta gudang, biaya, dan lawan transaksi. 3. Sistem menampilkan informasi dan baris transaksi. |
| Alur negatif | - Jika gagal memuat referensi terkait, field terkait tampil kosong / -. |
| Bisnis rule | - |
| Postkondisi | Detail tampil |
| Trigger | User membuka /hutang-biaya/lihat/:id |
| Kode FR | FR-03 |
UC-04 : Mengubah hutang biaya draft
| Aktor | User keuangan dengan hak dasar |
| Deskripsi | User mengubah data hutang biaya yang masih draft |
| Prekondisi | is_tercetak = falsePermission basic |
| Alur utama | 1. User membuka Ubah dari daftar. 2. User mengubah informasi / baris. 3. User simpan. 4. Sistem memanggil update. |
| Alur negatif | - Menu Ubah tidak tampil untuk final. - Validasi form gagal → tidak tersimpan. |
| Bisnis rule | - Hanya draft yang dapat diubah lewat halaman edit. |
| Postkondisi | Data draft terbarui |
| Trigger | User membuka /hutang-biaya/edit/:id lalu simpan |
| Kode FR | FR-04 |
UC-05 : Menyimpan final hutang biaya
| Aktor | User keuangan |
| Deskripsi | User menandai hutang biaya draft menjadi final |
| Prekondisi | Record masih draft |
| Alur utama | 1. User memilih Simpan Final di daftar (atau simpan final dari form tambah/edit). 2. Sistem mengirim update is_tercetak: true.3. Status berubah menjadi Selesai. |
| Alur negatif | - Jika server menolak, status tetap draft dan muncul error. |
| Bisnis rule | - Final tidak dapat diubah langsung; perlu unlock dulu. |
| Postkondisi | Hutang biaya final |
| Trigger | User menekan Simpan Final |
| Kode FR | FR-05 |
UC-06 : Mengubah hutang biaya ke draft
| Aktor | User keuangan dengan permission draft |
| Deskripsi | User mengembalikan hutang biaya final menjadi draft |
| Prekondisi | Record final Permission level draft pada #hutang-biaya |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem memanggil unlock. 3. Status kembali Draft. |
| Alur negatif | - Tanpa permission unlock, aksi tidak tampil. - Jika server menolak, muncul error. |
| Bisnis rule | - Unlock memakai endpoint khusus unlock, bukan update biasa. |
| Postkondisi | Record kembali draft |
| Trigger | User menekan Ubah ke Simpan Draft |
| Kode FR | FR-06 FR-10 |
UC-07 : Menghapus hutang biaya draft
| Aktor | User keuangan dengan permission draft |
| Deskripsi | User menghapus hutang biaya yang masih draft |
| Prekondisi | Record draft Permission level draft pada #hutang-biaya |
| Alur utama | 1. User memilih Hapus. 2. Sistem menghapus record. 3. Baris hilang dari daftar. |
| Alur negatif | - Aksi hapus tidak tampil untuk final. - Jika gagal, muncul pesan error. |
| Bisnis rule | - Hapus hanya untuk draft. |
| Postkondisi | Record terhapus |
| Trigger | User menekan Hapus |
| Kode FR | FR-07 |
UC-08 : Mencetak hutang biaya
| Aktor | User keuangan |
| Deskripsi | User mencetak dokumen hutang biaya |
| Prekondisi | Record ada |
| Alur utama | 1. User memilih Print. 2. Sistem memuat detail lengkap. 3. Sistem membentuk layout cetak (invoice, cabang, lawan, biaya, nominal, PPh/PPN, tempo). |
| Alur negatif | - Jika detail gagal dimuat, cetak dibatalkan. |
| Bisnis rule | - |
| Postkondisi | Dokumen cetak dihasilkan |
| Trigger | User menekan Print |
| Kode FR | FR-08 |
5. Data Flow Diagram
DFD-01 — Alur hutang biaya dan akun hutang biaya
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar hutang biaya
SD-02 — UC-02 : Menambah hutang biaya
SD-03 — UC-03 : Melihat detail hutang biaya
SD-04 — UC-04 : Mengubah hutang biaya draft
SD-05 — UC-05 : Menyimpan final hutang biaya
SD-06 — UC-06 : Mengubah hutang biaya ke draft
SD-07 — UC-07 : Menghapus hutang biaya draft
SD-08 — UC-08 : Mencetak hutang biaya
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /hutang-biaya | existing | - |
GET /hutang-biaya/:id | existing | - |
POST /hutang-biaya | existing | - |
POST /hutang-biaya/bulk | existing | - |
PUT /hutang-biaya/:id | existing | - |
PUT /hutang-biaya/unlock/:id | existing | - |
DELETE /hutang-biaya/:id | existing | - |