Penggajian
Penggajian adalah tempat data karyawan berubah menjadi uang yang dibayarkan. Anda menjelaskan apa yang diterima setiap orang dan apa yang dipotong darinya, lalu sebulan sekali Anda menjalankan penggajian: GARP membuat satu salary slip (slip gaji) untuk setiap karyawan, ditambah dua jurnal yang memasukkan biayanya ke pembukuan Anda. HR yang memegang seluruh penyiapannya sekaligus menjalankan siklus bulanan; bagian akuntansi hanya melihat jurnal yang keluar di ujung prosesnya.
Semuanya berangkat dari workspace Payroll di /app/payroll. Tidak ada satu pun bagian di sini yang menghasilkan slip sebelum seorang karyawan memiliki Salary Structure Assignment (penugasan struktur gaji) yang sudah disubmit, jadi di site yang masih baru, selesaikan hal itu lebih dulu.

Workspace Payroll.
Yang mungkin ingin Anda kerjakan
- Menjalankan penggajian bulan ini
- Menyiapkan penggajian di site yang masih baru
- Menyusun atau mengubah struktur gaji
- Menempatkan satu karyawan, atau satu departemen sekaligus, pada struktur gaji
- Membayar THR, bonus, atau nominal sekali bayar lainnya
- Memperbaiki slip yang hasilnya keliru, atau mengembalikan potongan cuti tanpa gaji yang salah potong
- Menahan gaji seseorang selama beberapa bulan
- Memastikan apakah GARP sudah menangani BPJS, PPh 21, dan THR untuk Anda
- Mencari arti sebuah field, sebuah aturan, atau sebuah pesan error
Bagaimana semuanya terhubung
Empat hal harus ada lebih dulu sebelum siapa pun bisa dibayar, dengan urutan seperti ini:
- Salary Component (komponen gaji) — satu baris pada slip gaji, misalnya
Gaji PokokatauBPJS TK. - Salary Structure (struktur gaji) — kumpulan earning dan deduction untuk satu pola penggajian.
- Salary Structure Assignment — menempatkan satu karyawan pada satu struktur terhitung sejak sebuah tanggal, sekaligus menyediakan Base miliknya.
- Payroll Entry (proses penggajian) — proses bulanan yang membuat dan menyubmit slip semua orang serta menghasilkan bank entry.
Apa pun yang dibayarkan di luar pola itu — insentif, retention bonus, lembur, THR, rapel, atau koreksi — sampai ke slip sebagai satu baris Additional Salary.
Salary Component ─▶ Salary Structure ─▶ Salary Structure Assignment (Base, From Date)
│
Additional Salary ──────────────────┐ │
from Employee Incentive, ▼ ▼
Retention Bonus, Overtime ──▶ Salary Slip ◀── Payroll Entry
Slip, Arrear, Payroll │ │
Correction │ ├─▶ Journal Entry (accrual)
│ └─▶ Journal Entry (Bank Entry)
Timesheet, Loan repayment
Menyiapkan penggajian untuk pertama kali
Kerjakan daftar ini sekali saja per perusahaan, sebelum proses live yang pertama:
- Satu Payroll Period per perusahaan di
/app/payroll-period. Periode untuk satu perusahaan tidak boleh saling tumpang tindih. Tabel Payroll Periods di dalam formulir itu tidak dibaca oleh apa pun — biarkan kosong. - Payroll Settings — dasar perhitungan hari kerja, Consider Unmarked Attendance As, Include holidays in Total no. of Working Days, Fraction of Daily Salary for Half Day, Disable Rounded Total, Show Leave Balances in Salary Slip, serta opsi email.
- Salary Component, masing-masing dengan satu baris Accounts untuk perusahaan bersangkutan, dan Depends on Payment Days yang sudah Anda tinjau pada setiap komponennya.
- Satu Salary Structure yang sudah disubmit untuk setiap pola penggajian, dan satu assignment dengan Base untuk setiap karyawan.
- Satu Holiday List pada setiap karyawan, karena hari kerja diturunkan dari daftar tersebut.
- Satu Default Payroll Payable Account pada Company, yang cocok dengan apa yang nanti Anda pilih pada Payroll Entry.
Site yang baru tidak benar-benar kosong: GARP sudah membawa lima komponen Indonesia ditambah satu komponen lembur, dan pembuatan Company menambahkan empat komponen lagi. Lihat Apa yang sudah tersedia bawaan sebelum Anda membuat apa pun secara manual.
Menyusun struktur gaji
- Di
/app/salary-component, buat setiap earning dan deduction, atau buka komponen yang sudah tersedia bawaan. Isi Type dan Abbr, lalu tentukan Depends on Payment Days, Round to the Nearest Integer, dan Remove if Zero Valued. Centang Statistical Component untuk nilai yang hanya menjadi masukan bagi formula lain dan tidak pernah tampil di slip. - Tambahkan satu baris pada tabel Accounts untuk tiap perusahaan, lengkap dengan akun buku besarnya. Tanpa itu, prosesnya berhenti dengan
Please set account in Salary Component. Lihat Akuntansi. - Tempatkan perhitungannya pada tab Condition & Formula.
- Di
/app/salary-structure, buat struktur, ketikkan namanya (PT Maju Jaya - Staf Bulanan), lalu isi Company, Currency, Payroll Frequency, dan Is Active = Yes. - Isi tab Earnings & Deductions, simpan, lalu submit.
- Tugaskan struktur ini ke satu karyawan lebih dulu, lalu gunakan Actions → Preview Salary Slip untuk memeriksa perhitungannya sebelum menugaskannya ke karyawan yang lain.

Salary Component untuk perusahaan Indonesia: earnings, dan potongan BPJS.
Ada dua hal yang biasanya menghambat di langkah 5:
- Sebuah baris yang memakai formula sekaligus mencentang Depends on Payment Days akan ditolak, supaya pengurangan yang sama tidak diterapkan dua kali. Kedua deduction bawaan berperilaku seperti ini. Lihat Membayar bonus atau THR di luar siklus bulanan untuk pesannya dan cara memperbaikinya.
- Baris dihitung dari atas ke bawah, sehingga formula yang membaca komponen di baris lebih bawah akan membaca
0.

