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.
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)?>workflow_status==='draft'):?>
-