DeliveryAdminWindow: Update KGNr when MgNr changes
This commit is contained in:
@ -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<DeliveryPart> 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<Delivery>();
|
||||
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<Delivery>? dEntry = null;
|
||||
EntityEntry<DeliveryPart>? pEntry = null;
|
||||
try {
|
||||
@ -554,6 +554,15 @@ namespace Elwig.Windows {
|
||||
await Context.UpdateDeliveryPartAttributes(p, AttributesInput.ItemsSource.Cast<WineAttr>());
|
||||
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();
|
||||
} catch (Exception exc) {
|
||||
if (dEntry != null) {
|
||||
|
Reference in New Issue
Block a user