Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-PJL-004 |
| Deskripsi | Pencatatan pembayaran dari customer atas invoice piutang yang terbentuk dari penjualan bertempo, termasuk ringkasan piutang dan pengelolaan status selesai, proses posting, draft, dan selisih |
| 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 pembayaran piutang (tanggal, nomor invoice, customer, status, total pembayaran, keterangan)
- User melihat ringkasan piutang belum dibayar, piutang jatuh tempo, dan piutang terbayar 30 hari terakhir
- User memfilter daftar berdasarkan tanggal, nomor invoice, nomor invoice transaksi, customer, status (selesai / proses posting / draft / selisih), keterangan, invoice piutang, dan total pembayaran
- User membuat pembayaran piutang: tanggal, customer, satu atau banyak invoice piutang, metode pembayaran (termasuk titipan DP), biaya selisih bayar, mata uang, dan lampiran
- User menyimpan pembayaran sebagai draft atau final; selisih pembayaran disimpan sementara sebagai draft
- User mengubah pembayaran draft, melihat detail, mencetak bukti, memposting ulang, unlock ke draft, dan menghapus draft
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar invoice bayar piutang beserta status selesai / proses posting / draft |
| FR-02 | Sistem menampilkan ringkasan piutang belum dibayar, jatuh tempo, dan terbayar 30 hari terakhir bagi user dengan hak ringkasan keuangan |
| FR-03 | User dapat memfilter daftar berdasarkan tanggal, nomor invoice, nomor invoice transaksi, customer, status, keterangan, invoice piutang, dan total pembayaran |
| FR-04 | User dapat membuat pembayaran piutang untuk satu customer atas satu atau banyak invoice piutang yang masih bersisa |
| FR-05 | User dapat membayar dengan satu atau beberapa metode pembayaran, termasuk memakai titipan DP customer |
| FR-06 | Pembayaran final mensyaratkan selisih total pembayaran dan nilai dibayar sama dengan 0; jika tidak, data disimpan sementara sebagai draft |
| FR-07 | User dapat mengubah pembayaran piutang draft |
| FR-08 | User dapat melihat detail, mencetak bukti, dan memposting ulang pembayaran |
| FR-09 | User dapat unlock pembayaran final ke draft dan menghapus pembayaran draft |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar dan ringkasan pembayaran piutang |
| UC-02 | Memfilter daftar pembayaran piutang |
| UC-03 | Membuat pembayaran piutang |
| UC-04 | Mengubah pembayaran piutang draft |
| UC-05 | Melihat detail dan mencetak bukti pembayaran piutang |
| UC-06 | Memposting ulang pembayaran piutang |
| UC-07 | Membuka kembali (unlock) pembayaran piutang ke draft |
| UC-08 | Menghapus pembayaran piutang draft |
4. Use Case Scenario
UC-01 : Melihat daftar dan ringkasan pembayaran piutang
| Aktor | User dengan hak lihat pembayaran piutang |
| Deskripsi | User melihat daftar pembayaran piutang dan ringkasan piutang |
| Prekondisi | User sudah login Brand aktif |
| Alur utama | 1. User membuka menu Pembayaran Piutang. 2. Sistem menyinkronkan status posting di latar belakang. 3. Sistem menampilkan ringkasan piutang. 4. Sistem menampilkan daftar pembayaran piutang. |
| Alur negatif | - Jika gagal memuat ringkasan, nilai ringkasan 0. - Jika tidak ada data, tampil daftar kosong. |
| Bisnis rule | - Ringkasan hanya untuk hak #summary-keuangan.- Status Selesai bila jurnal sudah terposting, Proses Posting bila final tetapi posting belum selesai, Draft bila belum final. |
| Postkondisi | Daftar dan ringkasan tampil |
| Trigger | User membuka menu Pembayaran Piutang |
| Kode FR | FR-01 FR-02 |
UC-02 : Memfilter daftar pembayaran piutang
| Aktor | User dengan hak lihat pembayaran piutang |
| Deskripsi | User menyaring daftar pembayaran piutang |
| Prekondisi | Halaman daftar terbuka |
| Alur utama | 1. User membuka Filter. 2. User mengisi tanggal, nomor invoice, nomor invoice transaksi, customer, status, keterangan, invoice piutang, dan/atau total pembayaran. 3. Sistem memuat ulang daftar. |
| Alur negatif | - Jika tidak ada data cocok, tampil daftar kosong. |
| Bisnis rule | - Status draft memfilter pembayaran belum final; status selesai, proses posting, dan selisih memfilter pembayaran final. - Filter nomor invoice transaksi mencari nomor invoice penjualan yang dibayar. |
| Postkondisi | Daftar tampil sesuai filter |
| Trigger | User mengubah filter |
| Kode FR | FR-03 |
UC-03 : Membuat pembayaran piutang
| Aktor | User dengan hak tambah pembayaran piutang |
| Deskripsi | User mencatat pembayaran customer atas invoice piutang |
| Prekondisi | User memiliki hak #pembayaran-piutang basicCustomer memiliki invoice piutang dengan sisa lebih dari 0 |
| Alur utama | 1. User klik Tambah, atau datang dari invoice penjualan dengan customer dan invoice terisi. 2. User mengisi tanggal, nomor invoice (opsional), customer, dan mata uang. 3. Sistem menampilkan invoice piutang customer yang masih bersisa dan titipan DP yang tersedia. 4. User memilih satu atau banyak invoice piutang dan nominal yang dibayar. 5. User mengisi metode pembayaran, biaya selisih bayar (opsional), dan lampiran (maksimal 2). 6. User klik Simpan Final atau Simpan Draft. 7. Sistem menyimpan pembayaran dan mengunggah lampiran. |
| Alur negatif | - Jika form nota tidak valid, muncul "Ada yang salah di form Nota!". - Jika informasi kosong, muncul "Form Informasi Harus Diisi". - Jika metode pembayaran kosong, muncul "Form Metode Pembayaran Harus Diisi". - Jika nominal titipan melebihi sisa DP, muncul "nominal tidak boleh melebihi sisa dp". - Jika simpan final tetapi masih ada selisih, muncul peringatan "Selisih total pembayaran dan total nilai dibayar harus 0 ..." dengan pilihan "Simpan Sementara" (draft). |
| Bisnis rule | - Invoice piutang terbentuk otomatis dari penjualan bertempo; yang tampil hanya invoice bukan draft dengan sisa piutang lebih dari 0. - Selisih pembulatan dicatat di biaya selisih bayar agar selisih menjadi 0. - Titipan DP yang dapat dipakai hanya DP final milik customer dengan sisa lebih dari 0 dan mata uang yang sama. |
| Postkondisi | Pembayaran piutang tersimpan draft atau final |
| Trigger | User klik Simpan |
| Kode FR | FR-04 FR-05 FR-06 |
UC-04 : Mengubah pembayaran piutang draft
| Aktor | User dengan hak tambah pembayaran piutang |
| Deskripsi | User memperbarui pembayaran piutang yang masih draft |
| Prekondisi | Pembayaran berstatus draft |
| Alur utama | 1. User memilih Edit. 2. Sistem memuat pembayaran, invoice piutang, dan metode bayar. 3. User mengubah data lalu menyimpan draft atau final. 4. Sistem memperbarui pembayaran. |
| Alur negatif | - Jika ada batasan hari ini dan tanggal bukan hari ini, muncul "Anda tidak bisa merubah Invoice Piutang yang tidak sama dengan hari ini!". - Jika masih ada selisih saat final, muncul peringatan selisih dengan pilihan simpan sementara. |
| Bisnis rule | - Baris invoice yang dihapus dikirim dengan penanda deleted. |
| Postkondisi | Pembayaran terbarui |
| Trigger | User klik Edit lalu Simpan |
| Kode FR | FR-07 |
UC-05 : Melihat detail dan mencetak bukti pembayaran piutang
| Aktor | User dengan hak lihat pembayaran piutang |
| Deskripsi | User melihat detail dan mencetak bukti pembayaran |
| Prekondisi | Pembayaran tersedia |
| Alur utama | 1. User memilih Lihat. 2. Sistem menampilkan informasi, invoice yang dibayar, dan metode pembayaran. 3. User klik Cetak. 4. Sistem menandai pembayaran tercetak dan mencetak bukti dengan kop surat. |
| Alur negatif | - Jika gagal menandai cetak, muncul pesan error dari sistem. |
| Bisnis rule | - Cetak ulang mengikuti hak reprint. |
| Postkondisi | Bukti pembayaran tercetak |
| Trigger | User klik Lihat / Cetak |
| Kode FR | FR-08 |
UC-06 : Memposting ulang pembayaran piutang
| Aktor | User dengan hak pembayaran piutang |
| Deskripsi | User meminta sistem memposting ulang jurnal pembayaran yang belum selesai |
| Prekondisi | Pembayaran final |
| Alur utama | 1. User memilih Posting Ulang di halaman detail. 2. Sistem memposting ulang pembayaran. 3. Muncul pesan berhasil posting ulang invoice. |
| Alur negatif | - Jika gagal, muncul pesan error dari sistem. |
| Bisnis rule | - Posting ulang dijalankan langsung (bukan worker) untuk satu pembayaran. |
| Postkondisi | Status posting diperbarui |
| Trigger | User klik Posting Ulang |
| Kode FR | FR-08 |
UC-07 : Membuka kembali (unlock) pembayaran piutang ke draft
| Aktor | User dengan hak draft pembayaran piutang |
| Deskripsi | User mengubah pembayaran final menjadi draft |
| Prekondisi | Pembayaran final |
| Alur utama | 1. User memilih "Ubah ke Simpan Draft". 2. Sistem mengubah status pembayaran menjadi draft. 3. Muncul "Berhasil Ubah ke Simpan Draft Invoice ...". |
| Alur negatif | - Jika ditolak sistem, muncul pesan error dari sistem. |
| Bisnis rule | - Menu unlock hanya tampil untuk pembayaran final dan user dengan hak draft. |
| Postkondisi | Pembayaran berstatus draft |
| Trigger | User klik Ubah ke Simpan Draft |
| Kode FR | FR-09 |
UC-08 : Menghapus pembayaran piutang draft
| Aktor | User dengan hak tambah pembayaran piutang |
| Deskripsi | User menghapus pembayaran piutang yang masih draft |
| Prekondisi | Pembayaran draft |
| Alur utama | 1. User memilih Hapus. 2. Sistem menghapus pembayaran. 3. Muncul "Berhasil hapus pembayaran piutang dengan nomor invoice ...". |
| Alur negatif | - Jika gagal, muncul pesan error dari sistem. |
| Bisnis rule | - Hapus hanya untuk pembayaran draft. |
| Postkondisi | Pembayaran terhapus |
| Trigger | User klik Hapus |
| Kode FR | FR-09 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar dan ringkasan pembayaran piutang
SD-02 — UC-02 : Memfilter daftar pembayaran piutang
SD-03 — UC-03 : Membuat pembayaran piutang
SD-04 — UC-04 : Mengubah pembayaran piutang draft
SD-05 — UC-05 : Melihat detail dan mencetak bukti pembayaran piutang
SD-06 — UC-06 : Memposting ulang pembayaran piutang
SD-07 — UC-07 : Membuka kembali (unlock) pembayaran piutang ke draft
SD-08 — UC-08 : Menghapus pembayaran piutang draft
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-bayar-piutang | existing | - |
GET /invoice-bayar-piutang/:id | existing | - |
POST /invoice-bayar-piutang | existing | - |
PUT /invoice-bayar-piutang/:id | existing | - |
PUT /invoice-bayar-piutang/invoice-only/:id | existing | - |
PUT /invoice-bayar-piutang/unlock/:id | existing | - |
DELETE /invoice-bayar-piutang/:id | existing | - |
POST /invoice-bayar-piutang/sync | existing | - |
POST /invoice-bayar-piutang/sync-bulk | existing | - |
POST /invoice-bayar-hutang/upload/:id | existing | - |
GET /invoice-piutang | existing | - |
GET /invoice-dp | existing | - |
POST /financial-report/invoice-piutang-report | existing | - |
POST /financial-report/invoice-bayar-piutang-report | existing | - |