Lewati ke konten

Keunggulan: Hutang Karyawan

Tier 3 — Keunggulan-keunggulan Booku yang muncul saat user memakai menu Hutang Karyawan.


1. Identitas Menu

AspekKeterangan
Nama MenuHutang Karyawan
Lokasi (Tahun NORMAL)Sidebar → Buku PengawasanHutangHutang Karyawan
Lokasi (Tahun LAMPAU)Sidebar → Data AwalHutangSaldo Akhir Hutang Karyawan
Deskripsi User-Facingdeskripsi/buku-pengawasan/hutang/hutang-karyawan.md

2. Ringkasan Keunggulan

#KeunggulanTagline SingkatTier 2 Terkait
1Modul khusus untuk pinjaman dari karyawanBukan 1 ember “Hutang” generic — pinjaman karyawan punya modul sendiri dengan COA terpisah#08
2Auto-fetch Jabatan dari Data KaryawanUser cukup pilih kode karyawan — Nama & Jabatan otomatis tertarik#02
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
5Bar Saldo dengan reconciliation List vs COA realtimeSelisih langsung terlihat di atas tabel, tidak perlu rekonsiliasi manual#01
6UI Dinamis KontekstualField bank, Pembebanan, Sarana Pencairan muncul/sembunyi sesuai konteks tahun buku & jenis sarana#10
7Dua Mode: Buku Pengawasan & Data AwalHalaman yang sama dipakai di tahun NORMAL untuk transaksi aktif & tahun LAMPAU untuk input saldo akhir historis#08

3. Detail per Keunggulan

3.1 Modul Khusus untuk Pinjaman dari Karyawan

Apa: Hutang Karyawan adalah modul terpisah dari Hutang Usaha, Hutang Pihak Ketiga, Hutang Afiliasi, dll. Diperuntukkan khusus untuk pinjaman dana dari karyawan kepada perusahaan (jarang terjadi, tapi penting dicatat — mis. owner-pendiri yang juga karyawan, atau staff senior yang meminjamkan dana operasional).

Bagaimana: Setiap modul hutang punya COA Tautan sendiri (Hutang Karyawan = 21808), tabel master sendiri (tbl_pengawasanhutangkaryawan), dan flow input yang spesifik. Reporting saldo per jenis counterparty langsung ter-segregasi tanpa filter manual.

📄 Cross-ref: #08 Simple for User


3.2 Auto-Fetch Jabatan dari Data Karyawan

Apa: Saat user input Hutang Karyawan baru, cukup klik picker Karyawan dan pilih dari daftar — Kode Karyawan, Nama Karyawan, dan Jabatan otomatis terisi.

Bagaimana: Form input memanggil KaryawanPickerDialog yang share data master Karyawan. Saat user pilih satu karyawan, 3 field langsung di-populate. Saat mode Edit, Jabatan auto-fetch ulang dari master via karyawanService.getById() — sehingga kalau Jabatan karyawan berubah di master (mis. promosi), info terbaru langsung muncul tanpa user perlu refresh manual.

📄 Cross-ref: #02 Automatic Everything


3.3 Pembebanan Biaya Admin 3 Opsi dengan Jurnal Otomatis

Apa: Saat input Hutang Karyawan via Bank, user bisa pilih cara pembebanan biaya admin bank:

PembebananApa yang terjadi (mutasi Rp 10jt, BiayaAdmin Rp 50rb)
DipotongKaryawan terima Rp 9.950.000; Pokok hutang tetap Rp 10jt; selisih Rp 50rb diakui sebagai biaya bank
DitambahkanKaryawan terima Rp 10jt penuh; Pokok hutang naik jadi Rp 10.050.000
DigantiKaryawan terima Rp 10jt penuh; Pokok hutang individu tetap Rp 10jt; biaya admin masuk sebagai kredit ke COA Hutang umum

Bagaimana: User cukup pilih opsi dari dropdown — sistem yang generate jurnal yang benar untuk setiap kasus (multi-line jurnal: Debet Bank, Debet Biaya, Kredit Hutang Karyawan, dengan komposisi berbeda per opsi). Opsi datang dari helper terpusat pembebananSelectOptions di coaBankCash.ts — single source of truth yang juga dipakai modul HPK, HA, dan modul hutang lainnya.

📄 Cross-ref: #02 Automatic Everything


3.4 Cross-Modul Atomic Posting

Masalah klasik di aplikasi akuntansi: Pencairan hutang melibatkan 2 tabel: tabel master Hutang Karyawan + tabel Bukti Penerimaan + tabel jurnal. Kalau salah satu gagal disimpan, data jadi inconsistent: master ter-update tapi jurnal hilang (atau sebaliknya).

