{# One customer account statement = one printed page. Envelope geometry (recipient window at top:1.9in / left:1.125in) mirrors the existing double-window print formats so the same #10 double-window envelopes work. Rendered via frappe.render_template with context key `s` (see ns_app.api.statements.get_statement_data). #} {% set fmt = frappe.utils.fmt_money %}
| Invoice | Date | Due Date | Days Overdue | Aging | Outstanding |
|---|---|---|---|---|---|
| {{ inv.name }} | {{ frappe.utils.formatdate(inv.posting_date, "MM-dd-yyyy") }} | {{ frappe.utils.formatdate(inv.due_date, "MM-dd-yyyy") }} | {{ inv.days_overdue if inv.days_overdue else "—" }} | {{ inv.aging_bucket }} | {{ fmt(inv.outstanding_amount, currency=s.currency) }} |
Total Outstanding:{{ fmt(s.total_outstanding, currency=s.currency) }}
{% if s.late_fee and s.late_fee > 0 %}Late Payment Fee:{{ fmt(s.late_fee, currency=s.currency) }}
{% endif %}Total Due:{{ fmt(s.total_due, currency=s.currency) }}
| Current | 1–30 | 31–60 | 61–90 | 90+ |
|---|---|---|---|---|
| {{ fmt(s.aging["Current"], currency=s.currency) }} | {{ fmt(s.aging["1-30"], currency=s.currency) }} | {{ fmt(s.aging["31-60"], currency=s.currency) }} | {{ fmt(s.aging["61-90"], currency=s.currency) }} | {{ fmt(s.aging["90+"], currency=s.currency) }} |