MH: FFS Stundenkontoanpassung

This commit is contained in:
2023-06-05 13:20:46 +02:00
parent a62780cc24
commit e236396c2b
2 changed files with 26 additions and 1 deletions

View File

@@ -52,7 +52,7 @@ namespace FreundeskreisSuchthilfe.Alt
}
return false;
}
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<ServiceRecord> groupFilteredRecords, DateTime berichtsAnfang,
DateTime berichtsEnde)
{

View File

@@ -21,6 +21,31 @@ namespace FreundeskreisSuchthilfe.Alt
var msb = new CustomMitarbeiterstundenkontoBerechnung();
msb.CreateReport(pRO);
var reportMonth = pRO.ReportStartDate.Month;
foreach (var empDetail in pRO.EmployeeDetailList)
{
foreach (var abs in empDetail.Employee.AbsenceTimes)
{
if (abs.AbsenceReason.Description.ToLower() == "mehrarbeitsausgleich")
{
// Wenn kein Startdate, dann ReportStartdate. Wenn Startdate VOR ReportEnddate, dann ReportStartdate. Wenn beides nicht einfach normales Absence-Startdate
var absStart = !abs.Start.HasValue ? pRO.ReportStartDate : abs.Start.Value < pRO.ReportStartDate ? pRO.ReportStartDate : abs.Start.Value;
// Wenn kein Enddate, dann ReportEnddate. Wenn Enddate NACH ReportEnddate, dann ReportEnddate. Wenn beides nicht einfach normales Absence-Enddate
var absEnd = !abs.End.HasValue ? pRO.ReportEndDate : abs.End.Value > pRO.ReportEndDate ? pRO.ReportEndDate : abs.End.Value;
while (absStart <= absEnd && empDetail.WeeklyFLS.HasValue)
{
empDetail.FlsSoll -= empDetail.WeeklyFLS.Value / empDetail.ArbeitstageProWoche;
empDetail.FlsDiff += empDetail.WeeklyFLS.Value / empDetail.ArbeitstageProWoche;
pRO.FlsSollGesamt -= empDetail.WeeklyFLS.Value / empDetail.ArbeitstageProWoche;
pRO.FlsDiffGesamt += empDetail.WeeklyFLS.Value / empDetail.ArbeitstageProWoche;
absStart = absStart.AddDays(1);
}
}
}
}
this.bindingSource1.DataSource = pRO;
}