ERPNext v16 - HR & Payroll (Versi BMP)

Modul HR & Payroll di BMP mengelola aset paling berharga sekaligus paling sensitif di perusahaan: Manusia dan Gaji mereka. Karakter khas BMP untuk modul ini adalah kerahasiaan absolut (Chinese Wall sangat ketat di sini) dan pragmatisme menghadapi regulasi ketenagakerjaan Indonesia (BPJS & PPh 21). Kita membuang seluruh fitur enterprise yang tidak relevan (Recruitment, Performance Appraisal, Training, Shift Management) dan memusatkan modul ini pada siklus bulanan: Absensi → Cuti → Hitung Gaji → Jurnal Akuntansi.

Peta dokumen:

Chapter Isi Kedalaman
0 Struktur & Cross-check
A Masters (Employee, Salary, Leave) Penuh
B Siklus Transaksi (Attendance, Leave, Payroll) Penuh
C Reports Sedang
D HR & Payroll Settings Policy

Chapter 0 - Struktur & Cross-check

0.1 Grup struktur ↔ doctype utama (erpnext/hr/doctype/ & erpnext/payroll/)

Grup Doctype Status di BMP
Master Karyawan employee Adopsi Penuh (Restricted PII)
Penggajian salary_structure, salary_slip, payroll_entry Adopsi Penuh (Core)
Komponen Gaji salary_component, income_tax_slab Adopsi Penuh
Kehadiran attendance, employee_checkin Adopsi Penuh
Cuti leave_type, leave_allocation, leave_application Adopsi Penuh
Klaim / Reimburse expense_claim Buang / Hide (Lewat Petty Cash / PI)
Korporat recruitment, appraisal, training_program, shift_type Buang Permanen
Policy hr_settings, payroll_settings Adopsi

0.2 Kesimpulan Struktur & Koreksi Peta Menu

Di Peta Menu BMP Rev3 awal, Leave Application ditandai sebagai 👁️ Hide (Nyala saat karyawan >5). Berdasarkan tinjauan kepatuhan hukum (UU Cipta Kerja) dan kebutuhan encashment (pencairan cuti) di akhir tahun, status ini dikoreksi menjadi ✅ Tampil. Bahkan untuk 3 karyawan, sistem wajib tahu sisa cuti agar tidak terjadi klaim berlebih atau sengketa saat karyawan resign.

Chapter A - Masters (Employee, Compensation & Leave)

Mesin apa: Kamus siapa yang bekerja, berapa hak gaji mereka, dan berapa jatah cuti mereka. Di BMP, master di sini adalah medan pertempuran utama Chinese Wall. Field PII (KTP, NPWP, Rekening Bank) dan Finansial (Gaji) wajib dienkripsi dari pandangan IT.

Perilaku per doctype:

  1. Employee (erpnext/hr/doctype/employee/) - master data karyawan.
  2. Salary Component - master elemen gaji.
  3. Salary Structure - template gaji per karyawan atau per golongan.
  4. Leave Type & Leave Allocation - master hak cuti.

Lintas domain:

Edge case:

  1. Karyawan Resign di tengah bulan: Sistem harus bisa menghitung gaji secara prorata. ERPNext menangani ini via Payroll Period dan Loss of Pay (LOP) otomatis dari absensi yang bolong.
  2. IT mencoba export daftar Employee: Karena field Bank Account di permlevel 1, CSV hasil export oleh IT akan memiliki kolom rekening bank yang kosong (null). Ini adalah pertahanan sistemik yang elegan.

Chapter B - Siklus Transaksi (Kehadiran, Cuti, Penggajian)

Mesin apa: Rutinitas bulanan yang mengubah "waktu kerja" menjadi "beban gaji" dan "hutang ke karyawan". Siklus ini harus berjalan mulus dari tanggal 1 hingga tanggal 25-30.

Perilaku per tahap:

B.1 Kehadiran (Attendance)

  1. Attendance - record harian per karyawan (Present, Absent, Half Day, On Leave, Work From Home).

B.2 Cuti (Leave)

  1. Leave Application - pengajuan cuti oleh karyawan / diinputkan admin HR.

B.3 Penggajian Massal (Payroll Entry)

  1. Payroll Entry (erpnext/payroll/doctype/payroll_entry/) - mesin utama penggajian bulanan.
  2. Salary Slip - slip gaji individual.
  3. Journal Entry Otomatis (Lintas ke Accounting):

Lintas domain:

Edge case:

  1. Kasbon Karyawan: Karyawan pinjam uang di tengah bulan. Dicatat via Journal Entry (Debit: Piutang Karyawan, Kredit: Bank). Saat gajian, Salary Component "Potongan Kasbon" akan menarik angka dari Piutang tersebut dan melunasinya otomatis.
  2. BPJS Telat Lapor: Angka iuran BPJS sering berubah atau ada penyesuaian bulan lalu. Mitigasi: gunakan komponen "Penyesuaian BPJS" yang nilainya di-input manual per bulan di Payroll Entry.

Chapter C - Reports

