Krankheitstage

This commit is contained in:
Carsten Graf
2026-01-26 11:52:05 +01:00
parent 00669be250
commit dfbc7d8bbc
2 changed files with 13 additions and 1 deletions

View File

@@ -152,7 +152,7 @@ function registerVerwaltungRoutes(app) {
const overtimeOffsetHours = user.overtime_offset_hours ? parseFloat(user.overtime_offset_hours) : 0; const overtimeOffsetHours = user.overtime_offset_hours ? parseFloat(user.overtime_offset_hours) : 0;
// Einträge für die Woche abrufen // Einträge für die Woche abrufen
db.all(`SELECT date, total_hours, overtime_taken_hours, vacation_type db.all(`SELECT date, total_hours, overtime_taken_hours, vacation_type, sick_status
FROM timesheet_entries FROM timesheet_entries
WHERE user_id = ? AND date >= ? AND date <= ? WHERE user_id = ? AND date >= ? AND date <= ?
ORDER BY date`, ORDER BY date`,
@@ -167,12 +167,18 @@ function registerVerwaltungRoutes(app) {
let overtimeTaken = 0; let overtimeTaken = 0;
let vacationDays = 0; let vacationDays = 0;
let vacationHours = 0; let vacationHours = 0;
let sickDays = 0;
entries.forEach(entry => { entries.forEach(entry => {
if (entry.overtime_taken_hours) { if (entry.overtime_taken_hours) {
overtimeTaken += entry.overtime_taken_hours; overtimeTaken += entry.overtime_taken_hours;
} }
// Krankheitstage zählen
if (entry.sick_status === 1 || entry.sick_status === true) {
sickDays += 1;
}
// Urlaub hat Priorität - wenn Urlaub, zähle nur Urlaubsstunden, nicht zusätzlich Arbeitsstunden // Urlaub hat Priorität - wenn Urlaub, zähle nur Urlaubsstunden, nicht zusätzlich Arbeitsstunden
if (entry.vacation_type === 'full') { if (entry.vacation_type === 'full') {
vacationDays += 1; vacationDays += 1;
@@ -229,6 +235,7 @@ function registerVerwaltungRoutes(app) {
remainingOvertimeWithOffset, remainingOvertimeWithOffset,
vacationDays, vacationDays,
remainingVacation, remainingVacation,
sickDays,
workdays workdays
}); });
}); });

View File

@@ -316,6 +316,11 @@
${data.remainingVacation !== undefined ? `<span style="color: #28a745;">(verbleibend: ${data.remainingVacation.toFixed(1)} Tage)</span>` : ''} ${data.remainingVacation !== undefined ? `<span style="color: #28a745;">(verbleibend: ${data.remainingVacation.toFixed(1)} Tage)</span>` : ''}
</div>`; </div>`;
} }
if (data.sickDays !== undefined && data.sickDays > 0) {
statsHTML += `<div class="stats-inline" style="display: inline-block; margin-right: 20px;">
<strong>Krankheitstage:</strong> <span style="color: #e74c3c;">${data.sickDays} Tag${data.sickDays !== 1 ? 'e' : ''}</span>
</div>`;
}
if (statsHTML) { if (statsHTML) {
statsDiv.insertAdjacentHTML('beforeend', statsHTML); statsDiv.insertAdjacentHTML('beforeend', statsHTML);