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:
1 parent
32bc3d7c3d
commit
3535f18a2b
5 files changed
+70
-37
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user