MH: LebenshilfeStade Ministatistik für Monatsbewilligungen korrigiert

This commit is contained in:
2026-04-08 16:05:39 +02:00
parent c678ebce85
commit c5cb6e0533

View File

@@ -24,41 +24,44 @@ namespace LebenshilfeStade.Service
decimal factor = 1.2m;
stats.MinutesApprovedPerWeek *= factor;
stats.MinutesApprovedTotal *= factor;
stats.MinutesApprovedTotal = 0;
foreach (var item in stats.PeriodStatistics)
{
// Bewilligt pro Woche/Gesamt
item.MinutesApprovedPerWeek *= factor;
item.MinutesApprovedTotal *= factor;
DateTime dtPeriod = statisticsDate.Date;
if (item.SupportConceptApprovalPeriod.StartDate.HasValue && item.SupportConceptApprovalPeriod.StartDate > dtPeriod)
if (item.SupportConceptApprovalPeriod != null && item.SupportConceptApprovalPeriod.ApprovedBEInterval.HasValue &&
item.SupportConceptApprovalPeriod.ApprovedBEInterval.Value == BS.Shared.SupportConceptApprovalInterval.Monthly)
{
dtPeriod = item.SupportConceptApprovalPeriod.StartDate.Value;
item.MinutesApprovedTotal /= factor;
}
stats.MinutesApprovedTotal += item.MinutesApprovedTotal;
TimeSpan tsPeriod = item.SupportConceptApprovalPeriod.EndDate.Value.Subtract(dtPeriod);
int daysPeriod = tsPeriod.Days + 1;
if (daysPeriod < 0)
daysPeriod = 0;
//DateTime dtPeriod = statisticsDate.Date;
//if (item.SupportConceptApprovalPeriod.StartDate.HasValue && item.SupportConceptApprovalPeriod.StartDate > dtPeriod)
//{
// dtPeriod = item.SupportConceptApprovalPeriod.StartDate.Value;
//}
if (daysPeriod != 0)
{
item.MinutesFreePerWeek = (item.MinutesApprovedTotal - item.MinutesProvidedTotalRounded) / (daysPeriod / 7m);
}
else
{
item.MinutesFreePerWeek = item.MinutesApprovedTotal - item.MinutesProvidedTotalRounded;
}
//TimeSpan tsPeriod = item.SupportConceptApprovalPeriod.EndDate.Value.Subtract(dtPeriod);
//int daysPeriod = tsPeriod.Days + 1;
//if (daysPeriod < 0)
// daysPeriod = 0;
//if (daysPeriod != 0)
//{
// item.MinutesFreePerWeek = (item.MinutesApprovedTotal - item.MinutesProvidedTotalRounded) / (daysPeriod / 7m);
//}
//else
//{
// item.MinutesFreePerWeek = item.MinutesApprovedTotal - item.MinutesProvidedTotalRounded;
//}
}
decimal freeTotal = stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded;
if (stats.MinutesFreePerWeekAverage > freeTotal)
stats.MinutesFreePerWeekAverage = freeTotal;
if (stats.MinutesFreePerWeekAverage < 0)
stats.MinutesFreePerWeekAverage = 0;
//decimal freeTotal = stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded;
//if (stats.MinutesFreePerWeekAverage > freeTotal)
// stats.MinutesFreePerWeekAverage = freeTotal;
//if (stats.MinutesFreePerWeekAverage < 0)
// stats.MinutesFreePerWeekAverage = 0;
return stats;
}