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; }