- 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>
- 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>