Salary Structure dengan earning dan deduction berbasis formula.
Menugaskan struktur ke karyawan
Untuk satu orang, gunakan Create → Single Assignment pada struktur tersebut, atau buka /app/salary-structure-assignment. Isi Employee, From Date, dan Base, ditambah Income Tax Slab bila strukturnya memuat komponen pajak, lalu submit.
Untuk satu kelompok sekaligus, buka /app/bulk-salary-structure-assignment:
- Pilih Salary Structure dan From Date.
- Persempit daftarnya menurut Company, Branch, Department, Designation, Employment Type, atau Employee Grade.
- Centang karyawan yang Anda inginkan.
- Gunakan Update untuk mengisi Base dan Variable pada seluruh pilihan sekaligus.
- Klik Assign Structure.
Yang dikerjakan alat ini untuk Anda:
- Daftarnya hanya menawarkan karyawan Active yang masuk kerja pada atau sebelum From Date, yang tanggal berhentinya kosong atau lebih akhir, dan yang belum punya assignment disubmit bertanggal sama.
- Base terisi lebih dulu dari grade masing-masing karyawan.
- Alat ini meminta konfirmasi Anda sebelum menugaskan siapa pun yang nilainya masih nol.
- Di atas 30 karyawan, pekerjaannya berjalan di latar belakang. Kegagalannya tercatat di Error Log terhadap Salary Structure Assignment.
Menjalankan penggajian satu bulan

Payroll Entry, yang menjalankan penggajian untuk satu perusahaan atau satu departemen sekaligus.
- Di
/app/payroll-entry, isi Posting Date, Company, Payroll Frequency, Start Date, dan End Date. - Saring menurut Branch, Department, Designation, atau Grade bila perlu. Centang Validate Attendance dan dokumen ini akan menolak disubmit selama masih ada absensi yang belum ditandai.
- Isi Payroll Payable Account (akun liabilitas non-group yang Account Type-nya Payable) pada tab Overview, lalu isi Payment Account dan Cost Center pada tab Accounting & Payment.
- Klik Get Employees. GARP mencocokkan karyawan perusahaan tersebut yang Status-nya apa pun selain Inactive, yang assignment disubmitnya menunjuk ke struktur aktif dengan mata uang, frekuensi, dan payroll payable account yang sama, serta tanggal masuk dan berhentinya beririsan dengan periode ini. Siapa pun yang sudah punya slip disubmit untuk rentang tanggal itu dikecualikan. Slip draf yang tertinggal tidak dikecualikan di sini — slip itu baru menghadang Payroll Entry belakangan dengan error Duplicate Entry.
- Bila Create Overtime Slip For Eligible Employee(s) aktif di Payroll Settings — dan penyiapan lembur Indonesia mengaktifkannya — tombol Create Overtime Slips muncul lebih dulu dari yang lain, disusul Submit Overtime Slips. Tuntaskan keduanya sebelum penggajian, atau lembur tidak akan sampai ke slip. Lihat Lembur.
- Klik Create Salary Slips. Langkah ini menyubmit Payroll Entry dan membuat slipnya dalam status draf. Di atas 30 karyawan, pekerjaannya berjalan di latar belakang dan Status berubah menjadi Queued. Kegagalan membuat Status menjadi Failed dan menuliskan pesan errornya, beserta tautan ke entri Error Log yang memuat detail teknisnya, ke dalam Error Message pada tab Failure Details; sebuah judul juga muncul di dasbor, dan tautan issue di sana langsung melompat ke field tersebut.
- Klik Submit Salary Slip. Slip yang net pay-nya di bawah nol dilewati dan dilaporkan sebagai
Could not submit some Salary Slips:beserta tautannya. Begitu sedikitnya satu slip berhasil disubmit, Journal Entry akrual dibuat dan disubmit, namanya dituliskan kembali ke field Journal Entry pada setiap slip, dan slip dikirimkan lewat email. - Klik Make Bank Entry untuk Journal Entry kedua, dengan voucher type Bank Entry atau Cash Entry, sebesar net pay dikurangi angsuran pinjaman. Tombol ini menghilang begitu jurnal semacam itu sudah ada.
Cara pengiriman emailnya bekerja seperti ini:
- Slip dikirim lewat email bila Email Salary Slip to Employee aktif di Payroll Settings, dan secara bawaan opsi ini memang aktif.
- Surel dikirim ke Preferred Email milik karyawan. Tanpa itu, Anda akan melihat pesan
Sari Dewi: Employee email not found, hence email not sent. - Encrypt Salary Slips in Emails beserta Password Policy menambahkan kata sandi pada PDF-nya. Policy ini berupa templat yang diisi dari field Employee, sehingga
{date_of_birth}menghasilkan kata sandi yang berbeda untuk setiap karyawan. - Bila Posting Date jatuh di masa depan, surelnya diantrikan untuk dikirim pada tanggal itu.
- Anda juga bisa memilih beberapa slip di tampilan daftar lalu menggunakan Menu → Email Salary Slips.

Salary Slip untuk satu periode penggajian.
Apa yang terjadi ketika sebuah slip disubmit
Menyubmit sebuah Salary Slip akan:
- mengatur statusnya,
- menandai Timesheet yang tertaut sebagai Payrolled,
- membuat entri Loan Repayment bila aplikasi Lending terpasang,
- menuliskan baris Employee Benefit Ledger untuk komponen akrual,
- mengubah data Gratuity dan Leave Encashment yang tertaut menjadi Paid,
- serta mengirimkan slip lewat email, kecuali kalau yang menyubmitnya adalah sebuah Payroll Entry.
Journal Entry akrual mencakup seluruh proses: setiap akun earning didebit, setiap akun deduction dikredit, dipecah menurut cost center pada masing-masing assignment, dengan selisihnya dikredit ke payroll payable account. Komponen yang ditandai Do Not Include in Total dikecualikan kecuali Do Not Include in Accounting Entries tidak dicentang; komponen statistik tidak pernah muncul.
Kalau Anda harus membatalkan satu proses
Membatalkan Payroll Entry akan membatalkan lalu menghapus setiap salary slip yang tertaut, membatalkan jurnal serta payment ledger entry di baliknya, mengosongkan Salary Slips Created, Salary Slips Submitted, dan Error Message, lalu mengatur Status menjadi Cancelled. Di atas 50 slip, pembatalannya berjalan di latar belakang.
Tidak ada satu pun peran yang boleh melakukan Amend pada Payroll Entry, jadi proses yang sudah dibatalkan harus dibuat ulang dari awal.

