Demo — Nota Sekunder
Panduan demo per alur untuk modul Nota Sekunder (Nota → Nota Sekunder). Nota Sekunder mencatat kas masuk (BKM) dan kas keluar (BKK) di luar Nota Cetak: penerimaan atau pengeluaran lain-lain, pelunasan piutang/hutang sementara, angsuran piutang karyawan. Beberapa nota dipilih lalu dicetak gabungan pada satu lembar; lembar itu tersimpan di riwayat dan bisa dicetak ulang. Setiap alur menyebut siapa yang mengerjakan (role), langkahnya, dan tangkapan layar.
Semua gambar diambil dari build develop yang berjalan dengan data uji (database terpisah, satu akun per role, cabang Cabang E2E A).
Cara membaca gambar
- Kotak biru = tombol atau kolom yang diklik atau diisi.
- Kotak hijau = hasil yang benar; kotak merah = ditolak atau gagal.
- Kotak ungu = keterangan tambahan.
- Pita hitam di bawah gambar = alur dan role yang sedang berjalan.
Akun yang dipakai
| Role | Nama | Username | Dipakai di alur |
|---|---|---|---|
| Admin H1 | Rina Marlina | e2e_admin_h1 | 1, 2, 3, 4, 5, 6, 7, 8 |
| ADH | Sri Wahyuni | e2e_adh | 9 |
| Kepala Cabang | Dewi Lestari | e2e_kepala_cabang | 9 |
| Sales | Budi Santoso | e2e_sales | 9 |
| Admin PDI | Agus Salim | e2e_admin_pdi | 9 |
| SPV | Yusuf Hidayat | e2e_spv | 9 |
| Kawil | Bambang Sutrisno | e2e_kawil | 9 |
Password semua akun uji sama. Sebelum demo disiapkan lewat API: sub label Biaya ATK dan Transport Karyawan, satu transaksi kredit (Piutang Sementara Rp 31.500.000), satu Piutang Karyawan (Joko Susilo, Rp 2.500.000), satu HS Leasing (Rp 5.000.000), satu HS Lebih Cair (Rp 750.000), dan tiga nota riwayat.
Siapa boleh apa
| Kegiatan | Role |
|---|---|
| Menu Nota Sekunder, catat, ubah, hapus, cetak gabungan, riwayat cetak | Superadmin, Kepala Cabang, Admin H1, ADH |
| Kelola master Sub Label Nota | Superadmin, Kawil, Kepala Cabang, ADH |
| Admin PDI, Sales, SPV, Kawil | tidak ada akses (halaman ditolak, API 403) |
Superadmin membaca semua cabang dan wajib memilih Cabang pada nota baru; role lain mencatat di cabangnya sendiri.
Alur satu halaman
Nota Sekunder baru (BKM / BKK, label, sub label, referensi)
|
v
Daftar Nota Sekunder (filter) -- centang beberapa -- Cetak gabungan
| |
Ubah / Hapus (belum dicetak) v
Lembar cetak -> Riwayat cetak -> Buka = cetak ulang
(nota terkunci)
1. Mencatat nota BKM
Role: Admin H1 (Rina Marlina)
- Buka Nota → Nota Sekunder. Daftar memuat nota yang ada dengan status Belum dicetak; tombol Nota baru dan Riwayat cetak di kanan atas.
- Tekan Nota baru. Form: Tanggal (tidak boleh lewat hari ini), Nama, Kategori Kas, Label, Sub Label, Keterangan, Nominal, Pembayaran Via.
- Label bergantung pada Kategori Kas. Untuk BKM: Penjualan, Kredit Uang Muka, Angsuran Piutang, Hutang Sementara, Pengembalian Piutang Sementara, Pengembalian Piutang Sementara TAC, Titipan BBN/HER, Penerimaan Lain-lain.
- Contoh: Nama
Toko Aksesoris Maju, Label Penerimaan Lain-lain, Sub Label Biaya ATK (dari master Sub Label Nota), Nominal Rp 1.200.000, via Tunai. - Tekan Simpan; kembali ke daftar, nota baru berstatus Belum dicetak.





2. Mencatat nota BKK
Role: Admin H1 (Rina Marlina)
- Pada form baru, ganti Kategori Kas ke BKK. Pilihan Label berganti: Angsuran Hutang, Bayar BBN, Pengembalian Hutang Sementara, Pembiayaan Piutang Sementara, Lain-lain, Bayar Unit Kendaraan, Bayar Titipan PIC.
- Contoh: Nama
Samsat Kota Semarang, Label Bayar BBN, Nominal Rp 650.000, via Non tunai, keteranganBayar BBN unit Beat A/N Slamet Riyadi. - Tekan Simpan.


3. Referensi transaksi dan batas sisa
Role: Admin H1 (Rina Marlina)
Label tertentu melunasi sesuatu, jadi form menawarkan referensi.
- Pilih Label
Pengembalian Piutang Sementara. Muncul Referensi Transaksi dengan kotak cari no kontrak dan daftar transaksi. - Pilih
E2E-A/2026/kredit/0001. Keterangan di bawahnya: "Piutang sementara transaksi ini Rp 31.500.000. Nominal tidak boleh melebihi sisanya." - Nominal Rp 40.000.000 ditolak server dengan pesan
nominal (40000000) melebihi sisa pengembalian_piutang_sementara (31500000)di bawah kolom Nominal (pesan tampil apa adanya, tanpa format rupiah). - Nominal Rp 10.000.000 tersimpan; nota tercatat sebagai pelunasan transaksi itu.


4. Referensi lain: piutang karyawan, HS Lebih Cair, HS Leasing
Role: Admin H1 (Rina Marlina)
Jenis referensi yang tersedia mengikuti label:
| Label | Referensi |
|---|---|
| Pengembalian Piutang Sementara, Pengembalian Piutang Sementara TAC, Bayar Titipan PIC | Transaksi |
| Angsuran Piutang (BKM) | Piutang Karyawan |
| Pengembalian Hutang Sementara (BKK) | HS Lebih Cair atau HS Leasing (pilih Jenis Referensi) |
- Label Angsuran Piutang: Referensi Piutang Karyawan menampilkan tanggal, nama, dan sisa (
2026-10-08 — Joko Susilo · sisa Rp 2.500.000). Angsuran Rp 500.000 tersimpan. - Label Pengembalian Hutang Sementara: muncul Jenis Referensi (HS Lebih Cair / HS Leasing). Pilih HS Lebih Cair, referensi
E2E-A/2026/kredit/0001 — Slamet Riyadi · sisa Rp 750.000; nominal Rp 750.000 tersimpan. - Referensi opsional ("Tanpa referensi"); dengan referensi nominal dibatasi sisa.




5. Penolakan isian
Role: Admin H1 (Rina Marlina)
Form kosong lalu Simpan: kolom yang salah bertanda merah dengan pesan Tanggal wajib diisi, Nama wajib diisi, Label wajib dipilih, Nominal harus lebih dari 0.

Penolakan server yang diamati lewat API (tidak ada tombol di layar):
| Percobaan | Jawaban |
|---|---|
Label bayar_bbn pada kategori BKM | 400 label bayar_bbn tidak berlaku untuk kategori_kas BKM |
| Nominal 0 | 400 nominal harus lebih dari 0 |
| Tanggal besok | 400 tgl tidak boleh melewati hari ini |
ref_tipe tanpa ref_id | 400 ref_tipe dan ref_id harus diisi keduanya atau dikosongkan keduanya |
| Label tidak sah untuk referensi transaksi | 400 label penerimaan_lain_lain tidak sah untuk ref_tipe transaksi |
6. Daftar dan filter
Role: Admin H1 (Rina Marlina)
Kolom: Tgl, Nama (dengan keterangan), Kategori, Label, Sub Label, Nominal, Via, Status Cetak, lalu Ubah dan Hapus. Filter: rentang tanggal, kategori kas, label (ikut kategori), status cetak (Belum dicetak / Sudah dicetak). Tabel lebih lebar dari kolomnya; Status Cetak dan Ubah/Hapus ada di kanan dan terlihat setelah tabel digeser.


Filter kategori BKK:

7. Cetak gabungan
Role: Admin H1 (Rina Marlina)
- Saring Belum dicetak; centang nota yang dicetak (centang kepala tabel memilih semua nota belum dicetak di halaman). Tombol menjadi Cetak gabungan (3).
- Tekan Cetak gabungan; dialog: "Nota yang sudah dicetak terkunci: tidak dapat diubah atau dihapus. Cetak ulang lewat Riwayat cetak." Konfirmasi.
- Terbuka lembar cetak: kop cabang, tabel No, Tgl, Nama, Kategori, Label, Sub Label, Keterangan, Nominal, Total BKM dan Total BKK, serta "Dicetak 2026-10-10 oleh Rina Marlina". Contoh tiga nota BKK: total Rp 1.010.000.



