From 8af40f0bc4036bcedecb075857e67380b3c48ad3 Mon Sep 17 00:00:00 2001 From: "lyndon.jetten@ownsoft.de" Date: Thu, 3 Apr 2025 16:13:47 +0200 Subject: [PATCH] LJ: Warnung bei vorhandener Monatsunterschrift wird auch im FaC angezeigt, ohne dass dieser ausgeliefert werden muss. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fehler beim Löschen eines ServiceRecords ohne Unterschrift behoben. --- BeWoPlanerMobil/Controllers/MainController.cs | 1 - Data/Access/GenericDAO.cs | 7 ++----- Service/Plugins/PluginLoader.cs | 4 ++-- Service/Plugins/ServiceRecordValidator.cs | 13 +++++++++---- Shared/BeWoEntityEnums.cs | 3 +-- Shared/Extensions/IListTExtensions.cs | 18 +++++++++++++++++- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index 9ae13b6e8..6b1059dfe 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -2687,7 +2687,6 @@ namespace BeWoPlanerMobil.Controllers newResult.KannTrotzdemGespeichertWerden = vr.Allow; break; case SignatureExists: - case ConfirmationReceiptSignatureExists: var klient3 = "diesem Hilfeplan"; if(!string.IsNullOrEmpty(vr.CustomerName)) { diff --git a/Data/Access/GenericDAO.cs b/Data/Access/GenericDAO.cs index 7519a5d36..8dd08302d 100644 --- a/Data/Access/GenericDAO.cs +++ b/Data/Access/GenericDAO.cs @@ -387,9 +387,6 @@ namespace BeWo.Data.Access private static void LogSignatureDeletion(BeWoEntityBase entity) { - // ToDo: vorerst ausgesetzt, da versucht wird, ein Null-Objekt in die Datenbank zu schreiben. - return; - var signatureHistoryEntries = new List(); switch(entity) @@ -410,7 +407,7 @@ namespace BeWo.Data.Access break; } case Bargeldkasse bargeldkasse when bargeldkasse.Bargeldtransaktionen.Any(bargeldtransaktion => bargeldtransaktion.SignatureOid.HasValue): - signatureHistoryEntries.AddRange(DAOFactory.SearchDAO.CreateSignatureHistoryEntryForBargeldkasse(bargeldkasse)); + signatureHistoryEntries.AddRangeIfNotNull(DAOFactory.SearchDAO.CreateSignatureHistoryEntryForBargeldkasse(bargeldkasse)); break; case Bargeldtransaktion bargeldtransaktion when bargeldtransaktion.SignatureOid.HasValue: signatureHistoryEntries.AddIfNotNull(DAOFactory.SearchDAO.CreateSignatureHistoryForBargeldtransaktion(bargeldtransaktion, SignatureEventType.CascadingDelete)); @@ -419,7 +416,7 @@ namespace BeWo.Data.Access if(signatureHistoryEntries.Any()) { - DAOFactory.GenericDAO.Insert(signatureHistoryEntries); + DAOFactory.GenericDAO.Insert(signatureHistoryEntries.Where(she => she is object)); } } diff --git a/Service/Plugins/PluginLoader.cs b/Service/Plugins/PluginLoader.cs index 7cfc2f8cf..801bded6f 100644 --- a/Service/Plugins/PluginLoader.cs +++ b/Service/Plugins/PluginLoader.cs @@ -50,7 +50,7 @@ namespace BeWo.Service.Plugins //t = "2499262621"; // HPH Bersenbrück //t = "4950382346"; // Holsinger //t = "5973016645"; // Verein Lebensgestaltung Hanau - t = "7375324044"; // Diakonie KK Kleve + //t = "7375324044"; // Diakonie KK Kleve //t = "1441747891"; // BeWo Mobil Köln //t = "5120047701"; // Trialog //t = "3629696651"; // Soziale Dienste Niederrhein (SDN) @@ -65,7 +65,7 @@ namespace BeWo.Service.Plugins //t = "2542550178"; // LWVEingliederungshilfe //t = "3963982016"; // Convoi //t = "1600408120"; // BeWo Amrath - //t = "3886054624"; // Brücke ABW + t = "3886054624"; // Brücke ABW //t = "2028095630"; // Integra Heinsberg //t = "5351926758"; // Viva a Vida //t = "2215396183"; // Diakonie Remscheid Lennep diff --git a/Service/Plugins/ServiceRecordValidator.cs b/Service/Plugins/ServiceRecordValidator.cs index f5562d382..64ce28965 100644 --- a/Service/Plugins/ServiceRecordValidator.cs +++ b/Service/Plugins/ServiceRecordValidator.cs @@ -36,6 +36,7 @@ namespace BeWo.Service.Plugins DateTime start = groupRecord.Start.Value; bool noTime = start.Hour == 0 && start.Minute == 0 && start.Second == 1; //Keine Zeit angegeben + // 0. Monatsunterschrift ist vorhanden und die Leistungskategorie ist abrechenbar if(groupRecord.ServiceDescription.Category.IsBillable) { var startDate = groupRecord.Start.Value; @@ -50,7 +51,7 @@ namespace BeWo.Service.Plugins if(hasMonatsunterschrift) { - result.AddOrUpdateValueInDictionary(groupRecord, ServiceRecordValidationResult.ConfirmationReceiptSignatureExists); + result.AddOrUpdateValueInDictionary(groupRecord, ServiceRecordValidationResult.SignatureExists); } } } @@ -259,13 +260,17 @@ namespace BeWo.Service.Plugins if(hasMonatsunterschrift) { + var customerName = newServiceRecord.SupportConcept.CustomerName; + + var customerText = customerName is object ? $"Klient {customerName}" : "diesem Hilfeplan"; + result.Add(new ServiceRecordValidationResultDC { - ResultType = ServiceRecordValidationResult.ConfirmationReceiptSignatureExists, + ResultType = ServiceRecordValidationResult.SignatureExists, Allow = true, CustomerName = newServiceRecord.SupportConcept.CustomerName, EmployeeName = newServiceRecord.Employee.ToString(), - Message = "Für den ausgewählten Zeitraum existiert bereits eine Monatsunterschrift, die mit dem Anlegen dieses Eintrags verfällt und neu geleistet werden muss." + Message = $"Für den ausgewählten Zeitraum existiert bereits eine Monatsunterschrift bei {customerText}, die mit dem Anlegen dieses Eintrags verfällt und neu geleistet werden muss." }); } } @@ -288,7 +293,7 @@ namespace BeWo.Service.Plugins result.Add(new ServiceRecordValidationResultDC { - ResultType = ServiceRecordValidationResult.ConfirmationReceiptSignatureExists, + ResultType = ServiceRecordValidationResult.SignatureExists, Message = message, Allow = true, CustomerName = newServiceRecord.SupportConcept?.CustomerName, diff --git a/Shared/BeWoEntityEnums.cs b/Shared/BeWoEntityEnums.cs index ec96d94c2..efec94e0f 100644 --- a/Shared/BeWoEntityEnums.cs +++ b/Shared/BeWoEntityEnums.cs @@ -909,8 +909,7 @@ namespace BS.Shared SettlementInvoiceAlreadyExisting = 6, FristAbgelaufen = 7, Custom = 8, - SignatureExists = 9, - ConfirmationReceiptSignatureExists = 10 + SignatureExists = 9 } public enum ViewDestination diff --git a/Shared/Extensions/IListTExtensions.cs b/Shared/Extensions/IListTExtensions.cs index d7cbe7582..186085570 100644 --- a/Shared/Extensions/IListTExtensions.cs +++ b/Shared/Extensions/IListTExtensions.cs @@ -134,12 +134,28 @@ namespace BS.Shared.Extensions public static void AddIfNotNull(this IList list, T item) { - list.Add(item); + if(item != null) + { + list.Add(item); + } } public static void AddIfNotNullAndNotIn(this IList list, T item) { list.AddIfNotIn(item); } + + public static void AddRangeIfNotNull(this IList list, IList items) + { + if(items == null) + { + return; + } + + foreach(var item in items) + { + list.AddIfNotNull(item); + } + } } } \ No newline at end of file