Payroll
Payroll generates one payslip per employee for the previous month — base salary, bonuses, deductions, tax — and lets you mark each as paid when transferred.
Payslips are version-tracked against the employee's salary record so if a salary change lands mid-month, the payroll uses the right rate for the right period.
Step-by-step
- 1Auto-generation
On the 1st of every month at 00:00 IST a cron generates payrolls for the previous month for every active employee. You don't trigger this manually.
- 2Review the run
From the sidebar click Payroll. The list shows one row per employee for the current pay period with base, bonuses, deductions, and net amount.
- 3Add bonuses or deductions
Click into an employee's payslip → Add Bonus or Add Deduction. Provide a name, amount, and optional note. The net amount updates live.
- 4Mark as paid
When the transfer goes out, click Mark as Paid and pick the pay account the money came from. The pay account's balance drops by the net amount.
- 5Email the payslip
Click Email Payslip — the employee gets a PDF copy at the email on their HR record.
Tips
Edits to the employee's salary in HR take effect from the next payroll run, not retroactively. Skipping a payroll (e.g., employee on unpaid leave) — set Status to Skipped instead of deleting it, so history is intact. Bulk-mark-paid is available from the Payroll list when you've actually transferred everyone in one batch.
Admin configuration
Access groups → `payrollView`, `payrollEdit` control who can see and modify payrolls. The cron `/api/cron/payrolls` runs on the 1st at 00:00 IST from the wms-be worker.