From f89ecec8ff4942389125477e09284c44379f1470 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 7 Oct 2026 14:45:56 +0000 Subject: [PATCH] =?UTF-8?q?Arbeitsbl=C3=A4tter:=20Abzeichen=20=E2=80=9Eabg?= =?UTF-8?q?erechnet=20(Rechnungsnummer)=E2=80=9C=20f=C3=BCr=20alle,=20Warn?= =?UTF-8?q?ung=20beim=20=C3=84ndern=20der=20Zeit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- src/components/WorksheetList.jsx | 17 +++++++++++++++++ src/components/WorksheetTimesModal.jsx | 10 ++++++++++ src/hooks/useAbgerechnet.js | 21 +++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/hooks/useAbgerechnet.js diff --git a/src/components/WorksheetList.jsx b/src/components/WorksheetList.jsx index b9daa22..a4a9c8f 100644 --- a/src/components/WorksheetList.jsx +++ b/src/components/WorksheetList.jsx @@ -1,6 +1,8 @@ import { EmptyState } from './ui' import { needsTimeEntry, isGitWorksheet } from '../lib/ticketForm' import { parseSupporters } from '../lib/support' +import { useAbgerechnet } from '../hooks/useAbgerechnet' +import { abgerechnetText, ticketIdsOf } from '../lib/projektkontoView' import { showAboToggle, statusAfterLabel, @@ -23,6 +25,8 @@ export default function WorksheetList({ onOwnSupport, currentUserId, }) { + // Hooks laufen immer, auch bei den frühen Rückgaben unten; die Abzeichen sehen alle Mitarbeiter und zeigen nie Beträge + const abgerechnet = useAbgerechnet(ticketIdsOf(worksheets)) if (loading) return
Wird geladen …
if (!worksheets || worksheets.length === 0) { @@ -35,6 +39,7 @@ export default function WorksheetList({ const when = worksheetWhen(ws) const kind = worksheetKindLabel(ws) const badge = worksheetBadge(ws) + const billed = abgerechnetText(abgerechnet, ws.$id) const lines = supportLines(ws) const status = statusAfterLabel(ws) const time = timeLabel(ws) @@ -58,6 +63,18 @@ export default function WorksheetList({ {kind && {kind}} WSID {ws.wsid} {badge && {badge.text}} + {billed && ( + + {billed} + + )} {showAbo ? (