Anwesenheit ignoriert Auto-Check-in vom 6-Uhr-Schnitt
ci / quality (push) Failing after 46s
ci / build (push) Has been skipped
deploy / deploy (push) Successful in 1m30s

Der 6-Uhr-Schnitt legt Folgetage mit checkedInAt=06:00 an — das ist kein
echter Lock-in, die Anwesenheitsanzeige lief dadurch fälschlich seit
06:00 mit (z. B. "6h 6m" mittags trotz spätem Arbeitsbeginn). Neues Flag
day_entry.auto_checked_in (Backfill: bestehende 06:00:00-Check-ins);
teamToday, Heute-Balken und "Zeit heute" zeigen Anwesenheit nur noch bei
echtem Check-in.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Fable 5 committed 2026-06-12 12:13:57 +02:00
1 parent e0fbc386fa
commit e049e0a88c
8 files changed
+3394 -7

No files matched your search

+3
View File
@@ -229,6 +229,9 @@ export const dayEntry = pgTable(
date: date('date').notNull(), // YYYY-MM-DD im Europe/Berlin
status: text('status', { enum: ['begun', 'full', 'absent'] }).notNull(),
checkedInAt: timestamp('checked_in_at', { withTimezone: true }),
// True, wenn der Eintrag vom 6-Uhr-Schnitt automatisch angelegt wurde (kein
// echter Lock-in um 06:00) — Anwesenheits-Anzeigen ignorieren solche Check-ins.
autoCheckedIn: boolean('auto_checked_in').notNull().default(false),
// Arbeitsende (Check-Out) — markiert das Ende der Arbeits-Session des Tages.
checkedOutAt: timestamp('checked_out_at', { withTimezone: true }),
// Kimai-Sync: ID des bei Check-In gestarteten Timesheets + Sync-Status.