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=Клиенты отсутствуют
|
||||
invoicegenerator.positions.header=Позиции (прайс-лист)
|
||||
invoicegenerator.positions.list=Список позиций
|
||||
button.undo=Отменить
|
||||
|
||||
# Профиль администратора (данные компании)
|
||||
page.title.admin.profile=Редактировать данные компании
|
||||
adminprofile.title=Данные компании
|
||||
adminprofile.field.companyname=Название компании
|
||||
adminprofile.field.companysubtitle=Дополнение к названию
|
||||
adminprofile.field.street=Улица и номер дома
|
||||
adminprofile.field.city=Индекс и город
|
||||
adminprofile.field.phone=Телефон
|
||||
adminprofile.field.fax=Факс
|
||||
adminprofile.field.email=Эл. почта
|
||||
adminprofile.field.website=Веб-сайт
|
||||
adminprofile.field.senderline=Строка отправителя
|
||||
adminprofile.field.senderline.helper=Однострочная информация об отправителе над адресом получателя в счетах
|
||||
adminprofile.field.paymentterms=Условия оплаты
|
||||
adminprofile.field.footer=Нижний колонтитул
|
||||
adminprofile.field.footer.helper=Руководители, налоговый номер, банковские реквизиты – каждая строка отображается отдельной строкой в счете
|
||||
adminprofile.notification.saved=Данные компании сохранены
|
||||
adminprofile.notification.save.error=Ошибка при сохранении: {0}
|
||||
adminprofile.notification.load.error=Ошибка при загрузке: {0}
|
||||
|
||||
# Создание счетов (админ)
|
||||
page.title.admin.createinvoices=Создать счета
|
||||
admincreateinvoices.title=Создать счета
|
||||
admincreateinvoices.hint=Счета подлежат оплате в конце месяца. Если клиент начинает в середине месяца, оплачиваются только оставшиеся дни до конца месяца.
|
||||
admincreateinvoices.column.customer=Клиент
|
||||
admincreateinvoices.column.email=Эл. почта
|
||||
admincreateinvoices.column.start=Клиент с
|
||||
admincreateinvoices.column.days=Расчетные дни
|
||||
admincreateinvoices.column.due=Срок оплаты
|
||||
admincreateinvoices.column.net=Сумма нетто
|
||||
admincreateinvoices.days.full=Полный месяц
|
||||
admincreateinvoices.days.partial={0} из {1} дней
|
||||
admincreateinvoices.prorata.suffix=(пропорционально {0}/{1} дней)
|
||||
admincreateinvoices.button.create=Создать счет
|
||||
admincreateinvoices.notification.notemplate=Шаблон счета отсутствует. Сначала сохраните шаблон в генераторе счетов.
|
||||
admincreateinvoices.notification.error=Ошибка при создании счета: {0}
|
||||
admincreateinvoices.button.createselected=Создать счета ({0})
|
||||
admincreateinvoices.field.month=Расчетный месяц
|
||||
|
||||
Reference in New Issue
Block a user