fix(time): Mikrosekunden bei Zeitstempeln kappen
start_time/end_time/break_start wurden mit vollen Mikrosekunden gespeichert (datetime.now(timezone.utc).time() ohne microsecond=0), was Clients ohne Mikrosekunden-Parsing brechen konnte (siehe Mobile-App-Crash). Sekunden- Genauigkeit reicht für Zeiterfassung. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
This commit is contained in:
1 parent
4398632880
commit
2e27a7fcae
1 file changed
+4
-4
@@ -79,7 +79,7 @@ class TimeService:
|
||||
db: AsyncSession,
|
||||
) -> tuple[TimeEntry, list[str]]:
|
||||
today = datetime.now(timezone.utc).date()
|
||||
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
|
||||
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
|
||||
|
||||
# Offenen Eintrag für heute prüfen
|
||||
open_entry = await self._get_open_entry(user.id, db)
|
||||
@@ -125,7 +125,7 @@ class TimeService:
|
||||
if entry is None:
|
||||
raise HTTPException(status_code=404, detail="Kein offener Zeitstempel gefunden.")
|
||||
|
||||
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
|
||||
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
|
||||
|
||||
# Aktive Pause beenden falls vergessen
|
||||
if entry.break_start is not None:
|
||||
@@ -148,7 +148,7 @@ class TimeService:
|
||||
if entry.break_start is not None:
|
||||
raise HTTPException(status_code=409, detail="Pause bereits aktiv.")
|
||||
|
||||
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
|
||||
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
|
||||
entry.break_start = now_time
|
||||
entry.updated_at = datetime.now(timezone.utc)
|
||||
return entry
|
||||
@@ -160,7 +160,7 @@ class TimeService:
|
||||
if entry.break_start is None:
|
||||
raise HTTPException(status_code=409, detail="Keine aktive Pause.")
|
||||
|
||||
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
|
||||
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
|
||||
extra = self._calc_break_minutes(entry.break_start, now_time)
|
||||
entry.break_minutes += extra
|
||||
entry.break_start = None
|
||||
|
||||
Reference in new issue
Block a user