feat(handelsware-datev): Modulseite mit Import, Konten und Einstellungen

- Reiter Import: Vorschau mit neu-Markierung, Buchungsdatum (TTMM) aus dem Dateinamen, Download speichert neue Konten
- Reiter Konten: anlegen, bearbeiten, loeschen mit Rueckfrage, CSV-Import (ersetzt alles, nach Rueckfrage) und -Export
- Reiter Einstellungen nur fuer Administratoren; Texte de/en

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-02 11:47:09 +02:00
parent 44c1d4351f
commit 42b89f110b
15 changed files with 1726 additions and 1 deletions
+101
View File
@@ -1698,6 +1698,107 @@
"saved": "Die Einstellungen wurden gespeichert."
}
},
"handelswareDatev": {
"title": "Handelsware",
"description": "Handelswaren-Umsätze aus Excel den Erlöskonten zuordnen und als DATEV-Buchungsdatei herunterladen.",
"tabs": {
"import": "Import",
"accounts": "Konten",
"settings": "Einstellungen"
},
"loading": "Wird geladen …",
"notConfigured": {
"admin": "Standard-Erlöskonto und Startwert Gegenkonto sind noch nicht hinterlegt. Ohne diese Angaben können keine Konten zugeordnet werden.",
"adminAction": "Zu den Einstellungen",
"user": "Ein Administrator muss zuerst Standard-Erlöskonto und Startwert Gegenkonto hinterlegen."
},
"import": {
"dropPlaceholder": "Excel-Datei hierher ziehen oder klicken",
"dropFormats": ".xlsx, Buchungstext in Spalte A, Umsatz in Spalte B, Kopftext in Zelle B1",
"clear": "Datei entfernen",
"checking": "Datei wird geprüft …",
"headerText": "Kopftext",
"exportFilename": "Dateiname des Downloads",
"date": "Buchungsdatum (TTMM)",
"dateHint": "Wird aus dem Dateinamen abgeleitet (letzter Tag des Monats) und kann geändert werden.",
"dateInvalid": "Bitte das Datum als TTMM angeben, zum Beispiel 3103 für den 31.03.",
"columns": {
"text": "Buchungstext",
"amount": "Umsatz",
"sh": "S/H",
"counter": "Gegenkonto",
"date": "Datum",
"revenue": "Erlöskonto"
},
"newBadge": "neu",
"newSummary": "{count, plural, one {Ein neues Konto wird beim Herunterladen gespeichert} other {# neue Konten werden beim Herunterladen gespeichert}}",
"noNewAccounts": "Alle Produkte haben bereits ein Konto.",
"totals": "Summe Soll {debit}, Summe Haben {credit}",
"truncated": "Angezeigt werden die ersten {shown} von {total} Zeilen. Die Datei enthält alle Zeilen.",
"noRows": "Die Datei enthält keine Datenzeilen.",
"rowErrorsTitle": "Fehlerhafte Zeilen",
"rowErrorLine": "Zeile {line}",
"download": "Buchungsdatei herunterladen",
"downloading": "Datei wird erstellt …",
"downloaded": "Die Datei {filename} wurde heruntergeladen. {count, plural, =0 {Es wurden keine neuen Konten gespeichert.} one {Ein neues Konto wurde gespeichert.} other {# neue Konten wurden gespeichert.}}",
"reloadPreview": "Vorschau neu laden"
},
"accounts": {
"name": "Name",
"counter": "Gegenkonto",
"revenue": "Erlöskonto",
"actions": "Aktionen",
"empty": "Es sind noch keine Konten vorhanden.",
"add": "Hinzufügen",
"edit": "Bearbeiten",
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Löschen",
"deleteConfirm": "Konto „{name}“ wirklich löschen?",
"deleteYes": "Ja, löschen",
"namePlaceholder": "Produktname",
"importCsv": "CSV importieren",
"exportCsv": "CSV exportieren",
"importConfirm": "{count, plural, =0 {Die leere Kontenliste wird} one {Das vorhandene Konto wird} other {Alle # vorhandenen Konten werden}} durch den Inhalt der Datei „{file}“ ersetzt. Fortfahren?",
"importReplace": "Konten ersetzen",
"importDone": "{count, plural, one {Ein Konto wurde importiert.} other {# Konten wurden importiert.}}",
"importErrors": "Die Datei enthält Fehler, es wurde nichts geändert:",
"csvHint": "CSV-Format: Name;Gegenkonto;Konto (Semikolon, UTF-8 oder Windows-1252).",
"invalidNumber": "Gegenkonto und Erlöskonto müssen ganze Zahlen sein.",
"nameRequired": "Bitte einen Namen angeben."
},
"settings": {
"intro": "Diese Angaben gelten für alle Benutzer Ihres Mandanten und werden nur einmal hinterlegt.",
"erloeskonto": "Standard-Erlöskonto",
"erloeskontoHelp": "Wird neuen Konten zugeordnet.",
"startGegenkonto": "Startwert Gegenkonto",
"startGegenkontoHelp": "Erste Nummer, die vergeben wird, wenn die Kontenliste leer ist.",
"numberInvalid": "Bitte eine ganze Zahl von 1 bis 999999999 eingeben.",
"save": "Speichern",
"saving": "Wird gespeichert …",
"saved": "Die Einstellungen wurden gespeichert."
},
"errors": {
"settingsMissing": "Standard-Erlöskonto und Startwert Gegenkonto sind noch nicht hinterlegt.",
"invalidFile": "Die Datei ist keine gültige Excel-Datei.",
"tooManyRows": "Die Datei enthält zu viele Datenzeilen (höchstens 10000).",
"rowErrors": "Die Datei enthält fehlerhafte Zeilen und kann nicht exportiert werden.",
"noRows": "Die Datei enthält keine Datenzeilen.",
"buchungsdatumInvalid": "Das Buchungsdatum muss als TTMM angegeben werden, zum Beispiel 3103.",
"accountsChanged": "Die Kontenliste wurde inzwischen geändert. Bitte laden Sie die Datei erneut, um die Vorschau zu aktualisieren.",
"nameTaken": "Ein Konto mit diesem Namen gibt es bereits.",
"umsatzInvalid": "Der Umsatz ist keine gültige Zahl.",
"csvErrors": "Die CSV-Datei enthält Fehler. Es wurde nichts geändert.",
"newAccountsInvalid": "Die Angaben zu den neuen Konten sind ungültig.",
"nameEmpty": "Der Name fehlt.",
"nameTooLong": "Der Name ist zu lang (höchstens 120 Zeichen).",
"gegenkontoInvalid": "Das Gegenkonto muss eine ganze Zahl von 1 bis 999999999 sein.",
"erloeskontoInvalid": "Das Erlöskonto muss eine ganze Zahl von 1 bis 999999999 sein.",
"missingErloeskonto": "Das Erlöskonto fehlt und es ist kein Standard-Erlöskonto hinterlegt.",
"duplicateName": "Der Name kommt in der Datei mehrfach vor.",
"request": "Die Anfrage ist fehlgeschlagen. Bitte versuchen Sie es erneut."
}
},
"moduleCategories": {
"domain-tools": "Domains",
"security-tools": "Sicherheit",