import { ABSENCE_TYPES } from "./absence"; import { HAY_GRADE_WERTE } from "./hay-grade"; import { KUENDIGUNGSSCHUTZ_GRUENDE } from "./kuendigungsschutz"; import { MITARBEITERARTEN } from "./mitarbeiterart"; import { EMERGENCY_RELATIONS } from "./types"; // Welche Felder in „Eintrag berichtigen" eine Auswahl statt eines Textfeldes // bekommen. // // Der Dialog zeigte für jedes Feld dasselbe freie Textfeld — auch für // „Notfallkontakt Verhältnis", wo die Erfassung überall sonst eine Liste // führt. Wer dort „Gattin" statt „Gattin/Gatte" eintippte, erzeugte einen // Wert, den keine Auswertung mehr findet, und merkte nichts davon: die // Berichtigung schreibt in dieselbe Spalte wie das Formular, nur ohne dessen // Prüfung. // // Die Schlüssel sind die Bezeichnungen aus `app_feld_karte()` — genau die // Zeichenketten, die in `employee_history.changes` unter `feld` stehen. Ein // Tippfehler hier fiele nicht auf, das Feld bliebe einfach ein Textfeld; // deshalb prüft tests/unit/historie-felder.test.ts jeden Schlüssel gegen die // Migration. // // Bewusst **nicht** aufgenommen sind die Felder mit Aufzählungstypen in der // Datenbank (Geschlecht, Beschäftigungsausmaß, Vertragsart, Besetzungsart …) // und die Ja/Nein-Felder. Dort ist der gespeicherte Text nicht die Anzeige — // `m`/`w`, `true`/`false` —, und eine Liste, die die Anzeigeform schreibt, // liefe in einen Umwandlungsfehler oder, schlimmer, in einen stillen // Fehlwert. Das gehört gemeinsam mit der Anzeigeschicht gelöst, nicht // nebenbei hier. export const FELD_AUSWAHLEN: Record = { // Kein Aufzählungstyp mehr, sondern eine Domain über text — die Liste darf // hier also stehen. Angezeigt wird der **gespeicherte** Wert und nicht der // Titel: „-" statt „Generic Grade". In einem Dialog, der eine Zeile der // Historie richtigstellt, ist genau das die richtige Anzeige, denn dort // steht hinterher derselbe Wert. "Hay-Grade": HAY_GRADE_WERTE, "Notfallkontakt Verhältnis": EMERGENCY_RELATIONS, "Kündigungsschutz Personenkreis": KUENDIGUNGSSCHUTZ_GRUENDE, Mitarbeiterart: MITARBEITERARTEN, "Art der Abwesenheit": ABSENCE_TYPES, }; /** Die Auswahl zu einem Feld, oder nichts — dann bleibt es ein Textfeld. */ export function auswahlFuer(feld: string): readonly string[] | undefined { return FELD_AUSWAHLEN[feld]; }