- CHANGELOG und README für Version 5.7 aktualisiert - Dokumentiert: PDF-Pfad-Fix und Fallback für alte Pfade Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7 KiB
Executable file
7 KiB
Executable file
Changelog
Alle wesentlichen Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
[5.7] - 2026-03-04
Behoben
- PDF-Pfad bei Cron/Batch-Import: PDFs werden jetzt korrekt nach
/imports/{id}/{filename}gespeichert- Problem: Cron speicherte nach
/imports/{ref}_{filename}, aber beim Erstellen der Rechnung wurde nach/imports/{id}/{filename}gesucht - Lösung: Einheitlicher Pfad für manuellen und Cron-Import
- Problem: Cron speicherte nach
- Fallback für alte PDF-Pfade: Beim Anhängen an Lieferantenrechnung wird auch im alten Pfadformat gesucht
- Ermöglicht korrekte Verarbeitung von Imports die vor dem Fix erstellt wurden
- Sucht zuerst
/imports/{id}/{filename}, dann/imports/{ref}_{filename}
[5.5] - 2026-03-03
Behoben
- Kupferzuschlag-Skalierung in Massenaktualisierung: Kupferzuschlag wird jetzt korrekt skaliert wenn Dolibarr-Mindestmenge von Datanorm-Preiseinheit abweicht
- Problem: Cu für 50m wurde direkt zu Datanorm-Preis für 100m addiert
- Lösung: Cu wird erst auf Stückpreis umgerechnet (
cu_per_unit = Cu / quantity), dann auf Datanorm-PE skaliert
- Steuersatz bei Preisübernahme:
tva_txwird jetzt korrekt beibehalten statt auf 0 gesetzt- Direktes SQL-UPDATE statt
update_buyprice()um alle Felder zu erhalten
- Direktes SQL-UPDATE statt
- Preise auf 2 Dezimalstellen: Gesamtpreis und Stückpreis werden auf 2 Nachkommastellen gerundet
Hinzugefügt
- Filter für Preisrichtung: Neue Checkboxen "Preise rauf" und "Preise runter" in Massenaktualisierung
- Ermöglicht gezieltes Filtern nach Preiserhöhungen oder -senkungen
- Filter-Persistenz: Alle Filter (inkl. hide_cables, filter_price_up, filter_price_down) bleiben nach Preisübernahme erhalten
- Alternative Datanorm-Preise verbessert: Beim Import von Rechnungen mit alternativen Datanorm-Katalogen werden jetzt übernommen:
- Mindestmenge vom vorhandenen/Hauptpreis
- Verpackungseinheit vom vorhandenen/Hauptpreis
- Steuersatz vom vorhandenen/Hauptpreis
- kaufmenge-Extrafield (nur wenn numerisch und > 0)
- Extrafield kaufmenge sichtbar: Feld wird jetzt in Formularen angezeigt (
list = 1)
Geändert
- Kupferzuschlag nicht automatisch gesetzt: Bei Datanorm-Import wird kupferzuschlag NICHT mehr gesetzt - wird von separatem Modul berechnet
Technisch
- Kupferzuschlag-Berechnung:
cu_for_price_unit = (kupferzuschlag / effective_quantity) * price_unit - kaufmenge-Validierung:
trim() !== '' && is_numeric() && (int) > 0
[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: HTML5form-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_barcodeUNIQUE KEY aufproduct_fournisseur_pricemuss 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_oncefüradmin.lib.phphinzugefü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