fix(akquise): Anbieter wieder als Freitext mit Vorschlaegen

Das Dropdown fiel dem Feld zur Last: neue Vermittler tauchen zu oft auf, als
dass das Eintragen an einer gepflegten Liste haengen sollte. Anbieter ist wieder
ein Textfeld, jetzt mit Vorschlagsliste aus den bisherigen Eintraegen - der
zuletzt benutzte zuerst.

In den Einstellungen bleiben die drei Listen "Von", "Kanal" und "Berater".
dropProviderOptions() nimmt 'provider' aus dem ENUM der Optionstabelle und
loescht die dort gepflegten Werte; die Anbieter der Akquise-Eintraege bleiben
unberuehrt, sie stehen als Text in crm_acquisitions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sascha Wolf
2026-08-18 12:21:33 +02:00
co-authored by Claude Opus 5
parent 05cc261900
commit 23087a12fb
11 changed files with 135 additions and 50 deletions
+9 -6
View File
@@ -399,20 +399,23 @@ CREATE TABLE IF NOT EXISTS crm_acquisitions (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*
* Auswahllisten der Akquise. "Von", "Anbieter", "Kanal" und "Berater" sind
* Dropdowns, deren Inhalte in den Einstellungen gepflegt werden - Freitext hat
* aus "Hays", "hays" und "Hays AG" drei Anbieter gemacht.
* Auswahllisten der Akquise. "Von", "Kanal" und "Berater" sind Dropdowns, deren
* Inhalte in den Einstellungen gepflegt werden.
*
* Bewusst eine Tabelle mit Feldkennzeichen statt vier Tabellen: die Felder
* "Anbieter" gehoert ausdruecklich nicht dazu: dort wird frei getippt, mit
* Vorschlaegen aus den bisherigen Eintraegen. Neue Vermittler tauchen zu oft auf,
* als dass sich das Eintragen an einer gepflegten Liste aufhalten sollte.
*
* Bewusst eine Tabelle mit Feldkennzeichen statt drei Tabellen: die Felder
* verhalten sich gleich, und jede weitere Liste ist damit ein Wert im ENUM statt
* einer neuen Tabelle samt Route.
*
* Der Unique-Schluessel greift ueber die Kollation utf8mb4_unicode_ci auch bei
* abweichender Gross-/Kleinschreibung: "hays" ist neben "Hays" kein neuer Wert.
* abweichender Gross-/Kleinschreibung: "mail" ist neben "Mail" kein neuer Wert.
*/
CREATE TABLE IF NOT EXISTS crm_acquisition_options (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
field ENUM('sender','provider','channel','consultant') NOT NULL,
field ENUM('sender','channel','consultant') NOT NULL,
value VARCHAR(190) NOT NULL,
created_by INT UNSIGNED NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,