Die sieben Ablaeufe des Hauses liegen nach dem Seed als veroeffentlichte Version 1 bereit: 36 Abschnitte, 155 Schritte, 28 Variablen, jeder Schritt mit Hilfetext. Sie stehen als JSON im Austauschformat unter prisma/seed-daten/vorlagen/ und werden beim Einrichten gegen dasselbe Schema geprueft wie ein Import. Der Seed richtet ein, er raeumt nicht auf: jede Zeile hat einen sprechenden Schluessel, und was es schon gibt, bleibt unberuehrt. Erst Entwurf, dann veroeffentlichen - die Trigger aus #010 lassen keinen anderen Weg zu. Im Modus DIENSTLEISTUNG haengt der Beispielbestand an der Musterfirma, LZ-7K3F9Q fuehrt also auf MUS-PC-001. Dazu zwei Zusagen eingeloest, die niemand deckte: {{ou_gesperrt}} kommt jetzt wirklich aus den Einstellungen, und Titel und Hilfetext eines Laufs bekommen dasselbe generierte Passwort wie der Befehl daneben - vorher stand im Befehl A und im Hilfetext B. Closes #17 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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
|