v16.16.0
Gerstep/cybosv16.16.0Aug 7, 2026by frappe-pr-bot
AI Summary
Introduces duplicate applicant prevention and expands the 'Unpaid Expense Claim' report with advanced filtering and grouping.
Key Highlights
- Shows the Job Title instead of ID on the job application web form.
- Adds a 'Prevent Duplicate Applicant' option to Job Opening.
- Adds Company, Department, and Branch filters to the 'Unpaid Expense Claim' report.
- Adds grouping by Employee, Department, or Branch with subtotals.
New Features
- Duplicate applicant prevention feature.
- Enhanced 'Unpaid Expense Claim' report with filters and grouping.
Full Release Notes
## Features * Shows the job opening’s _Job Title_ instead of its ID on the job application web form. Adds a _Prevent Duplicate Applicant_ option to **Job Opening** that blocks repeat applications from the same email address for the same position. (https://github.com/frappe/hrms/pull/5030) * Adds Company, Department, and Branch filters to the "Unpaid Expense Claim" report, with the _Department_ and _Employee_ filters limited to the selected _Company_. Adds _Posting Date_, _Company_, _Department_, and _Branch_ columns, plus grouping by Employee, Department, or Branch with subtotals and a grand total. (https://github.com/frappe/hrms/pull/5054) ## Bug Fixes * Updates how HRMS retrieves data and removes unused code. (https://github.com/frappe/hrms/pull/4990) * Fixes the **Mark Attendance** dialog so its _Start_ and _End_ dates use a valid date format and can load unmarked attendance days without an invalid date error. (https://github.com/frappe/hrms/pull/5052) * Fixes statistical **Salary Component** formulas that use `ctc` so they read the employee’s actual CTC instead of a blank value from the **Salary Slip**, allowing dependent component amounts to use the correct value. (https://github.com/frappe/hrms/pull/5055) * The "Monthly Attendance Sheet" report now distinguishes full dates when checking attendance, so holidays are counted correctly when date ranges span multiple months. (https://github.com/frappe/hrms/pull/5060) * Requires users to select a _Leave Approver_ before saving a **Leave Application** when _Leave Approver Mandatory In Leave Application_ is enabled, and keeps _Leave Approver Name_ synchronized with that selection. Fills missing _Leave Approver Name_ values in existing **Leave Application** records. (https://github.com/frappe/hrms/pull/5066) * Shows only submitted **Payroll Entry** records when selecting payroll entries for a **Journal Entry**, excluding draft and cancelled records. (https://github.com/frappe/hrms/pull/5045) **Authors**: @akhtarmohsin, @pratheep-bit, @nareshkannasln, @asmitahase, @deepeshgarg007, @iamkhanraheel **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: - ci - build - refactor - chore - docs - test - style </details>