From 120bfbb1fa4f3976ab18ec556875dec7a1f2c305 Mon Sep 17 00:00:00 2001 From: HirschleM Date: Wed, 20 Aug 2025 15:28:11 +0200 Subject: [PATCH] MH: LebenshilfeStadeMID QB Zusatzleistungen --- .../LebenshilfeStadeMID/Quittierungsbeleg.cs | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/ReportImp/LebenshilfeStadeMID/Quittierungsbeleg.cs b/ReportImp/LebenshilfeStadeMID/Quittierungsbeleg.cs index b188b32ab..b107927f0 100644 --- a/ReportImp/LebenshilfeStadeMID/Quittierungsbeleg.cs +++ b/ReportImp/LebenshilfeStadeMID/Quittierungsbeleg.cs @@ -37,8 +37,19 @@ namespace LebenshilfeStadeMID List zusatzleistungen = new List(); verfuegungszeiten.AddRange(pRO.Services.Where(s => s.ServiceDescription.ToLower().Contains("verfügungszeit") || s.ServiceDescription.ToLower().Contains("vorbereitungszeit")).ToList()); zusatzleistungen.AddRange(pRO.Services.Where(s => s.ServiceDescription.ToLower().Contains("bewilligte zusatzleistung")).ToList()); + pRO.Services.RemoveRange(verfuegungszeiten); - pRO.Services.RemoveRange(zusatzleistungen); + // Zusatzleistungen pauschal entfernen geht nicht, da Zusatzleistungen auch an Tagen existieren können an denen es keine anderen Leistungen gibt. + //pRO.Services.RemoveRange(zusatzleistungen); + foreach (var zsl in zusatzleistungen) + { + if (pRO.Services.Any(s => s.StartDate.Date == zsl.StartDate.Date && s.ServiceDescription != zsl.ServiceDescription)) + pRO.Services.Remove(zsl); + else + { + + } + } var customer = MapperFactory.CustomerDC_Customer.MapToNewDC(DAOFactory.GenericDAO.GetByID(pRO.CustomerOid)); if (customer.RelatedEmployees != null && customer.RelatedEmployees.Count > 0) @@ -72,19 +83,25 @@ namespace LebenshilfeStadeMID verfuegungszeiten.Remove(vz); } // Zusatzleistung in eigentlichen ServiceRecord eintragen und aus Liste entfernen, dass der nicht mehrfach übertragen wird + // is zsl[x] = servicerecord gibt es an dem Tag keinen Eintrag, bei dem man die Zusatzleistung eintragen könnte, dann werden die Min + // nicht erhöht sondern einfach die Zusatzleistung als Zeit angezeigt if (zls != null) { if (zls.Count > 0) { + if (zls[0] != sd) + sd.Minutes += zls[0].Minutes; + sd.Notice2 = string.Format("{0:0.00} ({1:0})", zls[0].Minutes / 60, zls[0].ServiceDescription); - sd.Minutes += zls[0].Minutes; summeZusatzleistung1 += zls[0].Minutes; zusatzleistungen.Remove(zls[0]); } if (zls.Count > 1) { + if (zls[1] != sd) + sd.Minutes += zls[1].Minutes; + sd.Notice3 = string.Format("{0:0.00} ({1:0})", zls[1].Minutes / 60, zls[1].ServiceDescription); - sd.Minutes += zls[1].Minutes; summeZusatzleistung2 += zls[1].Minutes; zusatzleistungen.Remove(zls[1]); }