L11 Kundenversand: Bericht-PDF an Kunden senden (Service, Action, API, Berichtsseite)

- sendReportToCustomer: report:approve, Scope, nur approved mit PDF, Empfänger
  Ansprechpartner -> Kunde, Dedupe je Adresse+Version, Audit export
- Server Action + POST /api/v1/reports/{id}/send inkl. OpenAPI-Eintrag
- /reports/[id]: Abschnitt „An Kunden senden" mit bisherigen Versänden, Texte de/en

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 18:48:57 +02:00
co-authored by Claude Opus 5
parent e0106b8f8e
commit 29c80a0e73
9 changed files with 413 additions and 0 deletions
+31
View File
@@ -226,6 +226,37 @@
"alreadySigned": "Unterschrift liegt vor.",
"noReport": "Zuerst den Abschlussbericht erstellen."
},
"customerMail": {
"title": "An Kunden senden",
"sub": "Das freigegebene PDF geht als Anhang an den Kunden. Antworten gehen an die Antwortadresse Ihres Betriebs.",
"to": "Empfänger",
"toHint": "Vorbelegt mit dem Ansprechpartner des Auftrags bzw. dem Kunden.",
"noDefault": "Beim Auftrag ist keine E-Mail-Adresse hinterlegt. Bitte Empfänger eingeben.",
"message": "Nachricht (optional)",
"messagePlaceholder": "Kurze Nachricht an den Kunden",
"submit": "Bericht senden",
"sending": "Wird gesendet …",
"history": "Bisherige Versände",
"historyEmpty": "Noch nicht an den Kunden gesendet.",
"result": {
"sent": "Bericht an {to} versendet.",
"queued": "Bericht an {to} wird versendet.",
"duplicate": "Diese Version wurde bereits an {to} gesendet.",
"failed": "Versand an {to} fehlgeschlagen. Bitte später erneut versuchen."
},
"delivery": {
"sent": "Versendet",
"pending": "In Zustellung",
"failed": "Fehlgeschlagen",
"other": "Nicht zugestellt"
},
"errors": {
"recipient_missing": "Bitte eine E-Mail-Adresse angeben.",
"invalid_to": "Bitte eine gültige E-Mail-Adresse angeben.",
"report_not_approved": "Nur freigegebene Berichte können versendet werden.",
"pdf_missing": "Das PDF ist noch nicht erzeugt."
}
},
"pdf": {
"page": "Seite {page} von {pages}",
"reportId": "Bericht-ID",
+31
View File
@@ -226,6 +226,37 @@
"alreadySigned": "Signature captured.",
"noReport": "Create the completion report first."
},
"customerMail": {
"title": "Send to customer",
"sub": "The approved PDF is sent to the customer as an attachment. Replies go to your company's reply address.",
"to": "Recipient",
"toHint": "Prefilled with the work order contact or the customer.",
"noDefault": "No e-mail address is stored for this work order. Please enter a recipient.",
"message": "Message (optional)",
"messagePlaceholder": "Short message to the customer",
"submit": "Send report",
"sending": "Sending …",
"history": "Previous sends",
"historyEmpty": "Not sent to the customer yet.",
"result": {
"sent": "Report sent to {to}.",
"queued": "Report to {to} is being sent.",
"duplicate": "This version has already been sent to {to}.",
"failed": "Sending to {to} failed. Please try again later."
},
"delivery": {
"sent": "Sent",
"pending": "Being delivered",
"failed": "Failed",
"other": "Not delivered"
},
"errors": {
"recipient_missing": "Please enter an e-mail address.",
"invalid_to": "Please enter a valid e-mail address.",
"report_not_approved": "Only approved reports can be sent.",
"pdf_missing": "The PDF has not been generated yet."
}
},
"pdf": {
"page": "Page {page} of {pages}",
"reportId": "Report ID",