v16.17.0
frappe/hrmsv16.17.0Aug 28, 2026by frappe-pr-bot
AI Summary
This release focuses on bug fixes for PostgreSQL compatibility, attendance reporting, and payroll data migration. It also introduces visual indicators for the hiring pipeline and improves validation for expense claims and gratuity accounts.
Key Highlights
- PostgreSQL compatibility fixes for employee reminders, timelines, and payroll tax slabs.
- New visual indicators (orange, blue, green) for Job Applicant Kanban board statuses.
- Enhanced 'Monthly Attendance Sheet' logic for half-day classification.
- Improved Expense Claim validation and Gratuity account flexibility.
Full Release Notes
## Bug Fixes * Updates database queries used by employee reminders, **Job Offer**, **Employee** timelines, and the "Unpaid Expense Claim" report to support PostgreSQL databases. It also updates payroll data migration steps for moving tax slabs and assigning departments. (https://github.com/frappe/hrms/pull/5087) * Allows users to edit multiple **Attendance** records at once. When users select "Duplicate" for an **Attendance**, the _Attendance Request_ link is left blank instead of being copied from the original record. (https://github.com/frappe/hrms/pull/5085) * Updates the summarized "Monthly Attendance Sheet" to classify the other half of a half-day as present or absent based on _Status for Other Half_, and count it as leave only when linked to a **Leave Application**; otherwise, it counts as present. (https://github.com/frappe/hrms/pull/5097) * Prevents the "Employee Leave Balance" report from erroring when _Employee_ is blank by limiting results to employees the user can view; when employee access is restricted, it defaults _Employee_ to the logged-in user's record without replacing an existing selection. (https://github.com/frappe/hrms/pull/5112) * Allows the _Expense Account_ and _Payable Account_ fields in **Gratuity** to use either Expense or Liability accounts. (https://github.com/frappe/hrms/pull/5120) * Adds orange, blue, and green indicators to the Replied, Shortlisted, and Accepted columns when a **Job Applicant** Kanban board is created. Updates these columns on the existing "Hiring Pipeline" board with the same indicators. (https://github.com/frappe/hrms/pull/5135) * Fixes an import error that prevents the "Unpaid Expense Claim" report from loading on Frappe v16 by using the public `scrub` API. (https://github.com/frappe/hrms/pull/5127) * Updates **Expense Claim** validation to explain whether a selected **Employee Advance** has a currency mismatch or uses a non-Receivable account, and applies the same checks when the claim is saved. Invalid rows are cleared from the _Advances_ table, and users are told to cancel and recreate the related **Payment Entry** when its account no longer matches. (https://github.com/frappe/hrms/pull/5136) * Prevents an upgrade error when **Expense Claim Advance** does not have the _Payment Entry_ field, while continuing to copy existing values to _Reference Name_ and _Reference Type_ when it does. (https://github.com/frappe/hrms/pull/5153) ## Other Changes * Adds a _Status_ filter next to _Employee_ in the "Monthly Attendance Sheet" report; it defaults to Active and lets users view attendance for Active, Inactive, Suspended, Left, or all employees. (https://github.com/frappe/hrms/pull/5106) * Updates the Check-In panel's "View List" label to use the user's selected language. (https://github.com/frappe/hrms/pull/5117) ## New Contributors * @Ramymurugan made their first contribution in https://github.com/frappe/hrms/pull/5117 **Authors**: @krishna-254, @iamkhanraheel, @akhtarmohsin, @barredterra, @Ramymurugan, @deepeshgarg007, @nareshkannasln **Reviewers**: @deepeshgarg007, @asmitahase, @iamkhanraheel <details> <summary>AI content</summary> For these release notes, we used an LLM (OpenAI gpt-5.6-luna) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt [here](https://github.com/barredterra/pretty_release_notes). Changes with the following labels were excluded: - skip-release-notes Changes with the following types were excluded: - chore - docs - ci - style - refactor - build - test </details>