Start-/Endzeit optional: ohne Zeiten Arbeitszeit Kunde & Mehrarbeit leer

- Start- und Endzeit nicht mehr vorbelegt (leeres Feld, Platzhalter HH:MM)
- TimeInput erlaubt Leeren eines Feldes
- Validierung: beide Zeiten zusammen angeben oder beide leer lassen
- Ohne Zeiten zeigen Vorschau und Liste "—" für Arbeitszeit Kunde und Mehrarbeit
  (Eintrag mit nur Reisezeit/Vertriebsunterstützung möglich)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-22 10:05:50 +02:00
parent 01a7ac8e0b
commit 9ee78d2dcf
5 changed files with 35 additions and 13 deletions
+7 -2
View File
@@ -14,10 +14,15 @@ export function parseArbeitszeitInput(body: unknown): ArbeitszeitInput {
const ort = String(b.ort ?? '') as Ort;
if (!ORTE.includes(ort)) throw new Error('Ungültiger Ort.');
// Beginn/Ende sind optional. Wenn angegeben, müssen sie gültig sein;
// entweder beide leer oder beide gesetzt.
const beginn = String(b.beginn ?? '');
const ende = String(b.ende ?? '');
if (parseHM(beginn) === null) throw new Error('Ungültige Startzeit.');
if (parseHM(ende) === null) throw new Error('Ungültige Endzeit.');
if (beginn !== '' && parseHM(beginn) === null) throw new Error('Ungültige Startzeit.');
if (ende !== '' && parseHM(ende) === null) throw new Error('Ungültige Endzeit.');
if ((beginn === '') !== (ende === '')) {
throw new Error('Bitte Start- und Endzeit gemeinsam angeben oder beide leer lassen.');
}
const reisezeit = toNumber(b.reisezeit, 0);
const vertriebsunterstuetzung = toNumber(b.vertriebsunterstuetzung, 2);