Arbeitszeit nur in 15-Minuten-Schritten, berechnete Zeit wird aufgerundet

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-30 14:55:06 +00:00
1 parent 32bc3d7c3d
commit 3535f18a2b
5 files changed
+70 -37

No files matched your search

+12 -5
View File
@@ -1,6 +1,9 @@
import { useState, useEffect, useCallback } from 'react'
import { databases, DATABASE_ID, COLLECTIONS, Query, ID } from '../lib/appwrite'
import { canEditWorksheetTimes, isGitWorksheet } from '../lib/ticketForm'
import { roundUpToStep, isValidStep } from '../lib/timeSteps'
const STEP_ERROR = 'Die Arbeitszeit muss in 15-Minuten-Schritten angegeben werden.'
export function useWorksheets(woid = null) {
const [worksheets, setWorksheets] = useState([])
@@ -143,14 +146,17 @@ export function useWorksheets(woid = null) {
// WSID generieren
const wsid = await generateWSID()
// Automatische Zeitberechnung (wenn nicht manuell angegeben)
let totalTime = data.totalTime || 0
if (!data.isComment && data.startTime && data.endTime && !data.totalTime) {
// Automatische Zeitberechnung (wenn nicht manuell angegeben), aufgerundet auf 15 Minuten
let totalTime = data.isComment ? 0 : Number(data.totalTime) || 0
if (!data.isComment && data.startTime && data.endTime && !totalTime) {
const calculatedTime = calculateTime(data.startTime, data.endTime)
if (calculatedTime !== null) {
totalTime = calculatedTime
totalTime = roundUpToStep(calculatedTime)
}
}
if (!data.isComment && !isValidStep(totalTime)) {
return { success: false, error: STEP_ERROR }
}
// Worksheet-Daten vorbereiten
const worksheetData = {
@@ -165,7 +171,7 @@ export function useWorksheets(woid = null) {
newStatus: data.newStatus || data.oldStatus || '',
oldResponseLevel: data.oldResponseLevel || '',
newResponseLevel: data.newResponseLevel || data.oldResponseLevel || '',
totalTime: parseInt(totalTime) || 0,
totalTime,
startDate: data.startDate || '',
startTime: data.startTime || '',
endDate: data.endDate || data.startDate || '',
@@ -224,6 +230,7 @@ export function useWorksheets(woid = null) {
return { success: false, error: 'Nur wer das Arbeitsblatt erstellt hat, kann die Zeiten ändern.' }
}
const { startDate, startTime, endDate, endTime, totalTime } = times
if (!isValidStep(totalTime)) return { success: false, error: STEP_ERROR }
const data = { startDate, startTime, endDate, endTime, totalTime }
// Mit nachgetragener Zeit zaehlt ein Git-Push als Arbeitszeit, nicht mehr als Kommentar
if (isGitWorksheet(worksheet)) data.isComment = false