diff --git a/src/components/CreateWorksheetModal.jsx b/src/components/CreateWorksheetModal.jsx
index c8abbf8..325849a 100644
--- a/src/components/CreateWorksheetModal.jsx
+++ b/src/components/CreateWorksheetModal.jsx
@@ -31,7 +31,7 @@ const initialForm = (workorder, newStatus) => ({
countsToPlan: false
})
-export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCreate }) {
+export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCreate, aboHoursAllowed = true }) {
const { user } = useAuth()
const isAcquisition = workorder?.type === 'Akquise'
@@ -109,7 +109,7 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre
endTime: timeToWoms(formData.endTime),
details: formData.details,
isComment: formData.isComment,
- countsToPlan: !formData.isComment && formData.countsToPlan,
+ countsToPlan: aboHoursAllowed && !formData.isComment && formData.countsToPlan,
employeeShort: user?.prefs?.shortCode || '' // Aus User-Preferences
}
@@ -191,17 +191,19 @@ export default function CreateWorksheetModal({ isOpen, onClose, workorder, onCre
-
-
-
+ {aboHoursAllowed && (
+
+
+
+ )}
diff --git a/src/components/TicketCard.jsx b/src/components/TicketCard.jsx
index c7f2714..1a09995 100644
--- a/src/components/TicketCard.jsx
+++ b/src/components/TicketCard.jsx
@@ -16,6 +16,7 @@ import Tabs from './ui/Tabs'
import Badge from './ui/Badge'
import { StatusPill, UrgentPill } from './ui/StatusPill'
import { useWorksheets } from '../hooks/useWorksheets'
+import { useCustomerAbo } from '../hooks/useCustomerAbo'
import { useAuth } from '../context/AuthContext'
import { databases, DATABASE_ID, COLLECTIONS } from '../lib/appwrite'
import { canEditWorksheetTimes } from '../lib/ticketForm'
@@ -34,6 +35,11 @@ export default function TicketCard({ ticket, onUpdate }) {
const [activeTab, setActiveTab] = useState('details')
const [showCreateWorksheet, setShowCreateWorksheet] = useState(false)
const [editTimesWorksheet, setEditTimesWorksheet] = useState(null)
+ // Abo-Stundenkonto gibt es nur bei Wartungs-Abo; erst laden, wenn Arbeitsblaetter gebraucht werden
+ const { hoursAllowed: aboHoursAllowed } = useCustomerAbo(
+ ticket.customerId,
+ (expanded && activeTab === 'worksheets') || showCreateWorksheet
+ )
const { worksheets, loading: worksheetsLoading, createWorksheet, updateWorksheet, updateWorksheetTimes, getTotalTime } = useWorksheets(
expanded ? ticket.woid : null
@@ -139,6 +145,7 @@ export default function TicketCard({ ticket, onUpdate }) {
canEditTimes={(ws) => canEditWorksheetTimes(ws, user, employee)}
onEditTimes={setEditTimesWorksheet}
onTogglePlan={handleTogglePlan}
+ aboHoursAllowed={aboHoursAllowed}
/>
)}
@@ -148,7 +155,7 @@ export default function TicketCard({ ticket, onUpdate }) {
)}
- setShowCreateWorksheet(false)} workorder={ticket} onCreate={handleCreateWorksheet} />
+ setShowCreateWorksheet(false)} workorder={ticket} onCreate={handleCreateWorksheet} aboHoursAllowed={aboHoursAllowed} />
{editTimesWorksheet && (
Zeiten bearbeiten>}
)}
- {onTogglePlan && !ws.isComment && Number(ws.totalTime) > 0 && (
+ {onTogglePlan && !ws.isComment && Number(ws.totalTime) > 0 && (aboHoursAllowed || ws.countsToPlan) && (