DeliveryAdminWindow: Update KGNr when MgNr changes

This commit is contained in:
2023-08-28 17:14:04 +02:00
parent 8899e8bd32
commit 973f49fabc

View File

@ -119,7 +119,7 @@ namespace Elwig.Windows {
} }
private void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) { private void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) {
// TODO export Traubentransportscheinliste
} }
private void OnSecondPassed(object? sender, EventArgs? evt) { private void OnSecondPassed(object? sender, EventArgs? evt) {
@ -483,6 +483,8 @@ namespace Elwig.Windows {
private async Task<DeliveryPart> UpdateDeliveryPart(Delivery? d, DeliveryPart? p) { private async Task<DeliveryPart> UpdateDeliveryPart(Delivery? d, DeliveryPart? p) {
int year, did, dpnr; int year, did, dpnr;
bool deliveryNew = (d == null), partNew = (p == null); bool deliveryNew = (d == null), partNew = (p == null);
var originalMgNr = d?.MgNr;
var originalMemberKgNr = d?.Member?.DefaultKgNr;
if (d == null) { if (d == null) {
d = Context.CreateProxy<Delivery>(); d = Context.CreateProxy<Delivery>();
year = Utils.CurrentNextSeason; year = Utils.CurrentNextSeason;
@ -538,8 +540,6 @@ namespace Elwig.Windows {
if (ManualWeighingReason != null) if (ManualWeighingReason != null)
p.Comment = (p.Comment != null ? $"{p.Comment} / " : "") + $"Begründung Handwiegung: {ManualWeighingReason}"; p.Comment = (p.Comment != null ? $"{p.Comment} / " : "") + $"Begründung Handwiegung: {ManualWeighingReason}";
// TODO update KgNr when MgNr changes (if default is selected)
EntityEntry<Delivery>? dEntry = null; EntityEntry<Delivery>? dEntry = null;
EntityEntry<DeliveryPart>? pEntry = null; EntityEntry<DeliveryPart>? pEntry = null;
try { try {
@ -554,6 +554,15 @@ namespace Elwig.Windows {
await Context.UpdateDeliveryPartAttributes(p, AttributesInput.ItemsSource.Cast<WineAttr>()); await Context.UpdateDeliveryPartAttributes(p, AttributesInput.ItemsSource.Cast<WineAttr>());
await Context.UpdateDeliveryPartModifiers(p, ModifiersInput.ItemsSource.Cast<Modifier>()); await Context.UpdateDeliveryPartModifiers(p, ModifiersInput.ItemsSource.Cast<Modifier>());
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(); await Context.SaveChangesAsync();
} catch (Exception exc) { } catch (Exception exc) {
if (dEntry != null) { if (dEntry != null) {