diff --git a/CHANGELOG.md b/CHANGELOG.md index d70c9f8..b7d0beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,9 @@ ## [Unreleased] ### UX-Fixes (Vorschlagsliste) -- Kundentyp-Filter (B2B/B2C) wird jetzt direkt an `select_company()` durchgereicht — wenn B2C gewaehlt ist, zeigt das Kunden-Dropdown nur noch Drittparteien ohne TVA-Nummer (entsprechend umgekehrt fuer B2B). -- Auto-Submit beim Wechsel des Kundentyps, damit das Dropdown ohne extra "Suche"-Klick aktualisiert wird. +- Kundentyp-Filter (B2B/B2C) wird jetzt direkt an `select_company()` durchgereicht — wenn B2C gewaehlt ist, zeigt das Kunden-Dropdown nur noch Drittparteien ohne TVA-Nummer (entsprechend umgekehrt fuer B2B). Filter nutzt Dolibarrs **Universal-Search-Criteria-Syntax** `(feld:operator:wert)` — plain SQL wuerde durch `forgeSQLFromUniversalSearchCriteria` fehlschlagen. +- Auto-Submit beim Wechsel des Kundentyps + automatisches Reset von `search_socid`, damit das Dropdown ohne extra "Suche"-Klick aktualisiert wird und keine ungueltige (im neuen Filter nicht enthaltene) Kunden-ID stehen bleibt. +- `search_socid=-1` (von `select_company` als "nichts ausgewaehlt" geliefert) wird jetzt korrekt ignoriert statt als Filter auf `fk_soc=-1` zu wirken. - Skip-Grund-Spalte in der Uebersprungen-Tabelle: `opacitymedium` jetzt am inneren `span` statt am `td`, damit Theme-spezifisches Zellen-Border-Verhalten konsistent bleibt. ### Versand-Reminder (Cron + Ntfy) diff --git a/list.php b/list.php index 24b473d..e4d96ea 100644 --- a/list.php +++ b/list.php @@ -67,7 +67,8 @@ if ($filter_minverzug !== '' && $filter_minverzug !== null) { $filter['min_tage_verzug'] = (int) $filter_minverzug; } $filter_socid = GETPOST('search_socid', 'int'); -if (!empty($filter_socid)) { +// select_company liefert -1 fuer "nichts ausgewaehlt" — nur positive IDs als Filter werten +if ((int) $filter_socid > 0) { $filter['soc_id'] = (int) $filter_socid; } $filter_minbetrag = GETPOST('filter_minbetrag', 'alpha'); // Komma/Punkt zugelassen @@ -116,8 +117,12 @@ print '