DeliveryAdminWindow: Fix modifier bug
All checks were successful
Test / Run tests (push) Successful in 2m2s

This commit is contained in:
2024-06-11 01:22:43 +02:00
parent ca0497e396
commit 324a63cf9a
2 changed files with 18 additions and 15 deletions

View File

@ -241,23 +241,23 @@ namespace Elwig.Helpers {
.LastAsync();
}
public void UpdateDeliveryPartModifiers(DeliveryPart part, IEnumerable<Modifier> modifiers) {
public void UpdateDeliveryPartModifiers(DeliveryPart part, IEnumerable<Modifier> oldModifiers, IEnumerable<Modifier> newModifiers) {
foreach (var m in Modifiers.Where(m => m.Year == part.Year)) {
var mod = part.PartModifiers.Where(pa => pa.ModId == m.ModId).FirstOrDefault();
if (modifiers.Contains(m)) {
var dpm = new DeliveryPartModifier {
var mod = new DeliveryPartModifier {
Year = part.Year,
DId = part.DId,
DPNr = part.DPNr,
ModId = m.ModId,
};
if (mod == null) {
Add(dpm);
var old = oldModifiers.Where(pa => pa.ModId == m.ModId).FirstOrDefault();
if (newModifiers.Any(md => md.ModId == m.ModId)) {
if (old == null) {
Add(mod);
} else {
Update(dpm);
Update(mod);
}
} else {
if (mod != null) {
if (old != null) {
Remove(mod);
}
}

View File

@ -1267,7 +1267,10 @@ namespace Elwig.Windows {
ctx.Add(p);
}
ctx.UpdateDeliveryPartModifiers(p, ModifiersInput.SelectedItems.Cast<Modifier>());
ctx.UpdateDeliveryPartModifiers(p, await ctx.DeliveryPartModifiers
.Where(m => m.Year == p.Year && m.DId == p.DId && m.DPNr == p.DPNr)
.Select(m => m.Modifier)
.ToListAsync(), ModifiersInput.SelectedItems.Cast<Modifier>());
if (originalMgNr != null && originalMgNr.Value != d.MgNr) {
// update origin (KgNr), if default is selected
@ -1592,7 +1595,7 @@ namespace Elwig.Windows {
p2.HkId = "OEST";
ctx.Add(p2);
ctx.UpdateDeliveryPartModifiers(p2, p.Modifiers);
ctx.UpdateDeliveryPartModifiers(p2, [], p.Modifiers);
}
await ctx.SaveChangesAsync();
await RefreshDeliveryParts();