43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# #020 Vorgesetzter auch für von Hand angelegte Personen
|
||
|
||
**Status:** offen
|
||
**Im Tracker:** [#31](https://git.wilde-server.de/florian.wilde/Laufzettel/issues/31) — die Zählung dort schließt Pull Requests ein und läuft deshalb auseinander
|
||
**Meilenstein:** v0.2.0
|
||
**Labels:** phase-2, backend
|
||
**Geschätzt:** 3 h **Tatsächlich:** –
|
||
|
||
## Ziel
|
||
|
||
Eine Person, die nicht aus dem Verzeichnis kommt, kann heute keinen Vorgesetzten haben. Das fiel in
|
||
[#017](017-seed-sieben-vorlagen.md) auf: der Auftrag verlangt für den Beispielbestand „Maria Huber,
|
||
Vorgesetzte Petra Klein“, und genau diese Zuordnung lässt sich nirgends speichern.
|
||
|
||
## Woran es liegt
|
||
|
||
`Mitarbeiter.vorgesetzterExterneId` trägt die `externeId` des Vorgesetzten, und die ist nur
|
||
**innerhalb einer Verzeichnisquelle** eindeutig. Beide Lesepfade steigen deshalb aus, wenn die
|
||
Person keine Quelle hat:
|
||
|
||
- `vorgesetzterVon()` in `src/server/queries/mitarbeiter.ts`
|
||
- `vorgesetztenLesen()` in `src/server/services/platzhalter.ts`
|
||
|
||
Das ist für Verzeichnis-Personen richtig. Für eine von Hand angelegte Person gibt es schlicht kein
|
||
Feld — `{{vorgesetzter_sam}}` bleibt dort immer leer.
|
||
|
||
## Aufgaben
|
||
|
||
- [ ] Entscheiden: eigene Selbstbeziehung `vorgesetzterId` (sauber, aber zwei Wege zur selben
|
||
Auskunft) **oder** `vorgesetzterExterneId` auch im Bereich „ohne Quelle“ auflösen (`quelleId
|
||
IS NULL`), mit stabilen Kennungen für manuelle Personen
|
||
- [ ] Beide Lesepfade und `{{vorgesetzter}}` / `{{vorgesetzter_sam}}` entsprechend erweitern
|
||
- [ ] Oberfläche: Vorgesetzten auf der Mitarbeiterseite setzen und entfernen
|
||
- [ ] Der Abgleich darf die Zuordnung nicht überschreiben, wenn das Verzeichnis keinen `manager`
|
||
liefert — und keine Schleife zulassen (A ist Vorgesetzter von B ist Vorgesetzter von A)
|
||
- [ ] Seed: Petra Klein als Vorgesetzte von Maria Huber eintragen
|
||
|
||
## Akzeptanzkriterien
|
||
|
||
- [ ] Test: eine von Hand angelegte Person bekommt einen Vorgesetzten, `{{vorgesetzter_sam}}` löst auf
|
||
- [ ] Test: die Zuordnung gilt nur innerhalb desselben Kunden
|
||
- [ ] Test: ein Abgleich ohne `manager` löscht eine von Hand gesetzte Zuordnung nicht
|