feat(sprint9): Phase 5 — Berichtszentrale, sidebar reorg, dashboard enhancement
- Sidebar: reorganized into 4 collapsible groups (Betrieb, Kommunikation, Verwaltung, Compliance) - Berichtszentrale: new /reports-center page with report cards grouped by category (Finance, KCanG, DSGVO, Admin), format selector, date range pickers, Behörden-Export dialog with password protection - Dashboard: added Outstanding Payments and Monthly Income KPI cards, Upcoming Events widget, Latest Announcements widget, conditional alert cards - Pricing: fixed mobile overflow at 375px viewport on comparison table - Frontend service: new compliance-reports.ts with React Query hooks for report generation, authority export, and download - i18n: added reportsCenter.* and dashboard widget keys to de.json and en.json
This commit is contained in:
@@ -66,7 +66,15 @@
|
||||
"today": "Heute",
|
||||
"trend": "+{value}% ggü. Vormonat",
|
||||
"quotaUsed": "{value}% verbraucht",
|
||||
"distributionCount": "{count} Ausgaben, {grams}g"
|
||||
"distributionCount": "{count} Ausgaben, {grams}g",
|
||||
"outstandingPayments": "Offene Zahlungen",
|
||||
"monthlyIncome": "Monatliches Einkommen",
|
||||
"thisMonth": "Diesen Monat",
|
||||
"strainsAvailable": "Sorten verfügbar",
|
||||
"upcomingEvents": "Nächste Termine",
|
||||
"latestAnnouncements": "Neueste Beiträge",
|
||||
"rsvps": "Zusagen",
|
||||
"viewAll": "Alle anzeigen"
|
||||
},
|
||||
"members": {
|
||||
"title": "Mitgliederverwaltung",
|
||||
@@ -1004,5 +1012,100 @@
|
||||
"positions": "Positionen",
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv"
|
||||
},
|
||||
"reportsCenter": {
|
||||
"title": "Berichtszentrale",
|
||||
"subtitle": "Alle gesetzlichen und internen Berichte an einem Ort generieren und verwalten.",
|
||||
"generate": "Generieren",
|
||||
"cancel": "Abbrechen",
|
||||
"authorityExport": {
|
||||
"title": "Behörden-Export",
|
||||
"description": "Gebündelter Export aller behördlich relevanten Dokumente für ein Kalenderjahr.",
|
||||
"button": "Behörden-Export starten",
|
||||
"dialogTitle": "Behörden-Export erstellen",
|
||||
"dialogDescription": "Erstellt ein passwortgeschütztes Archiv mit allen compliance-relevanten Berichten für das gewählte Jahr.",
|
||||
"warning": "Dieser Export enthält sensible Daten und wird im Audit-Protokoll erfasst. Bitte nur bei berechtigter Anforderung durchführen.",
|
||||
"year": "Berichtsjahr",
|
||||
"password": "Passwort für Archiv",
|
||||
"passwordPlaceholder": "Sicheres Passwort eingeben",
|
||||
"confirm": "Export erstellen"
|
||||
},
|
||||
"categories": {
|
||||
"finance": "Finanzen",
|
||||
"kcang": "KCanG-Compliance",
|
||||
"dsgvo": "DSGVO",
|
||||
"admin": "Verwaltung"
|
||||
},
|
||||
"reports": {
|
||||
"EUER": {
|
||||
"name": "EÜR",
|
||||
"description": "Einnahmenüberschussrechnung für den gewählten Zeitraum"
|
||||
},
|
||||
"KASSENBUCH_EXPORT": {
|
||||
"name": "Kassenbuch-Export",
|
||||
"description": "Vollständige Kassenbuchführung als PDF oder CSV"
|
||||
},
|
||||
"BEITRAGSBESCHEINIGUNG": {
|
||||
"name": "Beitragsbescheinigung",
|
||||
"description": "Bescheinigung über gezahlte Mitgliedsbeiträge"
|
||||
},
|
||||
"JAHRESBERICHT_BEHOERDE": {
|
||||
"name": "Jahresbericht Behörde",
|
||||
"description": "Gesetzlich vorgeschriebener Bericht an die zuständige Behörde"
|
||||
},
|
||||
"AUSGABEPROTOKOLL": {
|
||||
"name": "Ausgabeprotokoll",
|
||||
"description": "Protokoll aller Ausgaben im Zeitraum mit Mengen und Empfängern"
|
||||
},
|
||||
"VERNICHTUNGSPROTOKOLL": {
|
||||
"name": "Vernichtungsprotokoll",
|
||||
"description": "Dokumentation der ordnungsgemäßen Vernichtung von Cannabis"
|
||||
},
|
||||
"TRANSPORTZERTIFIKAT": {
|
||||
"name": "Transportzertifikat",
|
||||
"description": "Zertifikat für den genehmigten Transport von Cannabis"
|
||||
},
|
||||
"BESTANDSFUEHRUNG": {
|
||||
"name": "Bestandsführung",
|
||||
"description": "Aktueller Lagerbestand mit allen Ein- und Ausgängen"
|
||||
},
|
||||
"VERARBEITUNGSVERZEICHNIS": {
|
||||
"name": "Verarbeitungsverzeichnis",
|
||||
"description": "Verzeichnis aller Verarbeitungstätigkeiten gem. Art. 30 DSGVO"
|
||||
},
|
||||
"TOM": {
|
||||
"name": "TOM",
|
||||
"description": "Technische und organisatorische Maßnahmen gem. Art. 32 DSGVO"
|
||||
},
|
||||
"DSFA": {
|
||||
"name": "DSFA",
|
||||
"description": "Datenschutz-Folgenabschätzung gem. Art. 35 DSGVO"
|
||||
},
|
||||
"LOESCHKONZEPT": {
|
||||
"name": "Löschkonzept",
|
||||
"description": "Konzept zur fristgerechten Datenlöschung"
|
||||
},
|
||||
"DATENPANNEN_MELDUNG": {
|
||||
"name": "Datenpannen-Meldung",
|
||||
"description": "Vorlage zur Meldung einer Datenschutzverletzung"
|
||||
},
|
||||
"MITGLIEDERLISTE_REGISTER": {
|
||||
"name": "Mitgliederliste Register",
|
||||
"description": "Offizielle Mitgliederliste für das Vereinsregister"
|
||||
},
|
||||
"VORSTANDSAENDERUNG": {
|
||||
"name": "Vorstandsänderung",
|
||||
"description": "Meldung einer Vorstandsänderung ans Vereinsregister"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"title": "Generierte Berichte",
|
||||
"empty": "Noch keine Berichte generiert. Wähle oben einen Bericht aus, um zu beginnen.",
|
||||
"report": "Bericht",
|
||||
"format": "Format",
|
||||
"date": "Datum",
|
||||
"user": "Erstellt von",
|
||||
"size": "Größe"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,7 +66,15 @@
|
||||
"today": "Today",
|
||||
"trend": "+{value}% vs last month",
|
||||
"quotaUsed": "{value}% used",
|
||||
"distributionCount": "{count} distributions, {grams}g"
|
||||
"distributionCount": "{count} distributions, {grams}g",
|
||||
"outstandingPayments": "Outstanding Payments",
|
||||
"monthlyIncome": "Monthly Income",
|
||||
"thisMonth": "This month",
|
||||
"strainsAvailable": "strains available",
|
||||
"upcomingEvents": "Upcoming Events",
|
||||
"latestAnnouncements": "Latest Announcements",
|
||||
"rsvps": "RSVPs",
|
||||
"viewAll": "View all"
|
||||
},
|
||||
"members": {
|
||||
"title": "Member Management",
|
||||
@@ -1004,5 +1012,100 @@
|
||||
"positions": "Positions",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"reportsCenter": {
|
||||
"title": "Reports Center",
|
||||
"subtitle": "Generate and manage all regulatory and internal reports in one place.",
|
||||
"generate": "Generate",
|
||||
"cancel": "Cancel",
|
||||
"authorityExport": {
|
||||
"title": "Authority Export",
|
||||
"description": "Bundled export of all authority-relevant documents for a calendar year.",
|
||||
"button": "Start Authority Export",
|
||||
"dialogTitle": "Create Authority Export",
|
||||
"dialogDescription": "Creates a password-protected archive with all compliance-relevant reports for the selected year.",
|
||||
"warning": "This export contains sensitive data and will be logged in the audit trail. Only proceed with a legitimate request.",
|
||||
"year": "Report Year",
|
||||
"password": "Archive Password",
|
||||
"passwordPlaceholder": "Enter secure password",
|
||||
"confirm": "Create Export"
|
||||
},
|
||||
"categories": {
|
||||
"finance": "Finance",
|
||||
"kcang": "KCanG Compliance",
|
||||
"dsgvo": "GDPR",
|
||||
"admin": "Administration"
|
||||
},
|
||||
"reports": {
|
||||
"EUER": {
|
||||
"name": "Income Statement",
|
||||
"description": "Simplified income statement for the selected period"
|
||||
},
|
||||
"KASSENBUCH_EXPORT": {
|
||||
"name": "Cash Book Export",
|
||||
"description": "Complete cash book as PDF or CSV"
|
||||
},
|
||||
"BEITRAGSBESCHEINIGUNG": {
|
||||
"name": "Membership Fee Certificate",
|
||||
"description": "Certificate of paid membership fees"
|
||||
},
|
||||
"JAHRESBERICHT_BEHOERDE": {
|
||||
"name": "Annual Authority Report",
|
||||
"description": "Legally required annual report to the responsible authority"
|
||||
},
|
||||
"AUSGABEPROTOKOLL": {
|
||||
"name": "Distribution Log",
|
||||
"description": "Log of all distributions in the period with amounts and recipients"
|
||||
},
|
||||
"VERNICHTUNGSPROTOKOLL": {
|
||||
"name": "Destruction Protocol",
|
||||
"description": "Documentation of proper cannabis destruction"
|
||||
},
|
||||
"TRANSPORTZERTIFIKAT": {
|
||||
"name": "Transport Certificate",
|
||||
"description": "Certificate for approved cannabis transport"
|
||||
},
|
||||
"BESTANDSFUEHRUNG": {
|
||||
"name": "Inventory Report",
|
||||
"description": "Current stock with all inflows and outflows"
|
||||
},
|
||||
"VERARBEITUNGSVERZEICHNIS": {
|
||||
"name": "Processing Register",
|
||||
"description": "Register of all processing activities per Art. 30 GDPR"
|
||||
},
|
||||
"TOM": {
|
||||
"name": "TOM",
|
||||
"description": "Technical and organizational measures per Art. 32 GDPR"
|
||||
},
|
||||
"DSFA": {
|
||||
"name": "DPIA",
|
||||
"description": "Data Protection Impact Assessment per Art. 35 GDPR"
|
||||
},
|
||||
"LOESCHKONZEPT": {
|
||||
"name": "Deletion Policy",
|
||||
"description": "Policy for timely data deletion"
|
||||
},
|
||||
"DATENPANNEN_MELDUNG": {
|
||||
"name": "Data Breach Report",
|
||||
"description": "Template for reporting a data protection violation"
|
||||
},
|
||||
"MITGLIEDERLISTE_REGISTER": {
|
||||
"name": "Member Registry List",
|
||||
"description": "Official member list for the association register"
|
||||
},
|
||||
"VORSTANDSAENDERUNG": {
|
||||
"name": "Board Change Notification",
|
||||
"description": "Notification of board change to the association register"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"title": "Generated Reports",
|
||||
"empty": "No reports generated yet. Select a report above to get started.",
|
||||
"report": "Report",
|
||||
"format": "Format",
|
||||
"date": "Date",
|
||||
"user": "Created by",
|
||||
"size": "Size"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user