v16.19.0

frappe/hrmsv16.19.0Sep 17, 2026by frappe-pr-bot

Upgrading?

AI Summary

This release introduces a new 'Partially Paid' status for Expense Claims and fixes several payroll and attendance-related bugs, including validation for Salary Slip creation based on Timesheets and improvements to automatic attendance logic. It also includes performance optimizations for reporting and cleanup of workflow configurations.

Key Highlights

  • Adds 'Partially Paid' status to Expense Claims when reimbursement is partial.
  • Fixes automatic attendance logic to correctly mark employees absent for overlapping Shift Assignments.
  • Prevents creating Salary Slips from Timesheets if the Salary Structure is invalid or unconfigured.
  • Adds validation to Expense Claim advance rows to ensure required accounting details are present.
  • Optimizes the 'Employee Hours Utilization Based On Timesheet' report to reduce database lookups.

New Features

  • Partially Paid status for Expense Claim

Full Release Notes

## Features
* Adds a Partially Paid status to **Expense Claim** when _Total Amount Reimbursed_ is greater than zero but less than _Grand Total_, and updates existing claims that meet these conditions. (https://github.com/frappe/hrms/pull/5236)

## Bug Fixes
* Allows users to submit **Expense Claim** records in a single currency without configuring multi-currency. Cleans up the **Expense Claim** workflow and the **Leave Policy**, **Leave Adjustment**, and **Leave Encashment** forms. (https://github.com/frappe/hrms/pull/5219)
* Updates **Salary Slip** print formats to display _Loan Repayment_ when it is deducted from an employee’s salary. (https://github.com/frappe/hrms/pull/5233)
* Prevents creating a **Salary Slip** from a **Timesheet** when the employee has no active **Salary Structure**, or when the assigned structure is not enabled for _Salary Slip Based On Timesheet_ or has no _Salary Component_. (https://github.com/frappe/hrms/pull/5234)
* Adds a validation message to **Payroll Correction** when the selected **Salary Slip** has zero _Payment Days_ or _Total Working Days_, instead of failing while calculating the correction. (https://github.com/frappe/hrms/pull/5235)
* Allows formulas in **Salary Structure** to access custom fields from **Salary Slip** when **Payroll Entry** generates salary slips. (https://github.com/frappe/hrms/pull/5241)
* Restricts access to files attached to a document to users who can read that document. Requires write access to **Shift Type** before automatic attendance can be processed. (https://github.com/frappe/hrms/pull/5240)
* Fixes automatic attendance so it marks an employee absent for each overlapping **Shift Assignment** when no default shift is set. (https://github.com/frappe/hrms/pull/5247)
* Removes fixed letterheads from the "Employee Exits", "Leave Ledger", and "Income Tax Computation" reports so they use the default letterhead. (https://github.com/frappe/hrms/pull/5250)
* Removes the empty **Leave Period** card from the **Employee Grade** form. (https://github.com/frappe/hrms/pull/5256)
* Adds validation to **Expense Claim** advance rows so any row with an _Allocated Amount_ must include _Advance Account_, _Reference Type_, and _Reference Name_; incomplete claims now show a clear error before accounting entries are posted. (https://github.com/frappe/hrms/pull/5269)

## Performance Improvements
* Updates the "Employee Hours Utilization Based On Timesheet" report to retrieve employee names and departments in one batch instead of separately for each employee, reducing the number of data lookups for reports with many employees. (https://github.com/frappe/hrms/pull/5245)

**Authors**: @iamkhanraheel, @akhtarmohsin, @asmitahase, @nareshkannasln, @Shllokkk, @deepeshgarg007
**Reviewers**: @asmitahase, @deepeshgarg007

<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
 - chore
 - refactor
 - style
 - test
 - docs

</details>

Related Repositories