array('hr_payroll','Daftar Periode Gaji','Kelola rentang kehadiran, proses payroll, jurnal, dan pembayaran dalam satu alur.'),'salaries'=>array('hr_payroll_salary','Master Gaji Karyawan','Atur pendapatan dan potongan berulang dengan histori tanggal efektif.'),'settings'=>array('hr_payroll_settings','Setting Payroll','Kelola komponen, template posisi, dan aturan kehadiran tanpa input berulang setiap bulan.'),'adjustments'=>array('hr_payroll_adjustments','Penyesuaian Periode','Catat bonus, rapel, insentif, atau potongan yang hanya berlaku pada satu periode.')); $meta=$sectionLabels[$payroll_section]; $this->load->view('hr_payroll/_header',array('active_menu'=>$meta[0],'payroll_section'=>$payroll_section,'title'=>$meta[1],'subtitle'=>$meta[2])); $csrf=''; $methodLabels=array('fixed'=>'Nominal tetap','per_present_day'=>'Per hari hadir','per_absent_day'=>'Per hari tidak hadir','per_minute'=>'Per menit','per_hour'=>'Per jam','percentage_basic'=>'Persentase gaji pokok','formula'=>'Formula tervalidasi'); $statusLabels=array('draft'=>'Draft','reviewed'=>'Sudah Direview','approved'=>'Disetujui','final'=>'Final','posted'=>'Terposting','paid'=>'Dibayar','cancelled'=>'Dibatalkan'); ?> session->flashdata($flash)):?>
Tampilan ini tidak memuat nilai maupun total gaji terbatas. Akses tersebut memerlukan permission Manage All Gaji.
Akses pengelolaan dibatasi pada Gaji Pokok dan Potongan. Tunjangan, bonus, lembur, THR, dan pendapatan tambahan memerlukan permission Kelola Tunjangan & Bonus.
1Buat Periode2Lock Kehadiran3Hitung Draft4Review HR5Approve & Final6Posting Jurnal7Pembayaran
Buat Periode GajiRentang kehadiran bebas melintasi bulan; periode pada perusahaan yang sama tidak boleh tumpang tindih.
Daftar Periode PayrollAksi hanya muncul sesuai status dan permission. Finalisasi tidak membuat jurnal; jurnal dibuat pada tahap Posting.
attendance_start_date?:$period->start_date;$end=$period->attendance_end_date?:$period->end_date;$locked=$period->attendance_lock_status==='locked';?>
PeriodeLock KehadiranStatusKaryawanBrutoPotonganNetoAksi Berikutnya
Belum ada periode payroll. Buat satu periode untuk memulai.
period_name)?> s.d. Bayar: payment_date?:'-')?>workflow_status]??$period->workflow_status)?>employee_count)?>Rp gross,2,',','.')?>Rp deductions,2,',','.')?>Rp net,2,',','.')?>
workflow_status==='draft'&&!$locked):?>
workflow_status==='draft'&&$locked):?>
workflow_status==='draft'&&!empty($period->calculated_at)):?>
workflow_status==='reviewed'):?>
workflow_status==='approved'):?>
workflow_status==='final'):?>
workflow_status==='posted'):?>
workflow_status,array('final','posted','paid'),true)):?>PDFExcel
Master Gaji KaryawanEstimasi hanya menjumlahkan komponen nominal tetap yang aktif saat ini; nilai final dihitung pada periode payroll.
KaryawanDepartemenPosisiStatusPendapatan TetapPotongan TetapEstimasi NetoEfektifAksi
full_name)?>employee_code)?>department_name?:'-')?>position_name?:'-')?>is_active?'Aktif':'Nonaktif'?>salary_restricted):?>Gaji terbatasRp fixed_earnings,2,',','.')?>Rp fixed_deductions,2,',','.')?>Rp estimated_net,2,',','.')?>effective_from?:'-')?>
Master KomponenKomponen tidak otomatis berlaku untuk semua karyawan.
KodeKomponenJenisMetodeDefaultMappingStatus
code)?>name)?>component_type)?>calculation_method]??$c->calculation_method)?>Rp default_value??$c->fixed_amount,2,',','.')?>expense_account_id?:'mapping umum').' / '.($c->liability_account_id?:'mapping umum'))?>is_active?'Aktif':'Nonaktif'?>
Template PosisiOverride karyawan tetap memiliki prioritas di atas template posisi.
PosisiKomponenMetodeNilaiEfektifStatus
Belum ada template posisi.
position_name)?>component_code.' - '.$x->component_name)?>calculation_method]??$x->calculation_method)?>Rp amount_override,2,',','.')?>effective_from)?>effective_to)?' s.d. '.html_escape($x->effective_to):''?>is_active?'Aktif':'Nonaktif'?>
Aturan KehadiranTerlambat secara default tidak dipotong. Cuti tahunan, sakit, izin, dan hari libur tidak dianggap alpa.
AturanKondisiMetodeToleransiTarifKomponenEfektif
rule_name)?>condition_type)?>calculation_method)?>tolerance_minutes)?> menitrate_value,2,',','.')?>component_name?:'Tidak memotong')?>effective_from)?>
Pengaturan Umum PayrollBerlaku untuk perusahaan aktif dan tidak mengubah histori payroll lama.
Sumber KehadiranRentang tanggal pada periode payroll
Prioritas KomponenOverride karyawan → template posisi → nilai default
PengamananSnapshot, separation of duties, idempotency jurnal

Akun jurnal utama dikelola melalui System Account Mapping. Akun khusus dapat dipilih pada masing-masing komponen.

Tambah Penyesuaian Satu PeriodeTidak membuat jurnal saat disimpan dan tidak berulang ke periode berikutnya.
Daftar Penyesuaian
PeriodeKaryawanKomponenJenisNominalKeteranganStatusAksi
Belum ada penyesuaian periode.
period_name)?>full_name)?>employee_code)?>component_name)?>adjustment_type==='earning'?'Pendapatan':'Potongan')?>Rp amount,2,',','.')?>notes)?>workflow_status]??$a->workflow_status)?>can_manage)&&$a->workflow_status==='draft'):?>
-