From 973f49fabc60330dd082973cfd63d7bd25b560e3 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 28 Aug 2023 17:14:04 +0200 Subject: [PATCH] DeliveryAdminWindow: Update KGNr when MgNr changes --- Elwig/Windows/DeliveryAdminWindow.xaml.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 5be3bd6..3b5838a 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -119,7 +119,7 @@ namespace Elwig.Windows { } private void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) { - + // TODO export Traubentransportscheinliste } private void OnSecondPassed(object? sender, EventArgs? evt) { @@ -483,6 +483,8 @@ namespace Elwig.Windows { private async Task UpdateDeliveryPart(Delivery? d, DeliveryPart? p) { int year, did, dpnr; bool deliveryNew = (d == null), partNew = (p == null); + var originalMgNr = d?.MgNr; + var originalMemberKgNr = d?.Member?.DefaultKgNr; if (d == null) { d = Context.CreateProxy(); year = Utils.CurrentNextSeason; @@ -538,8 +540,6 @@ namespace Elwig.Windows { if (ManualWeighingReason != null) p.Comment = (p.Comment != null ? $"{p.Comment} / " : "") + $"Begründung Handwiegung: {ManualWeighingReason}"; - // TODO update KgNr when MgNr changes (if default is selected) - EntityEntry? dEntry = null; EntityEntry? pEntry = null; try { @@ -554,6 +554,15 @@ namespace Elwig.Windows { await Context.UpdateDeliveryPartAttributes(p, AttributesInput.ItemsSource.Cast()); await Context.UpdateDeliveryPartModifiers(p, ModifiersInput.ItemsSource.Cast()); + if (originalMgNr != null && originalMgNr.Value != d.MgNr) { + // update origin (KgNr), if default is selected + var newKgNr = (await Context.Members.FindAsync(d.MgNr))?.DefaultKgNr; + foreach (var part in d.Parts.Where(part => part.DPNr != dpnr && part.KgNr == originalMemberKgNr)) { + part.KgNr = newKgNr; + Context.Update(part); + } + } + await Context.SaveChangesAsync(); } catch (Exception exc) { if (dEntry != null) {