MH: Arche Stundenkonto Zuschläge

This commit is contained in:
2025-03-25 12:09:07 +01:00
parent b4bf94ae72
commit 5ec6c27ffa

View File

@@ -47,31 +47,32 @@ namespace ArcheTecklenburg
foreach (var day in ed.Days)
{
// Custom1 Samstagsarbeit 13-21 Uhr
if (day.ServiceRecords != null && day.ServiceRecords.Count > 0)
{
foreach (var sr in day.ServiceRecords)
{
var d1 = sr.Start.Value;
//if (day.ServiceRecords != null && day.ServiceRecords.Count > 0)
//{
// foreach (var sr in day.ServiceRecords)
// {
//var d1 = sr.Start.Value;
var duration = sr.GroupRoundedDuration != null ? Convert.ToDouble(sr.GroupRoundedDuration.Value) : sr.DurationMinutes;
//var duration = sr.GroupRoundedDuration != null ? Convert.ToDouble(sr.GroupRoundedDuration.Value) : sr.DurationMinutes;
var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
var unroundedEnd = d1.AddMinutes(duration);
var saturdayStart = new DateTime(saturday.Year, saturday.Month, saturday.Day, 13, 0, 0);
var saturdayEnd = new DateTime(saturday.Year, saturday.Month, saturday.Day, 21, 0, 0);
//var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
//var unroundedEnd = d1.AddMinutes(duration);
//var saturdayStart = new DateTime(saturday.Year, saturday.Month, saturday.Day, 13, 0, 0);
//var saturdayEnd = new DateTime(saturday.Year, saturday.Month, saturday.Day, 21, 0, 0);
ed.Custom1 += Math.Round((decimal)d1.GetIntersectingMinutes(unroundedEnd, saturdayStart, saturdayEnd) / 60, 2, MidpointRounding.AwayFromZero);
}
}
//ed.Custom1 += Math.Round((decimal)d1.GetIntersectingMinutes(unroundedEnd, saturdayStart, saturdayEnd) / 60, 2, MidpointRounding.AwayFromZero);
// }
//}
// Custom2 Sonntagsarbeit
ed.Custom2 += day.HoursSunday;
if (day.Date.DayOfWeek == DayOfWeek.Sunday && day.MinutesTotal > 0)
ed.Custom2 += day.MinutesTotal / 60;
// Custom3 Feiertagsarbeit
ed.Custom3 += day.HoursHoliday;
ed.Custom3 += day.HoursHoliday > 0 ? day.MinutesTotal / 60 : 0;
// Custom4 Nachtarbeit 21-05:59 Uhr
ed.Custom4 += day.SpecialHours;
ed.Custom4 += day.SpecialHours > 6 ? day.SpecialHours - 0.5m : day.SpecialHours;
if (day.HoursOtherAbsenceTimes > 0)
{