From 18dd63b2afe37487ba244ec8ca4fdac973bf2b91 Mon Sep 17 00:00:00 2001 From: Marcel Hirschle Date: Mon, 8 Jan 2024 16:57:52 +0100 Subject: [PATCH] =?UTF-8?q?MH:=20AWO=20M=C3=BCnsterland=20AZ-Nachweis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Mitarbeiterarbeitszeitkonto.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/ReportImp/AWOMuensterlandRecklinghausen/Mitarbeiterarbeitszeitkonto.cs b/ReportImp/AWOMuensterlandRecklinghausen/Mitarbeiterarbeitszeitkonto.cs index 6b8b727ae..c8e273c25 100644 --- a/ReportImp/AWOMuensterlandRecklinghausen/Mitarbeiterarbeitszeitkonto.cs +++ b/ReportImp/AWOMuensterlandRecklinghausen/Mitarbeiterarbeitszeitkonto.cs @@ -6,6 +6,7 @@ using System.Linq; using BeWo.Report; using BeWo.Report.ReportObjects; using BS.Shared.Core; +using BS.Shared.Extensions; using DevExpress.XtraReports.UI; namespace AWOMuensterlandRecklinghausen @@ -46,8 +47,20 @@ namespace AWOMuensterlandRecklinghausen List wochenSummaries = new List(); Dictionary ueberstundenDict = new Dictionary(); - foreach (var day in ed.Days) + // Durch Überschneidungskappungen haben manche Einträge 0 Stunden. Die werden für die Übersicht entfernt + for (int i = ed.Days.Count - 1; i >= 0; i--) { + if (ed.Days[i].MinutesTotal == 0 && ed.Days[i].EndDateTime1 != null) + ed.Days.RemoveAt(i); + } + + decimal ueberstundenProTagGesamt = 0; + + //foreach (var day in ed.Days) + for (int i = 0; i < ed.Days.Count; i++) + { + var day = ed.Days[i]; + bool abwesend = false; if (day.IstFeiertag) { @@ -100,6 +113,7 @@ namespace AWOMuensterlandRecklinghausen // splitten der Sollarbeitszeit auf mehrere Einträge decimal ueberstunden = 0; ueberstunden = day.MinutesTotal - day.SollStunden; + ueberstundenProTagGesamt += ueberstunden; if (!ueberstundenDict.ContainsKey(day.Custom5)) { ueberstundenDict[day.Custom5] = ueberstunden; @@ -108,11 +122,17 @@ namespace AWOMuensterlandRecklinghausen { ueberstunden = day.MinutesTotal + ueberstundenDict[day.Custom5]; day.Custom5 = ""; + } - day.Custom3 = string.Format("{0:0.00}", ueberstunden); + if (i + 1 < ed.Days.Count && ed.Days[i + 1].Date.Date != day.Date.Date) + { + day.Custom3 = string.Format("{0:0.00}", ueberstundenProTagGesamt); + ueberstundenProTagGesamt = 0; + } } + ed.Custom1 = sbStunden; ed.Custom2 = aaStunden; }