MH: Suchtkrankenhilfe Ostfriesland Calculations

This commit is contained in:
2025-08-11 14:29:31 +02:00
parent a78b565e07
commit 68f40bccb7

View File

@@ -26,18 +26,25 @@ namespace SuchtkrankenhilfeOstfriesland.Calculation
// Jetzt müssen die Zeiterfassungseinträge für den abgerechneten Zeitraum geholt werden. Die dienen denen als Anwesenheitsliste.
// Ist die Person weniger als die Hälfte der abgerechneten Tage anwesend gewesen, wird der Betrag halbiert.
var serviceRecords = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDaysWithStartEndDate(CustomTagesstrukturInvoiceCreation.CostBearer2SupportConcept.Oid.Value, start.Value, end.Value);
List<DateTime> anwesenheitstage = new List<DateTime>();
foreach (var sr in serviceRecords)
if (serviceRecords != null && serviceRecords.Count > 0)
{
if (!anwesenheitstage.Contains(sr.Start.Value.Date))
anwesenheitstage.Add(sr.Start.Value.Date);
}
var anwesenheiten = serviceRecords.Where(s => s.ServiceDescription.Name.Trim().ToLower().Contains("anwesend ts")).OrderBy(s => s.Start).ToList();
if ((end.Value - start.Value).TotalDays / 2 > anwesenheitstage.Count)
{
data.AmountTotal /= 2;
data.GrossAmountTotal /= 2;
List<DateTime> anwesenheitstage = new List<DateTime>();
foreach (var sr in anwesenheiten)
{
if (!anwesenheitstage.Contains(sr.Start.Value.Date))
anwesenheitstage.Add(sr.Start.Value.Date);
}
// Wenn die erste Anwesenheit erst ab dem 15. ist, wird die Pauschale für den Monat halbiert
if (anwesenheitstage[0].Day <= 15)
{
data.AmountTotal /= 2;
data.GrossAmountTotal /= 2;
}
}
}
return billingData;