# Kivitendo Einheiten-Migration für ZUGFeRD ## Zweck Diese Skripte ändern Einheiten in Kivitendo von Text-Format zu Unicode-Hochzahlen für ZUGFeRD-Kompatibilität. ## Hintergrund Kivitendo erkennt beim ZUGFeRD-Export nur bestimmte Einheiten als valide. Die korrekten Formate sind: - `m²` (mit hochgestellter 2) statt `m2` oder `MTK` - `m³` (mit hochgestellter 3) statt `m3` oder `MTQ` ## Dateien - `change_m3_to_m_hoch_3.sql` - Ändert m3 → m³ ## Anwendung ### Voraussetzungen - PostgreSQL Zugriff - Backup der Datenbank (empfohlen!) ### Backup erstellen ```bash sudo -u postgres pg_dumpall > /root/postgres_backup_$(date +%Y%m%d_%H%M%S).sql ``` ### Skript ausführen ```bash sudo -u postgres psql -d -f change_m3_to_m_hoch_3.sql ``` **Beispiel für Datenbank "hemi":** ```bash cp change_m3_to_m_hoch_3.sql /tmp/ chmod 644 /tmp/change_m3_to_m_hoch_3.sql sudo -u postgres psql -d hemi -f /tmp/change_m3_to_m_hoch_3.sql ``` ## Was wird geändert? Das Skript führt folgende Schritte aus: 1. Entfernt temporär Foreign Key Constraints 2. Aktualisiert Einheit in folgenden Tabellen: - `units` (Einheiten-Stammdaten) - `parts` (Artikel) - `invoice` (Rechnungspositionen) - `orderitems` (Auftragspositionen) - `delivery_order_items` (Lieferscheinpositionen) - `units_language` (Einheiten-Übersetzungen) 3. Stellt Foreign Key Constraints wieder her 4. Zeigt Statistik der geänderten Datensätze ## Sicherheit ✅ **Transaction-basiert:** Bei Fehler wird automatisch zurückgerollt (ROLLBACK) ✅ **Alle referenzierten Tabellen werden aktualisiert** ⚠️ **Historische Daten werden ebenfalls geändert** (Foreign Keys erzwingen das) ## Beispiel-Ausgabe ``` Fertig! m3 -> m³ geändert tabelle | anzahl -------------+-------- Artikel: | 31 Rechnungen: | 194 Aufträge: | 162 ``` ## Erstellt am 2026-01-31 ## Version 1.0