From 62d6c8fdabbdf021a83e70e6c69421d2777a8dd1 Mon Sep 17 00:00:00 2001 From: Kojo Date: Wed, 4 Sep 2024 18:46:37 +0200 Subject: [PATCH] Abwesenheitsberechnung gefixt (mit CB, hat bei Abw. von 18.7. - 1.8. auf QB 1.8. - 31.7. mit 0 Tagen augegeben :) --- Report/ReportObjects/ServicesOverviewRO.cs | 43 ++++++++-------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/Report/ReportObjects/ServicesOverviewRO.cs b/Report/ReportObjects/ServicesOverviewRO.cs index 28b221c7c..b23b844f5 100644 --- a/Report/ReportObjects/ServicesOverviewRO.cs +++ b/Report/ReportObjects/ServicesOverviewRO.cs @@ -1209,50 +1209,39 @@ namespace BeWo.Report.ReportObjects atTemp.End = atDb.End; atTemp.AbsenceReason = reasonTemp; - bool cont = !(atTemp.Start != null && atTemp.Start > span.EndDateTime); - + bool addToList = ( + !atTemp.AbsenceReason.Description.ToLower().Contains("urlaub") && + atTemp.AbsenceReason.BillableMinutes.HasValue && atTemp.AbsenceReason.BillableMinutes.Value > 0); - - if (cont && atTemp.End != null && atTemp.End < span.StartDateTime) + if (atTemp.Start.HasValue) { - cont = false; - } - if (atTemp.AbsenceReason.Description.ToLower().Contains("urlaub")) - { - cont = false; + atTemp.Start = atTemp.Start.Value.AddDays(1); } - - if (cont && atTemp.AbsenceReason.BillableMinutes.HasValue && atTemp.AbsenceReason.BillableMinutes.Value > 0) + if (atTemp.End.HasValue) { - - - if (atTemp.Start.HasValue) - { - atTemp.Start = atTemp.Start.Value.AddDays(1); - } - - if (atTemp.End.HasValue) - { - atTemp.End = atTemp.End.Value.AddDays(-1); - } + atTemp.End = atTemp.End.Value.AddDays(-1); } - if (cont) + // Prüfe ob Datum der Abwesenheit innerhalb des ausgewählten Belegzeitraums liegt + if (addToList && ((atTemp.End.HasValue && atTemp.End < span.StartDateTime) || (atTemp.Start.HasValue && atTemp.Start > span.EndDateTime))) + { + addToList = false; + } + if (addToList) { if (atTemp.Start.HasValue && atTemp.End.HasValue) { var td = atTemp.End.Value.Subtract(atTemp.Start.Value).TotalDays; if (td < 0) { - cont = false; + addToList = false; } } } - if (cont) + + if (addToList) { - - lResult.Abwesenheiten.Add(atTemp); if (sb.Length > 0) {