Import/Export von Bestaenden (CSV + JSON), rein additiv

Export:
- GET /export/stock.csv  - eine Zeile je Charge, Semikolon-getrennt mit BOM,
  direkt in Excel/LibreOffice bearbeitbar; Mengen in der Artikeleinheit.
- GET /export/backup.json - vollstaendiges Backup (Einheiten, Gruppen,
  Lagerorte, Produkte, Chargen), Referenzen ueber Namen statt IDs.

Import:
- POST /import/stock (Admin, Datei-Upload). Erkennt CSV oder JSON automatisch.
  Arbeitet ausschliesslich additiv: unbekannte Produkte/Gruppen/Lagerorte/
  Einheiten werden angelegt, Chargen ergaenzt - nichts wird geloescht.
  Mengen koennen in Gebinde ("Glas") oder Einheiten ("Gramm") angegeben werden,
  Datum als YYYY-MM-DD oder TT.MM.JJJJ. Fehlerhafte Zeilen werden uebersprungen
  und im Ergebnis gemeldet; jeder Import wird als Bewegung protokolliert.

Frontend: neue Seite "Import / Export" (Verwaltung) mit Download-Buttons,
Datei-Upload, Ergebniszusammenfassung und einer Beschreibung der CSV-Spalten.
api.js kann jetzt Datei-Downloads mit Auth-Header und FormData-Uploads.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-22 14:17:03 +02:00
parent 2f1be8e2dd
commit 8079d2d3f0
6 changed files with 619 additions and 2 deletions

View File

@@ -32,6 +32,10 @@ Selfhostbare Lebensmittel-Lagerverwaltung. Aufbau in mehreren Schritten.
- **Lagerorte:** beliebig tief verschachtelbar (Schrank → Fach → Kiste → …).
- **Mindestbestände:** je Produkt wahlweise in der Produkteinheit oder in Packungen.
- **Verlauf:** Bewegungsprotokoll (wer/was/wann), **Einstellungen:** Ablauf-Warnfrist.
- **Import / Export:** CSV (eine Zeile je Charge, in Excel bearbeitbar) und JSON
(vollständiges Backup inkl. Einheiten, Gruppen, Lagerorte). Der Import ist rein
additiv unbekannte Produkte/Gruppen/Lagerorte werden angelegt, Chargen ergänzt,
nichts gelöscht oder überschrieben.
- **Migration:** schonendes Nachziehen neuer Spalten beim Start
(`ADD COLUMN IF NOT EXISTS`), damit bestehende Installationen ihre Daten behalten.