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