Skip to content

[bug] Zeitkorrekturen funktionieren nicht #43

Open

Description

@pittiplatschpitti-a11y

Describe the bug

Bei der Erfassung eines Zeitkorrektur-Antrages ist es weder möglich, einen fehlerhaften Zeiteintrag direkt zur Korrektur auszuwählen, noch einen bestehenden Eintrag für denselben Tag durch eine neue Korrekturzeit zu überschreiben. Sobald der Korrekturzeitraum mit einer bereits erfassten Zeit kollidiert, schlägt das Absenden mit der Fehlermeldung "Time adjustment overlaps an existing time entry for this employee" fehl. Dadurch können fehlerhafte oder unvollständige Buchungen nicht nachträglich korrigiert werden.

Reproduzierung des Fehlers:

  1. Als Mitarbeiter eine bestehende Zeiterfassung für einen Tag vorliegen haben (z. B. 08:00 – 16:00 Uhr).
  2. Das Formular für eine Zeitkorrektur aufrufen.
  3. Versuchen, die korrekte Arbeitszeit einzutragen, die sich zeitlich ganz oder teilweise mit dem bestehenden Eintrag überschneidet (z. B. 08:00 – 17:00 Uhr oder 09:00 – 16:00 Uhr), oder versuchen, den ursprünglichen Eintrag direkt zur Korrektur zu referenzieren/auszuwählen.
  4. oben genannte Fehlermeldung beim absenden

Expected behaviour

Eine Zeitkorrektur sollte entweder:

  1. die direkte Auswahl eines existierenden Eintrags ermöglichen, um dessen Werte anzupassen, oder
  2. als beabsichtigtes Überschreiben bzw. Anpassung des bisherigen Tageseintrags verarbeitet werden (ggf. mit anschließendem Genehmigungsworkflow), anstatt als unzulässige Doppelbuchung abgelehnt zu werden.

Activity

  1. patrickschiller commented on Nov 7, 2026

    @patrickschiller
    Owner

    #43 umgesetzt: gezielte Korrektur derselben Zeitbuchung

    PR: #48
    Head: 34a9b5094568fffd990fa0827e6e9f8c28c13209

    Abhängigkeit: Dieser Branch basiert auf dem akzeptierten #41-Stand und
    enthält gegen main kumulativ #42 + #41 + #43. Vorgesehene Reihenfolge
    #46 → #47 → #48; kein Merge und kein Auto-Merge aktiviert.

    • Die Zeitkorrektur unterscheidet ausdrücklich fehlende Buchung von
      bestehende Buchung korrigieren. Eigene zulässige Buchung auswählen,
      Zeiten exakt vorbelegen und Vorher/Vorschlag samt Bruttodifferenz vergleichen,
      auch im Genehmigungs- und Verlaufskontext. DE/EN, lokale Zeit mit DST-Offset.
    • Ziel-ID, erwartete Zielrevision und serverseitiger Originalsnapshot bleiben
      gebunden, auch nach Rückgabe und reinem Grund-Edit/Wiedereinreichen.
      Kein gefälschtes Fremdziel, Retargeting oder stilles Auffrischen einer
      veralteten Originalversion.
    • Nur die unveränderte konkrete Zielbuchung ist vom Overlap ausgenommen;
      andere Buchungen bleiben geprüft, kein Tagesüberschreiben.
    • Erst die letzte erforderliche Freigabe aktualisiert dieselbe Buchungs-ID
      atomar mit Antrag und Audit. Vorgeschlagene Außenrahmenwerte erzwingen
      Manager→HR; alte Buchungsfreigaben reichen nicht. Versions-/Sperrregeln
      schützen auch gegen Split, direkte Änderungen, [bug] Genehmigung von Buchungen außerhalb der Rahmenzeit #41 und konkurrierende Anträge.
    • Projekt/Auftrag, Tätigkeit, Notiz, Pausenpolitik, Capture-Gruppe und alte
      Auditdaten bleiben erhalten. Das neue Vorher/Nachher-Audit trägt Akteur,
      Zeitpunkt und Request-Link. Kein doppelter Eintrag, keine doppelt gezählten
      neuen Stunden. Bereits angewendete Korrekturen werden nicht durch bloßes
      Request-Storno scheinbar rückgängig gemacht.
    • Fehlende-Buchung- und Solo-Owner-Korrekturen bleiben getrennt erhalten.
      Additive Migration, getesteter Upgrade und synchroner API-/Client-Vertrag.

    Lokale Nachweise:

    • 35 neue API-/Service-Fälle, einschließlich echter Rollbacks nach bereits
      ausgeführtem Entry-Update in allen finalen Approval-Routen.
    • Vollständige API-Suite unter Node 20.20.2: 366/366 Tests, 39 Suites.
    • Web/Shared unter Node 20.20.2 ohne Cache: 247/247 + 88/88;
      gezielte UI-/DST-Prüfungen 68/68.
    • Alle vier Projekt-Typechecks, Lint ohne neue Warnungen, API-/Web-/Shared-/PWA-
      Builds, pnpm verify:api und git diff --check erfolgreich.
    • Echter Upgrade vom akzeptierten [bug] Genehmigung von Buchungen außerhalb der Rahmenzeit #41-Schema: Altanträge ohne erfundene Zielbindung,
      ursprüngliche Auditdaten/Akteure ohne erfundene Request-Links erhalten.

    GitHub-Gates auf 34a9b5094568fffd990fa0827e6e9f8c28c13209 vollständig grün:

    • CI-Lauf:
      build-test-lint, api-e2e, database-upgrade und
      terminal-pin-browser erfolgreich.
    • CI-API: 366/366 Tests, 39 Suites; pnpm verify:api erfolgreich.
    • CI-Web: 247/247 Tests, 35 Dateien; vier Projekt-Typechecks und relevante
      Builds erfolgreich.
    • DCO
      erfolgreich; verlangter Signed-off-by- und exakter Co-Author-Trailer vorhanden.

    Deutsche Nachtestanleitung – Paket #43 mit isoliertem Setup, synthetischen Rollen,
    reproduzierbaren 08–16-Buchungen, Erwartungen, Negativ-/Parallel-/DST-Fällen und
    tatsächlichen Ergebnissen
    .

    Manueller Docker-/Browser-Durchlauf dokumentiert, nicht als durchgeführt
    behauptet. Testdatenbank mit Datenerhalt gestoppt. Keine Releases, Tags,
    Versionsbumps, Merges, Deployments oder Release-Workflows. #45/#44 nicht begonnen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions