Demo — Transaksi
Modul Transaksi (menu Nota) adalah order final penjualan unit. Sales atau Admin H1 membuat tahap awal (pelanggan, unit, tipe pembayaran); Kepala Cabang, SPV, atau ADH melengkapi harga dan syarat kredit; SCP diklaim dari MPM; transaksi bisa dibatalkan dan unitnya kembali tersedia. Pembuatan Nota Cetak dan Nota Sekunder tidak dicakup di sini. Gambar diambil dari data uji (database terpisah, Cabang E2E A, 2026-10-10).
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 |
|---|---|---|---|
| Sales | Budi Santoso | e2e_sales | 1, 2, 4, 8 |
| Admin H1 | Rina Marlina | e2e_admin_h1 | 3 |
| Kepala Cabang | Dewi Lestari | e2e_kepala_cabang | 5, 6, 7, 8, 11, 12 |
| SPV | Yusuf Hidayat | e2e_spv | 5, 8 |
| ADH | Sri Wahyuni | e2e_adh | 5 |
| Kawil | Bambang Sutrisno | e2e_kawil | 9, 10, 11 |
| Superadmin | Hendra Wijaya | e2e_superadmin | 10 |
| Admin PDI | Agus Salim | e2e_admin_pdi | 9 |
Siapa boleh apa
| Kegiatan | Role |
|---|---|
| Membuat transaksi (tahap awal) | Superadmin, Kepala Cabang, Admin H1, Sales, SPV, ADH |
| Melengkapi (delivery man, tgl kirim, harga, DP, angsuran, tenor, leasing, KDS) | Superadmin, Kepala Cabang, SPV, ADH |
| SCP (nominal dan tandai selesai) | Superadmin, Kepala Cabang, Admin H1, SPV, ADH |
| Membatalkan transaksi | Superadmin, Kawil, Kepala Cabang, SPV, ADH |
| Melihat daftar dan detail | Superadmin, Kawil, Kepala Cabang, Admin H1, Sales, SPV, ADH |
Admin PDI tidak punya akses Transaksi. Cakupan data mengikuti role: Sales satu cabangnya, Kawil cabang wilayahnya.
Alur satu halaman
Pelanggan skor 100% -> Transaksi Baru (unit + tipe) -> Lengkapi (harga/DP/angsuran) -> SCP -> Nota (agen lain)
| |
Booked, unit ikut Booked Batalkan: Batal, unit Tersedia lagi
1. Diblokir bila data pelanggan belum lengkap
Role: Sales (Budi Santoso)
- Buka Nota → Transaksi → Transaksi baru. Cari dan pilih pelanggan (nama, telepon, atau NIK).
- Pelanggan dengan skor di bawah 100% (di demo: Wahyu Nugroho, 17%) langsung diberi peringatan merah yang menyebut field yang kosong, dengan tautan Lengkapi data.
- Bila tetap disimpan, server menolak: "Data pelanggan belum lengkap: nama_stnk, nik, email, ...".


2. Transaksi tunai (cash)
Role: Sales (Budi Santoso)
- Pilih pelanggan dengan skor 100% (Slamet Riyadi). Daftar Unit berisi unit tersedia di cabang pelanggan dan unit yang sedang dibooking pelanggan itu.
- Pilih Unit, Tipe Pembayaran = Tunai. Kelengkapan Unit dan Nama Surveyor opsional. Tipe pembayaran menjadi bagian no kontrak dan tidak dapat diubah.
- Simpan. Detail terbuka dengan no kontrak dibuat otomatis, mis.
E2E-A/2026/tunai/0002(kode cabang / tahun / tipe / urutan), status Booked. - No kontrak tidak muncul sebagai pratinjau di form; formnya hanya menyebut "No kontrak, tanggal, dan cabang diisi otomatis". Urutan dihitung per cabang per tahun lintas tipe.
- Sales melihat bagian Lengkapi Transaksi terkunci (hanya baca).


3. Transaksi kredit
Role: Admin H1 (Rina Marlina)
Sama seperti alur 2, dengan Tipe Pembayaran = Kredit. Muncul kolom Finco (wajib untuk kredit). Ringkasan detail menampilkan Finco. Admin H1 juga hanya membaca bagian Lengkapi. Kolom Sales pada ringkasan berisi pembuat transaksi (di sini Rina Marlina).


4. Transaksi KDS
Role: Sales (Budi Santoso)
Tipe Pembayaran = KDS: tanpa Finco. Nomor kontrak berakhiran /KDS/0004.

5. Melengkapi field lanjutan
Role: Kepala Cabang (Dewi Lestari), SPV (Yusuf Hidayat), ADH (Sri Wahyuni)
Kelompok yang tampil mengikuti tipe pembayaran:
| Tipe | Kelompok |
|---|---|
| Tunai | Pengiriman, Harga |
| Kredit | Pengiriman, Harga, Uang muka & angsuran, Leasing |
| KDS | Pengiriman, Harga, Uang muka & angsuran, KDS |
- Pengiriman: Delivery Man dan Tgl Kirim; keduanya wajib sebelum Nota Surat Jalan dapat dibuat.
- Harga: Harga Jual, Harga OTR, Harga Kosongan, Biaya BBN, Diskon, DP Pesanan Unit.
- Uang muka & angsuran: DP Gross, DP Bayar, Angsuran, Tenor (bulan).
- Leasing (kredit): Ekstra Subsidi, Piutang Sementara, Piutang Sementara TAC, Hutang Titipan PIC, Titip Denda Kesepakatan.
- KDS: Pokok KDS, Admin KDS. Dan Keterangan.
Tekan Simpan; muncul "Data transaksi disimpan". Pada KDS, bagian Jadwal Angsuran KDS muncul di bawahnya (membutuhkan tenor dan angsuran terisi lebih dulu).
Tunai oleh Kepala Cabang:


