Phase2: Invoicecomputation/AdminpricingUI/Ainvoicemgnt
Some checks failed
Build and Push / build (push) Failing after 28s

This commit is contained in:
2026-05-24 13:51:38 +02:00
parent 6baca1a459
commit c8ed27157f
29 changed files with 4465 additions and 11 deletions

View File

@@ -384,7 +384,8 @@
"spendChf": "Kosten (CHF)",
"resumeRequestBadge": "Wieder",
"resumeRequestTooltip": "Reaktivierungsanfrage für einen bestehenden Tenant. Bei Genehmigung wird der Tenant wieder aktiviert; keine Provisionierung läuft.",
"openclawTool": "OpenClaw-Versionen"
"openclawTool": "OpenClaw-Versionen",
"billingTool": "Abrechnung →"
},
"channelUsers": {
"title": "Autorisierte Benutzer",
@@ -553,5 +554,105 @@
"defaultPrefix": "Standard:",
"saveOverride": "Override speichern",
"clearOverride": "Override entfernen"
},
"adminBilling": {
"title": "Abrechnungsverwaltung",
"subtitle": "Plattform-Preise verwalten, Rechnungen generieren und den Rechnungsstatus aller Organisationen prüfen.",
"backToAdmin": "Zurück zur Verwaltung",
"backToBilling": "Zurück zur Abrechnung",
"backToInvoices": "Zurück zu den Rechnungen",
"totalOpenBalance": "Offener Saldo gesamt",
"orgsWithBalance": "Organisationen mit Saldo",
"overdueInvoices": "Überfällige Rechnungen",
"pricingTitle": "Preise",
"pricingDesc": "Plattform- & Skill-Preise, MWST-Satz.",
"pricingPageDesc": "Plattformweite Preise und Skill-Tagespreise bearbeiten.",
"generateTitle": "Rechnung erstellen",
"generateDesc": "Rechnung für eine Organisation und einen Monat berechnen und ausstellen.",
"generatePageDesc": "Organisation, Periode und Sprache wählen. Die Vorschau zeigt die berechneten Positionen; mit Bestätigen wird die Rechnung ausgestellt und das PDF erzeugt.",
"invoicesTitle": "Rechnungen",
"invoicesDesc": "Alle Rechnungen anzeigen, als bezahlt markieren, PDFs herunterladen.",
"invoicesPageDesc": "Alle von der Plattform ausgestellten Rechnungen. Mit dem Statusfilter offene oder überfällige Positionen einsehen.",
"balancesTitle": "Organisationen mit offenem Saldo",
"orgIdCol": "Zitadel-Org-ID",
"openCountCol": "Offen",
"overdueCountCol": "Überfällig",
"totalOpenCol": "Gesamt offen",
"platformPricingTitle": "Plattform-Preise",
"monthlyFeeLabel": "Monatliche Tenant-Gebühr",
"setupFeeLabel": "Einrichtungsgebühr Tenant",
"threemaMessageLabel": "Threema pro Nachricht",
"vatRateLabel": "MWST-Satz (CH/LI)",
"save": "Speichern",
"saving": "Speichere…",
"savedOk": "Gespeichert",
"skillPricingTitle": "Skill-Preise",
"skillPricingDesc": "Tagespreis pro Skill. Ein zu beliebigem Zeitpunkt an einem UTC-Tag aktivierter Skill zählt als ein abrechenbarer Tag.",
"skillCol": "Skill",
"dailyPriceCol": "Tagespreis",
"actionsCol": "",
"remove": "Entfernen",
"noSkillsPriced": "Noch keine Skills bepreist.",
"addSkillLabel": "Skill hinzufügen",
"dailyPriceLabel": "Tagespreis",
"add": "Hinzufügen",
"confirmDeleteSkillPrice": "Preis für {skill} entfernen?",
"clickToEdit": "Zum Bearbeiten klicken",
"generateFormTitle": "Rechnung erstellen",
"noOrgsToGenerate": "Keine Organisationen mit Tenants gefunden.",
"orgLabel": "Organisation",
"noBillingAddrTag": "keine Rechnungsadresse",
"noBillingAddrWarning": "Diese Organisation hat keine Rechnungsadresse hinterlegt. Der Kunde muss /settings/billing ausfüllen, bevor eine Rechnung ausgestellt werden kann.",
"tenantsLabel": "Tenants",
"yearLabel": "Jahr",
"monthLabel": "Monat",
"localeLabel": "PDF-Sprache",
"localeAuto": "Automatisch",
"previewBtn": "Vorschau",
"commitBtn": "Bestätigen & ausstellen",
"computing": "Berechne…",
"confirmGenerate": "Diese Rechnung ausstellen? Es wird eine Rechnungsnummer vergeben und das PDF erzeugt.",
"previewTitle": "Entwurfsvorschau",
"warningsTitle": "Hinweise",
"noLinesGenerated": "Keine abrechenbaren Positionen für diese Periode.",
"descCol": "Beschreibung",
"qtyCol": "Menge",
"unitPriceCol": "Einzelpreis",
"amountCol": "Betrag (CHF)",
"subtotal": "Zwischensumme",
"vat": "MWST",
"total": "Total",
"statusFilterLabel": "Status",
"allStatuses": "Alle",
"monthFilterLabel": "Periode",
"clearFilter": "Zurücksetzen",
"loading": "Lade…",
"noInvoicesFound": "Keine Rechnungen entsprechen den aktuellen Filtern.",
"invoiceNumberCol": "Nummer",
"orgCol": "Organisation",
"periodCol": "Periode",
"statusCol": "Status",
"totalCol": "Total",
"dueCol": "Fällig",
"status_draft": "Entwurf",
"status_open": "Offen",
"status_paid": "Bezahlt",
"status_overdue": "Überfällig",
"status_void": "Storniert",
"status_uncollectible": "Uneinbringlich",
"dueOnLabel": "Fällig",
"totalLabel": "Total",
"downloadPdfBtn": "PDF herunterladen",
"markPaidBtn": "Als bezahlt markieren",
"paidNotePlaceholder": "Optionale Notiz (z. B. Bankreferenz, Eingangsdatum)",
"confirm": "Bestätigen",
"cancel": "Abbrechen",
"deleteBtn": "Löschen",
"deleting": "Lösche…",
"deleteHint": "Rechnung hart löschen (Test-Tool). Die Nummer bleibt vergeben.",
"confirmDeleteInvoice": "Rechnung {num} löschen? Dies ist eine harte Löschung — die Rechnungsnummer bleibt verbraucht.",
"paidOnLabel": "Bezahlt am",
"lineItemsTitle": "Positionen",
"billToSnapshotTitle": "Rechnungsempfänger"
}
}