importzugferd/CHANGELOG.md
data 953774c9f7 fix: Datanorm-Preisvergleich mit Kupferzuschlag (v4.3)
Datanorm-Preisvergleich korrigiert:
- Datanorm-Preise enthalten nur Materialpreis ohne Kupferzuschlag
- Kupferzuschlag wird aus Produkt-Extrafields geladen und addiert
- Vergleich: Datanorm+Kupfer vs. aktueller Dolibarr-Lieferantenpreis
- Anzeige zeigt Aufschlüsselung: "Base-Preis + Kupfer = Gesamt"

Kabel-Filter hinzugefügt:
- Checkbox "Kabel ausblenden" in Datanorm-Vorschau
- Filtert Kabel-Produkte basierend auf Warengruppe
- Erleichtert Fokus auf Standard-Artikel

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-03 08:15:22 +01:00

5.3 KiB
Executable file
Raw Blame History

Changelog

Alle wesentlichen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

[4.3] - 2026-03-03

Behoben

  • Datanorm-Preisvergleich: Korrekte Preisberechnung mit Kupferzuschlag
    • Problem: Datanorm-Preise enthalten nur Materialpreis, kein Kupferzuschlag
    • Lösung: Kupferzuschlag aus Produkt-Extrafields wird zu Datanorm-Preis addiert
    • Vergleich jetzt: Datanorm+Kupfer vs. aktueller Dolibarr-Preis
    • Zeigt Aufschlüsselung: "Datanorm-Preis + Kupferzuschlag = Gesamtpreis"

Hinzugefügt

  • Kabel-Filter: Checkbox "Kabel ausblenden" in Datanorm-Vorschau
    • Filtert Kabel-Produkte aus der Anzeige (basierend auf Warengruppe)
    • Erleichtert Fokus auf Standard-Artikel

[4.2] - 2026-03-02

Behoben

  • PDF-Anhänge: ZUGFeRD-PDFs werden jetzt korrekt an Lieferantenrechnungen angehängt
    • Problem: PDF wurde nur ins Dateisystem kopiert, nicht in ECM-Datenbank registriert
    • Lösung: EcmFiles-Eintrag wird erstellt für korrekte Verknüpfung mit Rechnung
    • Wichtig: Bei Rechnungsvalidierung wird PDF automatisch mitverschoben

Hinzugefügt

  • Bezeichnung in Rechnungsliste: Teuerster Artikel wird als Bezeichnung der Lieferantenrechnung gesetzt
    • Erleichtert schnelle Identifikation in der Rechnungsliste
    • Spalte "Bezeichnung" muss in Liste aktiviert sein

[4.0] - 2026-03-01

Behoben

  • Verschachtelte HTML-Forms: "Ausgewählte Preise hinzufügen" funktionierte nicht, weil Browser verschachtelte <form>-Elemente nicht unterstützen. Lösung: HTML5 form-Attribut
  • Stückpreis-Anzeige: Einkaufspreise zeigen jetzt den Stückpreis statt Gesamtpreis (z.B. 0,16 statt 16,32 bei 100 Stk.)
  • Preisvergleich: Fehlende Lieferantenpreise werden korrekt auf Stückpreis-Basis verglichen
  • DATPREIS-Kommentare: Feld korrekt als Rabattkennzeichen dokumentiert (war fälschlich als PE-Code beschrieben)

Verbessert

  • Feedback bei Preishinzufügen: Zeigt Erfolgs- und Fehlermeldungen nach dem Hinzufügen von Lieferantenpreisen
  • Mengenkontext: Bei Mengenstaffel wird zusätzlich der Gesamtpreis mit Stückzahl angezeigt (z.B. "0,16 (16,32/100Stk.)")

Hinweis

  • uk_product_barcode UNIQUE KEY auf product_fournisseur_price muss entfernt werden falls vorhanden (mehrere Lieferanten dürfen gleichen EAN haben)

[3.8] - 2026-02-25

