Lewati ke konten

Keunggulan Menu: Hutang & Piutang Pihak Ketiga

Tier 3 — Keunggulan-keunggulan Booku yang muncul saat user memakai menu Hutang Pihak Ketiga dan Piutang Pihak Ketiga.


Deskripsi Menu

Hutang Pihak Ketiga dan Piutang Pihak Ketiga adalah modul untuk mencatat hutang/piutang kepada/dari pihak ketiga — yaitu pihak yang bukan bank, leasing, karyawan, pemegang saham, atau afiliasi. Contoh: pinjaman dari kerabat pemilik, hutang ke vendor non-rutin, piutang ke kontraktor lepas, dll.

Modul ini bagian dari kategorisasi hutang/piutang Booku yang dipisah berdasarkan jenis counterparty — beda dengan aplikasi lain yang umumnya pakai 1 modul “Hutang”/“Piutang” generic.

Lokasi sidebar:

  • Tahun Buku NORMAL: submenu Buku PengawasanHutang/Piutang Pihak Ketiga
  • Tahun Buku LAMPAU: submenu Data AwalHutang/Piutang Pihak Ketiga (input saldo akhir dari tahun sebelumnya)

Daftar Keunggulan yang Muncul di Menu Ini

#KeunggulanTagline SingkatTier 2 Terkait
1Kategorisasi hutang/piutang berbasis counterpartyBukan 1 ember generic — tiap jenis mitra punya modul sendiri#08
2Bar Saldo dengan reconciliation List vs COA realtimeSelisih langsung terlihat, tidak perlu rekonsiliasi manual#01
3Pembebanan Biaya Admin 3 opsi dengan jurnal otomatisDiganti / Dipotong / Ditambahkan — sistem yang hitung, user tinggal pilih#02
4Cross-Modul Atomic PostingTombol Posting jurnalkan transaksi bank+master sekaligus, tanpa risiko data setengah jadi#01, #02
5UI Dinamis KontekstualField bank, Pembebanan, dan Jatuh Tempo muncul/sembunyi sesuai konteks#10
6Multi-user safeDua user input bersamaan tetap dapat nomor unik tanpa konflik#06

Detail per Keunggulan

1. Kategorisasi Hutang/Piutang Berbasis Counterparty

Masalah di aplikasi lain: Aplikasi akuntansi umum biasanya pakai 1 modul “Hutang” / “Piutang” generic. User harus tag manual via “kategori counterparty” atau pakai sub-akun COA. Hasilnya: laporan saldo per jenis counterparty butuh filter manual, sering tidak akurat.

Solusi Booku: Booku punya 6+ modul tracking hutang/piutang yang dipisah berdasarkan jenis counterparty, masing-masing dengan COA terpisah & flow input yang spesifik:

ModulCounterpartyKodeTautan COA
Hutang UsahaVendor/Supplier rutin21100-an
Hutang/Piutang Bank/LeasingLembaga keuangan21200-an
Hutang/Piutang Pihak KetigaPihak lain (non-formal, non-afiliasi)21802 / 11504
Hutang/Piutang KaryawanKaryawan21801 / 11502
Hutang/Piutang AfiliasiPerusahaan grup25100 / 11503
Hutang/Piutang Pemegang SahamOwner / shareholder21803 / 11505
Hutang/Piutang DividenDividen yang belum dibayar

Hasilnya: user langsung tahu berapa hutang ke pihak ketiga, berapa ke karyawan, dll. tanpa perlu filter manual. Reporting saldo per counterparty otomatis ter-segregasi.

📄 Cross-ref: #08 Simple for User


2. Bar Saldo dengan Reconciliation List vs COA Realtime

Setiap halaman HPK/PPK punya Bar Saldo di atas tabel yang menampilkan:

AnglePenjelasan
Saldo (List)Akumulasi saldo dari semua record di tabel — sumber: data master Pengawasan Hutang/Piutang
Saldo (COA) + AJPSaldo COA Hutang/Piutang dari jurnal tbl_transaksi (tambah AJP saat NORMAL)
SelisihList − (COA + AJP), ideal = 0 → warna merah kalau ≠ 0

User langsung lihat apakah catatan individu (list) cocok dengan saldo akuntansi (COA). Kalau ada selisih, biasanya ada record yang belum dijurnal, jurnal manual yang tidak match, atau data master yang terhapus secara tidak sengaja.

Implementation: helper terpusat _coaService.GetCoaSaldoAsync(KodeTautanCOA_*) yang juga dipakai dashboard Validasi Saldo Awal — single source of truth untuk perhitungan saldo COA. Tidak ada caching stale.

📄 Cross-ref: #01 Realtime Financial Accuracy


3. Pembebanan Biaya Admin 3 Opsi dengan Jurnal Otomatis

Saat input Hutang Pihak Ketiga via Bank, user bisa pilih cara pembebanan biaya admin bank:

PembebananApa yang terjadiContoh (mutasi Rp 10jt, BiayaAdmin Rp 50rb)
DipotongBank potong biaya dari pencairanPerusahaan terima Rp 9.950.000; Pokok hutang tetap Rp 10jt; selisih Rp 50rb diakui sebagai biaya bank
DitambahkanBiaya admin ditambahkan ke pokok hutangPerusahaan terima Rp 10jt penuh; Pokok hutang naik jadi Rp 10.050.000; biaya admin di-amortisasi sebagai bagian hutang
DigantiBiaya admin dipindahkan ke COA Hutang umum (bukan ke pokok individual)Perusahaan terima Rp 10jt penuh; Pokok hutang individu tetap Rp 10jt; biaya admin masuk sebagai kredit ke COA Hutang umum (menambah saldo agregat tanpa menambah pokok per-record)

