Problem:
- Nach Aktualisieren (F5) kam Browser-Warnung "Formular erneut senden"
- Filter (Kabel ausblenden) gingen nach Reload verloren
Lösung:
1. Kabel-Filter als GET-Parameter statt POST
- Filter bleiben nach F5 erhalten
- Keine Token-Validierung nötig für einfache Filter
2. Redirect nach POST-Actions:
- createallfromdatanorm: Redirect zu ?id=X nach Verarbeitung
- addmissingprices: Redirect zu ?id=X nach Verarbeitung
- Verhindert "Form resubmit" Warnung
Jetzt:
- F5 = Einfaches Reload ohne Warnung
- Filter bleiben erhalten
- Keine doppelten Submissions möglich
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Problem:
1. Datanorm-Preise enthielten nur Materialpreis, kein Kupferzuschlag
2. Preise wurden als Stückpreis statt Preis für Mindestmenge angezeigt
Lösung:
1. Kupferzuschlag aus Dolibarr-Lieferantenpreis-Extrafields wird zu Datanorm-Preis addiert
2. Hauptpreis zeigt jetzt Preis für Mindestmenge (z.B. 147,59€/100)
3. Stückpreis wird als sekundäre Info angezeigt (1,48€/Stk.)
4. Vergleich zwischen Datanorm und aktuellem Dolibarr-Preis für gleiche Menge
Beispiel:
- Datanorm: 102,29€ (Material) + 45,30€ (Kupfer) = 147,59€/100
- Dolibarr aktuell: 52,00€/100
- Differenz: +95,59€ (+183%)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Checkbox jetzt rechts oben neben Titel positioniert
- Grauer Hintergrund mit Rahmen für bessere Sichtbarkeit
- Filter-Icon hinzugefügt
- Inline-Form für sofortiges Submit beim Klicken
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
PDF-Anhänge:
- ZUGFeRD-PDF wird jetzt in ECM-Datenbank registriert (llx_ecm_files)
- Verhindert Verlust der PDF beim Validieren der Rechnung
- Korrekte Verknüpfung über src_object_type/src_object_id
Rechnungsliste:
- Teuerster Artikel wird als Bezeichnung (label) der Rechnung gesetzt
- Erleichtert schnelle Identifikation in der Lieferantenrechnungsliste
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Debug-Logging aus addmissingprices-Handler entfernt
- Fehler-/Erfolgsmeldungen beim Preishinzufügen verbessert
- CHANGELOG.md mit v4.0 Änderungen aktualisiert
- Hinweis: uk_product_barcode UNIQUE KEY muss entfernt werden
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Verschachtelte HTML-Forms behoben: "Ausgewählte Preise hinzufügen" funktionierte
nicht, weil die missing_prices_form um die Tabelle mit inneren Forms gewickelt war.
Lösung: Form ausgelagert mit HTML5 form-Attribut auf Checkboxen und Submit-Button.
- Einkaufspreise zeigen jetzt Stückpreis (unitprice) statt Gesamtpreis (price)
- Preisvergleich für fehlende Lieferantenpreise nutzt jetzt Stückpreis
- DATPREIS-Parser: Kommentare korrigiert - Feld ist Rabattkennzeichen, nicht PE-Code
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Neue zentrale Funktion calculateCablePricing() für einheitliche Preislogik
- Unterschiedliche Lieferanten-Formate: Sonepar (price_unit=1, Ring im Namen) vs Kluxen/Witte (price_unit=100)
- Ringgröße-Erkennung: Ri100, Tr500, Fol.25m, "Ring 100m", "Trommel 500m"
- Cross-Catalog-Suche nur noch über EAN (verhindert Fehlzuordnungen)
- EAN-Auto-Update aus ZUGFeRD mit automatischer Barcode-Typ-Erkennung (EAN8/13/UPC-A)
- Neues Extrafield "produktpreis" für Materialpreis ohne Kupferzuschlag
- Kupfergehalt-Berechnung: Aderanzahl × Querschnitt × 8.9
- Division durch Null abgesichert
- Besseres Error-Handling für Extrafields
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Helper-Funktion notify() für sichere GlobalNotify-Nutzung
- Benachrichtigung bei importierten Rechnungen (zur Prüfung)
- Warnung bei Import-Fehlern
- Fehler-Benachrichtigung bei IMAP-Verbindungsproblemen
- Sofortige Benachrichtigung bei Exception/Fatal
- countPendingInvoices() für Draft-Rechnungen-Zählung
- Fallback auf dol_syslog wenn GlobalNotify nicht verfügbar
- Version 3.7
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fehlendes require_once für admin.lib.php hinzugefügt
- Dediziertes Cron-Logging unter /documents/importzugferd/logs/
- Shutdown Handler für fatale PHP-Fehler
- Robustere Fehlerbehandlung mit try/catch
- CHANGELOG.md erstellt
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Einkaufspreise aller Lieferanten bei zugeordneten Produkten
- XML Syntax-Highlighting auf Detailseite
- Cron: Frequenz-Check entfernt, IMAP nur bei Konfiguration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- shouldRunImport() Prüfung entfernt (Dolibarr-Cron steuert Frequenz)
- IMAP-Import nur wenn Host konfiguriert (verhindert Fehlermeldung)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- EAN-basierte Suche fuer Cross-Katalog Lieferantenpreise
- Unique-Key auf Barcode entfernt (mehrere Lieferanten pro EAN)
- Variable $extrafields Namenskollision mit Dolibarr-Core behoben
- Duplikate bei gleichen Produkten auf mehreren Rechnungszeilen vermieden
- select2-Suche auf allen Zeilen (eindeutige HTML-IDs)
- Konsolidierter Bereich fuer fehlende Lieferantenpreise
- Refresh-Button und Alle/Keine auswaehlen
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Cross-Katalog-Suche: Artikel werden via EAN/Hersteller-Art.Nr. in allen Katalogen gefunden
- Multi-Lieferanten-Anzeige mit Preisvergleich (Prozent guenstiger/teurer)
- Fehlende Lieferantenpreise werden bei zugeordneten Produkten angeboten
- Fix: Kluxen-Datanorm Preise im A-Record (Cent -> Euro Umrechnung)
- Neue Uebersetzungen fuer Lieferanten-Alternativen
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add widget box showing products starting with "New" that need review
- Add dashboard statistics for new products (small info box)
- Add new_products.php page listing all products to review
- Add CSS for dashboard icon
- Shows 5 entries on homepage, all entries on product page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>