Appearance
Payslip
hrms.payslip · every change is kept in the audit log · numbered PS-{YYYY}-{#####}
Fields
Every record also has id, created_at and updated_at.
| Field | Label | Type | Rules |
|---|---|---|---|
payroll_run | payroll run | link → hrms.payroll_run | required |
employee | employee | link → hrms.employee | required |
basic_pay | basic pay | money | |
gross_pay | gross pay | money | |
reimbursement | reimbursement | money | |
pf | pf | money | |
professional_tax | professional tax | money | |
tds | tds | money | |
insurance | insurance | money | |
loan_emi | loan emi | money | |
advance_emi | advance emi | money | |
lines | lines | table of payslip_line | |
net_pay | net pay | money | |
working_days | working days | decimal | |
present_days | present days | decimal | |
absent_days | absent days | decimal | |
leave_days | leave days | decimal | |
holiday_days | holiday days | decimal | |
weekend_days | weekend days | decimal | |
payable_days | payable days | decimal | |
status | status | select | one of: Draft, Finalised; default "Draft" |
pdf | file | personal data |
Unique together: payroll_run + employee
Permissions
| Role | Can |
|---|---|
hrms:admin | read |
hrms:payroll | read, create, update, delete |
hrms:employee | read — only own rows (via employee) |
API
http
GET /api/hrms/payslip?<field>=<value>&limit=100&offset=0
POST /api/hrms/payslip
GET /api/hrms/payslip/:id
PATCH /api/hrms/payslip/:id
DELETE /api/hrms/payslip/:id