{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{/* operator_payments.html Payments view inside the operator_billing.html wrapper (which owns the page header). Built from the page-anatomy parts: states through statusBadge, the empty and blocked states through emptyState. The organization is the row's subject and leads as the row header; the invoice cross-reference (the invoice's own number) rides beside it; the always-"Default" billing account name and the truncated ID column are retired (maintainer, 2026-08-30); a payment has no detail page today, so no cell links its own. */}} {{ if .Error }} {{ else }} {{ template "environmentNotice" .EnvNotice }} {{ if eq (len .Payments) 0 }} {{ if .Nav.Filtered }} {{ template "listControls" .Nav }} {{ template "listNoMatch" .Nav }} {{ else }} {{ template "emptyState" .Empty }} {{ end }} {{ else }} {{ template "listControls" .Nav }}
{{ range .Payments }} {{ end }}
Organization Invoice Status Amount Payment method 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 .OrgName }} {{ .OrgName }} {{ else }} {{ .OrgID }} {{ end }}{{ if .EnvState }}{{ template "statusBadge" .EnvBadge }}{{ end }} {{ if .InvoiceID }}{{ if .InvoiceNumber }}{{ .InvoiceNumber }}{{ else }}Invoice{{ end }}{{ else }}{{ end }} {{ template "statusBadge" .StatusBadge }} {{ .Amount }} {{ if .PaymentMethod }}{{ .PaymentMethod }}{{ else }}{{ end }} {{ .CreatedAt }} {{ template "statusBadge" .SyncBadge }}
{{ template "listPager" .Nav }} {{ end }} {{ end }}