Daten via SQL (pw muss in .env eingetragen werden), Erweitert-Modus um nach anderen Feldern zu suchen

This commit is contained in:
2026-07-17 11:54:58 +02:00
parent b89dd1be80
commit 5b20729877
10 changed files with 1175 additions and 46 deletions
+23 -5
View File
@@ -2,9 +2,10 @@
Vorgeschaltete Webseite für die Ticket-Anlage mit verpflichtendem Kundenbezug
(Lösung #1 aus [redmine.unicon-gmbh.de](https://redmine.unicon-gmbh.de/redmine/issues/6)).
Die Kundenauswahl läuft über ein Autocomplete gegen die eigenen Stammdaten.
Die Kunden müssen also nicht als Auswahlliste in Redmine gepflegt werden.
Die Kundennummer wird in ein Text-Custom-Field des Tickets geschrieben.
Die Kundenauswahl läuft über ein Autocomplete gegen die Kundenstammdaten aus
dem WAWIS-SQL-Server (nur lesender Zugriff). Die Kunden müssen also nicht als
Auswahlliste in Redmine gepflegt werden. Die Kundennummer wird in ein
Text-Custom-Field des Tickets geschrieben.
## Ablauf
@@ -37,13 +38,30 @@ Danach http://localhost:3000 öffnen.
| REDMINE_PROJECT_ID | Ziel-Projekt für neue Tickets |
| REDMINE_TRACKER_ID | Tracker (z. B. Support) |
| CUSTOMER_FIELD_ID | ID des Custom Fields für die Kundennummer |
| CUSTOMERS_FILE | CSV mit den Kundenstammdaten (Nummer;Name) |
| CUSTOMERS_REFRESH_MS | Aktualisierungsintervall der Kundenliste in ms (Standard 300000 = 5 min) |
| DB_SERVER | Host des WAWIS-SQL-Servers |
| DB_PORT | Port des SQL-Servers (Standard 1433) |
| DB_DATABASE | Datenbankname (wawis) |
| DB_USER | SQL-User (report) |
| DB_PASSWORD | Passwort des SQL-Users |
Die Feld-ID lässt sich per GET /custom_fields.json ermitteln.
## SQL-Server-Anbindung (WAWIS)
Die Kundenstammdaten (Nummer + Name) werden beim Start und danach alle
`CUSTOMERS_REFRESH_MS` im Hintergrund aus dem WAWIS-SQL-Server geladen
(`db.js`, Standard-Abfrage auf `kunde`/`kunzu`). Es wird ausschließlich
gelesen (SELECT) es gibt keinen Schreibzugriff auf die Datenbank.
Gesperrte oder inaktive Kunden (`bsper`/`baktiv`) werden für die Auswahl
ausgeblendet. Schlägt eine Aktualisierung fehl, bleibt die zuletzt geladene
Liste aktiv.
Zugangsdaten stehen in `.env` (`DB_SERVER`, `DB_PORT`, `DB_DATABASE`, `DB_USER`,
`DB_PASSWORD`).
## Nächste Schritte Richtung Produktion
- Kundenliste direkt aus CRM/ERP ziehen (DB-View oder Export per Cron)
- Authentifizierung für die Mitarbeiter (z. B. LDAP/SSO im Reverse Proxy)
- WS-Nummer als zweites Custom Field automatisch mitschreiben
- HTTPS und Betrieb hinter dem vorhandenen Reverse Proxy