40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# Kundesøgning mod Ordrestyring
|
|
|
|
## Formål
|
|
|
|
Kundesøgningen lader projektflowet finde en kunde i den lokalt synkroniserede Ordrestyring-database og udfylde projektets kundedata.
|
|
|
|
## Backend
|
|
|
|
Routes ligger i `backend/unified-server.js`:
|
|
|
|
| Endpoint | Funktion |
|
|
|---|---|
|
|
| `GET /api/customers/search?q=<tekst>` | Søger i kundenummer, navn, adresse, postnummer, by, mail og telefon |
|
|
| `GET /api/customers/:customerNumber` | Henter én kunde med tilgængelige metadata |
|
|
| `POST /api/sync/customers` | Opdaterer den lokale kundekopi fra Ordrestyring |
|
|
|
|
Søgeteksten skal være mindst to tegn. Resultater begrænses til 50 og prioriterer matches, der starter med søgeteksten.
|
|
|
|
## Frontend
|
|
|
|
`frontend/src/components/CustomerSearch.js` håndterer:
|
|
|
|
- 300 ms debounce;
|
|
- loading- og fejlstatus;
|
|
- dropdown placeret via portal;
|
|
- markering af mulige dubletter før valg;
|
|
- valg og rydning af kunde;
|
|
- manuel kundesynkronisering.
|
|
|
|
Komponenten modtager `apiBaseUrl`, `onCustomerSelect` og `selectedCustomer`.
|
|
|
|
## Lokal kontrol
|
|
|
|
```bash
|
|
curl "http://localhost:4032/api/customers/search?q=Test"
|
|
curl "http://localhost:4032/api/customers/TEST_CUSTOMER_NUMBER"
|
|
```
|
|
|
|
Kontrollér både succes, søgetekst under to tegn, ingen resultater og databasefejl. Brug aldrig rigtige kundenavne, adresser, mails eller telefonnumre i dokumentation eller testfixtures.
|