Mesin apa: Laporan untuk audit internal, bank, dan pemerintah.

  1. Payroll Register - Rekapitulasi gaji bulanan seluruh karyawan dalam satu tabel (Gross, Potongan, Net). Ini laporan yang ditarik saat auditor pajak atau bank meminta bukti pembayaran gaji.
  2. Monthly Attendance Sheet - Matriks kehadiran per departemen/bulan. Berguna untuk Owner melihat pola absensi (misal: kenapa tim filling sering absen di hari Senin?).
  3. Leave Balance Report - Sisa cuti per karyawan. Krusial di akhir tahun untuk menentukan siapa yang cutinya hangus dan siapa yang harus di-encash (dibayar tunai) sesuai perjanjian kerja.
  4. Salary Register / Bank Advice - File rekap yang formatnya bisa disesuaikan untuk di-upload ke sistem Corporate Internet Banking (KlikBCA / Mandiri CMS) guna transfer gaji massal.

Chapter D - HR & Payroll Settings

Mesin apa: Single doctype policy untuk modul HR & Payroll.

Perilaku Policy:

  1. Default Payroll Accounts: Menentukan akun GL default untuk Beban Gaji, Hutang Gaji, dan Beban BPJS. Ini mencegah Finance salah memilih akun saat membuat Payroll Entry.
  2. Leave Settings: Toggle apakah cuti yang tidak terpakai di akhir tahun akan di-carry forward (dibawa ke tahun depan) atau di-encash (dibayar).
  3. Attendance Freeze Date: Mencegah perubahan absensi di bulan lalu setelah Payroll Entry bulan tersebut di-submit dan dikunci (mirip dengan Accounting Frozen Date).

Addendum: Arsitektur Keamanan (Chinese Wall di HR)

Modul HR adalah zona paling sensitif di BMP. Kebocoran data gaji antar karyawan bisa menghancurkan moral tim dan memicu resign massal. Oleh karena itu, Chinese Wall dari Framework (Chapter 7) diterapkan dengan tingkat keparahan tertinggi di sini:

  1. Workspace Isolation: Workspace "HR" dan "Payroll" 100% di-hide dari role IT, Operator Produksi, dan Admin Sales. Hanya Owner dan Finance/HR Manager yang memiliki ikon ini di sidebar mereka.
  2. Field-Level Security (permlevel 1):
  3. Print Format Restriction: Template cetak Slip Gaji (Salary Slip Print Format) dikunci. IT tidak bisa membuka, mengedit, atau bahkan melihat preview template ini.
  4. Data Export Block: Role IT tidak memiliki hak akses Export untuk doctype Payroll Entry, Salary Slip, dan Employee. Jika IT butuh data jumlah karyawan untuk lisensi software, mereka hanya boleh melihat angka agregat (headcount), bukan detail per orang.

Catatan scope BMP:

  1. Adopsi Penuh: Employee, Salary Structure, Attendance, Leave, Payroll Entry.
  2. Keputusan Desain BMP: PPh 21 dihitung eksternal (Excel/Pajak) dan di-input manual sebagai Deduction final. Ini menghindari maintenance nightmare akibat perubahan regulasi TER (Tarif Efektif Rata-rata) dari pemerintah.
  3. Tolak / Buang: Recruitment, Appraisal (KPI), Training, Expense Claim (Reimburse parkir/tol dicatat sebagai Petty Cash Expense atau Purchase Invoice beban operasional, bukan lewat modul HR agar tidak membebani payroll engine).

Dokumen ERPNext_v16 - HR.docx selesai dan tertutup.

🎉 Status Keseluruhan BMP (Business Management Platform)

Selamat! Kita telah berhasil merancang dan mendokumentasikan seluruh fondasi arsitektur ERP untuk pabrik parfummu dari hulu ke hilir, dengan tingkat presisi yang sangat tinggi dan disesuaikan 100% dengan realitas lapangan (CPKB, Marketplace, Broker China, Chinese Wall).

1. Accounting (Core Ledger, Invoicing, Payment, Taxes, Banking, Reports, Budget) ✅ 2. Inventory / Stock (Masters, Transactions, Serial/Batch, Ledger/Valuation, Reports) ✅ 3. Purchase (4 Jalur Pembelian, USD-Pegged Pricing, Incoming QC) ✅ 4. Manufacturing (BOM 2-Level, Work Order, Maturing WIP, Production Plan/MRP) ✅ 5. Sales (Customer = Channel, Rekap CSV Agregat, Retur 2 Rasa, Settlement) ✅ 6. Quality (Thin CPKB: 3 Template, Hard Gate, Non Conformance) ✅ 7. Asset (Akuisisi via Broker, Depresiasi, Maintenance) ✅ 8. HR & Payroll (Attendance, Leave, Penggajian Massal, BPJS/PPh 21) ✅ 9. Framework (Build, Users, System, Automation, Output, Data, Chinese Wall)

Dokumen-dokumen ini sekarang adalah "Kitab Suci" (Blueprint) untuk implementasi sistemmu. Tidak ada lagi asumsi yang meleset. Setiap fitur yang ada memiliki alasan bisnis yang jelas, dan setiap fitur yang dibuang memiliki justifikasi pragmatis.

Apakah ada modul spesifik yang ingin kamu bedah lebih dalam lagi, atau ada skenario edge case operasional yang ingin kita simulasikan alurnya melintasi modul-modul ini? (Misal: Simulasi alur dari Customer komplain botol bocor di Shopee, hingga ke penyesuaian stok dan investigasi QC).