Kredit oleh SPV:

KDS oleh ADH:

6. SCP
Role: Kepala Cabang (Dewi Lestari); Admin H1, SPV, ADH juga boleh
- Di bagian SCP isi Nominal SCP (di demo Rp 500.000); Simpan nominal menyimpan tanpa menyelesaikan.
- Pilih pembayaran (Non tunai / Tunai), tekan Tandai selesai; dialog mengonfirmasi bahwa Nota SCP langsung diterbitkan dan nominal terkunci. Tombol ini butuh unit pada transaksi dan nominal di atas 0.
- Setelah selesai nominal terkunci, dan Nota SCP muncul di tabel Nota Cetak (status Approve, Rp 500.000). Koreksi dilakukan dengan membatalkan Nota SCP.



7. Daftar Transaksi dan filter
Role: Kepala Cabang (Dewi Lestari)
Kolom: Tgl, No Kontrak, Pelanggan, Unit, Tipe, Status, Sales. Filter: no kontrak, status, tipe pembayaran, rentang tanggal (dan cabang untuk Superadmin atau Kawil dengan banyak cabang). Baris dari Indent Real belum punya unit: kolom Unit memuat "Belum ada unit · no indent".


8. Pembatalan dan efeknya ke unit
Role: SPV (Yusuf Hidayat); Sales tidak boleh
- Sales membuka detail: tombol Batalkan transaksi tidak ada.
- SPV membuka detail, tekan Batalkan transaksi; dialog: "Unit kembali tersedia dan booking-nya dibatalkan. Nota yang sudah terbit tidak berubah."
- Setelah Batalkan: status Batal, seluruh data hanya dibaca, toast "Transaksi dibatalkan, unit kembali tersedia".
- Di Motor → Stok Motor unit transaksi batal kembali Tersedia; unit transaksi lain masih Booked.




9. Kawil dan Admin PDI
- Kawil melihat detail, tombol Batalkan transaksi ada, bagian Lengkapi terkunci. Pembatalan oleh Kawil dieksekusi di alur 10.
- Admin PDI tidak punya menu Transaksi; alamat
/transaksidiketik manual dijawab "Tidak diizinkan".


10. Pembatalan oleh Kawil dan Superadmin (dieksekusi di UI)
Role: Kawil (Bambang Sutrisno), Superadmin (Hendra Wijaya)
- Buka detail transaksi berstatus Booked, tekan Batalkan transaksi; dialog konfirmasi menyebut "Unit kembali tersedia dan booking-nya dibatalkan. Nota yang sudah terbit tidak berubah."
- Tekan Batalkan. Hasil: berhasil untuk keduanya. Status berubah Batal, keterangan di atas halaman "Transaksi batal: data hanya dapat dibaca, dan hanya nota pengembalian pesanan yang masih dapat dibuat", tombol Batalkan hilang, semua field terkunci. Tidak ada pesan penolakan.
- Pada transaksi batal, bagian Nota Cetak tetap menampilkan tombol Generate nota (dibatasi hanya untuk nota pengembalian pesanan menurut keterangan di layar; tidak didemokan).
Kawil membatalkan transaksi KDS:


Superadmin membatalkan transaksi tunai:


11. Transaksi Terkirim
Role: Kepala Cabang (Dewi Lestari), Kawil (Bambang Sutrisno)
Transaksi tunai E2E-A/2026/tunai/0002 disiapkan lewat API: Delivery Man dan Tgl Kirim terisi (alur 5), lalu Nota Surat Jalan diterbitkan (status Approve). Hasil di UI:
- Status berubah Terkirim (daftar dan detail). Tabel Nota Cetak memuat baris Surat Jalan (Netral, Approve).
- Tombol Batalkan transaksi nonaktif untuk Kepala Cabang dan Kawil, dengan keterangan "Sudah terkirim — batalkan Nota Surat Jalan dulu."
- Transaksi Terkirim tetap bisa diedit di bagian Lengkapi oleh Kepala Cabang (tombol Simpan masih ada); untuk Kawil terkunci seperti biasa.



12. Transaksi dari Indent Real (tanpa unit)
Role: Kepala Cabang (Dewi Lestari)
Transaksi dibuat otomatis oleh Indent Real (data disiapkan ADH lewat API). Di detail:
- No kontrak tetap dibuat (urutan 0001), status Booked, tipe Tunai.
- Kolom Unit: "Belum ada unit — indent IN/1/E2E/10/2026"; kolom Sales berisi pembuat indent (ADH).
- Tandai selesai SCP nonaktif (butuh unit).
- Nota Cetak: "Unit belum ada: hanya Nota Pesanan Unit dan pengembaliannya yang dapat dibuat."

Tidak didemokan
- Layar generate Nota Cetak, Nota Sekunder, dan pengisian Jadwal Angsuran KDS (hanya hasilnya di detail atau disebut).
- Pembuatan Indent Real di UI; baris dan detail transaksinya terlihat di alur 7 dan 12.
- Membatalkan Nota Surat Jalan agar transaksi Terkirim bisa dibatalkan (bagian Nota Cetak).
Catatan
- Skrip:
_tools/transaksi.mjs. Transaksi Terkirim disiapkan denganPOST /nota-cetakjenissurat_jalan.