{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* member_invoice_detail.html One invoice's detail, swapped into #billing-content in place of the invoices list. It replaces the Invoices section, so its title is that section's title and comes from sectionHeader (overview-consistency D9); the status badge sits on the line below with the Stripe number and the period. The back control is a swap, not navigation (the URL never changes), so it stays a link-styled button rather than a location trail. States render through statusBadge. */}}
{{ template "sectionHeader" .Header }}
{{ template "statusBadge" .StatusBadge }} {{ if .StripeInvoiceNumber }}Stripe invoice {{ .StripeInvoiceNumber }}{{ end }} {{ .Period }}
{{ if .Error }} {{ end }}
Amount due
{{ .AmountDue }}
Amount paid
{{ .AmountPaid }}
{{ if .DueDate }}
Due date
{{ .DueDate }}
{{ end }} {{ if .PaidAt }}
Paid
{{ .PaidAt }}
{{ end }}
{{ template "sectionHeader" .LineItemsHeader }} {{ if eq (len .LineItems) 0 }}

No line items recorded for this invoice.

{{ else }}
{{ range .LineItems }} {{ end }}
Description Qty Amount
{{ if .Description }}{{ .Description }}{{ else }}{{ end }} {{ .Quantity }} {{ .Amount }}
{{ end }} {{ template "sectionHeader" .PaymentsHeader }} {{ if eq (len .Payments) 0 }}

No payments recorded.

{{ else }}
{{ range .Payments }} {{ end }}
Date Amount Status
{{ .Date }} {{ .Amount }} {{ template "statusBadge" .StatusBadge }}
{{ end }}