Kundenanpassungen an Mitarbeiterstundenkonto Refactoring

This commit is contained in:
2026-07-17 02:40:28 +02:00
parent a939947d31
commit 88185d7382
169 changed files with 2004 additions and 2670 deletions

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BeWo.Service.Dienstplanung;
namespace SKMAachen
@@ -39,13 +40,13 @@ namespace SKMAachen
return dd;
}
public override bool AddServiceRecordToDuration(ServiceRecord item)
public override bool AddServiceRecordToDuration(StundenkontoServiceRecord item)
{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
if (item.ServiceDescription != null && item.ServiceDescription.Category != null)
{
if (item.Start.HasValue && item.Start.Value.Date < new DateTime(2023, 10, 17))
if (item.Start.Date < new DateTime(2023, 10, 17))
{
if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
if (item.ServiceDescription.Category.Name == "Arbeitszeit")
{
return true;
}
@@ -54,7 +55,7 @@ namespace SKMAachen
{
if (!item.ServiceDescription.Name.Contains("Pause"))
{
if (item.ServiceDescription.ServiceCategory.Name.Contains("Arbeitszeit"))
if (item.ServiceDescription.Category.Name.Contains("Arbeitszeit"))
{
return true;
}
@@ -66,21 +67,21 @@ namespace SKMAachen
return false;
}
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<ServiceRecord> groupFilteredRecords, DateTime berichtsAnfang,
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<StundenkontoServiceRecord> groupFilteredRecords, DateTime berichtsAnfang,
DateTime berichtsEnde)
{
decimal flsGesamt = 0;
decimal arbeitszeit = 0;
var sum = new ServiceRecordSummary();
sum.RecordsImBerichtszeitraum = new List<ServiceRecord>();
sum.RecordsImBerichtszeitraum = new List<StundenkontoServiceRecord>();
//base.CorrectOverlappingTimes(groupFilteredRecords);
foreach (var item in groupFilteredRecords)
{
if (!IsServiceRecordFehlzeit(item))
{
if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
if (item.Start >= berichtsAnfang && item.Start < berichtsEnde)
{
//if (AddServiceRecordToDuration(item))
//{
@@ -96,11 +97,11 @@ namespace SKMAachen
}
if (item.ServiceDescription != null &&
item.ServiceDescription.ServiceCategory != null)
item.ServiceDescription.Category != null)
{
if (item.ServiceDescription.ServiceCategory.Name.Contains("Arbeitszeit"))
if (item.ServiceDescription.Category.Name.Contains("Arbeitszeit"))
{
if (item.Start.HasValue && item.Start.Value.Date < new DateTime(2023, 10, 17))
if (item.Start.Date < new DateTime(2023, 10, 17))
arbeitszeit += duration;
else
{
@@ -110,7 +111,7 @@ namespace SKMAachen
// arbeitszeit -= duration;
}
}
else if (item.ServiceDescription.ServiceCategory.IsBillable)
else if (item.ServiceDescription.Category.IsBillable)
{
flsGesamt += duration;
}
@@ -128,7 +129,7 @@ namespace SKMAachen
return sum;
}
public override IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll)
public override IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<StundenkontoServiceRecord> recordsAll)
{
var list = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll);
foreach (var dd in list)
@@ -139,30 +140,30 @@ namespace SKMAachen
foreach (var sr in recordsAll)
{
if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue && sr.Start.Value.Day == dd.Date.Day)
if (sr.Start >= berichtStart && sr.Start < berichtEnde && sr.Start.Day == dd.Date.Day)
{
decimal duration = GetDuration(sr);
if (sr.Start.HasValue && sr.Start.Value.Date > new DateTime(2023, 10, 16))
if (sr.Start.Date > new DateTime(2023, 10, 16))
{
if (sr.ServiceDescription.Name.Contains("Pause"))
{
dd.PauseInMinuten += (decimal)sr.DurationMinutes;
}
else if (sr.ServiceDescription.ServiceCategory.Name.Contains("Arbeitszeit"))
else if (sr.ServiceDescription.Category.Name.Contains("Arbeitszeit"))
{
dd.MinutesTotal += (decimal)sr.DurationMinutes;
}
}
else
{
if (sr.ServiceDescription.ServiceCategory.Name.Contains("Arbeitszeit"))
if (sr.ServiceDescription.Category.Name.Contains("Arbeitszeit"))
dd.MinutesTotal += (decimal)sr.DurationMinutes;
}
if (sr.ServiceDescription.Name != "Arbeitszeit" &&
sr.ServiceDescription.ServiceCategory.IsBillable)
sr.ServiceDescription.Category.IsBillable)
{
dd.SpecialHours += (decimal)sr.DurationMinutes;
}
@@ -181,7 +182,7 @@ namespace SKMAachen
return list;
}
private decimal GetDuration(ServiceRecord sr)
private decimal GetDuration(StundenkontoServiceRecord sr)
{
decimal duration = 0;
@@ -196,17 +197,17 @@ namespace SKMAachen
return duration;
}
public override decimal BerechnePauseMinuten(IList<ServiceRecord> srListAlle)
public override decimal BerechnePauseMinuten(IList<StundenkontoServiceRecord> srListAlle)
{
var srList = srListAlle.Where(s => s.ServiceDescription.ServiceCategory.Name == "Arbeitszeit");
var srList = srListAlle.Where(s => s.ServiceDescription.Category.Name == "Arbeitszeit");
decimal pausenZeit = 0;
List<ServiceRecord> pausen = new List<ServiceRecord>();
List<ServiceRecord> nichtpausen = new List<ServiceRecord>();
List<StundenkontoServiceRecord> pausen = new List<StundenkontoServiceRecord>();
List<StundenkontoServiceRecord> nichtpausen = new List<StundenkontoServiceRecord>();
foreach (var sr in srList)
{
if (sr.Start.HasValue && sr.Start.Value.Date > new DateTime(2023, 10, 16))
if (sr.Start.Date > new DateTime(2023, 10, 16))
{
if (sr.ServiceDescription.Name == "Pause")
{