From dd6086cdb9ff2bce11630c126fd07a14a5a65b96 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 30 Jan 2026 19:27:29 +0100 Subject: [PATCH] =?UTF-8?q?Hph=20Bersenbr=C3=BCck=20ATZ=20Erstelle=20zwei?= =?UTF-8?q?=20Belege,=20wenn=20sich=20der=20KT=20mitten=20im=20Monat=20?= =?UTF-8?q?=C3=A4ndert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HphBersenbrueckAtz/CustomReportCreator.cs | 92 +++++++++++++++++-- .../ServicesOverviewReport.cs | 2 + 2 files changed, 88 insertions(+), 6 deletions(-) diff --git a/ReportImp/HphBersenbrueckAtz/CustomReportCreator.cs b/ReportImp/HphBersenbrueckAtz/CustomReportCreator.cs index d8eda6b79..1a4ff2abe 100644 --- a/ReportImp/HphBersenbrueckAtz/CustomReportCreator.cs +++ b/ReportImp/HphBersenbrueckAtz/CustomReportCreator.cs @@ -119,12 +119,19 @@ namespace BeWo.HphBersenbrueckAtz var rootReport = CreateServicesOverviewReportForRo(lROs[0], null); - rootReport.CreateDocument(); + if (rootReport.Pages.Count == 0) + { + rootReport.CreateDocument(); + } + for (int i = 1; i < lROs.Count; i++) { var lNext = CreateServicesOverviewReportForRo(lROs[i], null); - lNext.CreateDocument(); + if (lNext.Pages.Count == 0) + { + lNext.CreateDocument(); + } rootReport.Pages.AddRange(lNext.Pages); } @@ -206,7 +213,7 @@ namespace BeWo.HphBersenbrueckAtz reportId = organisation.Name; } - var rootReport = CreateReportForServicesOverviewRo(sortedList[0], reportId); + var rootReport = CreateServicesOverviewReportForRo(sortedList[0], reportId); if (rootReport.Pages.Count == 0) { rootReport.CreateDocument(); @@ -215,7 +222,7 @@ namespace BeWo.HphBersenbrueckAtz for (int i = 1; i < sortedList.Count; i++) { - var lNext = CreateReportForServicesOverviewRo(sortedList[i], reportId); + var lNext = CreateServicesOverviewReportForRo(sortedList[i], reportId); if (lNext.Pages.Count == 0) { lNext.CreateDocument(); @@ -231,14 +238,87 @@ namespace BeWo.HphBersenbrueckAtz private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, String reportId) + { + var kt2Ro = new Dictionary(); + + if (ro.CostBearer2SupportConceptList != null && ro.CostBearer2SupportConceptList.Count > 1) + { + //Erstelle einen Beleg pro Kostenträger + + foreach (var s in ro.Services) + { + if (s.IsBillable) + { + if (String.IsNullOrEmpty(s.CostBearer)) + { + s.CostBearer = "-"; + } + + if (!kt2Ro.ContainsKey(s.CostBearer)) + { + kt2Ro.Add(s.CostBearer, ServicesOverviewRO.CopyFromRO(ro)); + } + + var newRo = kt2Ro[s.CostBearer]; + newRo.Services.Add(s); + } + } + } + else + { + kt2Ro.Add("", ro); + } + + XtraReport rootReport = null; + foreach (var rov in kt2Ro.Values) + { + CheckKostentraeger(rov); + var report = CreateServicesOverviewReportForRo2(rov, reportId); + if (report.Pages.Count == 0) + { + report.CreateDocument(); + } + if (rootReport == null) + { + rootReport = report; + } + else + { + rootReport.Pages.AddRange(report.Pages); + } + } + + return rootReport; + } + + private void CheckKostentraeger(ServicesOverviewRO rov) + { + if (rov.CostBearer2SupportConceptList != null && rov.CostBearer2SupportConceptList.Count > 1) + { + if (rov.Services.Count > 0) + { + var datum = rov.Services[0].StartDate; + + foreach (var c2s in rov.CostBearer2SupportConceptList) + { + if (c2s.StartDate <= datum.Date && c2s.EndDate >= datum.Date) + { + rov.ApprovedStartDate = String.Format("{0:dd.MM.yyyy}", c2s.StartDate); + rov.ApprovedEndDate = String.Format("{0:dd.MM.yyyy}", c2s.EndDate); + rov.Costbearer = c2s.CostBearer.Organisation.Name; + } + } + } + } + } + + private XtraReport CreateServicesOverviewReportForRo2(ServicesOverviewRO ro, String reportId) { NachweisTherapieeinheiten report = new NachweisTherapieeinheiten(); report.SetReportDataSource(ro); return report; } - - } } diff --git a/ReportImp/HphBersenbrueckAtz/ServicesOverviewReport.cs b/ReportImp/HphBersenbrueckAtz/ServicesOverviewReport.cs index 693f48eb2..44532aec6 100644 --- a/ReportImp/HphBersenbrueckAtz/ServicesOverviewReport.cs +++ b/ReportImp/HphBersenbrueckAtz/ServicesOverviewReport.cs @@ -21,6 +21,7 @@ namespace BeWo.HphBersenbrueckAtz public void SetReportDataSource(ServicesOverviewRO pRO) { //SetVarFieldValues(pRO); + double gesamt = 0; bool isFls = false; @@ -104,6 +105,7 @@ namespace BeWo.HphBersenbrueckAtz this.bindingSource1.DataSource = pRO; } + private void SetzeStandort(ServicesOverviewRO ro) { if (ro.CostBearer2SupportConceptList != null && ro.CostBearer2SupportConceptList.Count > 0)