Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-PBL-005 |
| Deskripsi | Pencatatan invoice pembelian aset tetap dari supplier, termasuk daftar, filter, pembayaran, status draft / selesai, dan keterkaitan dengan invoice biaya terkait |
| 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 pembelian aset (tanggal, nomor invoice, supplier, tanggal jatuh tempo, tagihan, total pembelian, status invoice).
- User memfilter daftar berdasarkan periode tanggal invoice, supplier, status invoice, dan aset.
- User membuat pembelian aset: tanggal invoice, lokasi / gudang, supplier, keterangan nota, PPN masukan, cluster, guna aset, tempo pembayaran, nomor faktur pajak, baris aset, biaya lain, dan metode pembayaran.
- User menyimpan pembelian aset sebagai draft atau final.
- User mengubah, memfinalkan, atau menghapus invoice aset draft.
- User dengan hak khusus membuka kembali invoice selesai ke draft, memposting ulang, dan mencetak invoice.
- User mengaitkan invoice aset ke invoice pengiriman, asuransi, atau biaya lain, menambah lampiran, dan menuju pelunasan hutang.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar invoice pembelian aset dengan pagination |
| FR-02 | User dapat memfilter daftar pembelian aset |
| FR-03 | User dapat membuat pembelian aset dengan rincian aset, pajak, biaya, dan metode pembayaran |
| FR-04 | User dapat menyimpan pembelian aset sebagai draft atau final |
| FR-05 | User dapat mengubah, memfinalkan, dan menghapus invoice aset draft |
| FR-06 | User berhak dapat membuka kembali invoice aset selesai ke draft |
| FR-07 | User dapat memposting ulang dan mencetak invoice aset |
| FR-08 | User dapat mengaitkan invoice aset ke invoice biaya terkait |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar pembelian aset |
| UC-02 | Memfilter daftar pembelian aset |
| UC-03 | Membuat pembelian aset |
| UC-04 | Mengubah pembelian aset draft |
| UC-05 | Memfinalkan atau menghapus pembelian aset draft |
| UC-06 | Membuka kembali (unlock) pembelian aset ke draft |
| UC-07 | Memposting ulang pembelian aset |
| UC-08 | Mencetak invoice pembelian aset |
| UC-09 | Mengaitkan pembelian aset ke invoice terkait |
4. Use Case Scenario
UC-01 : Melihat daftar pembelian aset
| Aktor | User dengan hak #pembelian-aset |
| Deskripsi | User melihat daftar invoice pembelian aset |
| Prekondisi | User sudah login Brand aktif |
| Alur utama | 1. User membuka menu Pembelian Aset. 2. Sistem menampilkan daftar invoice aset dengan status dan tagihan. 3. User mengatur kolom tabel bila perlu. |
| Alur negatif | - Jika daftar kosong tanpa filter, muncul "Daftar Invoice masih kosong". - Jika daftar kosong dengan filter, muncul "Invoice Tidak Ditemukan". |
| Bisnis rule | - User tanpa hak #pembelian-aset all hanya melihat invoice miliknya.- User non admin dengan batasan gudang hanya melihat invoice pada gudang yang diizinkan. |
| Postkondisi | Daftar tampil |
| Trigger | User membuka halaman Pembelian Aset |
| Kode FR | FR-01 |
UC-02 : Memfilter daftar pembelian aset
| Aktor | User dengan hak #pembelian-aset |
| Deskripsi | User mempersempit daftar pembelian aset |
| Prekondisi | User berada di halaman daftar |
| Alur utama | 1. User mencari nomor invoice. 2. User membuka Filter dan mengisi periode tanggal invoice, supplier, status invoice, dan/atau aset. 3. Sistem memuat ulang daftar. |
| Alur negatif | - Jika tidak ada data, muncul "Invoice Tidak Ditemukan". |
| Bisnis rule | - Status invoice: Semua, Selesai, Draft. |
| Postkondisi | Daftar terfilter |
| Trigger | User mengubah filter |
| Kode FR | FR-02 |
UC-03 : Membuat pembelian aset
| Aktor | User dengan hak #pembelian-aset basic |
| Deskripsi | User mencatat invoice pembelian aset dari supplier |
| Prekondisi | Supplier dan master aset tersedia |
| Alur utama | 1. User klik Buat Invoice. 2. User mengisi tanggal invoice, lokasi / gudang, supplier, keterangan nota, PPN masukan, cluster, guna aset, tempo, nomor faktur pajak. 3. User menambah baris aset (aset, qty, satuan, harga, diskon, kode inventaris). 4. User menambah biaya lain (opsional) dan metode pembayaran. 5. User memilih Simpan Draft atau Simpan Final, lalu mengonfirmasi. 6. Sistem menyimpan invoice aset. |
| Alur negatif | - Jika form belum lengkap, muncul "Tolong lengkapi form dengan benar!". - Jika gudang kosong, muncul "Tolong lengkapi gudang form dengan benar!" / "Tolong lengkapi gudang rincian dengan benar!". - Jika biaya belum lengkap, muncul "Tolong lengkapi Biaya dengan benar!". - Jika tempo 0 tanpa metode pembayaran, muncul "Metode Pembayaran Harus Diisi". - Jika pembayaran melebihi total, muncul "Pembayaran tidak boleh melebihi Nilai Total Pembayaran". |
| Bisnis rule | - Tempo 0 berarti kontan sehingga metode pembayaran wajib diisi. - PPN masukan hanya berlaku jika brand PKP, nomor faktur pajak dikirim bila PPN aktif. - Aset yang dicatat per unit (single AMR) tanpa nomor seri mendapat kode inventaris otomatis berurutan. - Metode titipan memakai invoice DP. |
| Postkondisi | Invoice pembelian aset tersimpan sebagai draft atau selesai |
| Trigger | User klik Simpan |
| Kode FR | FR-03 FR-04 |
UC-04 : Mengubah pembelian aset draft
| Aktor | User dengan hak #pembelian-aset basic |
| Deskripsi | User memperbaiki invoice aset yang masih draft |
| Prekondisi | Invoice aset berstatus draft |
| Alur utama | 1. User memilih Edit. 2. Sistem memuat detail invoice aset. 3. User mengubah data lalu menyimpan draft / final. |
| Alur negatif | - Validasi sama seperti pembuatan. |
| Bisnis rule | - Edit hanya untuk invoice draft. - Metode pembayaran lama yang dihapus dikirim dengan tanda dihapus. |
| Postkondisi | Invoice aset diperbarui |
| Trigger | User klik Edit |
| Kode FR | FR-05 |
UC-05 : Memfinalkan atau menghapus pembelian aset draft
| Aktor | User dengan hak #pembelian-aset basic / draft |
| Deskripsi | User menyelesaikan atau menghapus invoice aset draft |
| Prekondisi | Invoice aset berstatus draft |
| Alur utama | 1. User memilih Finalize Nota, sistem menandai invoice selesai. 2. Atau user memilih Hapus, sistem menghapus invoice dan menampilkan "Berhasil Hapus Invoice ...". |
| Alur negatif | - Jika gagal, muncul pesan error. |
| Bisnis rule | - Hapus hanya untuk user dengan hak #can-draft dan #pembelian-aset draft. |
| Postkondisi | Invoice selesai atau terhapus |
| Trigger | User klik Finalize Nota / Hapus |
| Kode FR | FR-05 |
UC-06 : Membuka kembali (unlock) pembelian aset ke draft
| Aktor | User dengan hak #can-draft dan #pembelian-aset draft |
| Deskripsi | User mengubah invoice aset selesai menjadi draft |
| Prekondisi | Invoice aset berstatus selesai |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem membuka kunci invoice. 3. Muncul "Berhasil Ubah ke Simpan Draft Invoice ...". |
| Alur negatif | - Tanpa hak, menu tidak tampil. |
| Bisnis rule | - Unlock butuh hak #can-draft dan #pembelian-aset draft. |
| Postkondisi | Invoice kembali draft |
| Trigger | User klik Ubah ke Simpan Draft |
| Kode FR | FR-06 |
UC-07 : Memposting ulang pembelian aset
| Aktor | User brand |
| Deskripsi | User memposting ulang invoice aset selesai |
| Prekondisi | Invoice aset berstatus selesai |
| Alur utama | 1. User memilih Posting Ulang. 2. Sistem menyinkronkan integrity pembelian aset. 3. Muncul "Berhasil Memposting Ulang Pembelian dengan no invoice ...". |
| Alur negatif | - Jika gagal, muncul pesan error. |
| Bisnis rule | - |
| Postkondisi | Invoice aset terposting ulang |
| Trigger | User klik Posting Ulang |
| Kode FR | FR-07 |
UC-08 : Mencetak invoice pembelian aset
| Aktor | User dengan hak #pembelian-aset reprint |
| Deskripsi | User mencetak invoice pembelian aset |
| Prekondisi | Invoice aset memenuhi syarat cetak |
| Alur utama | 1. User memilih Cetak. 2. Sistem mencatat riwayat cetak dan memuat detail invoice. 3. Sistem membuka modal cetak. |
| Alur negatif | - Jika gagal, muncul pesan error. |
| Bisnis rule | - Cetak ulang mengikuti riwayat cetak dan hak reprint. |
| Postkondisi | Invoice tercetak |
| Trigger | User klik Cetak |
| Kode FR | FR-07 |
UC-09 : Mengaitkan pembelian aset ke invoice terkait
| Aktor | User brand |
| Deskripsi | User mengaitkan invoice aset ke invoice pengiriman, asuransi, atau biaya lain |
| Prekondisi | Invoice aset berstatus selesai |
| Alur utama | 1. User memilih Kaitkan ke Invoice Pengiriman / Asuransi / Biaya Lain. 2. User memilih invoice pada modal. 3. Sistem menyimpan relasi. |
| Alur negatif | - Jika tidak ada invoice dipilih, tidak ada perubahan. - Jika gagal, muncul pesan error. |
| Bisnis rule | - Invoice terpilih menjadi anak dari invoice aset. |
| Postkondisi | Relasi tersimpan |
| Trigger | User memilih aksi kaitkan |
| Kode FR | FR-08 |
5. Data Flow Diagram
DFD-01 — Alur pembelian aset
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar pembelian aset
SD-02 — UC-02 : Memfilter daftar pembelian aset
SD-03 — UC-03 : Membuat pembelian aset
SD-04 — UC-04 : Mengubah pembelian aset draft
SD-05 — UC-05 : Memfinalkan atau menghapus pembelian aset draft
SD-06 — UC-06 : Membuka kembali (unlock) pembelian aset ke draft
SD-07 — UC-07 : Memposting ulang pembelian aset
SD-08 — UC-08 : Mencetak invoice pembelian aset
SD-09 — UC-09 : Mengaitkan pembelian aset ke invoice terkait
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-pembelian-aset | existing | - |
GET /invoice-pembelian-aset/:id | existing | - |
PUT /invoice-pembelian-aset/invoice-only/:id | existing | - |
PUT /invoice-pembelian-aset/unlock/:id | existing | - |
DELETE /invoice-pembelian-aset/:id | existing | - |
POST /pembelian-aset | existing | - |
PUT /pembelian-aset/:id | existing | - |
POST /integrity-pembelian-aset/sync | existing | - |
POST /pembelian/connect-to-parent-invoice | existing | - |