bmc_hub/fremtidige planer/sag-opretter-husbrugere-og-eksterne.md
2026-09-25 11:33:53 +02:00

176 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.