diff --git a/Dienstplan_Portable.html b/Dienstplan_Portable.html index af9cbb1..3f42708 100644 --- a/Dienstplan_Portable.html +++ b/Dienstplan_Portable.html @@ -374,6 +374,13 @@
Variante 2 (Streng) - Kalender Edition
+
+ +
+ + +
+
@@ -1056,6 +1063,42 @@ class DienstplanApp { const we_pay = (paid_fr + paid_other) * CONFIG.RATE_WE; payout = wt_pay + we_pay; } + + monthDuties.sort((a, b) => new Date(a.date) - new Date(b.date)); + + container.innerHTML = monthDuties.map((duty, idx) => { + const date = new Date(duty.date); + const qualifying = isQualifyingDay(date); + const dayType = getDayTypeLabel(date); + const realIndex = duties.indexOf(duty); + + return ` +
+
+ ${duty.employee} +
+
+ ${date.toLocaleDateString('de-DE', { weekday: 'short', day: '2-digit', month: '2-digit' })} +
${dayType}
+
+
Anteil: ${formatNumber(duty.share)}
+
+ +
+
+ `; + }).join(''); + } + + function calculateAndShowResults() { + const monthDuties = duties.filter(d => { + const date = new Date(d.date); + return date.getMonth() === selectedMonth && date.getFullYear() === selectedYear; + }); + + if (monthDuties.length === 0) { + alert('Keine Dienste für diesen Monat eingetragen.'); + return; totalPayout += payout; @@ -1161,6 +1204,17 @@ class DienstplanApp { border-bottom: 2px solid #4472C4; padding-bottom: 10px; } + + // ==================== STORAGE ==================== + function saveToStorage() { + try { + localStorage.setItem('dienstplan_portable_employees', JSON.stringify(employees)); + localStorage.setItem('dienstplan_portable_duties', JSON.stringify(duties)); + localStorage.setItem('dienstplan_portable_month', selectedMonth); + localStorage.setItem('dienstplan_portable_year', selectedYear); + } catch (e) { + console.log('Speichern nicht möglich:', e); + } h5 { color: #666; margin-bottom: 20px; @@ -1404,6 +1458,17 @@ class DienstplanApp { const reader = new FileReader(); reader.onload = (e) => { try { + const savedEmployees = localStorage.getItem('dienstplan_portable_employees'); + const savedDuties = localStorage.getItem('dienstplan_portable_duties'); + const savedMonth = localStorage.getItem('dienstplan_portable_month'); + const savedYear = localStorage.getItem('dienstplan_portable_year'); + + if (savedEmployees) employees = JSON.parse(savedEmployees); + if (savedDuties) duties = JSON.parse(savedDuties); + if (savedMonth !== null) selectedMonth = parseInt(savedMonth); + if (savedYear !== null) selectedYear = parseInt(savedYear); + } catch (e) { + console.log('Laden nicht möglich:', e); const data = JSON.parse(e.target.result); // Support both old format (array) and new format (object with version)