{% load static %} {% comment %} Rendered by WeasyPrint, not by a browser: this is a standalone document with its own print stylesheet. It deliberately does NOT pull in app.css — daisyUI is built for a screen, and half of it (dark theme, flex layouts) means nothing on paper. {% endcomment %} {{ invoice.number }}

RosterChief

Club & team management

Invoice

{{ invoice.number }}
Issued {{ invoice.issued_at|date:"j F Y" }}

Billed to

{{ club.name }}
{{ club.slug }}.rosterchief.app

Period

{{ due.period_start|date:"j F Y" }} — {{ due.period_end|date:"j F Y" }}
Payable by {{ due.grace_until|date:"j F Y" }}
{% for payment in payments %} {% endfor %}
Description Amount
{{ due.tier.name }} — platform subscription
{{ due.period_start|date:"j M Y" }} to {{ due.period_end|date:"j M Y" }}
€{{ due.amount|floatformat:2 }}
Payment received {{ payment.paid_at|date:"j M Y" }} ({{ payment.get_method_display }}{% if payment.reference %}, {{ payment.reference }}{% endif %}) −€{{ payment.amount|floatformat:2 }}
Balance due €{{ due.balance|floatformat:2 }}
{% if due.status == "paid" %} {% elif due.status == "waived" %}

Waived. Nothing is owed for this period.

{% else %}

Payable by {{ due.grace_until|date:"j F Y" }}. Unpaid past that date the club is archived: its subdomain stops resolving, though nothing is deleted.

{% endif %}