From 5b030973ff1fe43eeeeecd5f1db1c65540f85d1f Mon Sep 17 00:00:00 2001 From: Marcel Hirschle Date: Mon, 15 Apr 2024 11:31:39 +0200 Subject: [PATCH] MH: Frei Pro Woche in Basis der Mitarbeiterauslastung eingebaut --- Report/ReportObjects/AuslastungBerechnung.cs | 14 ++++++++++++-- Report/ReportObjects/MitarbeiterauslastungRO.cs | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Report/ReportObjects/AuslastungBerechnung.cs b/Report/ReportObjects/AuslastungBerechnung.cs index 810175a09..8034f8de3 100644 --- a/Report/ReportObjects/AuslastungBerechnung.cs +++ b/Report/ReportObjects/AuslastungBerechnung.cs @@ -11,8 +11,7 @@ using BS.Shared.Core; using BS.Shared; using BS.Shared.Extensions; using BS.Shared.Services; - - +using System.Linq; namespace BeWo.Report.ReportObjects { @@ -417,6 +416,17 @@ namespace BeWo.Report.ReportObjects scDC.SupportConceptApprovalPeriod = scap; scDC.CostBearer2SupportConcept = DAOFactory.GenericDAO.Unproxy(cb2sc); + // "Frei pro Woche" aus der Zeiterfassungsstatistik hinzufügen + var stats = new ServiceRecordStatisticFactory().CreateSupportConceptStatisticsImpl(cb2sc.Oid.Value, DateTime.Now); + if (stats.PeriodStatistics != null && stats.PeriodStatistics.Any(s => s.SupportConceptApprovalPeriod.SupportConceptApprovalPeriodOid == scap.Oid)) + scDC.FreiProWoche = stats.PeriodStatistics.First(s => s.SupportConceptApprovalPeriod.SupportConceptApprovalPeriodOid == scap.Oid).MinutesFreePerWeek / 60; + // Prozentwert aus der Bewilligung einbeziehen + if (scap.SupportConceptApprovalPeriod2Employee != null && scap.SupportConceptApprovalPeriod2Employee.Any(s2e => s2e.Employee.Oid == emp.Oid)) + { + var faktor = scap.SupportConceptApprovalPeriod2Employee.First(s2e => s2e.Employee.Oid == emp.Oid).Betreuungsschluessel; + scDC.FreiProWoche *= faktor / 100; + } + DateTime end = ende; if (realEnd.HasValue && realEnd.Value < end) { diff --git a/Report/ReportObjects/MitarbeiterauslastungRO.cs b/Report/ReportObjects/MitarbeiterauslastungRO.cs index accc43ff8..9717ea4ec 100644 --- a/Report/ReportObjects/MitarbeiterauslastungRO.cs +++ b/Report/ReportObjects/MitarbeiterauslastungRO.cs @@ -217,6 +217,7 @@ namespace BeWo.Report.ReportObjects public decimal MittelbarIst { get; set; } + public decimal RelationDirectToMittelbar { get; set; } public decimal RelationIstSoll { get; set; } @@ -296,6 +297,8 @@ namespace BeWo.Report.ReportObjects public decimal MinutesSoll { get; set; } public decimal MittelbarIst { get; set; } + + public decimal FreiProWoche { get; set; } public decimal RelationDirectToMittelbar { get; set; }