MH: Mittelpunkt Samstagsstunden Korrektur

This commit is contained in:
2024-09-05 09:31:20 +02:00
parent 5a963e89c1
commit b803acee09
3 changed files with 25 additions and 33 deletions

View File

@@ -6,6 +6,7 @@ using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using BS.Shared.Extensions;
using DevExpress.XtraReports.UI;
namespace Mittelpunkt
@@ -50,17 +51,14 @@ namespace Mittelpunkt
{
foreach (var sr in day.ServiceRecords)
{
if (sr.Start.HasValue && sr.End.HasValue && (sr.Start.Value.Date.DayOfWeek == DayOfWeek.Saturday || sr.End.Value.Date.DayOfWeek == DayOfWeek.Saturday))
{
var start = sr.Start.Value.TimeOfDay;
var ende = sr.End.Value.TimeOfDay;
if (start > ende || ende.Hours > endeDerSamstagszeit) // Wenn Ende erst am nächsten Tag ist ODER nach 21 Uhr auf Ende der Samstagszeit setzen
ende = new TimeSpan(0, endeDerSamstagszeit, 0, 0, 0);
if (start.Hours < startDerSamstagszeit)
start = new TimeSpan(0, startDerSamstagszeit, 0, 0, 0);
var d1 = sr.Start.Value;
ed.Custom1 += (ende - start).Hours;
}
var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
var unroundedEnd = d1.AddMinutes(sr.DurationMinutes);
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);
}
}

View File

@@ -2,7 +2,7 @@ using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using BS.Shared.Extensions;
namespace Mittelpunkt
{
@@ -33,18 +33,15 @@ namespace Mittelpunkt
{
foreach (var sr in day.ServiceRecords)
{
if (sr.Start.HasValue && sr.End.HasValue && (sr.Start.Value.Date.DayOfWeek == DayOfWeek.Saturday || sr.End.Value.Date.DayOfWeek == DayOfWeek.Saturday))
{
var start = sr.Start.Value.TimeOfDay;
var ende = sr.End.Value.TimeOfDay;
if (start > ende || ende.Hours > endeDerSamstagszeit) // Wenn Ende erst am nächsten Tag ist ODER nach 21 Uhr auf Ende der Samstagszeit setzen
ende = new TimeSpan(0, endeDerSamstagszeit, 0, 0, 0);
if (start.Hours < startDerSamstagszeit)
start = new TimeSpan(0, startDerSamstagszeit, 0, 0, 0);
var d1 = sr.Start.Value;
emp.Custom1 += (ende - start).Hours;
}
}
var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
var unroundedEnd = d1.AddMinutes(sr.DurationMinutes);
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);
emp.Custom1 += Math.Round((decimal)d1.GetIntersectingMinutes(unroundedEnd, saturdayStart, saturdayEnd) / 60, 2, MidpointRounding.AwayFromZero);
}
}
// Custom2 Sonntagsarbeit

View File

@@ -2,7 +2,7 @@ using System;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using BS.Shared.Extensions;
namespace Mittelpunkt
{
@@ -35,17 +35,14 @@ namespace Mittelpunkt
{
foreach (var sr in day.ServiceRecords)
{
if (sr.Start.HasValue && sr.End.HasValue && (sr.Start.Value.Date.DayOfWeek == DayOfWeek.Saturday || sr.End.Value.Date.DayOfWeek == DayOfWeek.Saturday))
{
var start = sr.Start.Value.TimeOfDay;
var ende = sr.End.Value.TimeOfDay;
if (start > ende || ende.Hours > endeDerSamstagszeit) // Wenn Ende erst am nächsten Tag ist ODER nach 21 Uhr auf Ende der Samstagszeit setzen
ende = new TimeSpan(0, endeDerSamstagszeit, 0, 0, 0);
if (start.Hours < startDerSamstagszeit)
start = new TimeSpan(0, startDerSamstagszeit, 0, 0, 0);
var d1 = sr.Start.Value;
detail.EmployeeDetail.Custom1 += (ende - start).Hours;
}
var saturday = d1.GetNextDayOfWeek(DayOfWeek.Saturday);
var unroundedEnd = d1.AddMinutes(sr.DurationMinutes);
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);
detail.EmployeeDetail.Custom1 += Math.Round((decimal)d1.GetIntersectingMinutes(unroundedEnd, saturdayStart, saturdayEnd) / 60, 2, MidpointRounding.AwayFromZero);
}
}