Salary Slip yang sudah disubmit.
Membayar bonus atau THR di luar siklus bulanan
- Buat komponen earning seperti
Tunjangan Hari Rayadengan Depends on Payment Days dimatikan, agar nilainya tidak dihitung proporsional. - Gunakan
/app/employee-incentiveuntuk pembayaran atas kebijakan perusahaan,/app/retention-bonusuntuk yang sudah dijanjikan (Bonus Payment Date-nya tidak boleh di masa lalu), atau langsung/app/additional-salary. - Submit. Masing-masing membuat satu Additional Salary yang disubmit pada payroll date tersebut, dan slip berikutnya yang mencakup tanggal itu akan menampilkannya sebagai baris earnings tersendiri.
Pada Additional Salary yang Anda buat secara manual:
- Overwrite Salary Structure Amount aktif secara bawaan. Nominalnya kemudian menggantikan angka dari struktur untuk komponen tersebut, bukan menambahkannya.
- Opsi itu mematikan dirinya sendiri, disertai pesan, ketika komponennya tidak ada di dalam struktur karyawan bersangkutan.
- Dua baris disubmit yang sama-sama menimpa komponen dan tanggal yang sama ditolak sebagai Duplicate Overwritten Salary.
- Centang Is Recurring beserta From Date dan To Date untuk mengulanginya. Barisnya akan diambil oleh setiap slip yang tanggal akhirnya jatuh di dalam rentang itu, dan baris berulang yang saling bertumpang tindih untuk komponen yang sama akan ditolak.
- Disabled bisa dicentang setelah submit untuk menghentikan baris berulang tanpa membatalkannya — dan ini penting, karena di sini hanya System Manager yang bisa melakukan cancel, amend, atau delete.
Depends on Payment Days aktif secara bawaan pada setiap Salary Component baru. Buat komponen THR dengan pengaturan bawaan, lalu bayarkan bonus Rp 4.500.000 kepada orang dengan 24 dari 25 payment days, maka yang sampai ke karyawan adalah Rp 4.320.000. Hilangkan centangnya pada master komponen, bukan pada baris struktur.
Memperbaiki slip yang hasilnya keliru
Payroll Correction (/app/payroll-correction) hanya mengerjakan satu hal: membalik potongan cuti tanpa gaji yang terlanjur dipotong keliru. Dokumennya dinamai PAYCORR-2026-00001.
- Isi Employee, Company, Payroll Period, dan Payroll Date (kapan uangnya harus sampai ke karyawan).
- Select Month for LWP Reversal hanya menampilkan slip disubmit dalam periode tersebut yang leave without pay-nya di atas nol. Bila tidak ada yang bisa ditampilkan, muncul
No Salary Slips with Leave Without Pay found for employee HR-EMP-00001 for payroll period 2026. - Isi Days to Reverse. Nilai nol atau kurang memunculkan
Days to Reverse must be greater than zero.Jumlah hari yang melebihi kehilangan pada slip itu, dengan ikut memperhitungkan koreksi yang sudah disubmit, memunculkanYou cannot reverse more than the total LWP days 3. You have already reversed 1 days for this employee. - Saat disimpan, tabel arrear terisi dari slip tersebut menggunakan komponen yang Arrear Component-nya dicentang pada master Salary Component, sebesar
default amount ÷ working days × days to reverse, atauamount ÷ payment days × days to reverseuntuk baris akrual. Bila tidak ada satu pun yang dicentang, Anda mendapatNo arrear components found in the salary slip. Ensure Arrear Component is checked in the Salary Component master.dan tidak ada baris yang terbentuk. - Submit. Setiap baris earning dan deduction menjadi satu Additional Salary yang disubmit pada payroll date tersebut dengan Overwrite Salary Structure Amount dimatikan, yang kemudian diambil slip berikutnya tanpa diproporsikan lagi. Sedangkan baris akrual menjadi entri Employee Benefit Ledger.
Jenis perbaikan yang lain
- Nominal yang keliru, bukan jumlah hari yang keliru — batalkan lalu amend Salary Slip-nya, atau tambahkan satu Additional Salary.
- Kenaikan gaji yang berlaku surut — gunakan Arrear (
/app/arrear). Fitur ini membangun ulang setiap slip disubmit sejak Arrear Start Date terhadap struktur yang baru, lalu membukukan selisih positifnya per komponen. Ia membutuhkan assignment disubmit untuk struktur tersebut bertanggal pada atau setelah tanggal mulai arrear, hanya mengizinkan satu Arrear per karyawan, per struktur, dan per periode, serta menolak bila tidak ada yang harus dibayar:There are no arrear differences between existing and new salary structure components.Arrear bahkan hanya terlihat oleh HR Manager dan System Manager.
Mengetik ulang nominal pada komponen milik struktur yang sudah disubmit di dalam slip draf tidak akan bertahan. Menyimpan slip akan mengevaluasi ulang setiap baris struktur dan menimpanya. Gunakan Additional Salary untuk mengubah sebuah angka pada satu bulan tertentu.
Menahan gaji selama beberapa bulan
Buat Salary Withholding (/app/salary-withholding, dinamai SAL-WTH-00001) berisi karyawannya, From Date, dan Number of Withholding Cycles. Payroll Frequency dibaca dari assignment karyawan yang berlaku saat itu, dan tabel Cycles beserta To Date dihitung darinya.
- Tidak adanya assignment pada atau sebelum tanggal mulai memunculkan
No Salary Structure Assignment found for employee HR-EMP-00002 on or before 01-03-2026. - Penahanan yang saling bertumpang tindih untuk satu karyawan ditolak sebagai Duplicate Salary Withholding.
Begitu Anda menyubmitnya, statusnya menjadi Withheld. Sejak saat itu:
- Slip di dalam siklus tersebut tetap dibuat dan disubmit, tetapi ditandai Withheld dan dikeluarkan dari bank entry biasa. Tabel karyawan pada Payroll Entry menampilkannya dengan Is Salary Withheld tercentang.
- Setelah bank entry biasa dibuat, tombol Release Withheld Salaries muncul pada Payroll Entry. Menyubmit bank entry yang dihasilkannya akan mengubah slip-slip tersebut menjadi Submitted, membubuhkan jurnalnya pada siklus-siklus itu, dan menjadikan withholding Released ketika seluruh siklusnya tuntas.
- Membatalkan bank entry tersebut mengembalikan slip-slip itu ke status Withheld.
Menggaji dari timesheet dan menangani angsuran pinjaman
Centang Salary Slip Based on Timesheet pada Salary Structure, lalu isi Salary Component dan Hour Rate. Slip kemudian menarik setiap Timesheet milik karyawan yang dimulai dalam periode tersebut dengan status Submitted, Billed, atau Partially Billed, menjumlahkan jamnya ke Total Working Hours, dan memposting jumlah jam dikali hour rate pada komponen itu — menimpa apa pun yang seharusnya dihasilkan baris struktur untuk komponen tersebut. Max working hours against Timesheet di Payroll Settings tidak membatasi jumlah jamnya; melampaui angka itu hanya memunculkan peringatan Total working hours should not be greater than max working hours 200. Struktur berbasis timesheet adalah satu-satunya tempat net pay negatif ditolak di tingkat struktur, dengan pesan Net pay cannot be negative.
Angsuran pinjaman hanya muncul pada slip bila aplikasi Lending terpasang di site Anda. Jika terpasang, slip menampilkan angsuran yang masih terutang, submit akan membuat Loan Repayment, dan Make Bank Entry mengurangkan angsuran tersebut dari kas yang dibayarkan. Tanpa aplikasi itu, tidak ada bagian pinjaman sama sekali.
Apa yang GARP kerjakan dan tidak kerjakan untuk penggajian Indonesia
Yang sudah tersedia di produk ini, dibaca langsung dari kodenya:
- Lima komponen gaji Indonesia ditambah
Upah Lembur, dibuat saat migrasi dengan formula yang ditampilkan di Apa yang sudah tersedia bawaan dan tanpa akun buku besar. - Variabel formula berbasis absensi
HM,HS,HI,HMK,HD, sehingga tunjangan dan potongan berbasis ketidakhadiran dapat ditulis tanpa kode kustom. - Lembur bergaya Kepmenaker, berupa sebuah
Overtime TypebernamaLembur GARP: tarif per jam dari komponen bulanan dibagi 173, jam pertama 1,5, jam berikutnya 2, hari libur 3 dan 4, pembulatan setengah jam, dan ambang satu jam per hari. Lihat Lembur.
Yang tidak tersedia:
- BPJS Kesehatan sama sekali tidak punya komponen.
BPJS TKbawaan hanyalah 2% datar dariGaji Pokok + Masa Kerja, tanpa batas atas upah, tanpa porsi pemberi kerja, dan tanpa pemisahan JHT, JP, JKK, dan JKM. Penyiapan BPJS Ketenagakerjaan yang sesungguhnya memerlukan satu komponen per program, serta porsi pemberi kerja yang dimodelkan sebagai Statistical Component atau sebagai baris Do Not Include in Total bila Anda ingin menampilkannya tanpa mengubah net pay. - PPh 21 tidak punya komponen bawaan, tidak punya tabel TER, dan tidak punya logika PTKP. Mesin Income Tax Slab yang generik memang berfungsi — lapisan tarif, kondisi, standard exemption, other charges — dan didokumentasikan di Pajak dan tunjangan, tetapi setiap tarif, lapisan, dan pengurangnya harus Anda isi sendiri. Tidak ada bagian produk ini yang mengenal
NPWP, kode statusPTKP, atau gross-up Desember. - THR tidak punya tipe dokumen tersendiri. THR diwujudkan sebagai Additional Salary, atau sebagai Salary Component dengan Condition pada bulannya. Tidak ada aturan pro rata untuk karyawan dengan masa kerja di bawah dua belas bulan.
- PKWT dan PKWTT tidak dibaca oleh penggajian — keduanya hanya muncul di sana sebagai apa pun nama yang Anda berikan pada data Employment Type Anda. Modul pemutusan hubungan kerja (PHK) memang memodelkan PKWT: migrasi menyediakan sebuah Employee Exit Reason
Kontrak Berakhir (PKWT)dan sebuah Severance RulePesangon PP 35/2021lengkap dengan Uang Kompensasi, tetapi tidak satu pun dari itu sampai ke salary slip. - Satu-satunya kode penggajian khusus wilayah di dalam produk ini adalah untuk India (sebuah field Component Type untuk provident fund dan professional tax, pengecualian HRA, marginal relief, dan satu aturan gratuity) serta Uni Emirat Arab (tiga aturan gratuity). Keduanya tidak aktif untuk perusahaan Indonesia.
Jangan memperlakukan komponen BPJS TK dan Potongan bawaan sebagai sudah patuh aturan. Keduanya dibuat sebagai peragaan mesin formula. Tinjau keduanya bersama konsultan penggajian Anda sebelum proses live yang pertama, dan periksa apakah struktur Anda memang seharusnya menghitung keduanya secara proporsional.
Rincian, batasan, dan kasus khusus
Semua yang ada di bawah ini adalah referensi. Anda tidak memerlukannya untuk menjalankan penggajian bulanan yang biasa — datanglah ke sini ketika ada pesan yang menghentikan Anda, ketika Anda perlu tahu persis apa yang dilakukan sebuah field, atau ketika angkanya terlihat tidak beres.
Dokumen utamanya, masing-masing dalam satu baris
- Salary Component — satu baris pada slip gaji. Type berisi Earning atau Deduction. Memuat sebuah Abbr, sebuah Amount atau Formula, sebuah Condition yang bersifat opsional, dan Accounts buku besar tempat komponen itu diposting, satu baris per perusahaan.
- Salary Structure — Anda isi lalu Anda submit. Anda sendiri yang menamainya; tidak ada penomoran otomatis. Memuat tabel Earnings dan Deductions, Payroll Frequency, Currency, dan Is Active. Struktur ini juga masih memiliki field Is Default, tetapi field tersebut disembunyikan, hanya bisa dibaca, dan sudah tidak berpengaruh apa pun.
- Salary Structure Assignment — dapat disubmit, dengan pola penomoran
HR-SSA-.YY.-.MM.-.#####. Mengikat satu karyawan pada satu struktur terhitung sejak From Date, sekaligus menyediakan Base dan Variable yang dibaca oleh formula. - Bulk Salary Structure Assignment — alat satu halaman untuk menugaskan satu struktur ke banyak karyawan sekaligus.
- Salary Slip — dapat disubmit, dinamai
Sal Slip/HR-EMP-00001/00007kecuali pola penomorannya diubah untuk site Anda. Satu karyawan, satu periode. Berstatus Draft, Submitted, Cancelled, atau Withheld. - Payroll Entry — dapat disubmit, dengan pola penomoran
HR-PRUN-.YYYY.-.#####. Inilah proses massalnya: memilih karyawan, membuat dan menyubmit slip, lalu menghasilkan bank entry. Status-nya sendiri menambahkan Queued dan Failed di luar tiga status yang biasa. - Payroll Period — tahun pajak untuk satu perusahaan. Dibutuhkan oleh income tax slab, Payroll Correction, dan Arrear.
- Payroll Settings (
/app/payroll-settings) — cara hari kerja dihitung dan cara slip dikirimkan lewat email. - Additional Salary — baris serbaguna untuk pembayaran di luar siklus. Insentif, retention bonus, lembur, rapel, dan koreksi semuanya bermuara pada dokumen ini.
- Salary Withholding — menahan gaji seorang karyawan selama sejumlah siklus tanpa menghentikan proses penggajiannya.
Apa yang sudah tersedia bawaan
GARP HR memasang lima komponen gaji Indonesia dan satu komponen lembur saat migrasi, sehingga site yang baru tidak benar-benar kosong. Pembuatan Company menambahkan empat komponen generik lain yang tidak dipakai oleh apa pun di halaman ini — Basic, Arrear, Income Tax, dan Leave Encashment:
| Komponen | Abbr | Type | Nominal atau formula bawaan |
|---|---|---|---|
| Gaji Pokok | GP | Earning | tidak ada — Anda yang mengisinya pada baris struktur |
| Masa Kerja | TMK | Earning | tidak ada — Anda yang mengisinya pada baris struktur |
| Kehadiran | KH | Earning | 50000 if (HS == 0 and HI == 0 and HMK == 0 and HD == 0) else 0 |
| BPJS TK | BPJSTK | Deduction | (2 * (GP + TMK)) / 100 |
| Potongan | POT | Deduction | GP / 25 * (HS + HI + HMK) |
| Upah Lembur | LMB | Earning | tidak ada — nominalnya datang dari sebuah Overtime Slip |
Kelima komponen kelompok pertama hadir dengan Depends on Payment Days tercentang; Upah Lembur hadir tanpa centang. Tidak satu pun dari komponen tersebut memiliki baris Accounts, jadi Anda harus menambahkan satu baris per perusahaan sebelum proses penggajian bisa diposting. Komponen bernama Lembur, Lembur HR, dan Lembur Rutin dinonaktifkan saat migrasi karena formulanya mengacu pada field yang tidak pernah ada — lembur kini hanya dibayarkan lewat jalur Overtime Slip yang dijelaskan di Lembur.
Singkatan bersifat unik untuk seluruh site. Jika Anda membuat Tunjangan Makan lalu mengetik TMK, singkatan itu sudah dimiliki Masa Kerja bawaan dan milik Anda diam-diam disimpan sebagai TMK_1 — dan nama itulah yang harus dipakai formula Anda. Periksa field Abbr setelah menyimpan komponen baru.
Salary Component field demi field
Field-field yang mengubah perilaku:
| Field | Fungsinya ketika dicentang atau diisi |
|---|---|
| Type | Earning atau Deduction. Menentukan tabel mana pada struktur yang boleh memuatnya, dan apakah nilainya didebit atau dikredit dalam jurnal akrual. |
| Abbr | Nama yang dipakai formula. Jika dikosongkan, singkatan dibentuk dari huruf awal nama komponen. |
| Depends on Payment Days | Bawaannya aktif. Menghitung baris secara proporsional terhadap payment days (hari pembayaran). Matikan untuk apa pun yang dibayar penuh. |
| Is Tax Applicable | Bawaannya aktif untuk earning. Memasukkan baris ini ke dalam penghasilan kena pajak. |
| Do Not Include in Total | Menjaga baris ini tidak masuk ke gross pay maupun net pay. |
| Do Not Include in Accounting Entries | Baru terlihat setelah baris dikeluarkan dari total. Menjaga baris ini juga tidak masuk ke jurnal akrual dan bank entry. |
| Statistical Component | Baris ini tidak pernah tampil di slip, tetapi nilainya tetap tersedia bagi formula lain melalui singkatannya. Menyembunyikan tabel Accounts. |
| Remove if Zero Valued | Bawaannya aktif. Baris yang hasilnya nol dihapus dari slip, bukan dicetak sebagai 0. |
| Round to the Nearest Integer | Membulatkan nominal akhir setelah proporsi payment days diterapkan. |
| Disabled | Menyembunyikan komponen dari pemilih pada baris Salary Structure yang baru. Opsi ini tidak menghentikan struktur yang sudah terlanjur memakainya untuk tetap menghitung baris tersebut. |
| Arrear Component | Membuat komponen memenuhi syarat untuk Payroll Correction dan Arrear. Tidak bisa digabung dengan Variable Based On Taxable Salary. |
| Accrual Component | Hanya untuk earning. Baris dibukukan ke Employee Benefit Ledger, bukan tampil sebagai baris earning biasa. |
| Variable Based On Taxable Salary | Hanya untuk deduction. Menandai komponen sebagai baris pajak penghasilan — lihat Pajak dan tunjangan. |
Validasinya minim. Menyimpan tanpa baris Accounts hanya memunculkan peringatan berwarna oranye: Accounts not set for Salary Component Gaji Pokok. Penghentian yang sebenarnya baru terjadi belakangan, ketika proses penggajian mencoba memposting: Please set account in Salary Component Gaji Pokok. Ada empat hal yang benar-benar menolak penyimpanan. Dua di antaranya akan Anda temui bahkan tanpa flexible benefit — Accrual Component can only be set for Earning Salary Components. dan Arrear Component cannot be set for Salary Components based on taxable salary. — dan dua sisanya mengawasi Accrual Component terhadap Payout Method milik flexible benefit.
Mengubah Condition atau Formula pada komponen tidak menjalar ke struktur yang sudah memakainya. Gunakan Update Salary Structures → Sync Condition dan Sync Formula; masing-masing menampilkan daftar struktur yang akan ditulis ulang dan meminta konfirmasi Anda, atau memberi tahu Salary Component Gaji Pokok is currently not used in any Salary Structure.
Menulis formula
Condition dan Formula adalah ekspresi Python yang pendek. GARP menghitungnya setiap kali sebuah slip dibentuk, di dalam ruang tertutup yang hanya mengenal nama-nama berikut:
| Sumber | Contoh |
|---|---|
| Assignment | base, variable |
| Setiap field Employee | designation, branch, employment_type, grade, date_of_joining |
| Field milik slip itu sendiri | payment_days, total_working_days, leave_without_pay, absent_days, start_date, end_date |
| Setiap Abbr Salary Component | diawali nilai 0, lalu terisi seiring baris dievaluasi |
| Hitungan hari absensi | HM, HS, HI, HMK, HD (bisa juga ditulis custom_hari_masuk dan seterusnya) |
| Fungsi bantu | int, float, round, rounded, ceil, floor, date, getdate, get_first_day, get_last_day |
Tidak ada yang lain, dan tidak ada yang bisa di-import. Nama yang tidak dikenali memunculkan Name error yang menyebut dokumen dan barisnya: Error while evaluating the Salary Structure PT Maju Jaya - Staf Bulanan at row 3. Akses atribut yang tidak aman, setiap __ di dalam teksnya, dan operator walrus ditolak sebagai Syntax error sebelum ada perhitungan apa pun.
Hitungan hari absensi
Setiap salary slip memuat bagian Hari Kehadiran yang bisa dilipat, berisi lima field bilangan bulat. Kelimanya dihitung ulang dari data Attendance yang sudah disubmit untuk periode slip tersebut, setiap kali slip disimpan:
| Field | Abbr | Menghitung |
|---|---|---|
| Hari Masuk (HM) | HM | Status absensi Present, Half Day, atau Work From Home — setengah hari dihitung 1, bukan 0,5 |
| Hari Sakit (HS) | HS | Status On Leave yang nama Leave Type-nya mengandung rangkaian huruf sick |
| Hari Izin (HI) | HI | Status On Leave untuk jenis cuti lainnya |
| Hari Mangkir (HMK) | HMK | Status Absent |
| Hari Terlambat (HD) | HD | Salah satu di atas dengan Late Entry tercentang |
Kategori sakit dicocokkan dengan kata Inggris sick pada nama Leave Type. Jenis cuti bernama Cuti Sakit akan masuk ke HI, bukan HS. Ganti nama jenis cutinya menjadi sesuatu seperti Cuti Sakit (Sick Leave) bila formula Anda membedakan keduanya.
Mengetik ulang isi field-field ini pada slip tidak berpengaruh apa pun. Mesin formula membaca ulang Attendance sendiri dan mengabaikan apa pun yang tersimpan pada dokumen.
Urutan dan perhitungan proporsional
Baris dihitung dari atas ke bawah, earning lebih dulu baru deduction. Formula yang mengacu pada singkatan yang didefinisikan di baris lebih bawah akan membaca 0. Susun tabel Earnings agar baris turunan berada setelah baris yang menjadi sumbernya. Ketika sebuah baris dihitung proporsional, singkatan yang dilihat baris berikutnya berisi angka hasil proporsi, bukan nominal pada struktur — sehingga deduction yang dihitung dari GP sudah bekerja di atas basis yang berkurang.
Depends on Payment Days membuat sebuah baris dihitung proporsional: dibayar untuk 23 dari 25 hari kerja, nilainya menjadi default amount * payment_days / total_working_days. Inilah sebabnya GARP menolak menyimpan struktur yang memuat baris berbasis formula yang sekaligus dihitung proporsional dan membaca singkatan yang juga sudah diproporsikan:
Row #4: The BPJS TK Component has the options Amount based on formula and
Depends On Payment Days enabled.
Disable Depends On Payment Days for the BPJS TK component, to prevent the
amount from being deducted twice, as its formula already uses a
payment-days-based component.
Kedua deduction bawaan tersandung aturan ini. Sebelum Anda bisa menempatkan Gaji Pokok, Masa Kerja, BPJS TK, dan Potongan dalam satu struktur, hilangkan centang Depends on Payment Days pada master BPJS TK dan Potongan. Anda tidak bisa memperbaikinya pada baris struktur: kolom itu hanya bisa dibaca dan disalin ulang dari master setiap kali disimpan, bersama Is Tax Applicable, Is Flexible Benefit, dan Variable Based On Taxable Salary.
Aturan dan pesan Salary Structure
Anda dimintai namanya, jadi ketikkan sesuatu yang mudah Anda kenali: PT Maju Jaya - Staf Bulanan. Company, Currency, dan Is Active wajib diisi. Payroll Frequency bawaannya Monthly dan disembunyikan bila Salary Slip Based on Timesheet dicentang. Is Active, Letter Head, Leave Encashment Amount Per Day, serta Condition dan Formula pada setiap baris masih bisa diubah setelah submit.
Di luar pemeriksaan payment days tadi, penyimpanan ditolak bila sebuah deduction yang ditandai Variable Based On Taxable Salary juga membawa nominal atau formula: Row #3: Cannot set amount or formula for Salary Component PPh 21 with Variable Based On Taxable Salary. Sistem hanya memperingatkan tanpa menghalangi bila sebuah baris memiliki Formula tetapi Amount based on formula tidak dicentang: formulanya diabaikan dan Amount yang dipakai.
Actions → Preview Salary Slip menampilkan tampilan cetak untuk satu karyawan, tetapi hanya menawarkan karyawan yang sudah punya assignment disubmit terhadap struktur ini. Bila tidak ada satu pun, muncul There's no Employee with Salary Structure: PT Maju Jaya - Staf Bulanan. Assign PT Maju Jaya - Staf Bulanan to an Employee to preview Salary Slip. Preview juga memakai jumlah hari kalender mentah dan menyamakan payment days dengannya, jadi bacalah Working Days di sana sebagai indikasi saja, dan jadikan nominal komponennya sebagai uji yang sesungguhnya.
Field dan pesan Salary Structure Assignment
| Field | Catatan |
|---|---|
| Employee, From Date | Pasangan ini harus unik di antara assignment yang sudah disubmit. |
| Salary Structure | Terisi otomatis dari Employee Grade → Default Salary Structure milik karyawan. |
| Base, Variable | Mengisi nama base dan variable di dalam formula. Base terisi otomatis dari Employee Grade → Default Base Pay. |
| Income Tax Slab | Wajib begitu struktur memuat komponen pajak. |
| Payroll Payable Account | Terisi dari Company → Default Payroll Payable Account, kalau tidak ada diambil dari akun yang namanya persis Payroll Payable dalam mata uang bawaan perusahaan. |
| Cost Centers | Bawaannya satu baris 100% dari Payroll Cost Center milik karyawan atau departemennya. Dapat diubah setelah submit. |
| Taxable Earnings Till Date, Tax Deducted Till Date | Saldo awal untuk karyawan yang mulai di tengah tahun. Dapat diubah setelah submit. |
Pesan-pesan yang akan menghentikan Anda:
Salary Structure Assignment for Employee already exists— karyawan yang sama, From Date yang sama, sudah disubmit.From Date 2026-03-01 cannot be before employee's joining Date 2026-03-16, dan pesan kebalikannya untuk tanggal berhenti.Salary Structure PT Maju Jaya - Staf Bulanan does not belong to company PT Sinar Abadi.Income Tax Slab is mandatory since the Salary Structure ... has a tax component PPh 21, danCurrency of selected Income Tax Slab should be IDR instead of INR.Total percentage against cost centers should be 100, sertaRow 1: Cost Center Toko Solo does not belong to Company PT Maju Jaya.Please set "Default Payroll Payable Account" in Company Defaults— dari alat penugasan massal maupun tunggal, yang tidak bisa menebaknya sendiri.
Bila struktur memuat komponen pajak dan From Date-nya jatuh setelah awal payroll period, penyimpanan memunculkan peringatan Missing Opening Entries: Please specify Taxable Earnings Till Date and Tax Deducted Till Date (if any), for the correct tax calculation in future salary slips.
Payroll Payable Account pada assignment bukan sekadar hiasan. Get Employees pada Payroll Entry hanya mencocokkan karyawan yang assignment-nya membawa persis akun yang dipilih pada Payroll Entry tersebut. Jika Anda menugaskan struktur dengan satu payable account lalu menjalankan penggajian dengan akun yang lain, Anda akan mendapat No employees found for the mentioned criteria tanpa petunjuk sedikit pun tentang field mana yang tidak cocok.
Hari kerja dan hari pembayaran
Setiap slip memiliki tab Payment Days yang menunjukkan pengaturan Payroll Settings mana yang menghasilkan angka-angkanya, lengkap dengan tautan untuk mengubahnya lalu menyimpan ulang. Aritmetikanya:
- Working Days dimulai dari jumlah hari kalender dalam periode tersebut.
- Kecuali Include holidays in Total no. of Working Days dicentang, tanggal-tanggal pada Holiday List karyawan dikurangkan. Jika hari libur lebih banyak daripada jumlah harinya, muncul
There are more holidays than working days this month. - Payment Days dimulai dari selisih hari antara mana yang lebih akhir di antara awal periode dan tanggal masuk kerja, dengan mana yang lebih awal di antara akhir periode dan tanggal berhenti — lagi-lagi dikurangi hari libur.
- Leave Without Pay dikurangkan. Dengan Calculate Payroll Working Days Based On diisi Leave, angkanya berasal dari pengajuan cuti yang disetujui pada jenis cuti tanpa gaji; diisi Attendance, angkanya berasal dari data Attendance, dan Absent Days ikut dikurangkan.
- Khusus pada basis Attendance, Consider Unmarked Attendance As = Absent akan mengurangi hari-hari yang sama sekali tidak punya data Attendance, dan setengah hari yang ditandai absen dikurangkan sebesar Fraction of Daily Salary for Half Day (bawaan
0.5).
Dua pesan yang mungkin Anda temui di sini:
Please set Payroll based on in Payroll settings— field pertama Payroll Settings masih kosong.Employee HR-EMP-00003 relieved on 15-03-2026 must be set as 'Left'— karyawan tersebut punya tanggal berhenti sebelum periode ini, tetapi Status karyawannya masih Active.
Satu hari cuti tanpa gaji yang disetujui menghasilkan dua hal sekaligus: pengurangan payment days dan satu baris Attendance disubmit berstatus On Leave. Formula Potongan bawaan menghitung hari yang sama itu sekali lagi lewat HI. Kecuali Anda menghapus salah satu dari keduanya, satu hari tanpa gaji kira-kira menelan biaya dua kali lipat bagi karyawan.
Contoh perhitungan
PT Maju Jaya membayar gaji bulanan dalam IDR. Holiday List untuk Maret 2026 menandai enam hari — lima hari Minggu dan satu hari libur perusahaan pada 19 Maret — sehingga Working Days adalah 31 − 6 = 25. Payroll Settings dibiarkan pada nilai bawaannya: basis Leave, hari libur dikeluarkan dari hari kerja, setengah hari dihitung 0.5. Struktur PT Maju Jaya - Staf Bulanan memakai komponen bawaan, dengan Depends on Payment Days dimatikan pada BPJS TK dan Potongan agar strukturnya bisa disimpan.
Sari Dewi — GP 4.200.000, TMK 300.000, dua hari cuti tanpa gaji yang disetujui.
Payment days 25 − 2 = 23
Gaji Pokok 4,200,000 × 23/25 = 3,864,000
Masa Kerja 300,000 × 23/25 = 276,000
Kehadiran HI = 2, so formula gives 0 → row removed
Gross pay = 4,140,000
BPJS TK 2 × (3,864,000 + 276,000)/100= 82,800
Potongan 3,864,000 / 25 × 2 = 309,120
Net pay = 3,748,080
Petugas penggajian di Indonesia akan mengharapkan dua hari tanpa gaji itu menelan 360.000 sekali saja, sehingga bersihnya menjadi 4.057.200. Produk ini membebankannya dua kali — 360.000 lewat perhitungan proporsional dan 309.120 lewat Potongan — lalu membayar 3.748.080. Perhatikan juga bahwa Potongan membagi dengan angka literal 25 di dalam formulanya, bukan dengan Working Days, sehingga tarif hariannya melenceng pada bulan mana pun yang hari kerjanya bukan 25.
Budi Santoso — GP 5.000.000, TMK 500.000, satu hari cuti tanpa gaji, ditambah THR sebesar 4.500.000 yang dimasukkan sebagai Additional Salary pada 20 Maret terhadap komponen yang Depends on Payment Days-nya dibiarkan bawaan.
Payment days 25 − 1 = 24
Gaji Pokok 5,000,000 × 24/25 = 4,800,000
Masa Kerja 500,000 × 24/25 = 480,000
Kehadiran HI = 1, so formula gives 0 → row removed
THR 4,500,000 × 24/25 = 4,320,000 ← expected 4,500,000
Gross pay = 9,600,000
BPJS TK 2 × (4,800,000 + 480,000)/100= 105,600
Potongan 4,800,000 / 25 × 1 = 192,000
Net pay = 9,302,400
Menghilangkan centang Depends on Payment Days pada komponen THR menaikkan gross menjadi 9.780.000 dan net menjadi 9.482.400.
Rina Halim masuk kerja pada 16 Maret, GP 4.200.000, TMK 300.000, kehadiran sempurna.
Working days still 25 (whole period)
Payment days 16 calendar days − 3 holidays in 16–31 March = 13
Gaji Pokok 4,200,000 × 13/25 = 2,184,000
Masa Kerja 300,000 × 13/25 = 156,000
Kehadiran 50,000 × 13/25 = 26,000 ← expected 50,000
Gross pay = 2,366,000
BPJS TK 2 × (2,184,000 + 156,000)/100= 46,800
Net pay = 2,319,200
Tunjangan kehadiran tetap dihitung proporsional walaupun Rina hadir pada setiap hari yang bisa ia hadiri, karena Kehadiran bawaannya sudah mencentang Depends on Payment Days.
Journal Entry akrual untuk satu proses yang memuat Sari dan Budi, diposting terhadap payroll payable account:
Dr Gaji Pokok - PMJ 8,664,000
Dr Masa Kerja - PMJ 756,000
Dr Tunjangan Hari Raya - PMJ 4,320,000
Cr BPJS TK Payable - PMJ 188,400
Cr Potongan - PMJ 501,120
Cr Payroll Payable - PMJ 13,050,480
Make Bank Entry kemudian mendebit Payroll Payable sebesar 13.050.480 dan mengkredit Payment Account.
Laporan
Buka laporan-laporan ini dari workspace Payroll atau dari sidebar-nya; semuanya membaca dari Salary Slip kecuali bila disebutkan lain.
| Laporan | Terlihat oleh | Isinya |
|---|---|---|
| Salary Register | HR User, HR Manager | Satu baris per slip dengan setiap komponen sebagai kolom. Filter: rentang tanggal, mata uang, karyawan, perusahaan, Document Status (bawaan Submitted), department, branch, designation. |
| Bank Remittance | HR Manager | Berbasis Payroll Entry. Menampilkan net pay per karyawan lengkap dengan nama bank dan nomor rekening, melewatkan siapa pun yang salah satunya kosong, atau yang akun debit perusahaannya belum diisi. |
| Salary Payments Based On Payment Mode | HR User, HR Manager, Employee | Net pay per branch, satu kolom untuk setiap Mode of Payment yang dipakai, dengan baris gross pay dan total deduction di bagian bawah. |
| Salary Payments via ECS | HR User, HR Manager | Branch, karyawan, gross pay, net pay, bank, dan nomor rekening — daftar yang Anda serahkan ke bank. |
| Income Tax Computation, Income Tax Deductions | HR User, HR Manager, Employee | Lihat Pajak dan tunjangan. |
| Accrued Earnings Report | HR User, HR Manager, System Manager | Berbasis Employee Benefit Ledger. Satu-satunya tampilan untuk komponen akrual. Tidak ditautkan dari workspace — cari berdasarkan namanya. |
| Provident Fund Deductions, Professional Tax Deductions | tanpa peran | Khusus India; keduanya bergantung pada field Component Type yang hanya ditambahkan oleh penyiapan regional India. Biarkan saja. |
Workspace ini juga tidak menampilkan Payroll Correction dan Arrear pada kartu tautannya. Capai keduanya lewat nama di kotak pencarian, atau lewat rute yang disebutkan di atas.
Siapa boleh melakukan apa
| Dokumen | Buat dan ubah | Submit | Cancel, amend, delete |
|---|---|---|---|
| Salary Component | HR User, HR Manager | tidak dapat disubmit | HR Manager (delete) |
| Salary Structure | HR User, HR Manager | HR User, HR Manager | HR User, HR Manager |
| Salary Structure Assignment | HR User, HR Manager, System Manager | HR User, HR Manager | cancel dan amend: HR Manager; delete: HR Manager, System Manager |
| Salary Slip | HR User, HR Manager | HR User, HR Manager | hanya HR Manager; peran Employee mendapat read dan print |
| Payroll Entry | hanya HR Manager | HR Manager | hanya cancel dan delete — tidak ada amend untuk siapa pun |
| Additional Salary | HR User, HR Manager, System Manager | ketiganya | hanya System Manager |
| Employee Incentive | HR User (hanya draf), HR Manager | hanya HR Manager | HR Manager |
| Retention Bonus | HR User, HR Manager, System Manager | ketiganya | cancel dan delete: ketiganya; tidak ada amend untuk siapa pun |
| Salary Withholding | HR Manager, System Manager | keduanya | cancel: HR Manager; delete: keduanya; tidak ada amend untuk siapa pun |
| Payroll Correction | HR User, HR Manager, System Manager, Employee | semuanya kecuali Employee | hanya delete, untuk ketiga peran tersebut; tidak ada cancel maupun amend untuk siapa pun |
| Arrear | HR Manager, System Manager | keduanya | cancel: HR Manager; delete: keduanya; tidak ada amend untuk siapa pun |
| Payroll Period | HR User, HR Manager, System Manager | tidak dapat disubmit | ketiga peran yang sama |
| Payroll Settings | System Manager, HR Manager | — | — |
Karyawan dapat membaca Salary Slip, Payroll Period, Employee Incentive, Retention Bonus, dan Salary Withholding miliknya sendiri. Tidak ada aturan visibilitas khusus penggajian di dalam aplikasi ini, sehingga siapa melihat apa mengikuti aturan user permission Employee yang standar, sebagaimana dijelaskan di Karyawan.
Peran Employee bisa membuat dan mengubah Payroll Correction, meskipun tidak bisa menyubmitnya. Bila itu bukan yang Anda inginkan, hapus baris Employee dari daftar permission Payroll Correction sebelum go-live.
Empat role profile dibuat saat migrasi: GTHR - HO memuat HR Manager, HR User, Leave Approver, dan Expense Approver; GTHR - SM memuat HR User dan Leave Approver; GTHR - MR memuat HR User; GTHR - KG memuat Employee. Hanya GTHR - HO yang membawa HR Manager, jadi hanya profil itu yang bisa menjalankan Payroll Entry, membatalkan slip, atau menyubmit Arrear.
Apa yang berjalan otomatis
Tidak ada satu pun bagian penggajian yang berjalan menurut jadwal. Tugas terjadwal aplikasi ini hanya mencakup absensi, shift, cuti, wawancara, dan pengingat — tetangga terdekatnya adalah generate_leave_encashment dan allocate_earned_leaves yang berjalan setiap malam, keduanya dijelaskan di Cuti. Penggajian hanya bergerak maju ketika ada orang yang menekan tombol. Pekerjaan latar belakang yang akan Anda lihat — pembuatan dan submit slip di atas 30 karyawan, pembatalan Payroll Entry di atas 50 slip, penugasan massal di atas 30 karyawan, overtime slip di atas 30 karyawan — diantrikan sesuai permintaan, bukan dijadwalkan.
Terkait
- Pajak dan tunjangan — income tax slab, exemption declaration, flexible benefit.
- Akuntansi — tempat jurnal akrual dan jurnal bank tercatat.
- Lembur — bagaimana jam lembur sampai ke sebuah slip.
- Absensi dan shift — sumber payment days sekaligus sumber
HM,HS,HI,HMK, danHD. - Cuti — asal mula cuti tanpa gaji.
- Pengaturan dan laporan — Payroll Settings selengkapnya, dan Salary Register.
- Paket dan batasan — apakah penggajian termasuk dalam paket Anda.