From 86ae88233487298e806b0a294bc462af4bf94d0c Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 10 Dec 2025 14:42:00 +0100 Subject: [PATCH] Fls Soll/Ist Report verbessert --- Report/DefaultReports/FLSSollIstWeeklyReport.cs | 2 +- Report/ReportObjects/FLSSollIstReportRO.cs | 7 ++++++- .../Reporting/CustomReportCreator.cs | 10 ++++++++-- Service/Plugins/StundenuebersichtAuswertung.cs | 8 +++++++- Shared/DataContracts/ServiceRecordFLSOverviewDC.cs | 3 +++ 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Report/DefaultReports/FLSSollIstWeeklyReport.cs b/Report/DefaultReports/FLSSollIstWeeklyReport.cs index e0077267e..e03ed70e0 100644 --- a/Report/DefaultReports/FLSSollIstWeeklyReport.cs +++ b/Report/DefaultReports/FLSSollIstWeeklyReport.cs @@ -45,7 +45,7 @@ namespace BeWo.Report.DefaultReports AddSpalten(i, false); } - xrTableRowHeader1.Cells[xrTableRowHeader1.Cells.Count - 1].Text = String.Format("KW {0}", wochen[i].KalenderWoche); + xrTableRowHeader1.Cells[xrTableRowHeader1.Cells.Count - 1].Text = String.Format("KW {0}, {1:dd.MM.yy} - {2:dd.MM.yy}", wochen[i].KalenderWoche, wochen[i].WocheStart, wochen[i].WocheEnde); } //Add Gesamtsummen diff --git a/Report/ReportObjects/FLSSollIstReportRO.cs b/Report/ReportObjects/FLSSollIstReportRO.cs index c33799d1c..01f7ea108 100644 --- a/Report/ReportObjects/FLSSollIstReportRO.cs +++ b/Report/ReportObjects/FLSSollIstReportRO.cs @@ -123,7 +123,7 @@ namespace BeWo.Report.ReportObjects { var grpRo = new FLSSollIstReportGroupRO(); grpRo.Name = item.DisplayName; - grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, root.SollFLSPerWeek); + grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null); foreach (var sc in item.SupportConcepts) { @@ -138,6 +138,11 @@ namespace BeWo.Report.ReportObjects ws.IstStunden = 0; } ws.IstStunden += sr.RoundedDuration / 60; + + if (!ws.SollStunden.HasValue) + { + ws.SollStunden = sr.SollFLSPerWeek; + } } grpRo.IstGesamt += sr.RoundedDuration; diff --git a/ReportImp/LebenshilfeBadKreuznachFUD/Reporting/CustomReportCreator.cs b/ReportImp/LebenshilfeBadKreuznachFUD/Reporting/CustomReportCreator.cs index 6370a3f33..f9df4e6d2 100644 --- a/ReportImp/LebenshilfeBadKreuznachFUD/Reporting/CustomReportCreator.cs +++ b/ReportImp/LebenshilfeBadKreuznachFUD/Reporting/CustomReportCreator.cs @@ -37,7 +37,7 @@ namespace LebenshilfeBadKreuznachFUD.Reporting start = new DateTime(start.Year, start.Month, 1); DateTime dt = DateTime.Now; - if (DateTime.TryParse(qro.Rows[0].Field1.ToString(), out dt)) + if (DateTime.TryParse(qro.Rows[0].Field1.ToString(), out dt) && dt > DateTime.MinValue) { start = dt; @@ -45,13 +45,19 @@ namespace LebenshilfeBadKreuznachFUD.Reporting DateTime ende = start.AddMonths(1).AddTicks(-1); + if (DateTime.TryParse(qro.Rows[0].Field2.ToString(), out dt) && dt < DateTime.MaxValue.Date) + { + ende = dt.AddTicks(-1); + + } + var config = new FLSAnalysisConfigDC(); config.StartDate = start; config.EndDate = ende; config.FetchApprovedFLS = true; config.ReportType = FLSReportType.Customer; - if (qro.Rows[0].Field2 != null && Int64.TryParse(qro.Rows[0].Field2.ToString(), out var catOid)) + if (qro.Rows[0].Field3 != null && Int64.TryParse(qro.Rows[0].Field3.ToString(), out var catOid)) { if (catOid > 0) { diff --git a/Service/Plugins/StundenuebersichtAuswertung.cs b/Service/Plugins/StundenuebersichtAuswertung.cs index fb2d02687..485983c31 100644 --- a/Service/Plugins/StundenuebersichtAuswertung.cs +++ b/Service/Plugins/StundenuebersichtAuswertung.cs @@ -203,6 +203,12 @@ namespace BeWo.Service.Plugins groupDC.SupportConcepts.Add(scDC); } + if (config.FetchApprovedFLS) + { + var calc = PluginLoader.FindClass(scDC.CostbearerID) ?? Calculations.GetInstance(scDC.CostbearerID); + srDC.SollFLSPerWeek = calc.GetApprovedHoursPerWeek(scDC.SupportConcept2CostBearer, sr.Start.Value) ?? 0; + } + scDC.ServiceRecords.Add(srDC); } } @@ -224,7 +230,7 @@ namespace BeWo.Service.Plugins if (config.EmployeeOid != null) { allow = false; - foreach (ServiceRecord sr in serviceRecords) + foreach (var sr in serviceRecords) { if (sr.Employee != null && sr.Employee.Oid.Value == config.EmployeeOid.Value) { diff --git a/Shared/DataContracts/ServiceRecordFLSOverviewDC.cs b/Shared/DataContracts/ServiceRecordFLSOverviewDC.cs index d606e91be..37d6b2c73 100644 --- a/Shared/DataContracts/ServiceRecordFLSOverviewDC.cs +++ b/Shared/DataContracts/ServiceRecordFLSOverviewDC.cs @@ -77,5 +77,8 @@ namespace BS.Shared.DataContracts [DataMember] public string DateTimeRange { get; set; } + + [DataMember] + public decimal SollFLSPerWeek { get; set; } } } \ No newline at end of file