DeliveryAdminWindow: Fix modifier bug
All checks were successful
Test / Run tests (push) Successful in 2m2s
All checks were successful
Test / Run tests (push) Successful in 2m2s
This commit is contained in:
@ -241,23 +241,23 @@ namespace Elwig.Helpers {
|
|||||||
.LastAsync();
|
.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)) {
|
foreach (var m in Modifiers.Where(m => m.Year == part.Year)) {
|
||||||
var mod = part.PartModifiers.Where(pa => pa.ModId == m.ModId).FirstOrDefault();
|
var mod = new DeliveryPartModifier {
|
||||||
if (modifiers.Contains(m)) {
|
Year = part.Year,
|
||||||
var dpm = new DeliveryPartModifier {
|
DId = part.DId,
|
||||||
Year = part.Year,
|
DPNr = part.DPNr,
|
||||||
DId = part.DId,
|
ModId = m.ModId,
|
||||||
DPNr = part.DPNr,
|
};
|
||||||
ModId = m.ModId,
|
var old = oldModifiers.Where(pa => pa.ModId == m.ModId).FirstOrDefault();
|
||||||
};
|
if (newModifiers.Any(md => md.ModId == m.ModId)) {
|
||||||
if (mod == null) {
|
if (old == null) {
|
||||||
Add(dpm);
|
Add(mod);
|
||||||
} else {
|
} else {
|
||||||
Update(dpm);
|
Update(mod);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mod != null) {
|
if (old != null) {
|
||||||
Remove(mod);
|
Remove(mod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1267,7 +1267,10 @@ namespace Elwig.Windows {
|
|||||||
ctx.Add(p);
|
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) {
|
if (originalMgNr != null && originalMgNr.Value != d.MgNr) {
|
||||||
// update origin (KgNr), if default is selected
|
// update origin (KgNr), if default is selected
|
||||||
@ -1592,7 +1595,7 @@ namespace Elwig.Windows {
|
|||||||
p2.HkId = "OEST";
|
p2.HkId = "OEST";
|
||||||
ctx.Add(p2);
|
ctx.Add(p2);
|
||||||
|
|
||||||
ctx.UpdateDeliveryPartModifiers(p2, p.Modifiers);
|
ctx.UpdateDeliveryPartModifiers(p2, [], p.Modifiers);
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
|
Reference in New Issue
Block a user