Vertriebsunterstützung an Reisezeit koppeln

- Reisezeit 0 -> Vertriebsunterstützung 0
- Reisezeit < 2h -> Vertriebsunterstützung = Reisezeit (Feld gesperrt)
- Reisezeit >= 2h -> Vertriebsunterstützung 2h, aber editierbar
- Regel zentral in lib/calc.ts (applyVertriebsregel), im Formular interaktiv
  und in der API-Validierung erzwungen

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-22 10:23:07 +02:00
parent 9ee78d2dcf
commit 1e221a3c2c
3 changed files with 54 additions and 7 deletions
+17
View File
@@ -43,6 +43,23 @@ export function hatZeiten(beginn: string, ende: string): boolean {
return parseHM(beginn) !== null && parseHM(ende) !== null;
}
/** True, wenn die Vertriebsunterstützung bei dieser Reisezeit frei änderbar ist (Reisezeit ≥ 2h). */
export function vertriebEditierbar(reisezeit: number): boolean {
return reisezeit >= 2;
}
/**
* Vertriebsunterstützung an die Reisezeit koppeln:
* Reisezeit = 0 → 0
* 0 < Reisezeit < 2 → = Reisezeit
* Reisezeit ≥ 2 → vorhandener Wert (änderbar), Standard 2
*/
export function applyVertriebsregel(reisezeit: number, vorhanden: number): number {
if (reisezeit <= 0) return 0;
if (reisezeit < 2) return reisezeit;
return vorhanden;
}
/** Deutscher Wochentagsname für ein "YYYY-MM-DD"-Datum, oder "" bei ungültig. */
export function weekdayName(datum: string): string {
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(datum ?? '');