- 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>
269 lines
8.8 KiB
JSON
269 lines
8.8 KiB
JSON
{
|
|
"title": "Reports",
|
|
"crumb": "Field work & records",
|
|
"sub": "Review daily and completion reports, approve them and file them as PDF.",
|
|
"type": {
|
|
"daily": "Daily report",
|
|
"completion": "Completion report"
|
|
},
|
|
"status": {
|
|
"draft": "Draft",
|
|
"submitted": "In review",
|
|
"team_approved": "Checked by team lead",
|
|
"approved": "Approved",
|
|
"rejected": "Rejected",
|
|
"superseded": "Superseded"
|
|
},
|
|
"outcome": {
|
|
"signed": "Signed",
|
|
"customer_absent": "Customer not present",
|
|
"refused": "Customer refused to sign",
|
|
"later": "Signature to be obtained later",
|
|
"not_required": "Signature not required"
|
|
},
|
|
"timeType": {
|
|
"travel": "Travel",
|
|
"work": "Work",
|
|
"break": "Break",
|
|
"material_procurement": "Material procurement",
|
|
"return_travel": "Return travel",
|
|
"interruption": "Interruption"
|
|
},
|
|
"phase": {
|
|
"before": "Before",
|
|
"during": "During work",
|
|
"after": "After"
|
|
},
|
|
"materialStatus": {
|
|
"fully_used": "Fully used",
|
|
"partially_used": "Partially used",
|
|
"not_used": "Not used",
|
|
"additional": "Additional"
|
|
},
|
|
"field": {
|
|
"customer": "Customer",
|
|
"customerNumber": "Customer number",
|
|
"site": "Site",
|
|
"contact": "Contact person",
|
|
"workOrder": "Work order",
|
|
"orderNumber": "Order number",
|
|
"externalOrderNumber": "External order number",
|
|
"orderType": "Order type",
|
|
"description": "Order description",
|
|
"scope": "Scope of work",
|
|
"reportDate": "Report date",
|
|
"workDates": "Date of work",
|
|
"staff": "Staff on site",
|
|
"technician": "Technician",
|
|
"version": "Version",
|
|
"reportNumber": "Report number",
|
|
"status": "Status",
|
|
"team": "Team",
|
|
"type": "Type",
|
|
"period": "Period",
|
|
"updated": "Last changed"
|
|
},
|
|
"texts": {
|
|
"workPerformed": "Work performed",
|
|
"deviations": "Deviations",
|
|
"additionalWork": "Additional work",
|
|
"problems": "Problems",
|
|
"openItems": "Open items and remaining work",
|
|
"nextSteps": "Next steps",
|
|
"hints": "Notes"
|
|
},
|
|
"section": {
|
|
"header": "Work order and customer",
|
|
"time": "Working hours",
|
|
"texts": "Activities and notes",
|
|
"materials": "Material",
|
|
"photos": "Photos",
|
|
"checklist": "Checklist",
|
|
"signature": "Customer signature",
|
|
"versions": "Versions",
|
|
"blockers": "Still missing before completion"
|
|
},
|
|
"time": {
|
|
"person": "Staff member",
|
|
"type": "Type",
|
|
"duration": "Duration",
|
|
"total": "Total excluding breaks",
|
|
"totalByType": "Totals by type",
|
|
"hoursMinutes": "{hours} h {minutes} min",
|
|
"running": "Includes running time, as of {time}",
|
|
"empty": "No time recorded."
|
|
},
|
|
"materials": {
|
|
"used": "Used",
|
|
"notUsed": "Not used",
|
|
"additional": "Additionally used",
|
|
"name": "Material",
|
|
"planned": "Planned",
|
|
"actual": "Actual",
|
|
"reason": "Reason for deviation",
|
|
"deviation": "Deviation",
|
|
"undocumented": "Not documented",
|
|
"empty": "No material recorded."
|
|
},
|
|
"photos": {
|
|
"empty": "No photos selected for the report.",
|
|
"requirement": "Required photo: {label}",
|
|
"alt": "Photo {index}"
|
|
},
|
|
"checklist": {
|
|
"done": "Done",
|
|
"open": "Open",
|
|
"required": "Required",
|
|
"empty": "No checklist."
|
|
},
|
|
"signature": {
|
|
"signer": "Signed by",
|
|
"role": "Role",
|
|
"signedAt": "Date and time",
|
|
"reason": "Reason",
|
|
"capturedBy": "Captured by",
|
|
"confirmation": "Confirmation text",
|
|
"none": "No signature captured yet.",
|
|
"image": "Signature of {name}"
|
|
},
|
|
"list": {
|
|
"empty": "No reports for this selection.",
|
|
"filter": "Filter",
|
|
"reset": "Reset",
|
|
"all": "All",
|
|
"allWithSuperseded": "All incl. superseded",
|
|
"from": "From",
|
|
"to": "To",
|
|
"count": "{count, plural, one {# report} other {# reports}}",
|
|
"truncated": "Showing the latest {count} reports. Please use the filters.",
|
|
"open": "Open"
|
|
},
|
|
"detail": {
|
|
"back": "Back to reports",
|
|
"pdf": "Open PDF",
|
|
"pdfPending": "PDF is being generated. Reload the page later.",
|
|
"aiDrafted": "Lotse draft",
|
|
"aiDraftedHint": "Texts were prepared with Lotse and checked by the technician.",
|
|
"rejectionReason": "Reason for rejection",
|
|
"submittedAt": "Submitted on",
|
|
"teamApprovedAt": "Checked by team lead on",
|
|
"approvedAt": "Approved on",
|
|
"current": "This version",
|
|
"checksum": "Checksum (PDF)",
|
|
"generatedAt": "Data as of"
|
|
},
|
|
"actions": {
|
|
"approve": "Approve",
|
|
"approveTeam": "Check as team lead",
|
|
"reject": "Reject",
|
|
"rejectTitle": "Reject report",
|
|
"rejectSub": "The technician sees the reason and corrects the report.",
|
|
"rejectReason": "Reason",
|
|
"rejectPlaceholder": "What needs to be corrected?",
|
|
"newVersion": "Create new version",
|
|
"newVersionHint": "The approved version stays unchanged until the new version is approved.",
|
|
"regeneratePdf": "Generate PDF",
|
|
"cancel": "Cancel",
|
|
"close": "Close",
|
|
"done": "Done."
|
|
},
|
|
"errors": {
|
|
"generic": "Action not possible.",
|
|
"not_found": "Report not found.",
|
|
"forbidden": "You are not allowed to do this.",
|
|
"conflict": "The report has changed in the meantime. Please reload the page.",
|
|
"invalid": "Please check your input.",
|
|
"blocked": "Some information is still missing.",
|
|
"reasonRequired": "Please enter a reason.",
|
|
"signerRequired": "Please enter the name of the signer.",
|
|
"imageRequired": "Please have the customer sign first.",
|
|
"notRequiredForbidden": "A signature is required for this work order.",
|
|
"aiReviewRequired": "Please confirm that you have reviewed the Lotse suggestion."
|
|
},
|
|
"blocker": {
|
|
"checklist_item": "Checklist open: {label}",
|
|
"photo_requirement": "Required photo missing: {label}",
|
|
"running_session": "Time tracking is still running",
|
|
"missing_field": "Required information missing: {field}"
|
|
},
|
|
"mobile": {
|
|
"title": "Report",
|
|
"backToOrder": "Back to work order",
|
|
"createDaily": "Create daily report",
|
|
"createCompletion": "Create completion report",
|
|
"dailyHint": "Finish the working day. The work order stays open.",
|
|
"completionHint": "Finish the job: check the report, get it signed, submit.",
|
|
"blockersHint": "Complete these items first, then create the completion report.",
|
|
"stepReview": "Check",
|
|
"stepEdit": "Complete",
|
|
"stepSign": "Signature",
|
|
"stepSubmit": "Submit",
|
|
"stepOf": "Step {current} of {total}",
|
|
"edit": "Complete report",
|
|
"review": "Check report",
|
|
"save": "Save draft",
|
|
"saved": "Draft saved.",
|
|
"toSign": "Continue to signature",
|
|
"submit": "Submit report",
|
|
"submitted": "The office is reviewing the report.",
|
|
"readOnly": "The report has been submitted and can no longer be changed.",
|
|
"rejected": "Rejected: {reason}",
|
|
"signatureMissing": "Signature or reason still missing.",
|
|
"noCompletion": "No completion report yet."
|
|
},
|
|
"sign": {
|
|
"title": "Signature",
|
|
"outcomeLabel": "Signature",
|
|
"signerName": "Name of signer",
|
|
"signerRole": "Role (optional)",
|
|
"reason": "Reason",
|
|
"clear": "Clear",
|
|
"padLabel": "Signature field. Sign with finger or stylus.",
|
|
"padEmpty": "Sign here",
|
|
"confirmation": "I confirm that the work documented in report {reportNumber} for work order {orderNumber} has been carried out. Date: {date}.",
|
|
"save": "Save",
|
|
"saved": "Saved.",
|
|
"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",
|
|
"checksum": "Checksum",
|
|
"approvalStatus": "Approval status",
|
|
"createdAt": "Created on",
|
|
"notApproved": "Not approved"
|
|
}
|
|
}
|