Saat ini sistem payroll belum memiliki tabel untuk menyimpan setting BPJS dan PPh21. Penghitungan masih dilakukan secara hardcode. User membutuhkan fitur agar HR bisa mengatur nilai BPJS dan PPh21 secara manual dengan opsi:
hrp_pengaturan_bpjsTabel untuk menyimpan setting BPJS per jenis:
| Field | Type | Deskripsi |
|---|---|---|
| id | int PK | Primary key |
| kode | varchar UK | Kode setting (BPJS_KES_KARYAWAN, BPJS_KES_PERUSAHAAN, dll) |
| nama | varchar | Nama setting |
| tipe_perhitungan | enum | 'persentase' atau 'flat' |
| nilai | decimal | Nilai persentase (0.01 = 1%) atau nilai flat |
| batas_atas | decimal | Batas maksimal gaji untuk perhitungan (opsional) |
| aktif | boolean | Status aktif |
Default data:
BPJS_KES_KARYAWAN | 1% (persentase)
BPJS_KES_PERUSAHAAN | 4% (persentase)
BPJS_JHT_KARYAWAN | 2% (persentase)
BPJS_JHT_PERUSAHAAN | 3.7% (persentase)
BPJS_JP_KARYAWAN | 1% (persentase)
BPJS_JP_PERUSAHAAN | 2% (persentase)
BPJS_JKK | 0.24%-1.74% (persentase, by risk class)
BPJS_JKM | 0.3% (persentase)
hrp_pengaturan_pph21Tabel untuk menyimpan bracket PPh21 dan PTKP:
| Field | Type | Deskripsi |
|---|---|---|
| id | int PK | Primary key |
| kode | varchar UK | Kode (PTKP_TK0, PTKP_K1, TARIF_5, dll) |
| nama | varchar | Nama setting |
| tipe | enum | 'ptkp' atau 'tarif' |
| nilai | decimal | Nilai PTKP atau persentase tarif |
| batas_bawah | decimal | Untuk tarif: batas bawah PKP |
| batas_atas | decimal | Untuk tarif: batas atas PKP |
| aktif | boolean | Status aktif |
Default data PTKP 2024:
PTKP_TK0 | Rp 54.000.000 (Tidak Kawin, 0 tanggungan)
PTKP_TK1 | Rp 58.500.000 (Tidak Kawin, 1 tanggungan)
PTKP_K0 | Rp 58.500.000 (Kawin, 0 tanggungan)
PTKP_K1 | Rp 63.000.000 (Kawin, 1 tanggungan)
PTKP_K2 | Rp 67.500.000 (Kawin, 2 tanggungan)
PTKP_K3 | Rp 72.000.000 (Kawin, 3 tanggungan)
Default data Tarif PPh21:
TARIF_5 | 5% | 0 - 60.000.000
TARIF_15 | 15% | 60.000.000 - 250.000.000
TARIF_25 | 25% | 250.000.000 - 500.000.000
TARIF_30 | 30% | 500.000.000 - 5.000.000.000
TARIF_35 | 35% | > 5.000.000.000