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
+4 -3
View File
@@ -2,7 +2,7 @@
import { useEffect, useState } from 'react';
import { ARBEITSZEIT_KUNDE_FIX, type ArbeitszeitEintrag } from '@/types/arbeitszeit';
import { toDecimalHours, mehrarbeit, weekdayName, formatHours } from '@/lib/calc';
import { toDecimalHours, mehrarbeit, weekdayName, formatHours, hatZeiten } from '@/lib/calc';
interface Props {
pause: number;
@@ -131,14 +131,15 @@ export default function ArbeitszeitList({ pause, refreshKey, onEdit, limit = 15,
</td>
</tr>
) : entries.map((e) => {
const zeiten = hatZeiten(e.beginn, e.ende);
const mehr = mehrarbeit(toDecimalHours(e.beginn, e.ende), pause);
return (
<tr key={e.id} className="hover:bg-gray-50">
<td className={`${cell} whitespace-nowrap`}>{formatDate(e.datum)}</td>
<td className={cell}>{weekdayName(e.datum)}</td>
<td className={cell}>{e.ort}</td>
<td className={`${cell} text-right`}>{formatHours(ARBEITSZEIT_KUNDE_FIX)}</td>
<td className={`${cell} text-right ${mehr < 0 ? 'text-red-600' : ''}`}>{formatHours(mehr)}</td>
<td className={`${cell} text-right`}>{zeiten ? formatHours(ARBEITSZEIT_KUNDE_FIX) : '—'}</td>
<td className={`${cell} text-right ${zeiten && mehr < 0 ? 'text-red-600' : ''}`}>{zeiten ? formatHours(mehr) : '—'}</td>
<td className={`${cell} text-right`}>{formatHours(e.reisezeit)}</td>
<td className={`${cell} text-right`}>{formatHours(e.vertriebsunterstuetzung)}</td>
<td className={cell}>{e.kommentar}</td>