v15.58.6

frappe/hrmsv15.58.6Apr 6, 2026by frappe-pr-bot

AI Summary

Fixes upgrade settings, approver permissions, and Expense Claim validation. Also optimizes bulk attendance saving and adjusts Leave Application self-approval timing to prevent unauthorized status changes.

Key Highlights

  • Applies upgrade patch logic for Employee Self Service settings
  • Blocks selecting advances from other employees in Expense Claim
  • Queues bulk attendance saves to prevent time-out errors
  • Moves Leave Application self-approval check to Save action

Full Release Notes

## Bug Fixes
* Adds an upgrade patch that removes the `employee_self_service` entry from `user_type_doctype_limit` in the site configuration, so upgrades no longer apply the old doctype limit to Employee Self Service users. It keeps any existing custom doctype limits for other user types and only updates the setting when `user_type_doctype_limit` is already present. (https://github.com/frappe/hrms/pull/4267)
* Updates the approver fields (_Expense Approver_, _Leave Approver_, and _Shift Request Approver_) on **Employee** to ignore **User** permissions, so people can view their own **Employee** record and details even when they can’t access the related **User** accounts. Applies this same permission setting during the **v15.0** upgrade so existing installations pick up the fix. (https://github.com/frappe/hrms/pull/4289)
* Updates **Expense Claim** so only **Employee Advance** records that belong to the employee on the claim are available to select.  
- Blocks saving a **Expense Claim** with advances from another employee by showing a validation error and clearing the incorrect advance entries. (https://github.com/frappe/hrms/pull/4276)
* Moves the self-approval check for **Leave Application** to run on "Save" when _Status_ is set to "Approved", instead of during "Submit".  
This prevents users who are not allowed to self-approve from saving their own leave request as "Approved", avoiding the earlier moment where the status appeared approved. (https://github.com/frappe/hrms/pull/4304)
* When you mark attendance for more than 10 days, the system now saves the first 10 records immediately and queues the rest in the background. This prevents long waits and reduces time-out errors during large updates. (https://github.com/frappe/hrms/pull/4245)

**Authors**: @asmitahase, @iamkhanraheel, @deepeshgarg007
**Reviewers**: @asmitahase, @deepeshgarg007

<details>
<summary>AI content</summary>

 For these release notes, we used an LLM (OpenAI gpt-5.4-nano) 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:
- style
 - ci
 - test
 - refactor
 - docs
 - build
 - chore

</details>