{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_invoices.html Invoices view inside the operator_billing.html wrapper (which owns the page header). Built from the page-anatomy parts: the invoice number is the row's link (chrome-conventions "Row navigation is the primary column's link"; the leading View button and the always- "Default" account name retired, maintainer 2026-08-30), states render through statusBadge (Overdue is the derived danger state), the Currency column is gone because the amounts carry their ISO code. */}} {{ if .Error }}
| Invoice | Organization | Status | Amount due | Amount paid | Due date | Paid at | Created | Stripe sync {{ template "helpIcon" (helpIcon "Stripe sync" "Whether the row has a linked Stripe object. Not mapped means none is linked yet; that is expected when Stripe is not configured or a sync has not run. Check the Stripe integration settings before assuming something is broken.") }} |
|---|---|---|---|---|---|---|---|---|
| {{ if .InvoiceNumber }} {{ .InvoiceNumber }} {{ else }} Unnumbered {{ end }}{{ if .EnvState }}{{ template "statusBadge" .EnvBadge }}{{ end }} | {{ if .OrgName }} {{ .OrgName }} {{ else }} {{ .OrgID }} {{ end }} | {{ template "statusBadge" .StatusBadge }} | {{ .AmountDue }} | {{ .AmountPaid }} | {{ if .DueDate }}{{ .DueDate }}{{ else }}—{{ end }} | {{ if .PaidAt }}{{ .PaidAt }}{{ else }}—{{ end }} | {{ .CreatedAt }} | {{ template "statusBadge" .SyncBadge }} |