Panduan Operasional: Credit Limit & AR Control (B2B)
🛡️ Panduan Operasional: Credit Limit & AR Control (B2B)
Dokumen ini menjelaskan alur kerja dan aturan sistem terkait pembatasan kredit distributor (AR Control) yang terintegrasi langsung dengan Kasir (POS) B2B BUMDes.
1. Konsep Dasar#
Untuk mencegah penumpukan Piutang Usaha yang berisiko macet (Bad Debt), sistem menerapkan Credit Limit Blocking ganda pada level Server Actions. Kasir tidak dapat memaksa atau memanipulasi checkout kredit apabila sistem telah menyatakan profil distributor tersebut diblokir.
Ada dua parameter utama yang dievaluasi sebelum kasir dapat memproses transaksi Kredit untuk seorang pelanggan (Mitra B2B):
- Batas Jatuh Tempo (Max Overdue Days)
- Limit Kredit Nominal (Credit Limit)
2. Parameter Blokir (Gatekeeper Rules)#
A. Blokir karena Tagihan Macet (Overdue)
Sistem memprioritaskan umur piutang di atas batas nominal kredit.
Jika seorang distributor memiliki Satu Saja invoice berstatus unpaid atau partial yang telah melewati Due Date lebih dari toleransi keterlambatan (Default: 30 Hari), maka:
- Aksi Sistem: Memblokir total transaksi kredit baru untuk distributor tersebut.
- Pesan Error di POS: "Transaksi Ditolak: Pelanggan [Nama] memiliki invoice macet ([No. Invoice]) melebihi batas toleransi 30 hari."
- Solusi Cepat: Distributor harus melunasi (atau mengangsur) invoice yang macet tersebut hingga statusnya diperbarui, barulah transaksi baru bisa dilakukan.
B. Blokir karena Limit Nominal (Credit Limit)
Jika tidak ada tagihan yang macet, sistem mengevaluasi total utang berjalan distributor ditambah dengan jumlah transaksi yang sedang akan di-checkout di kasir.
- Jika
Total Piutang Berjalan+Nilai Transaksi POS Saat Ini>Credit Limit(dari Profil Mitra), maka: - Aksi Sistem: Memblokir transaksi kredit.
- Pesan Error di POS: "Transaksi Ditolak: Limit kredit terlampaui. Total utang berjalan + transaksi baru melebihi limit (Rp X)."
- Solusi: Kasir harus meminta distributor menambah pembayaran tunai / down payment untuk menurunkan nominal kredit yang diajukan agar berada di bawah sisa limit, atau distributor harus melunasi tagihan yang sudah ada.
3. Konfigurasi oleh Super Admin#
Nilai limit kredit dan batas overdue diatur pada tabel business_partners melalui properti metadata.
Secara default, jika Super Admin belum mengonfigurasi profil seorang Mitra:
credit_limit: 0 (Artinya Unlimited / Tidak dibatasi secara nominal). Hal ini untuk memastikan transisi sistem tidak mengunci operasi bisnis sehari-hari.max_overdue_days: 30 Hari.
Super Admin dapat melakukan override dengan memperbarui metadata mitra terkait.
4. Keamanan Sistem#
Validasi ini diletakkan pada checkCustomerARStatus() di dalam modul lib/actions/sales.ts. Validasi ini tereksekusi pada Backend (Server Action processTransaction di pos.ts), sehingga tidak dapat dimanipulasi oleh akses klien atau insiden pembobolan antarmuka (frontend bypass).