👥 HR & Payroll Module (hr_*)
Modul HR menyimpan data karyawan, kehadiran, cuti, dan hasil perhitungan payroll yang pada akhirnya di-post ke GL.
1. Module Purpose
- Menyimpan master karyawan per company.
- Mencatat kehadiran (attendance) dan cuti.
- Menyimpan hasil payroll per periode.
2. Tables & Structure
| Tabel | Deskripsi singkat |
|---|---|
hr_emp | Master karyawan |
hr_att | Kehadiran harian |
hr_leave | Permintaan cuti |
hr_payroll | Hasil payroll per periode per karyawan |
3. Key Fields & Relationships
3.1 hr_emp
- Fields:
company_id,emp_no,name,position,department,hire_date,status. - FK:
company_id→core_company.id.
3.2 hr_att
- Fields:
emp_id,att_date,check_in,check_out,status(present, absent, leave, dsb.). - FK:
emp_id→hr_emp.id.
3.3 hr_leave
- Fields:
emp_id,start_date,end_date,type,status(requested, approved, rejected). - FK:
emp_id→hr_emp.id.
3.4 hr_payroll
- Fields:
emp_id,period_start,period_end,gross_salary,deduction,net_salary,status. - FK:
emp_id→hr_emp.id. - Payroll batch bisa di-post ke GL via mapping COA (beban gaji, kas, utang gaji).
4. Business Flows
4.1 Kehadiran & Cuti → Payroll
- Kehadiran harian dicatat di
hr_att. - Cuti/izin di
hr_leave. - Engine payroll mengambil data attendance & leave untuk menghitung gaji.
- Hasilnya disimpan di
hr_payroll, lalu di-post ke GL (gl_entry+gl_line).
5. Example Reports (SQL)
Contoh SELECT untuk laporan HR & payroll.