{# templates/invoices/receipt_80mm_t2.html #} Receipt — {{ invoice.meta.invoice_no }}
{# ══════ LOGO + SHOP NAME ══════ #} {% if invoice.shop.logo_url %}
{% endif %}
{{ invoice.shop.name }}
{% if invoice.shop.address %}{{ invoice.shop.address }}{% endif %} {% if invoice.shop.phone_1 %} • {{ invoice.shop.phone_1 }}{% endif %} {% if invoice.shop.phone_2 %} • {{ invoice.shop.phone_2 }}{% endif %}
{# ══════ INVOICE / CUSTOMER META ══════ #}
Invoice: {{ invoice.meta.invoice_no }} Date: {{ invoice.meta.date }}
Customer: {{ invoice.customer.name }} {% if invoice.customer.phone %} • {{ invoice.customer.phone }}{% endif %}
{% if invoice.customer.address %}
Address: {{ invoice.customer.address }}
{% endif %} {% if invoice.meta.area or invoice.meta.booker %}
{% if invoice.meta.area %}Area: {{ invoice.meta.area }}{% endif %} {% if invoice.meta.booker %} • SalePerson: {{ invoice.meta.booker }}{% endif %}
{% endif %}
{% for group in grouped_items %} {# ── SPEC-A GROUP HEADING ── #} {% if has_multiple_groups and group.spec_a_name %} {% endif %} {# ── ITEMS IN THIS GROUP ── #} {% for it in group.items %} {% endfor %} {# ── GROUP SUBTOTAL (only when multiple groups exist) ── #} {% if has_multiple_groups and group.spec_a_name %} {% endif %} {% endfor %}
Name Qty Unit Price Total
▶ {{ group.spec_a_name }}
{{ it.name }} {{ it.raw_qty|floatformat:1 }} {{ it.sale_units }} {{ it.price|floatformat:0 }} {{ it.total|floatformat:0 }}
{{ group.spec_a_name }}: Qty {{ group.group_qty|floatformat:0 }} {% if group.group_weight %} | Wt {{ group.group_weight }}{% endif %} {{ group.group_total|floatformat:0 }}
{# ══════ QTY + WEIGHT SUMMARY ══════ #}
Items: {{ invoice.summary.no_of_items }}  |  Units: {{ invoice.summary.total_units|floatformat:0 }} {% if invoice.summary.total_weight %}  |  Wt: {{ invoice.summary.total_weight }} Kg {% endif %}
{# ══════ TOTALS ══════ #} {% if invoice.summary.previous and invoice.summary.previous != 0 %} {% endif %} {% if invoice.summary.discount and invoice.summary.discount != 0 %} {% endif %} {% if invoice.summary.transport and invoice.summary.transport != 0 %} {% endif %} {% if invoice.summary.other and invoice.summary.other != 0 %} {% endif %} {% if invoice.summary.tax and invoice.summary.tax != 0 %} {% endif %} {% if invoice.summary.paid is not None %} {% endif %} {% if invoice.summary.change is not None %} {% endif %}
Sub Total {{ invoice.summary.subtotal|floatformat:2 }}
Previous {{ invoice.summary.previous|floatformat:2 }}
Discount {{ invoice.summary.discount|floatformat:2 }}
Transport {{ invoice.summary.transport|floatformat:2 }}
{{ invoice.summary.other_label|default:"Other" }} {{ invoice.summary.other|floatformat:2 }}
Tax {{ invoice.summary.tax|floatformat:2 }}%
Grand Total {{ invoice.summary.total|floatformat:2 }}
Paid {{ invoice.summary.paid|floatformat:2 }}
Change / Remaining {{ invoice.summary.change|floatformat:2 }}
{# ══════ PAYMENT BREAKDOWN ══════ #} {% if invoice.summary.payment_modes and not invoice.summary.is_estimate %}
Payment Details
{% for mode in invoice.summary.payment_modes %} {% endfor %}
{{ mode.label }} {{ mode.amount|floatformat:2 }}
{% endif %} {# ══════ TOTAL WEIGHT (prominent box) ══════ #} {% if invoice.summary.total_weight %}
Total Weight: {{ invoice.summary.total_weight }} Kg
{% endif %} {# ══════ FOOTER ══════ #}
{% if bill_lines %}
{% for line in bill_lines %}
{{ line }} •
{% endfor %}
{% endif %} {% if invoice.remarks_override %}
{{ invoice.remarks_override }}
{% else %} {% if footer_lines %}
{% for line in footer_lines %}
{{ line }}
{% endfor %}
{% endif %} {% endif %} {% if vehicle_lines %}
    {% for label, value in vehicle_lines %}
  • • {{ label }} {{ value }}
  • {% endfor %}
{% endif %}
{# ══ SCAN STRIP: Barcode LEFT | QR RIGHT ══ #}
{{ invoice.meta.invoice_no }}