To-DO abgearbeitet

This commit is contained in:
2026-02-04 19:03:42 +01:00
parent 76f63ed4ec
commit 063fb68b12
5 changed files with 158 additions and 91 deletions

View File

@@ -262,7 +262,7 @@ function registerTimesheetRoutes(app) {
// Füge Status-Info hinzu (Bearbeitung ist immer möglich)
const entriesWithStatus = (entries || []).map(entry => ({
...entry,
week_submitted: false, // Immer false, damit Bearbeitung möglich ist
week_submitted: hasSubmittedVersion, // Woche wurde eingereicht wenn weekly_timesheet existiert
latest_version: latestVersion,
has_existing_version: latestVersion > 0
}));
@@ -304,7 +304,7 @@ function registerTimesheetRoutes(app) {
}
});
// Prüfe nur Werktage (Montag-Freitag, erste 5 Tage)
// Prüfe nur so viele Tage wie Arbeitstage pro Woche festgelegt sind
// Samstag und Sonntag sind optional
// Bei ganztägigem Urlaub (vacation_type = 'full') ist der Tag als ausgefüllt zu betrachten
// Bei 8 Überstunden (ganzer Tag) ist der Tag auch als ausgefüllt zu betrachten
@@ -330,7 +330,7 @@ function registerTimesheetRoutes(app) {
.then((holidaySet) => {
let missingDays = [];
for (let i = 0; i < 5; i++) {
for (let i = 0; i < arbeitstage; i++) {
// Datum direkt berechnen ohne Zeitzonenprobleme
const date = new Date(startYear, startMonth, startDay + i);
const year = date.getFullYear();
@@ -380,8 +380,9 @@ function registerTimesheetRoutes(app) {
}
if (missingDays.length > 0) {
const requiredDaysText = arbeitstage === 1 ? '1 Tag' : `${arbeitstage} Tage`;
return res.status(400).json({
error: `Nicht alle Werktage (Montag bis Freitag) sind ausgefüllt. Fehlende Tage: ${missingDays.join(', ')}. Bitte füllen Sie alle Werktage mit Start- und Endzeit aus. Wochenende ist optional.`
error: `Nicht alle ${requiredDaysText} sind ausgefüllt. Fehlende Tage: ${missingDays.join(', ')}. Bitte füllen Sie alle ${requiredDaysText} mit Start- und Endzeit aus. Wochenende ist optional.`
});
}