From eef7cede42d7b3dd2dc6d320754d91b0ac75e969 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Mon, 8 Jul 2024 15:25:15 +0200 Subject: [PATCH] Erste tests, IK kommen mehrfach vor in allen Dateien. Bsp 661400051 --- Dakota/Logic/DakotaKTDReader.cs | 15 ++++++++++----- .../Schlüssels/SchlüsselArtDerVerknüpfung.cs | 2 +- Host/Web.config | 1 + .../AccountingServiceImp.cs | 9 +++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Dakota/Logic/DakotaKTDReader.cs b/Dakota/Logic/DakotaKTDReader.cs index ab8d92f30..282cc10e8 100644 --- a/Dakota/Logic/DakotaKTDReader.cs +++ b/Dakota/Logic/DakotaKTDReader.cs @@ -10,9 +10,10 @@ namespace Dakota.Logic { public class DakotaKTDReader { - private static readonly string[] accept = new string[] { "UNH", "IDK", "VDT", "VKG", "UNT"}; + private static readonly string[] accept = new string[] { "UNH", "IDK", "FKT", "VKG", "UNT"}; internal Dictionary IK2NachrichtKTD { get; set; } + = new Dictionary(); public DakotaKTDReader(string ktd_folder_path) { @@ -49,10 +50,14 @@ namespace Dakota.Logic } else if (type == "UNT") { - if (NachrichtKTD.TryParse(queue.ToArray(), filename, first_line, out var nachricht)) - { - IK2NachrichtKTD.Add(nachricht.IKNummer, nachricht); - } + var nachricht = NachrichtKTD.Parse(queue.ToArray(), filename, first_line); + + if (IK2NachrichtKTD.ContainsKey(nachricht.IKNummer)) + throw new Exception($"Beinhaltet Key bereits: {nachricht.IKNummer} in {filename} - l {first_line}"); + + IK2NachrichtKTD.Add(nachricht.IKNummer, nachricht); + + queue.Clear(); } else { diff --git a/Dakota/Models/Schlüssels/SchlüsselArtDerVerknüpfung.cs b/Dakota/Models/Schlüssels/SchlüsselArtDerVerknüpfung.cs index 37a78f101..684224ae9 100644 --- a/Dakota/Models/Schlüssels/SchlüsselArtDerVerknüpfung.cs +++ b/Dakota/Models/Schlüssels/SchlüsselArtDerVerknüpfung.cs @@ -23,7 +23,7 @@ namespace Dakota.Models.Schlüssels var schlüssel = GetSchlüsselSafe(list, str); - if (schlüssel is null) + if (schlüssel is null && str != "09") throw new DakotaException($"ArtDerVerknüpfung {str} nicht gefunden."); return schlüssel; diff --git a/Host/Web.config b/Host/Web.config index d3464fb9d..daa6e26e4 100644 --- a/Host/Web.config +++ b/Host/Web.config @@ -238,6 +238,7 @@ + diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs index 290c0e867..762c0fc4b 100644 --- a/Service/ServiceImplementations/AccountingServiceImp.cs +++ b/Service/ServiceImplementations/AccountingServiceImp.cs @@ -744,6 +744,15 @@ namespace BeWo.Service.ServiceImplementations { try { + /// --------------- + + var path = @"C:\GkvAbrechnung\KTDatei"; + + var reader = new DakotaKTDReader(path); + + + /// --------------- + var user = LoggedInUserOperationContextExt.Current?.User ?? SessionFacade.LoggedInUser; var entries = DAOFactory.GenericDAO.GetAllActive();