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:
@@ -1017,3 +1017,42 @@ admindashboard.customers.empty=Brak klientów
|
||||
invoicegenerator.positions.header=Pozycje (cennik)
|
||||
invoicegenerator.positions.list=Lista pozycji
|
||||
button.undo=Cofnij
|
||||
|
||||
# Profil administratora (dane firmy)
|
||||
page.title.admin.profile=Edytuj dane firmy
|
||||
adminprofile.title=Dane firmy
|
||||
adminprofile.field.companyname=Nazwa firmy
|
||||
adminprofile.field.companysubtitle=Dodatek do nazwy
|
||||
adminprofile.field.street=Ulica i numer
|
||||
adminprofile.field.city=Kod pocztowy i miasto
|
||||
adminprofile.field.phone=Telefon
|
||||
adminprofile.field.fax=Faks
|
||||
adminprofile.field.email=E-mail
|
||||
adminprofile.field.website=Strona internetowa
|
||||
adminprofile.field.senderline=Linia nadawcy
|
||||
adminprofile.field.senderline.helper=Jednoliniowa informacja o nadawcy nad adresem odbiorcy na fakturach
|
||||
adminprofile.field.paymentterms=Warunki płatności
|
||||
adminprofile.field.footer=Stopka
|
||||
adminprofile.field.footer.helper=Zarząd, numer podatkowy, dane bankowe – każda linia pojawia się jako osobny wiersz na fakturze
|
||||
adminprofile.notification.saved=Dane firmy zapisane
|
||||
adminprofile.notification.save.error=Błąd podczas zapisywania: {0}
|
||||
adminprofile.notification.load.error=Błąd podczas ładowania: {0}
|
||||
|
||||
# Tworzenie faktur (admin)
|
||||
page.title.admin.createinvoices=Utwórz faktury
|
||||
admincreateinvoices.title=Utwórz faktury
|
||||
admincreateinvoices.hint=Faktury są płatne na koniec miesiąca. Jeśli klient rozpoczyna w trakcie miesiąca, rozliczane są tylko dni pozostałe do końca miesiąca.
|
||||
admincreateinvoices.column.customer=Klient
|
||||
admincreateinvoices.column.email=E-mail
|
||||
admincreateinvoices.column.start=Klient od
|
||||
admincreateinvoices.column.days=Rozliczone dni
|
||||
admincreateinvoices.column.due=Termin płatności
|
||||
admincreateinvoices.column.net=Kwota netto
|
||||
admincreateinvoices.days.full=Pełny miesiąc
|
||||
admincreateinvoices.days.partial={0} z {1} dni
|
||||
admincreateinvoices.prorata.suffix=(proporcjonalnie {0}/{1} dni)
|
||||
admincreateinvoices.button.create=Utwórz fakturę
|
||||
admincreateinvoices.notification.notemplate=Brak szablonu faktury. Najpierw zapisz szablon w generatorze faktur.
|
||||
admincreateinvoices.notification.error=Błąd podczas tworzenia faktury: {0}
|
||||
admincreateinvoices.button.createselected=Utwórz faktury ({0})
|
||||
admincreateinvoices.field.month=Miesiąc rozliczeniowy
|
||||
|
||||
Reference in New Issue
Block a user