{{ row.supplier_name or row.supplier_gstin or 'Supplier' }}
{% if row.posting_status == 'posted' or (attempt and attempt.status == 'posted') %} Posted {% elif attempt %} {{ attempt.status|replace('_',' ')|title }} {% else %} Not started {% endif %}GSTIN: {{ row.supplier_gstin or '-' }}
Invoice: {{ row.invoice_number }} · {{ row.invoice_date }}
Taxable: ₹{{ '%.2f'|format(row.taxable_value) }}
Invoice Value: ₹{{ '%.2f'|format(row.invoice_value) }}
Reviewed treatment
{{ row.final_ledger_name }}
IGST ₹{{ '%.2f'|format(row.igst) }}
CGST ₹{{ '%.2f'|format(row.cgst) }}
SGST ₹{{ '%.2f'|format(row.sgst) }}
Cess ₹{{ '%.2f'|format(row.cess) }}
{% if not attempt %}
{% elif attempt.status in ['preflight_queued','preflight_claimed'] %}
{% elif attempt.status == 'preflight_ready' and choice %}
{% if choice.duplicate_candidates %}
{% elif not choice.purchase_ledger_verified %}
{% elif attempt.status == 'posting_indeterminate' %}
{% elif attempt.status == 'posting_failed' %}
{% endif %}
Preflight is waiting for workstation #{{ attempt.workstation_agent_id }}. Refresh after the Local Agent processes it.
{% elif attempt.status == 'preflight_failed' %}
Preflight failed
{{ attempt.last_error }}
Possible duplicate found in Tally — posting blocked
{% for dup in choice.duplicate_candidates[:5] %}
{{ dup.voucher_number or '-' }} · {{ dup.reference or '-' }} · {{ dup.party_ledger_name or '-' }}
{% endfor %}
Reviewed purchase ledger {{ row.final_ledger_name }} was not found in the currently opened Tally company. Sync/fix the mapping before posting.
{% else %}
{% endif %}
{% elif attempt.status in ['posting_queued','posting_claimed'] %}
Purchase posting job is being executed by the selected workstation. Do not submit another posting job.
{% elif attempt.status == 'posted' %}
Posted successfully to Tally
Company: {{ attempt.tally_company_name }}
Voucher/ID: {{ attempt.tally_voucher_number or attempt.tally_voucher_id or '-' }}
Reference: {{ attempt.tally_reference or row.invoice_number }}
Manual verification required — do not retry
{{ attempt.last_error }}
The Local Agent began execution but acknowledgement was lost. Check Tally for invoice {{ row.invoice_number }} before any further action.
Tally posting failed
{{ attempt.last_error }}
Run a new preflight after correcting the Tally-side issue. The prior financial write job is never automatically retried.