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:

  • (mit hochgestellter 2) statt m2 oder MTK
  • (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

sudo -u postgres pg_dumpall > /root/postgres_backup_$(date +%Y%m%d_%H%M%S).sql

Skript ausführen

sudo -u postgres psql -d <datenbankname> -f change_m3_to_m_hoch_3.sql

Beispiel für Datenbank "hemi":

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

Description
Kivitendo Skripte für Datenbankmigrationen und ZUGFeRD-Kompatibilität
Readme 27 KiB
Languages
PLpgSQL 100%