diff --git a/ReportImp/BetreuwoWesel/Service/CustomDienstplanungsManager.cs b/ReportImp/BetreuwoWesel/Service/CustomDienstplanungsManager.cs index cc461d6c0..81f5e5a63 100644 --- a/ReportImp/BetreuwoWesel/Service/CustomDienstplanungsManager.cs +++ b/ReportImp/BetreuwoWesel/Service/CustomDienstplanungsManager.cs @@ -47,6 +47,7 @@ namespace BetreuwoWesel.Service root.AlleDienste.Insert(0, DienstInfoDC.Platzhalter); /////// + // Überstunden als Abwesenheiten darstellen root.AbsenceTimes = GetAbsenceTimeVacationByWohnheim(wohnheimOid, date.Year, date.Month); var ueberstundenAbsTimes = root.AbsenceTimes.Where(a => a.Reason.Description.ToLower().Contains("abbau von mehrarbeit")).ToList(); root.AbsenceTimes.RemoveRange(ueberstundenAbsTimes); @@ -54,18 +55,27 @@ namespace BetreuwoWesel.Service root.OverTimes = GetOverTimesByWohnheim(wohnheimOid, date.Year, date.Month); foreach (var item in ueberstundenAbsTimes) { - root.OverTimes.Add(new OvertimeDC() + if (item.Start.HasValue && item.End.HasValue) { - Betrag = 0, - EmployeeOid = item.EmployeeOid, - Date = item.Start.Value, - Notice = "Abbau von Mehrarbeit", - Auszahlungsart = new AuszahlungsartDC() + var absStart = item.Start; + while (absStart <= item.End) { - AuszahlungsartOid = 9999, - Name = "Frei" + root.OverTimes.Add(new OvertimeDC() + { + Betrag = 0, + EmployeeOid = item.EmployeeOid, + Date = absStart.Value, + Notice = "Abbau von Mehrarbeit", + Auszahlungsart = new AuszahlungsartDC() + { + AuszahlungsartOid = 9999, + Name = "Frei" + } + }); + + absStart = absStart.Value.AddDays(1); } - }); + } } ///////