8. Riwayat cetak dan cetak ulang
Role: Admin H1 (Rina Marlina)
- Riwayat cetak menampilkan satu baris per cetakan: Tgl Cetak, Dicetak Oleh, Jumlah Nota, dengan filter tanggal cetak.
- Buka menampilkan lembar yang sama untuk dicetak ulang; riwayat tidak bertambah.
- Di daftar, nota yang sudah dicetak berstatus Sudah dicetak (bisa diklik ke lembarnya) dan hanya punya Lihat, tanpa Hapus. Form Lihat terkunci: "Nota ini sudah dicetak, tidak dapat diubah atau dihapus. Buka cetakan".




Penolakan di API untuk nota yang sudah dicetak:
| Percobaan | Jawaban |
|---|---|
| Ubah nominal | 409 Nota sekunder sudah dicetak, tidak dapat diubah atau dihapus |
| Hapus | 409 Nota sekunder sudah dicetak, diubah, atau dihapus; muat ulang data |
| Masukkan ke cetakan baru | 409 Sebagian nota sekunder sudah dicetak |
9. Role yang boleh dan yang tidak
Role: ADH (Sri Wahyuni), Kepala Cabang (Dewi Lestari); ditolak: Sales (Budi Santoso), Admin PDI (Agus Salim), SPV (Yusuf Hidayat), Kawil (Bambang Sutrisno)
ADH dan Kepala Cabang melihat daftar dengan Nota baru dan Cetak gabungan.


Sales, Admin PDI, SPV, dan Kawil tidak punya menu Nota Sekunder; bila /nota-sekunder diketik manual halaman menampilkan Tidak diizinkan.




API: GET /nota-sekunder oleh Kawil dan Admin PDI dijawab 403 Role kawil is not allowed here; POST oleh Sales dan SPV dijawab 403.
10. Insentif PIC Bulanan (rekap hutang PIC)
Role: Admin H1 (Rina Marlina)
Data: dua transaksi kredit lewat Federal International Finance dengan Hutang Titipan PIC Rp 100.000 dan Rp 250.000 pada Oktober 2026.
- Kategori BKK, Label Bayar Titipan PIC: Jenis Referensi menawarkan Transaksi atau Insentif PIC Bulanan.
- Pilih Insentif PIC Bulanan. Referensi Insentif PIC Bulanan menampilkan satu baris per bulan dan finco:
Oktober 2026 — PT Federal International Finance · sisa Rp 350.000(jumlah semua titipan PIC bulan itu). - Nominal Rp 500.000 ditolak server:
nominal (500000) melebihi sisa bayar_titipan_pic (350000). - Nominal Rp 200.000 tersimpan. Saat form dibuka lagi, sisa pada baris yang sama menjadi Rp 150.000.




11. HS Leasing: pengembalian bertahap dan Penanda Pelunasan
Role: Admin H1 (Rina Marlina)
Data: HS Leasing dari Federal International Finance, Rp 5.000.000 (tanggal 2026-10-09).
- Kategori BKK, Label Pengembalian Hutang Sementara, Jenis Referensi HS Leasing. Picker memuat
2026-10-09 — PT Federal International Finance · sisa Rp 5.000.000. - Sub Label terisi dan terkunci sistem: Pengembalian HS Leasing ("Diisi sistem untuk nota yang merujuk HS Leasing").
- Tahap 1 Rp 2.000.000 tersimpan. Pada form berikutnya sisa Rp 3.000.000.
- Tahap 2 Rp 3.000.000 melunasi sisa. Sistem otomatis menambah baris Pelunasan HS Leasing (lencana Penanda sistem, BKK, nominal Rp 0, non tunai, tanpa kotak centang dan tanpa Ubah/Hapus). Dibuka lewat alamatnya, form penanda tertulis "Penanda Pelunasan HS Leasing dibuat sistem, tidak dapat diubah atau dihapus."
- Tahap 2 diubah ke Rp 2.500.000: sisa Rp 500.000, penanda hilang dari daftar. Dikembalikan ke Rp 3.000.000, penanda muncul lagi.
- Tahap 2 dihapus (dialog Hapus): penanda ikut hilang, sisa kembali Rp 3.000.000.










