From 76fb7b459e8ef9c54c031aafbb29aacf66b45697 Mon Sep 17 00:00:00 2001 From: HirschleM Date: Tue, 22 Apr 2025 12:08:40 +0200 Subject: [PATCH] MH: BAW Aachen Urlaubskonto <5 Tage Berechnung --- .../Service/CustomVacationService.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ReportImp/BetreuungsserviceFuerAlltagUndWohnen/Service/CustomVacationService.cs b/ReportImp/BetreuungsserviceFuerAlltagUndWohnen/Service/CustomVacationService.cs index 8f661b1e2..89afe2a9e 100644 --- a/ReportImp/BetreuungsserviceFuerAlltagUndWohnen/Service/CustomVacationService.cs +++ b/ReportImp/BetreuungsserviceFuerAlltagUndWohnen/Service/CustomVacationService.cs @@ -16,5 +16,29 @@ namespace BetreuungsserviceFuerAlltagUndWohnen.Service return base.GetFeiertagsFaktor(start); } + public override decimal CalcCorrectNumberOfLeaveDaysForSpecialContractSituation(DateTime entryDate, DateTime? endDate, int anzahlArbeitstage, int restlicheTageImJahr, decimal? urlaubstageProJahr) + { + decimal urlaubstage = 0; + if (urlaubstageProJahr == null) + urlaubstageProJahr = 0m; + + if (entryDate.Day == 1 && entryDate.Month == 1 || entryDate.Day == 2 && entryDate.Month == 1) //Erster Tag im Jahr + { + //Prüfen, ob Enddatum Ende des Jahres oder früher ist + if (endDate == null || (endDate.HasValue && endDate.Value.Day == 31 && endDate.Value.Month == 12)) + urlaubstage = (decimal)urlaubstageProJahr; + else + urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; + } + else + { + urlaubstage = (decimal)urlaubstageProJahr / 365m * restlicheTageImJahr; + } + + // Runden + urlaubstage = UrlaubstageRunden(urlaubstage); + + return urlaubstage; + } } }