diff --git a/README.md b/README.md index 87bf1c8..7ca09c0 100755 --- a/README.md +++ b/README.md @@ -13,6 +13,9 @@ Das KundenKarte-Modul erweitert Dolibarr um zwei wichtige Funktionen fuer Kunden ### Technische Anlagen (Anlagen) - Hierarchische Baumstruktur fuer technische Installationen - Flexible Systemkategorien (z.B. Strom, Internet, Kabel, Sat) +- Kategorie-Auswahl beim Erstellen: Gebaeude/Standort oder Element/Geraet +- Typ-Select mit FontAwesome-Icons und Farbkodierung (Select2) +- Gebaeude-Typen gruppiert nach Ebene (Gebaeude, Etage, Fluegel, Raum, Bereich) - Konfigurierbare Element-Typen mit individuellen Feldern - Datei-Upload mit Bild-Vorschau und PDF-Anzeige - Separate Verwaltung pro Kunde oder pro Kontakt/Adresse (z.B. verschiedene Gebaeude) @@ -63,6 +66,8 @@ Im Admin-Bereich (Home > Setup > Module > KundenKarte) koennen Sie: - **Anlagen-Systeme**: System-Kategorien anlegen (z.B. Strom, Internet) - **Element-Typen**: Geraetetypen definieren (z.B. Zaehler, Router, Wallbox) - **Typ-Felder**: Individuelle Felder pro Geraetetyp konfigurieren +- **Gebaeudetypen**: Strukturtypen (Haus, Etage, Raum etc.) fuer die Gebaeude-Hierarchie +- **Kabeltypen**: Verbindungsmedien (NYM, NYY, CAT etc.) mit Spezifikationen - **Equipment-Typen**: Schaltplan-Komponenten (z.B. Sicherungsautomaten, FI-Schalter) mit Breite (TE), Farbe und Terminal-Konfiguration - **Phasenschienen-Typen**: Sammelschienen/Phasenschienen-Vorlagen (L1, L2, L3, N, PE, 3P+N etc.) mit Farben und Linien-Konfiguration diff --git a/admin/anlage_types.php b/admin/anlage_types.php index 23cbee3..7849fb0 100755 --- a/admin/anlage_types.php +++ b/admin/anlage_types.php @@ -345,6 +345,7 @@ if (in_array($action, array('create', 'edit'))) { $selAll = (empty($anlageType->fk_system)) ? ' selected' : ''; print ''; foreach ($systems as $sys) { + if ($sys->code === 'GLOBAL') continue; // Gebaeude-Typen haben eigenen Tab $sel = ($anlageType->fk_system == $sys->rowid) ? ' selected' : ''; print ''; } @@ -634,6 +635,7 @@ if (in_array($action, array('create', 'edit'))) { print ''; - // Type - print ''.$langs->trans('Type').''; + // Kategorie (Gebäude/Standort vs Element/Gerät) + $currentCategory = ''; + if (($isEdit || $isCopy) && !empty($anlage->fk_anlage_type)) { + // Kategorie des aktuellen Typs ermitteln + foreach ($types as $t) { + if ($t->id == $anlage->fk_anlage_type) { + $currentCategory = ($t->system_code === 'GLOBAL') ? 'building' : 'element'; + break; + } + } + } + $postedCategory = GETPOST('element_category', 'alpha'); + if ($postedCategory) $currentCategory = $postedCategory; + + print ''.$langs->trans('Category').''; + print ''; + + // Type (gefiltert nach Kategorie) + print ''.$langs->trans('Type').''; print ''; if (empty($types)) { print '
'.$langs->trans('NoTypesDefinedForSystem').''; @@ -692,6 +758,105 @@ if (empty($customerSystems)) { print ''; print ''; + + // JavaScript: Kategorie-Filter + Select2 mit Icons + print ''; } print '';