{% extends 'base.html' %} {% load static %} {% block title %}Payroll Dashboard | Fox Fitt{% endblock %} {% block content %}
| Worker | Days | Day Rate | Log Amount | Adjustments | Net Adj | Total | Actions |
|---|---|---|---|---|---|---|---|
| {{ wd.worker.name }} {% if wd.is_overdue %} Overdue {% endif %} {% if wd.has_loan %} Loan {% endif %} | {{ wd.unpaid_count }} | R {{ wd.day_rate }} | R {{ wd.unpaid_amount|floatformat:2 }} | {# Show each pending adjustment as a badge #} {% for adj in wd.adjustments %} {% if adj.type == 'Bonus' or adj.type == 'Overtime' or adj.type == 'New Loan' or adj.type == 'Advance Payment' %}+{% else %}-{% endif %}R{{ adj.amount|floatformat:2 }} {{ adj.type }} {% if adj.project %}({{ adj.project.name }}){% endif %} {% endfor %} {% if not wd.adjustments %} - {% endif %} | {% if wd.adj_amount >= 0 %}+{% endif %}R {{ wd.adj_amount|floatformat:2 }} | R {{ wd.total_payable|floatformat:2 }} |
|
| No pending payments. All workers are paid up! | |||||||
| Date | Worker | Amount Paid | Work Logs | Adjustments | Payslip |
|---|---|---|---|---|---|
| {{ record.date }} | {{ record.worker.name }} | R {{ record.amount_paid|floatformat:2 }} | {{ record.work_logs.count }} day{{ record.work_logs.count|pluralize }} | {% for adj in record.adjustments.all %} {{ adj.type }}: R {{ adj.amount|floatformat:2 }} {% empty %} - {% endfor %} | View |
| No payment history yet. | |||||
| Worker | Type | Principal | Balance | Date | Reason | Status |
|---|---|---|---|---|---|---|
| {{ loan.worker.name }} | {% if loan.loan_type == 'advance' %} Advance {% else %} Loan {% endif %} | R {{ loan.principal_amount|floatformat:2 }} | R {{ loan.remaining_balance|floatformat:2 }} | {{ loan.date }} | {{ loan.reason|default:"-" }} | {% if loan.active %} Active {% else %} Paid Off {% endif %} |
| {% if loan_filter == 'active' %}No active loans or advances.{% else %}No loan/advance history.{% endif %} | ||||||