diff --git a/ReportImp/Ruhrstern/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs b/ReportImp/Ruhrstern/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs index 6f026b7a9..bcb9b05c0 100644 --- a/ReportImp/Ruhrstern/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/Ruhrstern/Reporting/CustomMitarbeiterstundenkontoBerechnung.cs @@ -58,7 +58,7 @@ namespace Ruhrstern //Berechne Soll, entweder aus Vertrag oder Arbeitszeiten if (HatArbeitszeitImZeitraum(ed.Employee.Arbeitszeiten, date, date)) { - sollDiesenTag = GetSollNachArbeitszeitenFuerTag(ed.Employee, date); + sollDiesenTag = GetSollNachArbeitszeitenTag(ed.Employee, date); } else @@ -109,5 +109,34 @@ namespace Ruhrstern return sollDiesenTag; } - } + + protected decimal GetSollNachArbeitszeitenTag(Employee emp, DateTime tag) + { + decimal soll = 0; + var fak = GetFeiertagsFaktor(tag); + + if (fak == 1) + { + fak = 0; + } + + if (fak < 1) + { + if (emp.Arbeitszeiten != null) + { + foreach (var az in emp.Arbeitszeiten) + { + if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= tag) && + (!az.GueltigBis.HasValue || az.GueltigBis.Value >= tag)) + { + var std = GetArbeitszeitStundenFuerTag(az, tag); + soll += (std * (1 - fak)); + } + } + } + } + + return soll; + } + } }