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()
}