Keunggulan: Hutang Karyawan
Tier 3 — Keunggulan-keunggulan Booku yang muncul saat user memakai menu Hutang Karyawan.
1. Identitas Menu
| Aspek | Keterangan |
|---|---|
| Nama Menu | Hutang Karyawan |
| Lokasi (Tahun NORMAL) | Sidebar → Buku Pengawasan → Hutang → Hutang Karyawan |
| Lokasi (Tahun LAMPAU) | Sidebar → Data Awal → Hutang → Saldo Akhir Hutang Karyawan |
| Deskripsi User-Facing | deskripsi/buku-pengawasan/hutang/hutang-karyawan.md |
2. Ringkasan Keunggulan
| # | Keunggulan | Tagline Singkat | Tier 2 Terkait |
|---|---|---|---|
| 1 | Modul khusus untuk pinjaman dari karyawan | Bukan 1 ember “Hutang” generic — pinjaman karyawan punya modul sendiri dengan COA terpisah | #08 |
| 2 | Auto-fetch Jabatan dari Data Karyawan | User cukup pilih kode karyawan — Nama & Jabatan otomatis tertarik | #02 |
| 3 | Pembebanan Biaya Admin 3 opsi dengan jurnal otomatis | Diganti / Dipotong / Ditambahkan — sistem yang hitung, user tinggal pilih | #02 |
| 4 | Cross-Modul Atomic Posting | Tombol Posting jurnalkan transaksi bank + master sekaligus, tanpa risiko data setengah jadi | #01, #02 |
| 5 | Bar Saldo dengan reconciliation List vs COA realtime | Selisih langsung terlihat di atas tabel, tidak perlu rekonsiliasi manual | #01 |
| 6 | UI Dinamis Kontekstual | Field bank, Pembebanan, Sarana Pencairan muncul/sembunyi sesuai konteks tahun buku & jenis sarana | #10 |
| 7 | Dua Mode: Buku Pengawasan & Data Awal | Halaman 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:
| Pembebanan | Apa yang terjadi (mutasi Rp 10jt, BiayaAdmin Rp 50rb) |
|---|---|
| Dipotong | Karyawan terima Rp 9.950.000; Pokok hutang tetap Rp 10jt; selisih Rp 50rb diakui sebagai biaya bank |
| Ditambahkan | Karyawan terima Rp 10jt penuh; Pokok hutang naik jadi Rp 10.050.000 |
| Diganti | Karyawan 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— shareDbContextantar 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:
| Angle | Penjelasan |
|---|---|
| Saldo (List) | Akumulasi saldo dari semua record Hutang Karyawan di tabel |
| Saldo (COA) + AJP | Saldo COA Hutang Karyawan (21808) dari jurnal, ditambah AJP (Adjusment Jurnal Penyesuaian) saat tahun NORMAL |
| Selisih | List − (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:
| Konteks | Field yang muncul |
|---|---|
| Tahun LAMPAU (Data Awal) | Sarana Pencairan & Group Box Bank disembunyikan — saldo dicatat manual |
| Tahun NORMAL + Sarana Pencairan = Bank | Group Box Bank muncul: Biaya Admin, Ditanggung Oleh, Pembebanan, Jumlah Transfer, Total Bank |
| BiayaAdmin = 0 | Ditanggung Oleh & Pembebanan disabled |
| DitanggungOleh = Perusahaan | Pembebanan muncul (3 opsi: Diganti / Dipotong / Ditambahkan) |
| DitanggungOleh = Lawan Transaksi | Pembebanan 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:
| Lokasi | Mode | Judul Halaman | Kegunaan |
|---|---|---|---|
| Tahun NORMAL → Buku Pengawasan → Hutang Karyawan | BukuPengawasan (default) | “Buku Pengawasan Hutang Karyawan” | Input transaksi aktif tahun ini + Posting jurnal |
| Tahun LAMPAU → Data Awal → Hutang | DataAwal | ”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
| Dokumen | Relevansi |
|---|---|
| Deskripsi: Hutang Karyawan | Panduan operasional user-facing |
| Keunggulan: Piutang Karyawan | Modul saudara (pinjaman ke karyawan) |
| Keunggulan: Hutang Pihak Ketiga | Modul sejenis dengan pattern Cross-Modul Posting yang sama |
| Keunggulan: Validasi Saldo Awal | Dashboard reconciliation lintas modul (Hutang Karyawan ter-cover) |
Terakhir diperbarui: 08-05-2026