Anpassung der User-routes für nicht ausgefüllte wochen

This commit is contained in:
2026-03-10 16:39:27 +01:00
parent 3827d0451d
commit b28bd93f26

View File

@@ -382,8 +382,6 @@ function registerUserRoutes(app) {
// Konvertiere zurück zu Array // Konvertiere zurück zu Array
const entries = Object.values(entriesByDate); const entries = Object.values(entriesByDate);
// Prüfe ob Woche vollständig ausgefüllt ist (alle 5 Werktage)
// Feiertage für die Woche laden (Feiertag zählt als ausgefüllt) // Feiertage für die Woche laden (Feiertag zählt als ausgefüllt)
getHolidaysForDateRange(week.week_start, week.week_end) getHolidaysForDateRange(week.week_start, week.week_end)
.catch(() => new Set()) .catch(() => new Set())
@@ -427,31 +425,7 @@ function registerUserRoutes(app) {
} }
} }
// Nur berechnen wenn alle Werktage ausgefüllt sind // Berechnungen für diese Woche
if (filledWorkdays < workdays) {
// Woche nicht vollständig - überspringe diese Woche
processedWeeks++;
if (processedWeeks === weeks.length && !hasError) {
const currentOvertime = (totalOvertimeHours - totalOvertimeTaken) + overtimeOffsetHours;
const remainingVacation = urlaubstage - totalVacationDays + vacationOffsetDays;
res.json({
currentOvertime: currentOvertime,
remainingVacation: remainingVacation,
totalOvertimeHours: totalOvertimeHours,
totalOvertimeTaken: totalOvertimeTaken,
totalVacationDays: totalVacationDays,
plannedVacationDays: plannedVacationDays,
plannedWeeks: plannedWeeks,
urlaubstage: urlaubstage,
overtimeOffsetHours: overtimeOffsetHours,
vacationOffsetDays: vacationOffsetDays
});
}
return; // Überspringe diese Woche
}
// Berechnungen für diese Woche (nur wenn vollständig ausgefüllt)
let weekTotalHours = 0; let weekTotalHours = 0;
let weekOvertimeTaken = 0; let weekOvertimeTaken = 0;
let weekVacationDays = 0; let weekVacationDays = 0;
@@ -507,8 +481,8 @@ function registerUserRoutes(app) {
} }
} }
// Sollstunden berechnen (Variante B: immer vertraglich, nicht reduziert durch „genommen“) // Sollstunden berechnen (Variante B: immer vertraglich; Wochenstunden kommen aus dem User-Profil)
const sollStunden = (wochenstunden / arbeitstage) * workdays; const sollStunden = wochenstunden;
const weekTotalHoursWithVacation = weekTotalHours + weekVacationHours + holidayHours; const weekTotalHoursWithVacation = weekTotalHours + weekVacationHours + holidayHours;
// Überstunden/Fehlstunden = Gesamt Soll (kann negativ sein) // Überstunden/Fehlstunden = Gesamt Soll (kann negativ sein)
@@ -692,19 +666,6 @@ function registerUserRoutes(app) {
} }
} }
// Nur berechnen wenn alle Werktage ausgefüllt sind
if (filledWorkdays < workdays) {
processedWeeks++;
if (processedWeeks === weeks.length && !hasError) {
res.json({
weeks: weekData,
overtime_offset_hours: overtimeOffsetHours,
overtime_corrections: overtimeCorrections
});
}
return;
}
// Berechnungen für diese Woche // Berechnungen für diese Woche
let weekTotalHours = 0; let weekTotalHours = 0;
let weekOvertimeTaken = 0; let weekOvertimeTaken = 0;
@@ -754,8 +715,8 @@ function registerUserRoutes(app) {
} }
} }
// Sollstunden berechnen (Variante B: immer vertraglich) // Sollstunden berechnen (Variante B: immer vertraglich; Wochenstunden kommen aus dem User-Profil)
const sollStunden = (wochenstunden / arbeitstage) * workdays; const sollStunden = wochenstunden;
const weekTotalHoursWithVacation = weekTotalHours + weekVacationHours + holidayHours; const weekTotalHoursWithVacation = weekTotalHours + weekVacationHours + holidayHours;
const weekOvertimeHours = weekTotalHoursWithVacation - sollStunden; const weekOvertimeHours = weekTotalHoursWithVacation - sollStunden;