diff --git a/src/components/CreateWorksheetModal.jsx b/src/components/CreateWorksheetModal.jsx index d5f5828..26c6bfd 100644 --- a/src/components/CreateWorksheetModal.jsx +++ b/src/components/CreateWorksheetModal.jsx @@ -51,7 +51,8 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre endDate: today, endTime: '', details: '', - isComment: false + isComment: false, + countsToPlan: false }) const [loading, setLoading] = useState(false) @@ -77,7 +78,8 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre endDate: today, endTime: '', details: '', - isComment: false + isComment: false, + countsToPlan: false }) setError('') setAutoCalculate(true) @@ -146,6 +148,7 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre endTime: formData.endTime, details: formData.details, isComment: formData.isComment, + countsToPlan: !formData.isComment && formData.countsToPlan, employeeShort: user?.prefs?.shortCode || '' // Aus User-Preferences } @@ -240,6 +243,18 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre Nur Kommentar (keine Arbeitszeit) + +
+ +
diff --git a/src/components/TicketRow.jsx b/src/components/TicketRow.jsx index cb8ddd7..0ecb06d 100644 --- a/src/components/TicketRow.jsx +++ b/src/components/TicketRow.jsx @@ -68,6 +68,8 @@ export default function TicketRow({ ticket, onUpdate, onExpand }) { // Startzeit fuer Git-Push-Worksheets nachtragen (Endzeit kam vom Push) const handleSaveWorksheetTime = async (ws, data) => updateWorksheet(ws.$id, data) + // Wartungs-Abo: Arbeitszeit aufs Stundenkonto des Kunden buchen (Kundenportal zeigt den Stand) + const handleTogglePlan = async (ws) => updateWorksheet(ws.$id, { countsToPlan: !ws.countsToPlan }) const createdAt = new Date(ticket.$createdAt || ticket.createdAt) const elapsed = formatDistanceToNow(createdAt, { locale: de }) @@ -243,7 +245,7 @@ export default function TicketRow({ ticket, onUpdate, onExpand }) {
)} - + )} diff --git a/src/components/WorksheetList.jsx b/src/components/WorksheetList.jsx index c7f6770..a169471 100644 --- a/src/components/WorksheetList.jsx +++ b/src/components/WorksheetList.jsx @@ -5,7 +5,7 @@ function needsTimeEntry(ws) { return ws.serviceType === 'GIT' && (!ws.startTime || !Number(ws.totalTime)) } -export default function WorksheetList({ worksheets, totalTime, loading, onEditTime }) { +export default function WorksheetList({ worksheets, totalTime, loading, onEditTime, onTogglePlan }) { const [expandedWorksheets, setExpandedWorksheets] = useState({}) if (loading) { return ( @@ -123,6 +123,13 @@ export default function WorksheetList({ worksheets, totalTime, loading, onEditTi Zeit offen )} + {ws.countsToPlan && !ws.isComment && ( + + Abo-Stunden + + )} {/* Collapsed: Mitarbeiter & Zeit im Header */} {!isExpanded && ( @@ -165,6 +172,27 @@ export default function WorksheetList({ worksheets, totalTime, loading, onEditTi Zeit nachtragen )} + {onTogglePlan && !ws.isComment && Number(ws.totalTime) > 0 && ( + + )} {formatDateTime(ws.startDate, ws.startTime) || formatDateTime(ws.endDate, ws.endTime)} diff --git a/src/hooks/useWorksheets.js b/src/hooks/useWorksheets.js index 5d457d6..38c200f 100644 --- a/src/hooks/useWorksheets.js +++ b/src/hooks/useWorksheets.js @@ -340,6 +340,7 @@ export function useWorksheets(woid = null) { endTime: data.endTime || '', details: data.details.trim(), isComment: data.isComment || false, + countsToPlan: !data.isComment && Boolean(data.countsToPlan), createdAt: new Date().toISOString() }