From d4d90b008a7bcc5f075ebd103fbb8588f601b7aa Mon Sep 17 00:00:00 2001 From: HirschleM Date: Tue, 12 May 2026 11:27:27 +0200 Subject: [PATCH] MH: VacationService Sonderurlaub in den Hintergrund verschoben + Schwerbehindertenausweischeck verbessert. --- Service/Plugins/VacationService.cs | 16 +++++++++++++++- .../ServiceImplementations/EmployeeServiceImp.cs | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Service/Plugins/VacationService.cs b/Service/Plugins/VacationService.cs index 0d735720a..69ba827e6 100644 --- a/Service/Plugins/VacationService.cs +++ b/Service/Plugins/VacationService.cs @@ -697,7 +697,7 @@ namespace BeWo.Service.Plugins } // 6. Anzahl der aus 1.-5. resultierenden Resturlaubstage fürs Jahr, also Resturlaub vom Urlaubskonto - var anzTage = aktuellesKonto.Value.ResturlaubVorjahrTotal > 0 && aktuellesKonto.Value.VerfallenerUrlaub <= 0 ? aktuellesKonto.Value.Resturlaub + aktuellesKonto.Value.ResturlaubVorjahr + sonderurlaub : aktuellesKonto.Value.Resturlaub + sonderurlaub; + var anzTage = aktuellesKonto.Value.ResturlaubVorjahrTotal > 0 && aktuellesKonto.Value.VerfallenerUrlaub <= 0 ? aktuellesKonto.Value.Resturlaub + aktuellesKonto.Value.ResturlaubVorjahr : aktuellesKonto.Value.Resturlaub; dcs.Add(new UrlaubskontoDarstellungDC() { AnzahlTage = string.Format("{0:0.00}", anzTage), @@ -1154,6 +1154,20 @@ namespace BeWo.Service.Plugins konto.Value.Urlaubsanspruch += anzGeschenkteTage; konto.Value.Resturlaub += anzGeschenkteTage; } + // Wenn es Sonderurlaube gibt, Liste durchlaufen und für jeden Eintrag den Zähler entsprechend der Tage erhöhen + var sonderurlaube = empService.GetSonderurlaubForEmployee((long)emp.Oid, i); + if (sonderurlaube != null) + { + decimal anzSonderurlaubTage = 0.0m; + + foreach (var item in sonderurlaube) + { + anzSonderurlaubTage += item.Value; + } + // Geschenkte Tage auf Anspruch und Resturlaub addieren + konto.Value.Urlaubsanspruch += anzSonderurlaubTage; + konto.Value.Resturlaub += anzSonderurlaubTage; + } } diff --git a/Service/ServiceImplementations/EmployeeServiceImp.cs b/Service/ServiceImplementations/EmployeeServiceImp.cs index 44f4e1e3e..3c0be7d17 100644 --- a/Service/ServiceImplementations/EmployeeServiceImp.cs +++ b/Service/ServiceImplementations/EmployeeServiceImp.cs @@ -2096,7 +2096,7 @@ namespace BeWo.Service.ServiceImplementations // Schnittmenge aus Vertrag + Ausweis var overlapStart = contract.EntryDate > emp.AusweisGueltigVon ? contract.EntryDate : emp.AusweisGueltigVon; - var overlapEnd = (contract.ContractEndDate ?? DateTime.MaxValue) < emp.AusweisGueltigBis ? (contract.ContractEndDate ?? DateTime.MaxValue) : emp.AusweisGueltigBis; + var overlapEnd = (contract.ContractEndDate ?? DateTime.MaxValue) < (emp.AusweisGueltigBis ?? DateTime.MaxValue) ? (contract.ContractEndDate ?? DateTime.MaxValue) : (emp.AusweisGueltigBis ?? DateTime.MaxValue); // Jetzt prüfen: gibt es davon etwas im Jahr? if (overlapStart <= overlapEnd && overlapStart <= yearEnd && overlapEnd >= yearStart)