bmc_hub/fremtidige planer/sag-opretter-husbrugere-og-eksterne.md

176 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

2026-09-25 11:33:53 +02:00
# PLAN – Sagsopretter: husets brugere, medarbejdere og eksterne
> **Status: Fremtidig plan – ikke implementeret.**
>
> Planen ændrer ikke eksisterende sager, kunder eller kontaktpersoner. Før
> udvikling kortlægges den nuværende sagsopretter, kontakt-søgning og
> kunde-/kontaktrelationer.
## 1. Formål
Når der oprettes en sag for eksempelvis et PFA-hus, er **huset/adressen**
kunden på sagen. Den person, som ringer eller bruger huset, skal registreres
som kontaktperson på sagen.
Personen kan være:
- medarbejder hos kunden
- husets bruger fra et andet firma
- ekstern, fx leverandør, håndværker eller gæst
Sagen skal fortsat have huset som kunde, også når personen arbejder for et
andet firma.
## 2. Arbejdsgang i sagsopretteren
1. Brugeren vælger først kunde/hus og eventuelt lokation.
2. Feltet **Kontaktperson** søger mens der skrives på navn, telefon og e-mail.
3. Resultater viser navn, firma, rolle og eventuel tidligere tilknytning til
huset.
4. Brugeren vælger en eksisterende person, eller fortsætter med en af de to
handlinger nederst i resultatlisten:
- **Opret medarbejder**
- **Opret ekstern / husets bruger**
5. Den oprettede kontakt vælges automatisk på sagen.
6. Kunde og lokation på sagen må ikke ændres af kontaktoprettelsen.
## 3. Opret medarbejder
Formularen skal være kort:
- navn
- telefon og/eller e-mail
- rolle eller afdeling, valgfrit
Den nye person knyttes til den valgte kunde/hus som medarbejder og tilføjes
som kontaktperson på sagen.
## 4. Opret ekstern / husets bruger
Formularen skal indeholde:
- navn
- telefon og/eller e-mail
- eget firma: vælg eksisterende eller opret nyt
- rolle ved huset, fx bruger, leverandør, håndværker eller gæst
- valgfri note
Personen får både sin egen firmatilknytning og en særskilt tilknytning til
det valgte hus/lokation. Det betyder, at samme person senere kan findes via
navn, eget firma og hus.
## 5. Datamodel og regler
Før implementering kortlægges eksisterende tabeller og API'er for:
- kontaktpersoner
- firma-/kunde-tilknytning
- sagens kontaktpersoner
- lokationer
Hvis den nuværende model ikke kan repræsentere en ekstern bruger af et hus,
oprettes en selvstændig, bagudkompatibel relation:
`kontakt_lokationsbrugere`
Foreslåede felter:
- `contact_id`
- `location_id`
- `customer_id` for huset
- `relation_type` (`employee`, `house_user`, `external_supplier`, `guest`)
- `company_id` for personens eget firma, valgfri
- `role`, `notes`
- `is_active`, oprettet/opdateret-tidspunkt
En person må have flere aktive relationer til flere huse. Eksisterende
kontakt- og kundedata må ikke omskrives eller flyttes.
### Firmaer i huset
Et firma, der bruger et hus men ikke er BMC-kunde, skal registreres som en
organisation med typen `external_house_company`.
Det skal have:
- et tydeligt tag, fx **Firma i huset**
- feltet `is_bmc_customer = false`
- feltet `show_in_customer_list = false`
- relation til hovedkunden og den konkrete lokation/hus
Det betyder, at firmaet kan have egen profil, egne brugere og egne kontaktdata
uden at optræde i den normale kundeliste eller blive valgt som fakturakunde.
Den normale kundeliste viser kun BMC-kunder som standard. En eksplicit filter
**Vis firmaer i huse og eksterne organisationer** viser de skjulte firmaer,
når det er nødvendigt.
Relationen skal være mange-til-mange, da ét firma kan bruge flere huse, og ét
hus kan rumme flere firmaer.
## 5.1 Placering i brugerfladen
På hovedkunden/huset tilføjes en fane:
**Brugere i huset**
Fanens to sektioner:
1. **Personer** – medarbejdere, husets brugere, leverandører og gæster.
2. **Firmaer i huset** – eksterne firmaer med antal brugere og de lokationer,
de er knyttet til.
På den konkrete lokation kan samme data vises som en mindre, filtreret
oversigt. Sagsopretteren søger først i personerne og firmaerne under det
valgte hus.
## 6. Søgning og dubletkontrol
Søgning skal prioritere:
1. personer, som allerede er knyttet til det valgte hus
2. personer hos den valgte kunde
3. øvrige kendte kontakter
Før oprettelse vises mulige dubletter ved samme e-mail eller telefon. Brugeren
skal kunne vælge den eksisterende kontakt i stedet for at oprette en ny.
## 7. Visning på sagen
Sagen skal vise:
- kunde: huset/adressen
- lokation, hvis valgt
- kontaktpersonens navn
- personens eget firma, hvis det er et andet firma
- relation til huset, fx `Husets bruger` eller `Ekstern leverandør`
Dette skal være tydeligt i både sagsdetalje og ved senere genåbning af sagen.
## 8. Afgrænsning for første version
Første version omfatter kun søgning, oprettelse og tilknytning af personer
under sagsoprettelse. Den må ikke ændre fakturakunde, eksisterende
kundehierarki, rettigheder eller historiske sager.
## 9. Implementeringsrækkefølge
1. Kortlæg nuværende kontakt- og sagsrelationer.
2. Beslut om eksisterende relationer er nok; opret kun ny migration ved behov.
3. Tilføj søge-API med kundens/husets relationer først.
4. Tilføj de to opret-flow i sagsopretteren.
5. Tilføj relationen for firmaer i huset og fanen **Brugere i huset**.
6. Tilføj automatisk valg af den nye kontakt på sagen.
7. Vis relationen tydeligt på sagsdetaljen.
8. Tilføj dubletkontrol og audit-log.
## 10. Acceptkriterier
- En PFA-lokation kan vælges som kunde på sagen.
- En bruger fra et andet firma kan oprettes uden at ændre sagens kunde.
- Personen kan findes igen ved navn, eget firma og hus.
- Medarbejder og ekstern kan oprettes fra samme kontakt-søgning.
- Firmaer i huset er skjult fra den normale kundeliste som standard.
- Firmaer i huset kan findes fra hovedkunden, lokationen og sagsopretteren.
- Eksisterende sager og kontakter virker uændret.