YTD heisst bis heute, nicht bis zum Jahresende
All checks were successful
CI / Lint, Typen, Tests, Build (push) Successful in 11m29s
CI / Migrationen auf leerer Datenbank (push) Successful in 10m6s

Die Kacheln "Eintritte/Austritte (YTD)" zaehlten bis zum 31.12. und damit auch,
was erst bevorsteht: ein fuer den 01.11. erfasster Austritt stand schon im
September als geschehen da. Die Kachel sagte 2, tatsaechlich war es 1.

Der Kommentar an der Kachel nannte die Absicht seit jeher richtig -- "seit
Jahresbeginn bis heute, nicht das ganze Kalenderjahr" --, nur stand darunter
yearEnd. Was kommt, steht ohnehin in "Anstehend" daneben; die Kachel soll
sagen, was war.

Der Verweis auf den Bericht traegt denselben Zeitraum, sonst zeigte der Bericht
eine andere Zahl als die Kachel, ueber die man ihn geoeffnet hat. Und die
Variable heisst jetzt ytdBis statt yearEnd -- ein Name, der "Jahresende" sagt
und "heute" bedeutet, waere die naechste Fundstelle gewesen.
This commit is contained in:
2026-09-29 20:05:55 +02:00
parent cf5ed5c6c6
commit fe858c6c24
2 changed files with 21 additions and 7 deletions

View File

@@ -22,13 +22,22 @@ export type DashboardParams = {
userId: string | null;
today: string;
yearStart: string;
yearEnd: string;
/**
* Das obere Ende des YTD-Fensters — **heute**, nicht der 31.12.
*
* Hier stand das Jahresende, womit die Kacheln „Eintritte/Austritte (YTD)"
* auch zählten, was erst bevorsteht: ein für den 01.11. erfasster Austritt
* stand schon im September als geschehen da. „Year to date" heisst bis
* heute, und die Kachel soll sagen, was war — was kommt, steht in
* „Anstehend" daneben. Gemeldet im Test vom 29.09. (B.02).
*/
ytdBis: string;
bisIso: string;
arten: AnstehendArt[];
};
export async function loadDashboardData(tx: Tx, p: DashboardParams) {
const { userId, today, yearStart, yearEnd, bisIso, arten } = p;
const { userId, today, yearStart, ytdBis, bisIso, arten } = p;
const zeigt = (art: AnstehendArt) => arten.includes(art);
// Elf Abfragen standen hier in einem Promise.all, das keine
// Gleichzeitigkeit war: eine Transaktion hängt an einer Verbindung, und
@@ -43,7 +52,7 @@ export async function loadDashboardData(tx: Tx, p: DashboardParams) {
.select(({ fn }) => fn.countAll<string>().as("anzahl"))
.where("event_type", "in", [...types])
.where("event_date", ">=", yearStart)
.where("event_date", "<=", yearEnd);
.where("event_date", "<=", ytdBis);
const g = await tx
.selectNoFrom((eb) => [