# Tahap 10–11 — HR/Payroll dan Pajak ## HR dan absensi - Riwayat jabatan, departemen, cabang, status kerja, kontrak dan gaji efektif tersedia pada `employee_employment_history`. - Data rekening, BPJS, NPWP/status pajak dan benefit profile berada pada master karyawan. Akses master dan payroll dibatasi Admin sampai role HR/Payroll khusus dibuat. - Dokumen karyawan disimpan terpisah dengan `access_level`, nama file terenkripsi dan hash. - Raw log mesin memiliki device whitelist, payload hash unik, status validasi dan relasi ke hasil absensi. - Koreksi absensi, lembur dan approval memiliki subledger sendiri. - Lock bulanan ditegakkan trigger database terhadap insert/update/delete absensi. ## Payroll - Workflow: draft → reviewed → approved → final → posted → paid. - Formula hanya menerima variabel yang diizinkan dan operator matematika dasar; tidak menggunakan `eval`. - Komponen dasar: gaji pokok, lembur, unpaid leave, THR, bonus, BPJS, PPh 21 dan cicilan pinjaman. - Prorata karyawan baru, snapshot variabel/formula, hash register, pemisahan reviewer/approver, final lock, jurnal otomatis dan slip individual. - Tarif lembur Development default Rp25.000/jam dan dapat diatur dengan `PAYROLL_OVERTIME_RATE`; Production wajib mengikuti kebijakan perusahaan. ## Pajak - Master kode pajak mempunyai jenis, inclusive/exclusive, tarif/formula, masa berlaku dan mapping akun. - Tax register menyimpan pajak input, output dan withholding per dokumen/baris. - Posting invoice dan supplier invoice otomatis mengisi tax register secara idempotent. - Data historis pajak invoice/tagihan di-backfill tanpa jurnal baru. - Periode pajak dapat open, reviewed, filed atau closed. Periode filed/closed menolak transaksi pajak baru. - Register dapat diekspor CSV.