{% extends "base.html" %} {% block title %}{{ 'Edit' if employee else 'Add' }} Employee · WageWise Neo{% endblock %} {% block content %}
{% for tid,tlabel in [('t-personal','Personal'),('t-statutory','Statutory & Bank'),('t-salary','Salary'),('t-family','Family'),('t-contacts','Emergency'),('t-nominees','Nominees'),('t-documents','Documents'),('t-ot','OT & Commission')] %} {% endfor %}
Identity
{% if not employee %} {% endif %}
Leave blank to auto-generate on save.
Affects gratuity eligibility (1 yr fixed-term, 5 yrs permanent).
Contact
Photo
{% if employee and employee.photo_path %}
{{ initial(employee.full_name) }}
{% else %}
👤
{% endif %}
JPG or PNG. Passport size preferred. {% if employee and employee.photo_path %} Upload new to replace current photo. {% endif %}
Statutory IDs
Bank Details

Employees marked "Cash" are automatically left out of the Bank Transfer report, slip, and export files.

Salary Structure (Monthly)

Enter take-home and all components auto-fill, OR enter gross and split fills automatically.

Family Members
{% for rel in ['Father','Mother','Spouse','Child 1','Child 2','Child 3','Child 4'] %} {% set key = rel.replace(' ','_').lower() %} {% set fm = family.get(rel, {}) %} {% set is_marital = rel in ['Spouse','Child 1','Child 2','Child 3','Child 4'] %} {% endfor %}
RelationFull NameDate of BirthAadhaar No.Dependent?
{{ rel }}
Emergency Contacts (up to 3)
{% for i in range(1,4) %} {% set ec = emergency_contacts[i-1] if emergency_contacts and emergency_contacts|length >= i else {} %} {% endfor %}
#NameRelationMobile No.Address
{{ i }}
Nominees (up to 2)

Total percentage should add up to 100%.

{% for i in range(1,3) %} {% set nm = nominees[i-1] if nominees and nominees|length >= i else {} %} {% endfor %}
#Nominee NameRelationPercentage (%)
{{ i }}

Upload Documents

Enclose: 1) Aadhaar Card Copy (Color)   2) PAN Card Copy   3) Voter ID (Optional)   4) Bank Pass Book Front Page   5) Cheque Book Page   6) Latest Color Photo

{% if doc_checklist.required_done == doc_checklist.required_total %} ✅ All {{ doc_checklist.required_total }} required documents on file {% else %} ⚠ {{ doc_checklist.required_done }} of {{ doc_checklist.required_total }} required documents on file {% endif %}

{% for item in doc_checklist.checklist if item.required %} {{ '✓' if item.present else '—' }} {{ item.name }} {% endfor %}
{% if documents %}
{% for doc in documents %} {% set ext = doc.file_name.rsplit('.',1)[-1].lower() %} {% set fp = doc.file_path | replace('\\', '/') %}
{% if ext in ['jpg','jpeg','png','gif','webp'] %} {{ doc.doc_type }} {% elif ext == 'pdf' %} 📄 {% else %}
📎
{% endif %}
{{ doc.doc_type }}
{{ doc.file_name }}
{{ (doc.uploaded_at or '')[:10] }}
{% endfor %}
{% else %}

No documents uploaded yet.

{% endif %}
Overtime Settings

This only controls the Bank Transfer file — the payroll run's payslip and statutory figures always include the full OT amount regardless of how it's physically paid out.

Commission Settings
Cancel
{% endblock %}