Solusi Booku: Tombol Posting di context menu Hutang Karyawan men-trigger flow yang menjurnalkan pencairan via Bukti Penerimaan dalam single atomic transaction. Implementasi:

  • Interface IHutangKaryawanPostingOps — share DbContext antar service
  • Method MarkAsPostedAsync — track perubahan saja, tidak call save sendiri
  • BuktiPenerimaanService.CreateAsync — satu-satunya caller yang commit

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

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


3.5 Bar Saldo dengan Reconciliation List vs COA Realtime

Setiap halaman Hutang Karyawan punya Bar Saldo di atas tabel yang menampilkan:

AnglePenjelasan
Saldo (List)Akumulasi saldo dari semua record Hutang Karyawan di tabel
Saldo (COA) + AJPSaldo COA Hutang Karyawan (21808) dari jurnal, ditambah AJP (Adjusment Jurnal Penyesuaian) saat tahun NORMAL
SelisihList − (COA + AJP), ideal = 0 → warna merah kalau ≠ 0

User langsung lihat apakah catatan individu cocok dengan saldo akuntansi. Kalau selisih ≠ 0: ada record yang belum dijurnal, jurnal manual yang tidak match, atau data master yang terhapus tidak sengaja.

Implementation: helper terpusat _coaService.GetCoaSaldoAsync(KodeTautanCOA_HutangKaryawan) yang juga dipakai dashboard Validasi Saldo Awal — single source of truth untuk perhitungan saldo COA.

📄 Cross-ref: #01 Realtime Financial Accuracy


3.6 UI Dinamis Kontekstual

Form Input Hutang Karyawan menampilkan/menyembunyikan field secara otomatis berdasarkan pilihan user:

KonteksField yang muncul
Tahun LAMPAU (Data Awal)Sarana Pencairan & Group Box Bank disembunyikan — 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: Diganti / Dipotong / Ditambahkan)
DitanggungOleh = Lawan TransaksiPembebanan disembunyikan

User tidak perlu paham kombinasi mana yang valid — sistem otomatis tampilkan field yang sesuai.

📄 Cross-ref: #10 UI Dinamis Kontekstual


3.7 Dua Mode: Buku Pengawasan & Data Awal

Halaman Hutang Karyawan dipakai di 2 lokasi sidebar dengan komponen page yang sama:

LokasiModeJudul HalamanKegunaan
Tahun NORMAL → Buku Pengawasan → Hutang KaryawanBukuPengawasan (default)“Buku Pengawasan Hutang Karyawan”Input transaksi aktif tahun ini + Posting jurnal
Tahun LAMPAU → Data Awal → HutangDataAwal”Saldo Akhir Hutang Karyawan”Input saldo akhir historis (menjadi saldo awal tahun NORMAL berikutnya)

Behavior CRUD identik di kedua mode; yang berbeda hanya judul, subtitle, dan tombol Posting (otomatis disembunyikan di LAMPAU karena tidak ada jurnal di tahun LAMPAU).

📄 Cross-ref: #08 Simple for User


4. Nilai Tambah untuk User

“Catat pinjaman dari karyawan dengan modul khusus — auto-fetch jabatan dari Data Karyawan, pilih pembebanan biaya admin tinggal klik, dan Posting jurnal sekali klik tanpa risiko data setengah jadi.”

Modul Hutang Karyawan menjawab kebutuhan tracking yang spesifik: pinjaman dari karyawan biasanya jarang tapi punya karakter unik (informal, sering tanpa kontrak formal, kadang dengan jadwal angsuran via potong gaji). Booku menyediakan modul terpisah dengan COA dedicated, flow input yang ringkas (auto-fetch karyawan), dan integrasi dengan Bukti Penerimaan untuk pencairan dana.

Kombinasi single source of truth (data karyawan) + dinamisasi UI + atomic posting + reconciliation realtime mengurangi waktu input & risiko kesalahan akuntansi dibandingkan tracking manual di spreadsheet.


5. Dokumentasi Terkait

DokumenRelevansi
Deskripsi: Hutang KaryawanPanduan operasional user-facing
Keunggulan: Piutang KaryawanModul saudara (pinjaman ke karyawan)
Keunggulan: Hutang Pihak KetigaModul sejenis dengan pattern Cross-Modul Posting yang sama
Keunggulan: Validasi Saldo AwalDashboard reconciliation lintas modul (Hutang Karyawan ter-cover)

Terakhir diperbarui: 08-05-2026