From 51d8777d669b612885d189ce8ff066e4c0e1a6e3 Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Wed, 25 Mar 2026 15:17:54 +0100 Subject: [PATCH] vehicle booking bug resolve --- frontend/src/pages/FahrzeugBuchungen.tsx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/frontend/src/pages/FahrzeugBuchungen.tsx b/frontend/src/pages/FahrzeugBuchungen.tsx index d1ef23c..96b4bb0 100644 --- a/frontend/src/pages/FahrzeugBuchungen.tsx +++ b/frontend/src/pages/FahrzeugBuchungen.tsx @@ -294,6 +294,11 @@ function FahrzeugBuchungen() { setDialogLoading(false); return; } + if (endeDate <= beginnDate) { + setDialogError('Ende muss nach dem Beginn liegen.'); + setDialogLoading(false); + return; + } const payload: CreateBuchungInput = { ...form, beginn: beginnDate.toISOString(), @@ -413,6 +418,15 @@ function FahrzeugBuchungen() { } }; + // ── Derived date validity (used in availability section + save guard) ───── + const formBeginnDate = form.beginn ? new Date(form.beginn) : null; + const formEndeDate = form.ende ? new Date(form.ende) : null; + const formDatesValid = !!( + formBeginnDate && formEndeDate && + !isNaN(formBeginnDate.getTime()) && !isNaN(formEndeDate.getTime()) && + formEndeDate > formBeginnDate + ); + // ── Render ──────────────────────────────────────────────────────────────── return ( @@ -870,6 +884,11 @@ function FahrzeugBuchungen() { {/* Availability indicator */} {form.fahrzeugId && form.beginn && form.ende ? ( + !formDatesValid ? ( + + Ende muss nach dem Beginn liegen + + ) : ( {availability === null ? ( @@ -923,6 +942,7 @@ function FahrzeugBuchungen() { /> )} + ) ) : ( Wähle Fahrzeug und Zeitraum für Verfügbarkeitsprüfung