Die Exportkarten nennen die ganze Auswahl, nicht nur den Status
Das Einschraenken der Downstream-Exporte gab es schon: exportHref reicht die ganze Adresszeile weiter, und ladeExportMitarbeiter wendet dieselben Kriterien an wie der Bericht daneben -- Eintritt ab, Austritt bis, Wochenstunden, Beschaeftigungsart und die uebrigen. Nur sah man es den Karten nicht an. Dort stand ausschliesslich der Status; alles andere steckt eingeklappt in "Weitere Kriterien" weiter oben. Damit sah eine Datei mit 40 Personen genauso aus wie eine mit 785. Fuer einen Bericht ist das aergerlich, fuer ein Load-File in ein Zielsystem ist es ein Datenstand, den dort niemand mehr hinterfragt: es fehlen Personen, und es sieht nicht nach einem Filter aus. Die drei Karten im Bestandsmodus zeigen jetzt Stichtag, Status, Einheit, Standort, jedes gesetzte Kriterium und die Zeilenzahl. beschreibeKriterien steht neben anzahlKriterien in derselben Datei und liest dieselben Listen -- ein neues Kriterium erscheint damit von selbst auch auf den Karten. Ein Test haelt beide gegeneinander, damit die Zahl am Aufklapper und der Text auf der Karte nicht auseinanderlaufen.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { ABSENCE_TYPES } from "./absence";
|
||||
import { AUSTRITTSART_LABELS, AUSTRITTSARTEN, BEENDIGUNGSART_WERTE } from "./beendigung";
|
||||
import { fmtDate } from "./format";
|
||||
import { HAY_GRADE_WERTE } from "./hay-grade";
|
||||
import { KUENDIGUNGSSCHUTZ_GRUENDE } from "./kuendigungsschutz";
|
||||
import { MITARBEITERARTEN } from "./mitarbeiterart";
|
||||
@@ -179,6 +180,49 @@ export function anzahlKriterien(c: Criteria): number {
|
||||
return n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Die gesetzten Kriterien in Worten.
|
||||
*
|
||||
* Die Exportkarten nannten nur den Status. Die übrigen Kriterien stehen
|
||||
* eingeklappt weiter oben und wirken auf jeden Export dieser Seite genauso —
|
||||
* wer eines gesetzt und vergessen hatte, lud eine Datei herunter, die nach dem
|
||||
* ganzen Haus aussah und einen Ausschnitt enthielt. Bei einer Datei für ein
|
||||
* Zielsystem merkt das niemand mehr, sobald sie dort eingespielt ist: dort
|
||||
* fehlen dann Personen, und es sieht aus wie ein Datenstand, nicht wie ein
|
||||
* Filter.
|
||||
*
|
||||
* `anzahlKriterien` daneben zählt dasselbe; hier steht, *was* es ist.
|
||||
*/
|
||||
export function beschreibeKriterien(c: Criteria): string[] {
|
||||
const teile: string[] = [];
|
||||
|
||||
for (const k of AUSWAHL_KRITERIEN) {
|
||||
const wert = c.auswahl[k.key];
|
||||
if (!wert) continue;
|
||||
teile.push(`${k.label}: ${k.optionen.find((o) => o.wert === wert)?.label ?? wert}`);
|
||||
}
|
||||
|
||||
for (const k of JANEIN_KRITERIEN) {
|
||||
const wert = c.jaNein[k.key];
|
||||
if (wert) teile.push(`${k.label}: ${wert}`);
|
||||
}
|
||||
|
||||
for (const k of ZEITRAUM_KRITERIEN) {
|
||||
const z = c.zeitraum[k.key];
|
||||
if (!z) continue;
|
||||
if (z.von && z.bis) teile.push(`${k.label} ${fmtDate(z.von)} bis ${fmtDate(z.bis)}`);
|
||||
else if (z.von) teile.push(`${k.label} ab ${fmtDate(z.von)}`);
|
||||
else if (z.bis) teile.push(`${k.label} bis ${fmtDate(z.bis)}`);
|
||||
}
|
||||
|
||||
const { stundenVon: von, stundenBis: bis } = c;
|
||||
if (von !== undefined && bis !== undefined) teile.push(`Wochenstunden ${von} bis ${bis}`);
|
||||
else if (von !== undefined) teile.push(`Wochenstunden ab ${von}`);
|
||||
else if (bis !== undefined) teile.push(`Wochenstunden bis ${bis}`);
|
||||
|
||||
return teile;
|
||||
}
|
||||
|
||||
/** Alle Parameternamen, die zu den Kriterien gehören — zum Zurücksetzen. */
|
||||
export function kriterienParameter(): string[] {
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user