# Ladder-Approve
**Repository Path**: jyinet/Ladder-Approve
## Basic Information
- **Project Name**: Ladder-Approve
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: develop
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2026-03-25
- **Last Updated**: 2026-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Ladder Approve: Dynamic Multi-Level Leave and Expense Approval for ERPNext
**Ladder Approve** is a powerful custom Frappe app that introduces a **dynamic, multi-level approval workflow** for **Leave Applications** and **Expense Claims** in ERPNext. It automatically routes documents based on reporting hierarchy and empowers HR to act as the final approver. This app enhances control, accountability, and flexibility in organizational approval processes.
---
## Key Features
### Automated Routing Based on Hierarchy
* Uses the `reports_to` field in the **Employee Doctype** to determine the next approver.
* Documents move up the reporting chain until reaching a user with the **HR Manager** role.
---
### Final Approval by HR
* Users with the **HR Manager** role act as the final authority.
* Supports organizations with multiple HR Managers.
* Bypasses hierarchy if no more approvers are found.
---
### Approval History Tracking
* Adds a custom field `custom_previous_approvers` (Small Text) to track users who have approved the document previously.
* Ensures clear traceability and auditability.
---
### Forwarding Capability
* Mid-level approvers can **forward** documents to their managers instead of finalizing them.
* If no higher manager is found, system sends to any HR Manager.
* Forwarding updates the document with the new current approver.
---
### Smart Permissions & Action Control
* Only the **current approver** has access to submit.
* Uses custom **Permission Query Script** to control visibility based on:
* Document Owner (Applicant)
* Current Approver
* Previous Approvers
* System Manager / HR Manager / Administrator
---
### Real-Time Email Notifications
Triggered on key transitions:
* Document forwarded to next approver
* Document approved or rejected
* Includes rejection reason if applicable
---
#### HR Settings:
* Two checkboxes to globally enable:
* Multi-Level Leave Approval
* Multi-Level Expense Claim Approval
#### Employee-Level Overrides:
* Employees can opt out of multi-level flow via checkboxes:
---
## Installation Guide
```bash
# Step 1: Clone the repo
bench get-app ladder_approve https://github.com/Beveren-Software-Inc/ladder_approve.git
# Step 2: Install the app
bench --site yoursite install-app ladder_approve
```
---
## Configuration Steps
### Step 1: Enable in HR Settings
* Go to **HR Settings**
* Enable both:
* Enable Multi-Level Leave Approval
* Enable Multi-Level Expense Claim Approval
---
### Step 2: Setup Employee Overrides
* Open **Employee** master
* Use checkboxes to disable multi-level approval for specific users.
---
### Step 3: Custom Approval Buttons in UI
* Users see **Approve** or **Reject** based on role and stage.
---
### Step 4: Monitor Approval History
* `custom_previous_approvers` field shows who has approved so far.
---
## Realistic Example Workflow
1. Employee A applies for leave.
2. Document is auto-assigned to their reporting manager (Employee B).
3. Employee B clicks **Approve**, system forwards to Employee C (B’s manager).
4. C also approves, final stage goes to HR Manager (Employee D).
5. HR Manager takes final action (Approve or Reject).
At each step:
* Only the **current approver** has actionable access.
* Notifications are triggered.
* Approval trail is recorded.
---