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=Aucun client
|
||||
invoicegenerator.positions.header=Positions (grille tarifaire)
|
||||
invoicegenerator.positions.list=Lister les positions
|
||||
button.undo=Annuler
|
||||
|
||||
# Profil administrateur (données de l'entreprise)
|
||||
page.title.admin.profile=Modifier les données de l'entreprise
|
||||
adminprofile.title=Données de l'entreprise
|
||||
adminprofile.field.companyname=Nom de l'entreprise
|
||||
adminprofile.field.companysubtitle=Complément de l'entreprise
|
||||
adminprofile.field.street=Rue et numéro
|
||||
adminprofile.field.city=Code postal et ville
|
||||
adminprofile.field.phone=Téléphone
|
||||
adminprofile.field.fax=Fax
|
||||
adminprofile.field.email=E-mail
|
||||
adminprofile.field.website=Site web
|
||||
adminprofile.field.senderline=Ligne d'expéditeur
|
||||
adminprofile.field.senderline.helper=Mention de l'expéditeur sur une ligne au-dessus de l'adresse du destinataire sur les factures
|
||||
adminprofile.field.paymentterms=Conditions de paiement
|
||||
adminprofile.field.footer=Pied de page
|
||||
adminprofile.field.footer.helper=Gérants, numéro fiscal, coordonnées bancaires – chaque ligne apparaît comme une ligne distincte sur la facture
|
||||
adminprofile.notification.saved=Données de l'entreprise enregistrées
|
||||
adminprofile.notification.save.error=Erreur lors de l'enregistrement : {0}
|
||||
adminprofile.notification.load.error=Erreur lors du chargement : {0}
|
||||
|
||||
# Créer des factures (admin)
|
||||
page.title.admin.createinvoices=Créer des factures
|
||||
admincreateinvoices.title=Créer des factures
|
||||
admincreateinvoices.hint=Les factures sont exigibles en fin de mois. Si un client commence en cours de mois, seuls les jours restants jusqu'à la fin du mois sont facturés.
|
||||
admincreateinvoices.column.customer=Client
|
||||
admincreateinvoices.column.email=E-mail
|
||||
admincreateinvoices.column.start=Client depuis
|
||||
admincreateinvoices.column.days=Jours facturés
|
||||
admincreateinvoices.column.due=Échéance le
|
||||
admincreateinvoices.column.net=Montant net
|
||||
admincreateinvoices.days.full=Mois complet
|
||||
admincreateinvoices.days.partial={0} sur {1} jours
|
||||
admincreateinvoices.prorata.suffix=(au prorata {0}/{1} jours)
|
||||
admincreateinvoices.button.create=Créer la facture
|
||||
admincreateinvoices.notification.notemplate=Aucun modèle de facture disponible. Veuillez d'abord enregistrer un modèle dans le générateur de factures.
|
||||
admincreateinvoices.notification.error=Erreur lors de la création de la facture : {0}
|
||||
admincreateinvoices.button.createselected=Créer les factures ({0})
|
||||
admincreateinvoices.field.month=Mois de facturation
|
||||
|
||||
Reference in New Issue
Block a user