176 lines
5.6 KiB
Markdown
176 lines
5.6 KiB
Markdown
# 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.
|