Hinzugefügt

  • Kabel-Preisberechnung: Zentrale Funktion calculateCablePricing() für einheitliche Preislogik
  • Kupfergehalt-Berechnung: Automatische Berechnung aus Aderanzahl × Querschnitt × 8.9
  • Ringgröße-Erkennung: Unterstützt Ri100, Tr500, Fol.25m, "Ring 100m", "Trommel 500m"
  • Extrafield "produktpreis": Speichert reinen Materialpreis ohne Kupferzuschlag (nur Kabel)
  • EAN-Auto-Update: Barcodes aus ZUGFeRD-Rechnungen werden automatisch in Lieferantenpreise übernommen

Verbessert

  • Lieferanten-Formate: Korrekte Unterscheidung zwischen Sonepar (price_unit=1, Ring im Namen) und Kluxen/Witte (price_unit=100)
  • Cross-Catalog-Suche: Nur noch über EAN, nicht mehr über Artikelnummern (verhindert Fehlzuordnungen)
  • EAN-Barcode-Typ: Automatische Erkennung (EAN8, EAN13, UPC-A) statt hardcoded EAN13
  • Error-Handling: Besseres Logging bei Extrafield-Fehlern

Behoben

  • Division durch Null bei Preisberechnung abgesichert
  • Mindestbestellmenge und Verpackungseinheit werden von existierenden Lieferantenpreisen übernommen

[3.7] - 2026-02-23

Hinzugefügt

  • GlobalNotify Integration: Benachrichtigungen über das zentrale GlobalNotify-Modul
    • Import-Fehler: Warnung bei fehlgeschlagenen Importen
    • Rechnungen zur Prüfung: Aktion wenn neue Rechnungen warten
    • IMAP-Fehler: Warnung wenn E-Mail Postfach nicht erreichbar
    • Exception/Fatal: Sofortige Benachrichtigung bei Abstürzen
  • Helper-Funktion: notify() für sichere GlobalNotify-Nutzung mit Fallback

Hinweis

GlobalNotify ist optional. Ohne das Modul werden Benachrichtigungen ins Dolibarr-Log geschrieben.

[3.6] - 2026-02-23

Behoben

  • Cron-Job Fix: Fehlendes require_once für admin.lib.php hinzugefügt - verhinderte das Speichern des letzten Laufzeitpunkts
  • Cron-Job lief in Endlosschleife weil dolibarr_set_const() nicht gefunden wurde

Hinzugefügt

  • Dediziertes Cron-Logging: Separate Log-Datei unter /documents/importzugferd/logs/cron_importzugferd.log
  • Shutdown Handler: Fängt fatale PHP-Fehler ab und protokolliert sie
  • Detailliertes Logging: Zeigt jeden Schritt des Import-Prozesses (Ordner-Zugriff, PDF-Scan, IMAP-Status)

Verbessert

  • Robustere Fehlerbehandlung mit try/catch für Exceptions und Throwables
  • IMAP-Import wird nur ausgeführt wenn tatsächlich konfiguriert

[3.5] - 2026-02-15

Hinzugefügt

  • Automatischer Cron-Import aus Watch-Folder
  • IMAP-Mailbox-Unterstützung für E-Mail-Rechnungen
  • Konfigurierbare Import-Frequenz (stündlich, täglich, wöchentlich)
  • Archiv- und Fehler-Ordner für verarbeitete Dateien

[3.0] - 2026-02-01

Hinzugefügt

  • ZUGFeRD/Factur-X PDF-Parsing
  • Automatische Lieferanten-Erkennung
  • Rechnungsvorschau vor Import
  • Datanorm-Integration für Artikelpreise

[2.0] - 2026-01-15

Hinzugefügt

  • Basis-Import von ZUGFeRD-Rechnungen
  • Manuelle Datei-Auswahl
  • Integration in Lieferantenrechnungen

[1.0] - 2026-01-01

Erste Version

  • Grundlegende ZUGFeRD-Erkennung
  • XML-Extraktion aus PDF