feat: Admin-Firmendaten, Rechnungserstellung für Kunden mit Pro-rata-Abrechnung und Ultimo-Erinnerung
- Neue Seite /admin-profile: Firmendaten des Systembetreibers bearbeiten (MongoDB-persistiert), erreichbar über "Profil anzeigen" im Admin-Menü; Rechnungssteller-Daten aller System-Rechnungen kommen aus dem gespeicherten Profil - Neue Seite /admin-create-invoices mit Sidebar-Menüpunkt "Rechnungen erstellen": alle aktiven Kunden mit wählbarem Abrechnungsmonat (aktuell bis 12 Monate zurück), Fälligkeit zum Ultimo, anteilige Berechnung bei Monatsstart mitten im Monat, Einzel- und Sammel-PDF (zusammengeführt, eine Rechnung pro Seite) aus dem System-Template - Rechnungsgenerator: Undo-Vorbereitung aus Vorsession ergänzt um Firmendaten-Anbindung; Menüpunkt "Admin-Einstellungen" entfernt - MonthlySchedulerService: tägliche Prüfung, drei Tage vor Ultimo Erinnerungsmail an alle Administratoren - Session-Persistenz profilabhängig: dev und production aktiviert, Basis-Default aus (behebt SESSIONS.ser-Deserialisierungsfehler in anderen Kontexten) - ShowJobsView: überflüssiges Feld entfernt; AssertJ catchThrowableOfType auf neue Signatur umgestellt; tsconfig ignoreDeprecations - Übersetzungen für alle neuen Oberflächen in 10 Sprachen Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1086,3 +1086,42 @@ admindashboard.customers.empty=No customers available
|
||||
invoicegenerator.positions.header=Positions (price table)
|
||||
invoicegenerator.positions.list=List positions
|
||||
button.undo=Undo
|
||||
|
||||
# Admin profile (company data)
|
||||
page.title.admin.profile=Edit company data
|
||||
adminprofile.title=Company data
|
||||
adminprofile.field.companyname=Company name
|
||||
adminprofile.field.companysubtitle=Company addition
|
||||
adminprofile.field.street=Street and number
|
||||
adminprofile.field.city=ZIP and city
|
||||
adminprofile.field.phone=Phone
|
||||
adminprofile.field.fax=Fax
|
||||
adminprofile.field.email=Email
|
||||
adminprofile.field.website=Website
|
||||
adminprofile.field.senderline=Sender line
|
||||
adminprofile.field.senderline.helper=Single-line sender information above the recipient address on invoices
|
||||
adminprofile.field.paymentterms=Payment terms
|
||||
adminprofile.field.footer=Footer
|
||||
adminprofile.field.footer.helper=Managing directors, tax number, bank details – each line appears as its own line on the invoice
|
||||
adminprofile.notification.saved=Company data saved
|
||||
adminprofile.notification.save.error=Error while saving: {0}
|
||||
adminprofile.notification.load.error=Error while loading: {0}
|
||||
|
||||
# Create invoices (admin)
|
||||
page.title.admin.createinvoices=Create invoices
|
||||
admincreateinvoices.title=Create invoices
|
||||
admincreateinvoices.hint=Invoices are due at the end of the month. If a customer starts mid-month, only the remaining days until the end of the month are billed.
|
||||
admincreateinvoices.column.customer=Customer
|
||||
admincreateinvoices.column.email=Email
|
||||
admincreateinvoices.column.start=Customer since
|
||||
admincreateinvoices.column.days=Billed days
|
||||
admincreateinvoices.column.due=Due on
|
||||
admincreateinvoices.column.net=Net amount
|
||||
admincreateinvoices.days.full=Full month
|
||||
admincreateinvoices.days.partial={0} of {1} days
|
||||
admincreateinvoices.prorata.suffix=(pro rata {0}/{1} days)
|
||||
admincreateinvoices.button.create=Create invoice
|
||||
admincreateinvoices.notification.notemplate=No invoice template available. Please save a template in the invoice generator first.
|
||||
admincreateinvoices.notification.error=Error creating the invoice: {0}
|
||||
admincreateinvoices.button.createselected=Create invoices ({0})
|
||||
admincreateinvoices.field.month=Billing month
|
||||
|
||||
Reference in New Issue
Block a user