12. Ubah dan hapus nota yang belum dicetak
Role: Admin H1 (Rina Marlina)
- Pada baris nota belum dicetak ada Ubah dan Hapus (di kolom kanan).
- Ubah membuka form yang sama; Kategori Kas, cabang, dan referensi terkunci ("Hapus nota lalu catat ulang bila keliru"). Contoh: nominal
Parkir Karyawandari Rp 120.000 menjadi Rp 150.000 dan keterangan baru; Simpan kembali ke daftar dengan nilai baru. - Hapus membuka dialog konfirmasi; setelah Hapus baris
Salah Catathilang dari daftar. - Bila nota dicetak orang lain saat formnya terbuka (di demo: dicetak lewat API), Simpan ditolak dengan pesan merah "Nota sekunder sudah dicetak, tidak dapat diubah atau dihapus".






13. Pilih semua dan batas 100 nota per cetakan
Role: Admin H1 (Rina Marlina)
Data: 101 nota BKK tanggal 2026-09-20 (Massal 001–Massal 101).
- Daftar menampilkan 25 nota per halaman. Kotak centang di kepala tabel memilih semua nota belum dicetak di halaman itu; tombol menjadi Cetak gabungan (25).
- Pilihan bertahan antar halaman: centang kepala tabel di tiap halaman sampai halaman 5, tombol menjadi Cetak gabungan (101).
- Menekan tombol dengan 101 nota ditolak di layar dengan pesan "Maksimal 100 nota per cetakan"; tidak ada permintaan ke server.
- Satu nota dilepas (100 nota): dialog konfirmasi terbuka dan lembar cetak memuat 100 baris.
Di API batas yang sama ditegakkan oleh validasi daftar nota_sekunder_ids (1 sampai 100 id).





14. Dari status Sudah dicetak ke lembar cetak
Role: Admin H1 (Rina Marlina)
Filter Sudah dicetak: lencana hijau Sudah dicetak pada tiap baris adalah tautan; menekannya membuka lembar cetak yang memuat nota itu.


15. Superadmin lintas cabang
Role: Superadmin (Hendra Wijaya)
- Daftar memuat nota semua cabang, dengan filter Semua cabang dan kolom Cabang (kolom terakhir, terlihat setelah tabel digeser).
- Form Nota Sekunder Baru punya field Cabang yang tidak ada untuk role lain; dikosongkan lalu Simpan ditolak "Cabang wajib dipilih".
- Cetak gabungan nota cabang A dan B menghasilkan lembar tanpa kop cabang; kolom Cabang ditambahkan per baris.





Temuan
- Kawil tidak read-only, melainkan tanpa akses. Fitur
nota_sekundertidak mencakup Kawil: menu tidak ada, halaman dan API ditolak, termasuk daftar dan riwayat cetak. (Kawil hanya mendapat laporan Nota.) Bila Kawil seharusnya bisa melihat daftar read-only, ini celah. - Pesan melebihi sisa tidak diformat. Server menjawab
nominal (40000000) melebihi sisa pengembalian_piutang_sementara (31500000)dan form menampilkannya apa adanya (angka tanpa titik, nama label berupa kode). Form tidak memeriksa batas sisa di sisi klien walau sisa sudah ditampilkan. - Tabel daftar terpotong di kanan (Status Cetak, Ubah, Hapus) pada lebar 1680 px.
- Pesan 409 saat menghapus nota yang sudah dicetak ("sudah dicetak, diubah, atau dihapus; muat ulang data") berbeda dari saat mengubah dan kurang jelas.
- Setelah Simpan ditolak karena nota sudah dicetak (alur 12), form berubah ke mode terkunci tetapi kolom Nominal masih menampilkan nilai yang diketik (Rp 88.000), bukan nilai tersimpan (Rp 77.000).
- Pesan melebihi sisa untuk Insentif PIC memakai kode label dan angka mentah (
melebihi sisa bayar_titipan_pic (350000)), sama seperti transaksi. - Penanda Pelunasan HS Leasing tampil di urutan teratas daftar (tanggal pelunasan terbaru), nominal Rp 0, dan tidak punya tombol apa pun.
Tidak didemokan
- Batas 100 nota di sisi server dibuktikan lewat kode (validasi
ArrayMaxSize), bukan lewat permintaan 101 id; di layar yang terbukti hanya penolakan klien. - Nota BKM dengan referensi Piutang Karyawan yang dilunasi penuh (sisa 0).
Catatan teknis
- Data demo ada di database
tirto_demo3_e2e, terpisah dari database dev. - Skrip:
_tools/nota-sekunder.mjs, bisa diulang dari nol. - Gambar berakhiran
bmenampilkan tabel yang sudah digeser ke kanan.