MH: Münchner Aidshilfe Bericht angepasst

This commit is contained in:
2025-04-23 15:46:02 +02:00
parent 62a75d3afc
commit 965352beaa

View File

@@ -39,35 +39,88 @@ namespace MuenchenerAidsHilfeEV
summeMitarbeitende += Convert.ToDecimal(contract.EmploymentType.Name.Split('%')[0]);
}
// Gesamtsumme der einzelnen Klientenbetreuungsumfänge zusammenzählen
// Die einzelnen Umfänge stehen in der Betreuungsart im Klienten (CustomerCareTypes)
decimal betreuungsumfangInProzentGesamt = 0;
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
// Gesamtsumme der einzelnen Klientenbetreuungsumfänge zusammenzählen
// Die einzelnen Umfänge stehen in der Leistungskategorie in den Bewilligungen
decimal betreuungsumfangInProzentGesamt = 0;
foreach (var scDetail in empDetail.SupportConceptDetailList)
{
var customerDC = MapperFactory.CustomerDC_Customer.MapToNewDC(e2c.Customer);
var schluessel = customerDC.CustomerCareTypes;
// Benötigten Umfang pro Klient berechnen, also 100 / Nenner im Schlüssel (also bei 1:6 Schlüssel 100 / 6 = 16,67%)
foreach (var s in schluessel)
foreach (var ap in scDetail.CostBearer2SupportConcept.ApprovalPeriodList)
{
// Wenn es einen korrekt angelegten Betreuungsschlüssel gibt, gibt es einen :, welcher nicht das letzte Zeichen ist
if (s.DisplayName.Contains(":") && s.DisplayName[s.DisplayName.Length - 1] != ':')
if (ap.StartDate.HasValue && ap.EndDate.HasValue)
{
var nenner = Convert.ToDecimal(s.DisplayName.Split(':')[1]);
betreuungsumfangInProzentGesamt += 100m / nenner;
summeKlientInnen += 100m / nenner;
if (pRO.ReportEndDate >= ap.StartDate && pRO.ReportStartDate <= ap.EndDate)
{
// Benötigten Umfang pro Klient berechnen, also 100 / Nenner im Schlüssel (also bei 1:6 Schlüssel 100 / 6 = 16,67%)
// Wenn es einen korrekt angelegten Betreuungsschlüssel gibt, gibt es einen :, welcher nicht das letzte Zeichen ist
if (ap.ServiceCategory != null && ap.ServiceCategory.Name.Contains(":") && ap.ServiceCategory.Name[ap.ServiceCategory.Name.Length - 1] != ':')
{
var schluessel = ap.ServiceCategory.Name;
// Nenner des Schlüssels raussuchen, da der mit 100/Nenner den Betreuungsumfang ergibt
var nenner = Convert.ToDecimal(ap.ServiceCategory.Name.Split(':')[1]);
// für zweite Tabelle, die zeigt, welche Schlüssel es gibt und wie viele Klient*innen die jeweils haben, in Dict speichern
if (!betreuungsschluesselZuAnzahl.ContainsKey(nenner))
betreuungsschluesselZuAnzahl.Add(nenner, 0);
betreuungsschluesselZuAnzahl[nenner]++;
}
}
// Wenn es eine anteilige Betreuung in der Bewilligung gibt muss sich diese auch auf den Betreuungsumfang auswirken
decimal betreuungsanteil = 1.0m;
if (ap.SupportConceptApprovalPeriod2Employee != null && ap.SupportConceptApprovalPeriod2Employee.Count > 0)
{
foreach (var item in ap.SupportConceptApprovalPeriod2Employee)
{
if (item.Employee.Oid == empDetail.Employee.Oid)
{
// Betreuungsanteil setzen, wenn er nicht absolut, also in Minuten, ist
if (item.IsAbsolut == false && item.Betreuungsschluessel != 0)
betreuungsanteil = item.Betreuungsschluessel / 100;
nenner /= betreuungsanteil;
}
}
}
// Letztendlichen Umfang mit dem Nenner und dem eventuellen Anteil an der Betreuung
betreuungsumfangInProzentGesamt += 100m / nenner;
summeKlientInnen += 100m / nenner;
// für zweite Tabelle, die zeigt, welche Schlüssel es gibt und wie viele Klient*innen die jeweils haben, in Dict speichern
if (!betreuungsschluesselZuAnzahl.ContainsKey(nenner))
betreuungsschluesselZuAnzahl.Add(nenner, 0);
betreuungsschluesselZuAnzahl[nenner]++;
}
}
}
}
}
// Gesamtbetreuungsumfang in % setzen, um ihn in der Tabelle neben dem Mitarbeitendenbudget anzuzeigen
empDetail.Employee.Text2 = string.Format("{0:0.00}", betreuungsumfangInProzentGesamt);
}
empDetail.Employee.Text2 = string.Format("{0:0.00}", betreuungsumfangInProzentGesamt);
tcSummeMitarbeitende.Text = string.Format("{0:0.00}", summeMitarbeitende / 100);
// ALT Die einzelnen Umfänge stehen in der Betreuungsart im Klienten (CustomerCareTypes)
//foreach (var e2c in empDetail.Employee.Employee2CustomerList)
//{
// var customerDC = MapperFactory.CustomerDC_Customer.MapToNewDC(e2c.Customer);
// var schluessel = customerDC.CustomerCareTypes;
// // Benötigten Umfang pro Klient berechnen, also 100 / Nenner im Schlüssel (also bei 1:6 Schlüssel 100 / 6 = 16,67%)
// foreach (var s in schluessel)
// {
// // Wenn es einen korrekt angelegten Betreuungsschlüssel gibt, gibt es einen :, welcher nicht das letzte Zeichen ist
// if (s.DisplayName.Contains(":") && s.DisplayName[s.DisplayName.Length - 1] != ':')
// {
// var nenner = Convert.ToDecimal(s.DisplayName.Split(':')[1]);
// betreuungsumfangInProzentGesamt += 100m / nenner;
// summeKlientInnen += 100m / nenner;
// // für zweite Tabelle, die zeigt, welche Schlüssel es gibt und wie viele Klient*innen die jeweils haben, in Dict speichern
// if (!betreuungsschluesselZuAnzahl.ContainsKey(nenner))
// betreuungsschluesselZuAnzahl.Add(nenner, 0);
// betreuungsschluesselZuAnzahl[nenner]++;
// }
// }
//}
//// Gesamtbetreuungsumfang in % setzen, um ihn in der Tabelle neben dem Mitarbeitendenbudget anzuzeigen
//empDetail.Employee.Text2 = string.Format("{0:0.00}", betreuungsumfangInProzentGesamt);
}
tcSummeMitarbeitende.Text = string.Format("{0:0.00}", summeMitarbeitende / 100);
tcSummeKlientInnen.Text = string.Format("{0:0.00}", summeKlientInnen / 100);
// Tabelle 2