Der Wiedereintritt war da, nur nicht erreichbar
Aus dem Gespraech vom 17.09.2026.
Der Kunde suchte den Knopf "Wiedereintritt" an einer ausgetretenen Person
und hielt ihn fuer verschwunden — "ich dachte eigentlich, das ist schon
implementiert, das war mal drin". Er war drin. Er hing nur an
employee.status, und diese Spalte haengt nach: an einer Person, deren
Austritt erfasst und inzwischen vollzogen war, stand dort weiter "Aktiv".
Das ist mein Fehler beim Statusfix. Umgestellt waren dort `isActive` und
`canEditData` — die fuenf einzelnen Abfragen in derselben Datei blieben
stehen, dazu je eine in KarenzPanel und TerminatePanel. Jetzt liest keine
mehr die Spalte; die beiden Panels bekommen den abgeleiteten Status
uebergeben, statt ihn sich selbst aus der Zeile zu holen.
Betroffen war ausser dem Wiedereintritt auch: welcher Austritts-Knopf
erscheint ("Nicht angetreten" statt "Austritt"), die Beschriftung der
Abwesenheit, die Vorbelegung der Beendigungsart und ob die Zugehoerigkeit
angezeigt wird.
Dazu: die Niederlassung ist aus dem Reiter Organisation wieder raus. Sie
stand dort als unsere Auslegung von Anforderung 8; der Kunde hat sie im
Gespraech gestrichen ("nimm's mal hier raus"). Was mit der Anforderung
gemeint war, bleibt offen.
This commit is contained in:
@@ -3,7 +3,7 @@ import userEvent from "@testing-library/user-event";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { TerminatePanel } from "@/components/employees/panels/TerminatePanel";
|
||||
import { ToastProvider } from "@/components/ui/Toast";
|
||||
import type { Database } from "@/lib/types";
|
||||
import type { Database, EmploymentStatus } from "@/lib/types";
|
||||
|
||||
type EmployeeRow = Database["public"]["Tables"]["employees"]["Row"];
|
||||
|
||||
@@ -76,10 +76,23 @@ function mitarbeiter(teil: Partial<EmployeeRow> = {}): EmployeeRow {
|
||||
} as EmployeeRow;
|
||||
}
|
||||
|
||||
function zeige(teil: Partial<EmployeeRow> = {}) {
|
||||
// Der Status kommt als eigener Wert und nicht mehr aus der Zeile: die Spalte
|
||||
// `employees.status` hängt nach, deshalb leitet die Akte ihn aus den Daten ab
|
||||
// und reicht ihn durch (siehe lib/reports.ts, deriveStatusAsOf).
|
||||
function zeige(teil: Partial<EmployeeRow> = {}, status?: EmploymentStatus) {
|
||||
// Vorgabe aus der Zeile, damit die vorhandenen Fälle unverändert das meinen,
|
||||
// was sie meinten — `zeige({ status: "Aktiv" })` beschreibt weiterhin eine
|
||||
// aktive Person. Der abgeleitete Status ist nur noch ein eigener Weg zum
|
||||
// selben Wert, und die Vorgabe „Geplant" entspricht der Zeile oben.
|
||||
return render(
|
||||
<ToastProvider>
|
||||
<TerminatePanel open onClose={() => {}} employee={mitarbeiter(teil)} directReportCount={0} />
|
||||
<TerminatePanel
|
||||
open
|
||||
onClose={() => {}}
|
||||
employee={mitarbeiter(teil)}
|
||||
status={status ?? teil.status ?? "Geplant"}
|
||||
directReportCount={0}
|
||||
/>
|
||||
</ToastProvider>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user