User cukup pilih opsi — sistem yang generate jurnal yang benar untuk setiap kasus (multi-line jurnal: Debet Bank, Debet Biaya, Kredit Hutang, dengan komposisi berbeda per opsi).

Helper terpusat perhitunganValueBank di frontend menjamin perhitungan SaldoAwal/JumlahTransfer/TotalBank konsisten dengan jurnal yang dihasilkan backend. Mirror dengan logika Booku Lama (Sub Perhitungan() di wpfWin_InputHutangPiutangPihakKetiga.xaml.vb).

📄 Cross-ref: #02 Automatic Everything


4. Cross-Modul Atomic Posting

Masalah klasik di aplikasi akuntansi: Pencairan hutang/piutang melibatkan 2 tabel: tabel master hutang + tabel jurnal/bukti transaksi. Kalau salah satu gagal disimpan (mis. koneksi terputus), data jadi inconsistent: master ter-update tapi jurnal hilang (atau sebaliknya).

Solusi Booku: Tombol Posting di context menu HPK/PPK menjurnalkan pencairan via Bukti Penerimaan (HPK) atau Bukti Pengeluaran (PPK) dalam single atomic transaction (SaveChangesAsync tunggal). Implementasi:

  • Interface IHutangPihakKetigaPostingOps / IPiutangPihakKetigaPostingOps — share DbContext antar service
  • Method MarkAsPostedAsync — track perubahan saja, tidak call SaveChangesAsync sendiri
  • BuktiPenerimaanService.CreateAsync / BuktiPengeluaranService.CreateAsync — satu-satunya caller SaveChangesAsync

Hasilnya: master HPK (update NomorJV) + entry Bukti Penerimaan + jurnal lines — semua atau tidak sama sekali. Tidak ada partial commit.

📄 Cross-ref: #01 Realtime Accuracy, #02 Automatic Everything


5. UI Dinamis Kontekstual

Form Input HPK/PPK menampilkan/menyembunyikan field secara otomatis berdasarkan pilihan user, mirror dinamisasi Booku Lama:

KonteksField yang muncul
Tahun LAMPAU (Data Awal)Tidak ada Sarana Pencairan & Group Box Bank — saldo dicatat manual
Tahun NORMAL + Sarana Pencairan = BankGroup Box Bank muncul: Biaya Admin, Ditanggung Oleh, Pembebanan, Jumlah Transfer, Total Bank
BiayaAdmin = 0Ditanggung Oleh & Pembebanan disabled
DitanggungOleh = PerusahaanPembebanan muncul (3 opsi via helper terpusat pembebananSelectOptions)
DitanggungOleh = Lawan TransaksiPembebanan disembunyikan (tidak relevan)
Checkbox “Ada Jatuh Tempo” tidak dicentangDatePicker Tanggal Jatuh Tempo disabled & dikosongkan

User tidak perlu paham kombinasi mana yang valid — sistem otomatis tampilkan field yang sesuai. Mirror persis dengan layout Booku Lama (wpfWin_InputHutangPiutangPihakKetiga.xaml).

📄 Cross-ref: #10 UI Dinamis Kontekstual


6. Multi-User Safe

Booku Lama desktop single-user — generate nomor dokumen pakai MAX(Nomor_ID) + 1 aman tanpa locking. Booku V2 (SaaS multi-tenant) butuh proteksi tambahan karena 2 user bisa input bersamaan.

Implementasi V2:

  • NomorID di-generate aplikasi (bukan auto-increment MySQL) → ValueGeneratedNever() di EF
  • Pattern retry exponential backoff + jitter: 200ms / 400ms / 800ms (± random jitter) max 3 retry
  • Generate nomor di dalam retry loop — re-query MAX + 1 setiap retry untuk dapat nomor segar
  • Invariant NomorID == suffix Nomor_BPHPK/Nomor_BPPPK dipertahankan

Hasilnya: 2 user input bersamaan tetap dapat nomor unik berurutan, tanpa user perlu refresh manual atau lihat error duplicate key.

Pola ini mengikuti pre-approved pattern di CLAUDE.md (“Concurrency Handling”) dan adoption-nya konsisten dengan POPembelianService.cs.

📄 Cross-ref: #06 Multi-User LAN & Internet


Nilai Jual untuk User

“Catat hutang ke siapapun yang bukan bank/karyawan/afiliasi — lengkap dengan dinamisasi pembebanan biaya admin, atomic posting, dan reconciliation List vs COA dalam 1 layar.”

Modul HPK/PPK adalah contoh kategorisasi mendalam Booku — bukan sekadar “Hutang generic” yang user harus tag manual, melainkan modul spesifik dengan flow & COA yang sudah disiapkan untuk kasus bisnis nyata (pinjaman dari kerabat pemilik, vendor non-rutin, kontraktor lepas, dll.).


Dokumentasi Terkait

DokumenRelevansi
hutang-piutang-afiliasi.mdModul sejenis untuk counterparty Afiliasi
validasi-saldo-awal.mdDashboard reconciliation lintas modul (HPK/PPK ter-cover)

Terakhir diperbarui: 07-05-2026 (file baru — Tier 3 untuk Hutang & Piutang Pihak Ketiga)