# CHANGELOG MODULE KUNDENKARTE FOR [DOLIBARR ERP CRM](https://www.dolibarr.org) ## 11.0 (2026-03) ### Neue Features - **Terminal-Farben nach Verbindung**: Terminals zeigen die Farbe der angeschlossenen Leitung - Grau = keine Verbindung, farbig = Leitung angeschlossen - Farbe entspricht dem Leitungstyp (L1=braun, L2=schwarz, L3=grau, N=blau, PE=gruen) - Neue Hilfsfunktion `getTerminalConnectionColor()` - **Leitungen hinter Bloecken**: Wires werden nun hinter den Equipment-Bloecken gerendert - Layer-Reihenfolge geaendert: connections-layer vor blocks-layer - Leitungen "verschwinden" hinter Bloecken und kommen auf der anderen Seite wieder raus - Professionelleres Erscheinungsbild wie in echten Schaltplan-Editoren - **Wire-Segment-Dragging**: Leitungen koennen verschoben werden ohne Verbindungen zu verlieren - Shift+Klick oder Mittlere Maustaste auf Leitungssegment zum Ziehen - Horizontale Segmente nur vertikal verschiebbar, vertikale nur horizontal - Start- und End-Segmente (an Terminals) bleiben fix - Automatisches Grid-Snapping (25px) - Live-Vorschau waehrend dem Ziehen - Neue Funktionen: `parsePathToPoints()`, `pointsToPath()`, `findClickedSegment()` - `startWireDrag()`, `handleWireDragMove()`, `finishWireDrag()`, `cancelWireDrag()` - **Busbar-Typen aus Datenbank**: Phasenschienen-Typen dynamisch aus DB laden - Edit-Dialog nutzt jetzt `busbarTypes` Array statt hardcodierter Optionen - `fk_busbar_type` wird beim Update korrekt gespeichert - Admin-Seite fuer Busbar-Typen mit phases_config JSON-Feld - **PWA: Farbpropagierung bei Einspeisung**: Automatische Farbuebernahme - Bei Auswahl einer Input-Phase (L1/L2/L3/N/PE) wird Farbe automatisch gesetzt - Funktion `propagateInputColor()` aktualisiert Farben auf Abgaengen - Phase-Matching: L1 matched L1, LN, L1N; N matched N; etc. - Funktioniert online und offline (mit Queue) - **PWA: N-Phase als Einspeisung**: Neutralleiter jetzt als Input-Phase waehlbar - INPUT_PHASES erweitert um 'N': ['L1', 'L2', 'L3', 'N', 'PE'] - 3P und 3P+N entfernt (nur Einzel-Phasen) ### Verbesserungen - **Zeichenmodus-Verhalten**: Konsistentes Verhalten im manuellen Zeichenmodus - Rechtsklick bricht nur aktuelle Linie ab, nicht den Zeichenmodus - Escape-Taste verhaelt sich identisch (Linie abbrechen, Modus bleibt aktiv) - Crosshair-Cursor ueberall im SVG waehrend Zeichenmodus (nicht nur auf Terminals) - Keine Unterbrechung mehr beim Klicken auf leere Flaechen - **Terminal Hit-Area**: Verbesserte Klickbarkeit der Terminals - 30px Radius fuer einfacheres Anklicken - `pointer-events:all` fuer zuverlaessige Event-Erfassung ### Bugfixes - Cursor zeigte nicht ueberall Crosshair im Zeichenmodus - Zeichenmodus wurde bei Rechtsklick/Escape komplett beendet statt nur Linie abzubrechen - Junction-Verbindungen (Terminal zu Leitung) werden korrekt gerendert --- ## 8.6 (2026-03) ### Neue Features - **has_product Typ-Flag**: Produkt-Zuordnung pro Element- und Gebaeudetyp ein-/abschaltbar - Neue Checkbox "Produkt-Zuordnung" in Admin > Element-Typen und Gebaeudetypen - Produkt-Zeile im Formular wird per JS dynamisch ein-/ausgeblendet je nach Typ - `data-has-product` und `data-has-accessories` Attribute auf Options fuer JS-Steuerung - **Decommissioned Default-Setting**: Standard-Sichtbarkeit fuer ausgebaute Elemente - Neues Admin-Setting `KUNDENKARTE_SHOW_DECOMMISSIONED` unter Einstellungen - Toggle-Button startet mit Admin-Default in allen 3 Ansichten (Kunden, Kontakte, Mein Betrieb) - Tree-Div erhaelt `show-decommissioned` CSS-Klasse basierend auf Setting ### Bugfixes - **Select2 Typ-Select im Edit-Modus**: Wert wurde nicht angezeigt beim Bearbeiten - Ursache: Wert wurde vor Select2-Initialisierung gesetzt ohne `.trigger("change")` - Fix: Wert wird jetzt nach `initSelect2()` mit Trigger gesetzt - Betrifft: anlagen.php und contact_anlagen.php (Kategorie-Filter mit Select2) - **Fehlende color-Property**: `fetchAllBySystem()` hat `$type->color` nicht gesetzt - Options mit `data-color` Attribut hatten leeren Wert ### Datenbank-Aenderungen - Neue Spalte `has_product` (tinyint) in `llx_kundenkarte_anlage_type` - Neue Spalte `has_product` (tinyint) in `llx_kundenkarte_building_type` - Migration `migrate_v860_has_product()` in modKundenKarte.class.php --- ## 8.5 (2026-03) ### Neue Features - **Mein Betrieb (Werkzeuge & Maschinen)**: Eigene Baumansicht fuer Firmen-Equipment - Neue Seite `werkzeuge.php` mit System-Tabs, Baum und Graph-Ansicht - Neues System "WERKZEUG" fuer firmeneigene Geraete - Menue-Eintrag unter KundenKarte > Mein Betrieb - **Zubehoer-System**: Zubehoer und Ersatzteile pro Anlage zuordnen - Neue Klasse `AnlageAccessory` mit CRUD und Bestellfunktion - Lieferantenbestellung direkt aus Zubehoer-Liste generierbar - Typ-Flag `has_accessories` steuert Verfuegbarkeit pro Typ - **Produkt-Zuordnung**: Dolibarr-Produkt mit Anlage verknuepfen - `fk_product` Spalte in `llx_kundenkarte_anlage` - Autocomplete-Suche im Formular - Produkt-Details (Ref, Label, Preis) unter Element im Baum - **Ausgebaut-Status**: Anlagen als "ausgebaut" markieren - Toggle per Rechtsklick/Button am Element - Ausgebaute Elemente ausgegraut (opacity 0.4, dashed border) - Toggle-Button in Toolbar zum Ein-/Ausblenden - Ausbaudatum wird erfasst und angezeigt ### Datenbank-Aenderungen - Neue Spalte `decommissioned` in `llx_kundenkarte_anlage` - Neue Spalte `date_decommissioned` in `llx_kundenkarte_anlage` - Neue Spalte `fk_product` in `llx_kundenkarte_anlage` - Neue Spalte `has_accessories` in `llx_kundenkarte_anlage_type` - Neue Tabelle `llx_kundenkarte_anlage_accessory` - Neues System `WERKZEUG` in `llx_c_kundenkarte_anlage_system` --- ## 7.5 (2026-03) ### Neue Features - **FI/RCD-Schutzgruppen**: Equipment kann Schutzgeraeten zugeordnet werden - Farbliche Markierung der Schutzgruppen im Schaltplan - Dropdown zur Auswahl des Schutzgeraets im Equipment-Dialog - Visuelle Verbindung durch farbige Raender - **Gebuendelte Terminals**: Multi-Phasen-Abgaenge fuer Drehstrom-Verbraucher - "Alle buendeln" Option fuer E-Herd, Durchlauferhitzer etc. - Ein Abgang belegt alle Terminals des Equipment - Zentrierter Pfeil ueber alle Terminals - **Terminal-Konfiguration**: Korrekte Terminal-Anzahl aus Typ-Konfiguration - Neozed 3F zeigt 3 statt 4 Terminals (trotz 4 TE Breite) - Neue `getTerminalCount()` Hilfsfunktion - **Zuletzt bearbeitete Kunden**: Quick-Access auf Search-Screen - Speichert die letzten 5 bearbeiteten Kunden - Schneller Zugriff ohne Suche - **Medium-Typen aus Datenbank**: Dynamisches Kabeltyp-Dropdown - Kategorisierte Auswahl (NYM, NYY, Datenkabel, etc.) - Querschnitt-Spezifikationen als Unter-Dropdown - Offline-Cache fuer die Auswahl ### Verbesserungen - Terminal-Labels anklickbar zum direkten Bearbeiten - Kontextmenue fuer leere Terminals (Wahl Input/Output) - Equipment-Block-Value (B16A) kleiner dargestellt (8px) - Terminals direkt am Equipment-Block ausgerichtet - Block-Label mit Einheiten und Leerzeichen (40A 30mA) ### Bugfixes - Abgaenge werden nach Positionswechsel (oben/unten) korrekt angezeigt - Bundle-Option nur bei Equipment mit mehr als 1 Terminal sichtbar - Login-Fehler durch doppelte Variable-Deklaration behoben ### Datenbank-Aenderungen - Neue Spalte `bundled_terminals` in `llx_kundenkarte_equipment_connection` - Neue Spalten `fk_protection`, `protection_label` in `llx_kundenkarte_equipment` --- ## 5.2.0 (2026-02) ### Neue Features - **PWA Mobile App**: Offline-faehige Progressive Web App fuer Elektriker - Schaltschrank-Dokumentation direkt vor Ort im Keller (ohne Internet) - Kundensuche, Anlagen-Auswahl, Felder/Hutschienen/Automaten erfassen - Token-basierte Authentifizierung (15 Tage gueltig) - Automatische Synchronisierung wenn wieder online - Installierbar auf dem Smartphone Home Screen - Touch-optimiertes Dark Mode Design - Quick-Select fuer Automaten-Werte (B16, C32, etc.) - **Schaltplan-Editor: Block Hover-Tooltip** - Zeigt alle Felder mit `show_in_hover=1` Einstellung - Produktinfo mit Icon wenn Produkt zugewiesen - Position und Breite in TE - Schickes dunkles Design - **Schaltplan-Editor: Produkt-Zuordnung** - Autocomplete-Suche fuer Produkte beim Hinzufuegen/Bearbeiten - Produktinfo im Klick-Popup angezeigt ### Verbesserungen - Equipment-Popup zeigt jetzt Produktinfo mit Cube-Icon - Loeschbestaetigung fuer Panels und Hutschienen mit Inhalt ### Neue Dateien - `pwa.php` - PWA Haupteinstieg - `pwa_auth.php` - Token-basierte Authentifizierung - `ajax/pwa_api.php` - PWA AJAX API - `js/pwa.js` - PWA JavaScript App - `css/pwa.css` - PWA Mobile Styles - `sw.js` - Service Worker (Offline-Cache) - `manifest.json` - PWA Web App Manifest - `img/pwa-icon-192.png`, `img/pwa-icon-512.png` - App Icons --- ## 5.1.0 (2026-02) ### Verbesserungen - **Graph-Ansicht: Intelligente Feldanzeige** - Felder nach `position` sortiert (nicht mehr nach JSON-Reihenfolge) - Nur Felder mit `show_in_tree=1` werden auf den Graph-Nodes angezeigt - Nur Felder mit `show_in_hover=1` erscheinen im Tooltip - Badge-Werte im Graph mit Feldbezeichnung (z.B. "Hersteller: ABB") - Tooltip: Typ/System entfernt (redundant mit Graph-Node) - Tooltip: Farbige Badge-Kaesten wie in der Baumansicht - Shared Library `lib/graph_view.lib.php` fuer Toolbar/Container/Legende ### Neue Dateien - `lib/graph_view.lib.php` - Gemeinsame Graph-Funktionen (Toolbar, Container, Legende) --- ## 5.0.0 (2026-02) ### Neue Features - **Cytoscape.js Graph-Ansicht**: Neue interaktive Netzwerk-Visualisierung - Raeume als Compound-Container, Geraete als Nodes darin - Kabelverbindungen als sichtbare Edges (auch raumuebergreifend) - Durchgeschleifte Leitungen als gestrichelte Linien - Dagre-Layout: Hierarchischer Stromfluss top-down - Zoom/Pan/Fit-Controls, Mausrad-Zoom Toggle - Kabeltyp-Legende mit Farben - **Bearbeitungsmodus**: Nodes nur per "Anordnen"-Button verschiebbar, Positionen per "Speichern"-Button fest, "Abbrechen" setzt zurueck - Viewport-Persistenz (Zoom/Pan bleibt beim Seitenwechsel) - Klick auf Node/Edge oeffnet Detail-/Bearbeitungsseite - Suche als Overlay im Graph-Container (Nodes hervorheben/abdunkeln) - Kontextmenue (Rechtsklick): Ansehen, Bearbeiten, Kopieren, Loeschen - PNG-Export des Graphen - Admin-Setting: Ansichtsmodus (Baum/Graph) in Setup waehlbar - Toolbar zweizeilig: Aktionen oben, Graph-Steuerung unten - **Verbindungsformular verbessert** - Select-Dropdowns zeigen nur Geraete (keine Gebaeude/Raeume) - Icons (FontAwesome) in Select-Optionen via select2 - Gebaeude-Pfad als Kontext (z.B. "EG > Zahlerschrank") - Systemuebergreifende Geraete-Auswahl (kein Systemfilter) ### Neue Dateien - `js/kundenkarte_cytoscape.js` - Graph-Namespace (~750 Zeilen) - `css/kundenkarte_cytoscape.css` - Graph-Styles mit Dark Mode - `ajax/graph_data.php` - AJAX: Baum+Verbindungen → Cytoscape-Format - `ajax/graph_save_positions.php` - AJAX: Node-Positionen speichern - `js/cytoscape.min.js`, `js/dagre.min.js`, `js/cytoscape-dagre.js`, `js/cytoscape-cose-bilkent.js` - Bibliotheken ### Bugfixes - **Contact-Filter im Graph**: Graph zeigte faelschlicherweise Kontakt-Elemente auf Kunden-Ebene - Fix: `fk_contact` Filter in `graph_data.php` analog zum Baum - **Verbindung hinzufuegen**: Formular zeigte "Feld erforderlich"-Fehler beim Oeffnen - Ursache: `action=create` in URL triggerte Handler vor Formular-Anzeige - Fix: Korrekte Dolibarr-Konvention (create=Formular, add=Verarbeitung) - **Leere Dropdowns**: Quelle/Ziel-Auswahl war leer wenn System keine Elemente hatte - Fix: Kein System-Filter mehr (Kabel koennen systemuebergreifend sein) - **Kontakt-Redirect**: Nach Verbindung-Bearbeiten landete man auf Kundenansicht statt Kontaktansicht - Fix: `contactid` wird jetzt in allen Edit-URLs mitgegeben - **Kontakt-Anlagen**: Auf Stand von Kunden-Anlagen gebracht - tree_display_mode, badge_color, Schaltplan-Editor, Drag&Drop Upload ### Datenbank-Aenderungen - Neue Spalten `graph_x`, `graph_y` in `llx_kundenkarte_anlage` (Node-Positionen) - Neue Spalte `fk_building_node` in `llx_kundenkarte_anlage` (vorbereitet fuer Phase 2) ### Admin-Settings - `KUNDENKARTE_DEFAULT_VIEW`: `tree` (Standard) oder `graph` --- ## 4.0.1 (2026-02) ### Neue Features - **Badge-Farben pro Feld**: Individuelle Farben fuer Badges im Baum konfigurierbar - Neue Spalte in Admin > Element-Typen > Felder - Color-Picker fuer einfache Farbauswahl - Hex-Format (#RRGGBB) - **Datei-Vorschau Tooltip**: Hover ueber Datei-Badge zeigt Vorschau - Thumbnails fuer Bilder - Icons fuer Dokumente (PDF, Word, Excel, etc.) - Neuer AJAX-Endpoint `ajax/file_preview.php` - **Mobile/Kompakte Ansicht**: Optimiert fuer mobile Geraete - Kompakt-Modus Toggle-Button - Einheitliche Button-Groessen auf mobilen Geraeten - 2x2 Grid-Layout auf sehr kleinen Bildschirmen - Touch-freundliche Bedienelemente ### Bugfixes - **Dolibarr App Navigation**: Vor/Zurueck-Pfeile funktionieren jetzt korrekt - Module akzeptieren nun `id` UND `socid`/`contactid` Parameter - Kunden-Kontext bleibt beim Navigieren erhalten - Betroffene Dateien: alle Tab-PHP-Files - **Datei-Badge Icon**: Zeigt jetzt Bueroklammer-Icon statt nur Zahl - **Kontakt-Anlagen Kategorie-Filter**: Fehlende Kategorie-Auswahl hinzugefuegt - Gebaeude/Standort vs. Technisches Element jetzt auch bei Kontakten waehlbar - Strom-Typen sind jetzt auswaehlbar - **Schematic Editor**: Hutschiene hinzufuegen Button bei leerem Panel - Button erscheint jetzt auch wenn noch keine Hutschiene existiert - **Panel-Hoehe**: Korrektur der Berechnung bei mehreren Hutschienen - Unterer Rand wird nicht mehr abgeschnitten ### Datenbank-Aenderungen - Neue Spalte `badge_color` in `llx_kundenkarte_anlage_type_field` --- ## 3.5.0 (2026-02) ### Neue Features - **Drag & Drop Sortierung**: Elemente im Anlagenbaum per Drag & Drop umsortieren - Geschwister-Elemente auf gleicher Ebene verschieben - Visuelle Drop-Indikatoren (blaue Linie) - Reihenfolge wird sofort per AJAX gespeichert (kein Seitenreload) - Funktioniert in Kunden- und Kontakt-Anlagen ### Bugfixes - **Duplicate-Key-Fehler behoben**: UNIQUE KEY `uk_kundenkarte_societe_system` um `fk_contact` erweitert - Systeme koennen nun gleichzeitig auf Kunden- und Kontaktebene existieren - Migration wird automatisch beim Modul-Aktivieren ausgefuehrt ### Verbesserungen - Visueller Abstand zwischen Root-Elementen im Anlagenbaum - INSERT fuer Kunden-Systeme setzt explizit `fk_contact = 0` --- ## 2.0 (2026-01) ### Neue Features - **PDF Export mit Vorlage**: Briefpapier/Hintergrund-PDF kann als Vorlage hochgeladen werden - Upload im Admin-Bereich unter Einstellungen - Vorlage wird als Hintergrund auf allen Seiten verwendet - **PDF Schriftgroessen konfigurierbar**: Anpassbare Schriftgroessen fuer den PDF-Export - Ueberschriften (7-14pt) - Inhalte (6-12pt) - Feldbezeichnungen (5-10pt) - **Verbesserte PDF-Baumdarstellung**: Professionelle Darstellung der Anlagenstruktur - Farbcodierte Header pro Hierarchie-Ebene (dezente Grauabstufungen) - Abgerundete Rahmen um Elemente - Visuelle Verbindungslinien zwischen Elementen - Bessere Einrueckung und Lesbarkeit ### Verbesserungen - Logo aus PDF-Export entfernt (ersetzt durch Vorlagen-System) - Dynamische Felder fuer Element-Typen (Ueberschrift als neuer Feldtyp) - Kopierfunktion fuer Elemente und Typen --- ## 1.1 (2026-01) ### Neue Features - **Kontakt/Adressen-Unterstuetzung**: Favoriten und Anlagen koennen nun auch auf Kontakt-/Adressebene verwaltet werden - Ideal fuer Kunden mit mehreren Gebaeuden/Standorten - Neue Tabs "Favoriten" und "Anlagen" auf Kontaktkarten - Vollstaendige Trennung der Daten zwischen Kunde und Kontakten ### Verbesserungen - Mengen-Eingabe bei Favoriten vereinfacht (Textfeld + Speichern-Button) - Modul-Icon geaendert zu fa-id-card - Dokumentation aktualisiert ### Datenbank-Aenderungen - Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_favorite_products` - Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_anlage` - Neue Spalte `fk_contact` in Tabelle `llx_kundenkarte_societe_system` ### Hinweis zum Upgrade Nach dem Update bitte das Modul einmal deaktivieren und wieder aktivieren, damit die SQL-Aenderungen ausgefuehrt werden. --- ## 1.0 ### Features - Favoriten-Produkte fuer Kunden - Produkte als Favoriten markieren - Standardmengen festlegen - Bestellungen aus Favoriten generieren - Sortierbare Liste - Technische Anlagen (Baumstruktur) - Systemkategorien (Strom, Internet, Kabel, Sat) - Konfigurierbare Element-Typen - Individuelle Felder pro Typ - Datei-Upload mit Vorschau - Hierarchische Struktur - Admin-Bereich - Systeme verwalten - Typen verwalten - Felder konfigurieren Initial version