From c04052cde7b35c8db5f6da77b136daa8ea6e3154 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Wed, 19 Jun 2024 08:55:07 +0200 Subject: [PATCH 01/33] BeWo Error Window --- BeWo/ViewModel/GkvAbrechnungVM.cs | 21 ++++++++++++++++--- .../AccountingServiceImp.cs | 9 -------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/BeWo/ViewModel/GkvAbrechnungVM.cs b/BeWo/ViewModel/GkvAbrechnungVM.cs index 8418da6dc..77ceac4ba 100644 --- a/BeWo/ViewModel/GkvAbrechnungVM.cs +++ b/BeWo/ViewModel/GkvAbrechnungVM.cs @@ -383,11 +383,26 @@ AntwortEntschluesseltAm { GkvAbrechnungVersion = dc.GkvAbrechnungVersion; TransferProtokolle = dc.TransferProtokolle.ToList(); - } - if (cb.Message is object) + if (cb.Successful) + { + MessageBox.Show(Application.Current.MainWindow, "Ihre Sendung wurde korrekt übertragen"); + } + else + { + if (cb.TransferProtokoll.Fehlerlevel == GkvTransferFehlerlevel.Soft) + { + MessageBox.Show(Application.Current.MainWindow, cb.TransferProtokoll.Fehlernachricht, cb.TransferProtokoll.Fehlertitel); + } + else if (cb.TransferProtokoll.Fehlerlevel == GkvTransferFehlerlevel.Fatal) + { + BeWoApp.ShowError(cb.TransferProtokoll.Fehlernachricht, null, false); + } + } + } + else { - MessageBox.Show(Application.Current.MainWindow, cb.Message); + MessageBox.Show(Application.Current.MainWindow, "Unerwarteter Übertragungsfehler"); } }), true); } diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs index 501005de2..436030526 100644 --- a/Service/ServiceImplementations/AccountingServiceImp.cs +++ b/Service/ServiceImplementations/AccountingServiceImp.cs @@ -907,15 +907,6 @@ namespace BeWo.Service.ServiceImplementations response.GkvAbrechnungDC = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(entity); - if (response.Successful) - { - - } - else - { - response.Message = $"{protokoll.Fehlertitel} - {protokoll.Fehlernachricht}"; - } - return response; } From 022ff3956e0c8248c2e171fc6c43e3b82045f31b Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Thu, 20 Jun 2024 09:25:58 +0200 Subject: [PATCH 02/33] Test on App8 GkvAbrechnungView Process start --- BeWo/ViewModel/GkvAbrechnungVM.cs | 16 ---------------- Host/GkvAbrechnungView.aspx.cs | 7 +++++++ 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/BeWo/ViewModel/GkvAbrechnungVM.cs b/BeWo/ViewModel/GkvAbrechnungVM.cs index 77ceac4ba..3d14f5e8d 100644 --- a/BeWo/ViewModel/GkvAbrechnungVM.cs +++ b/BeWo/ViewModel/GkvAbrechnungVM.cs @@ -18,22 +18,6 @@ namespace BeWo.ViewModel { public class GkvAbrechnungVM : AbstractDCMapperVM { - /* -Notice -Kundennummer -IKDatenannahmestelle -IKEmpfang -IKLeistungserbringer -AbrechnungsZeitraumStart -AbrechnungsZeitraumEnde -Nutzdatendatei -Auftragsdatei -Transfername -VerschluesseltAm -UebertragenAm -AntwortErhaltenAm -AntwortEntschluesseltAm -*/ public static string PropertyName_AbrechnungsZeitraumStart = "AbrechnungsZeitraumStart"; public static string PropertyName_AbrechnungsZeitraumEnde = "AbrechnungsZeitraumEnde"; diff --git a/Host/GkvAbrechnungView.aspx.cs b/Host/GkvAbrechnungView.aspx.cs index 5fef620a7..646067c23 100644 --- a/Host/GkvAbrechnungView.aspx.cs +++ b/Host/GkvAbrechnungView.aspx.cs @@ -30,6 +30,7 @@ using System.Configuration; using Dakota.Models; using System.Xml; using System.Xml.Linq; +using System.Diagnostics; namespace Host { @@ -174,6 +175,12 @@ namespace Host // Dakota Send + Process p = Process.Start(@"C:\Program Files (x86)\ITSG\dakotale\dakota30.exe", "-a"); + + p.WaitForExit(); + + int return_code = p.ExitCode; + response.Success = true; response.GkvTransferProtokollDC = req.GkvTransferProtokoll; From b76e169462e71f097d6a2ad8c3b8f380f478e4b1 Mon Sep 17 00:00:00 2001 From: Marcel Hirschle Date: Thu, 20 Jun 2024 11:40:08 +0200 Subject: [PATCH 03/33] MH: vkm hamm stundenkonto --- ...stomerMitarbeiterstundenkontoBerechnung.cs | 62 +------------------ .../Mitarbeiterarbeitszeitkonto.designer.cs | 1 + 2 files changed, 3 insertions(+), 60 deletions(-) diff --git a/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs b/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs index 2dad8a42f..04c491c9d 100644 --- a/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs @@ -235,14 +235,9 @@ namespace VkmHamm duration = item.RoundedDuration; } - if (item.ServiceDescription != null && - item.ServiceDescription.ServiceCategory != null) + if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null) { -<<<<<<< HEAD - if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit") -======= if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit" && !IsUrlaubAbsenceServiceRecord(item) && !IsKrankAbsenceServiceRecord(item)) ->>>>>>> master { arbeitszeit += duration; } @@ -278,55 +273,6 @@ namespace VkmHamm = 1 * (1 + 5/40) */ public override void CreateEmployeeDetails(MitarbeiterstundenkontoRO ro) -<<<<<<< HEAD - { - base.CreateEmployeeDetails(ro); - - if (ro.ReportStartDate >= new DateTime(2024, 02, 01) && ro.EmployeeDetailList.Count > 0) - { - foreach (var ed in ro.EmployeeDetailList) - { - // Da deren Abwesenheiten ServiceRecords (Arbeitszeit) sind und die trotzdem vom Soll abgezogen werden, hat man die Stunden von der Abwesenheit doppelt. - // Daher muss nochmal die Anzahl Stunden von Abweseneheiten von den Überstunden abgezogen werden.. - if (ed.TageKrankheit.HasValue) - { - ed.Ueberstunden -= ed.TageKrankheit.Value * ed.SollProTag; - ed.UeberstundenGesamt -= ed.TageKrankheit.Value * ed.SollProTag; - } - if (ed.TageUrlaub.HasValue) - { - ed.Ueberstunden -= ed.TageUrlaub.Value * ed.SollProTag; - ed.UeberstundenGesamt -= ed.TageUrlaub.Value * ed.SollProTag; - } - - var contract = GetContractForDate(ed.Employee, ro.ReportStartDate, ro.ReportEndDate); - if (contract != null) - { - var toleranzstundenVorFaktor = contract.ProbationPeriod2; - - if (toleranzstundenVorFaktor.HasValue && toleranzstundenVorFaktor > 0) - { - if (ed.Ueberstunden > toleranzstundenVorFaktor.Value) - { - var ueberstundenFuerFaktor = ed.Ueberstunden.Value - toleranzstundenVorFaktor.Value; - ed.Custom15 = ueberstundenFuerFaktor * 1.25m; // Auf Stunden, die den Korridor überschritten haben, kommt der Faktor 1,25 drauf - - ed.Ueberstunden = toleranzstundenVorFaktor; // Überstunden werden dann auf die Korridorstunden gesetzt, da die Stunden mit Faktor extra dargestellt werden - ed.UeberstundenGesamt += (ed.Ueberstunden + ed.Custom15) - (ed.Ueberstunden + ueberstundenFuerFaktor); - } - } - } - - } - } - } - - protected override decimal? BerechneUeberstunden(MitarbeiterstundenkontoRO.EmployeeDetail ed, decimal? ueberstundenStd, Contract contract, DateTime start, DateTime ende) - { - if (start < new DateTime(2024, 02, 01)) - return ueberstundenStd; - -======= { base.CreateEmployeeDetails(ro); @@ -378,17 +324,13 @@ namespace VkmHamm if (start >= new DateTime(2024, 04, 01)) { }; ->>>>>>> master if (ed.UeberstundenVormonat == null) ed.UeberstundenVormonat = 0; if (ed.UeberstundenGesamt == null) ed.UeberstundenGesamt = 0; -<<<<<<< HEAD - var ueberstunden = ueberstundenStd - ed.UeberstundenVormonat - (ed.StundenSollMax - ed.StundenSollOhneUrlaubKrankheit); -======= var ueberstunden = ueberstundenStd - ed.UeberstundenVormonat; ->>>>>>> master + if (contract.ProbationPeriod2.HasValue && contract.ProbationPeriod2.Value > 0 && ueberstunden > contract.ProbationPeriod2.Value) { diff --git a/ReportImp/VkmHamm/Mitarbeiterarbeitszeitkonto.designer.cs b/ReportImp/VkmHamm/Mitarbeiterarbeitszeitkonto.designer.cs index 01862f736..2939ede64 100644 --- a/ReportImp/VkmHamm/Mitarbeiterarbeitszeitkonto.designer.cs +++ b/ReportImp/VkmHamm/Mitarbeiterarbeitszeitkonto.designer.cs @@ -806,6 +806,7 @@ namespace VkmHamm this.xrTableCell30.StylePriority.UseBorders = false; this.xrTableCell30.StylePriority.UseTextAlignment = false; this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight; + this.xrTableCell30.TextFormatString = "{0:0.00}"; this.xrTableCell30.Weight = 0.095076208582274377D; // // xrTableCell32 From 22fea2ec7fb9d5559d9d7e6797755fa5d009dd3c Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Thu, 20 Jun 2024 11:50:22 +0200 Subject: [PATCH 04/33] SentSuccess --- .../Controls/GkvAbrechnungDetailControl.xaml | 32 ++++++++++--------- .../Accounting/GkvAbrechnungOverview.xaml | 2 +- BeWo/ViewModel/GkvAbrechnungVM.cs | 19 ++++++----- Data/Access/SearchDAO.cs | 4 +-- Data/Entities/GkvTransferprotokoll.cs | 2 ++ Data/Mappings/GkvTransferProtokoll.hbm.xml | 3 +- Host/GkvAbrechnungView.aspx.cs | 7 +++- Model/Changes_2024_06_20 GKV_SentSuccess.txt | 2 ++ ...ransferProtokollDC_GkvTransferprotokoll.cs | 4 +++ .../AccountingServiceImp.cs | 1 - .../GkvAbrechnung/GkvTransferProtokollDC.cs | 6 ++++ 11 files changed, 51 insertions(+), 31 deletions(-) create mode 100644 Model/Changes_2024_06_20 GKV_SentSuccess.txt diff --git a/BeWo/View/Controls/GkvAbrechnungDetailControl.xaml b/BeWo/View/Controls/GkvAbrechnungDetailControl.xaml index 2939e14e7..2b8e12127 100644 --- a/BeWo/View/Controls/GkvAbrechnungDetailControl.xaml +++ b/BeWo/View/Controls/GkvAbrechnungDetailControl.xaml @@ -104,37 +104,39 @@ - - - - - - - - - - - + + + + + + + + + + + - + - + + + - - diff --git a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml index ae731b5a9..8b403fec3 100644 --- a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml +++ b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml @@ -50,7 +50,7 @@ - + + + + + + + + + + + + diff --git a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs index 5e2632b4a..38bda3a3b 100644 --- a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs +++ b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs @@ -50,6 +50,7 @@ using Size = System.Windows.Size; using SupportConceptService = BeWo.Core.Service.SupportConceptService; using VerticalAlignment = System.Windows.VerticalAlignment; using DependencyObject = System.Windows.DependencyObject; +using BeWo.AI.View; namespace BeWo.View.Detail.Zeiterfassung { @@ -5018,6 +5019,39 @@ namespace BeWo.View.Detail.Zeiterfassung BeWoUtils.NavigateToReportUri(url, "Druckvorschau"); } + private void OpenAiChat(object sender, MouseButtonEventArgs e) + { + + var node = ViewModel.SelectedCustomerNode; + long c2sOid = 0; + + if (node != null && node.SupportConceptTreeNodeDC != null && node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC != null) + { + c2sOid = node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.CostBearer2SupportConceptOid.Value; + } + + var sr = ViewModel.ServiceRecordsForSelectedCustomer; + + var earliestStartDate = sr.Any() ? sr.OrderBy(o => o.StartDate).First().StartDate : DateTime.Now; + var latestEndDate = sr.Any() + ? sr.OrderByDescending(o => o.EndDate).First().EndDate + : DateTime.Now.AddSeconds(1); + + if (latestEndDate.Hour == 0 && latestEndDate.Minute == 0 && latestEndDate.Second == 1) + { + latestEndDate = latestEndDate.AddHours(23); + latestEndDate = latestEndDate.AddMinutes(59); + } + + var ctrl = new AiChatView(c2sOid, earliestStartDate, latestEndDate); + + var beWoWindow = BeWoWindowBuilder.GetBeWoWindow(Translator.Translate("Frage unsere KI"), ctrl, Math.Min(800, this.ActualHeight), Math.Min(1200, this.ActualWidth)); + + ctrl.CloseButtonClicked += () => beWoWindow.Close(); + + beWoWindow.ShowDialog(); + + } private void multiSupportConceptControl_ListChanged(object sender, EventArgs> e) { ViewModel.UpdateGroupServiceAccountings(e.Data); diff --git a/BeWo/View/HilfeplanImportView.xaml b/BeWo/View/HilfeplanImportView.xaml new file mode 100644 index 000000000..d3d3c270f --- /dev/null +++ b/BeWo/View/HilfeplanImportView.xaml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +