{% extends "base.html" %} {% block content %}

Appraisal Budgets (Annualized Impact)

FY = Apr {{ fy }} to Mar {{ fy + 1 }} · Locations are auto-picked from Employee.location
Budget validation failed
Allocation rule: Sum(Location Budgets) ≤ Global
Total
{{ usage_global.budget_total }}
Used
{{ usage_global.used }}
Remaining
{{ usage_global.remaining }}
Sum(Location Budgets): 0.00 Global Budget: 0.00 Global Remaining (Allocation): 0.00

{% for loc in locations %} {% set lk = loc_key(loc) %} {% set lusage = usage_loc.get(loc) %}

Allocation rule: Sum(Dept Budgets) ≤ Location Budget
This location budget is checked after Global budget during HR Finalize. Department budgets inside this location are checked last.
❌ {{ loc }}: Sum of Department budgets (0.00) cannot exceed Location budget (0.00).
{% for d in depts %} {% set du = usage_dept.get((loc, d.id)) %} {% endfor %}
Department Dept Budget (Annual Impact) Used Remaining
{{ d.name }} {{ du.used if du else 0 }} {{ du.remaining if du else 0 }}
{% endfor %}
{% endblock %}