MH: MalteserJohanniterJohanneshaus BelegungsquotenRO Ausbau

This commit is contained in:
2026-05-19 10:38:59 +02:00
parent 25b044a28d
commit ff6b4c92a4

View File

@@ -4,6 +4,7 @@ using BeWo.Service.DCEntityMapper;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using DevExpress.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -63,7 +64,7 @@ namespace MalteserJohanniterJohanneshaus.Reporting
}
// für debug
if (wohnheim.WohnheimName.Contains("Folge"))
if (wohnheim.WohnheimName.Contains("Witterschlick"))
{
}
@@ -198,6 +199,7 @@ namespace MalteserJohanniterJohanneshaus.Reporting
}
}
foreach (var sc in hilfeplaeneFuerWohnheim)
{
// Start und Ende der Zeit festlegen, die die Person ein Bett belegt. Geht der Hilfeplan über den Berichtszeitraum hinaus,
@@ -221,13 +223,36 @@ namespace MalteserJohanniterJohanneshaus.Reporting
continue;
else if (cbrel.EndDate.Value < berichtEnde)
{
// Der letzte Tag der Bewilligung zählt nicht mehr als belegt, also einen Tag abziehen
ende = cbrel.EndDate.Value.AddDays(-1);
// für debug
if (wb.Name == "Witterschlick")
{
}
bool hatFolgebewilligung = false;
// Eine Folgebewilligung existiert, wenn es einen Hilfeplan gibt, der genau am Tag nach dem cbrel.EndDate beginnt
var weitereHPs = aktiveHilfeplaene.Where(h => h.Customer.Oid == sc.Customer.Oid && h.SupportConceptOid != sc.SupportConceptOid).ToList();
if (weitereHPs != null && weitereHPs.Count > 0)
{
if (weitereHPs.Any(h => h.CostBearerRelations.Any(c => c.Notice.IsNotNullOrEmpty() && wb.Kostenstelle.IsNotNullOrEmpty() && wb.Kostenstelle.Trim().Contains(c.Notice.Trim()) &&
(c.RequestedStartDate.HasValue && c.RequestedStartDate.Value.Date == cbrel.EndDate.Value.Date.AddDays(1) ||
c.ApprovedStartDate.HasValue && c.ApprovedStartDate.Value.Date == cbrel.EndDate.Value.Date.AddDays(1)))))
hatFolgebewilligung = true;
}
// Der letzte Tag der Bewilligung zählt ohne Folgebewilligung nicht mehr als belegt, also einen Tag abziehen
if (!hatFolgebewilligung)
ende = cbrel.EndDate.Value.AddDays(-1);
else
ende = cbrel.EndDate.Value;
}
}
if (wohnheim.WohnheimName.Contains("Witterschlick"))
{
}
wb.Belegung += (ende - start).Days + 1;
}