diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 4ad7986..285a1c1 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -179,8 +179,8 @@ namespace Elwig.Windows { bool ch = HasChanged, v = IsValid; ResetButton.IsEnabled = ch; SaveButton.IsEnabled = v && ch; - FinishButton.IsEnabled = v || !ch; - NewDeliveryPartButton.IsEnabled = v; + FinishButton.IsEnabled = v && ch; + NewDeliveryPartButton.IsEnabled = v && ch; CancelCreatingButton.IsEnabled = DeliveryList.SelectedItem == null || DeliveryPartList.SelectedItem == null; } @@ -331,7 +331,7 @@ namespace Elwig.Windows { .ToList(); } - ControlUtils.RenewItemsSource(DeliveryList, deliveries, d => ((d as Delivery)?.Year, (d as Delivery)?.DId), DeliveryList_SelectionChanged, ControlUtils.RenewSourceDefault.IfOnly, !updateSort); + ControlUtils.RenewItemsSource(DeliveryList, deliveries, d => ((d as Delivery)?.Year, (d as Delivery)?.DId), DeliveryList_SelectionChanged, IsCreating ? ControlUtils.RenewSourceDefault.None : ControlUtils.RenewSourceDefault.IfOnly, !updateSort); var members = deliveries.Select(d => d.Member).DistinctBy(m => m.MgNr).ToList(); StatusMembers.Text = $"Mitglieder: {members.Count}" + (members.Count > 0 && members.Count <= 4 ? $" ({string.Join(", ", members.Select(m => m.AdministrativeName))})" : ""); @@ -423,10 +423,11 @@ namespace Elwig.Windows { Menu_Export_Bki.Items.Add(i); } + // FIXME on "only one" delivery, RenewContext doees not work await RefreshDeliveryList(); var d = DeliveryList.SelectedItem as Delivery; var y = d?.Year ?? Utils.CurrentLastSeason; - ControlUtils.RenewItemsSource(MemberInput, await Context.Members.Where(m => m.IsActive || !IsReceipt).OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToListAsync(), i => (i as Member)?.MgNr); + ControlUtils.RenewItemsSource(MemberInput, await Context.Members.Where(m => m.IsActive || !IsCreating).OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToListAsync(), i => (i as Member)?.MgNr); ControlUtils.RenewItemsSource(BranchInput, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), i => (i as Branch)?.ZwstId); ControlUtils.RenewItemsSource(WineVarietyInput, await Context.WineVarieties.OrderBy(v => v.Name).ToListAsync(), i => (i as WineVar)?.SortId); ControlUtils.RenewItemsSource(AttributesInput, await Context.WineAttributes.Where(a => IsCreating || a.IsActive).OrderBy(a => a.Name).ToListAsync(), i => (i as WineAttr)?.AttrId); @@ -729,7 +730,7 @@ namespace Elwig.Windows { MemberInput.SelectedItem = valid ? Context.Members.Find(int.Parse(MgNrInput.Text)) : null; } - private void MemberInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) { + private void MemberInput_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) { var m = MemberInput.SelectedItem as Member; if (m != null) MgNrInput.Text = m.MgNr.ToString(); MemberAddressField.Text = m?.FullAddress; @@ -753,6 +754,7 @@ namespace Elwig.Windows { NewDeliveryPartButton.Cursor = null; DeliveryList.SelectedItem = p?.Delivery; DeliveryPartList.SelectedItem = null; + RefreshInputs(); InitialInputs(); } @@ -768,12 +770,13 @@ namespace Elwig.Windows { Mouse.OverrideCursor = Cursors.Wait; using var doc = new DeliveryNote(p.Delivery, Context); await doc.Generate(); - Mouse.OverrideCursor = Cursors.Wait; + Mouse.OverrideCursor = null; doc.Show(); //await doc.Print(2); } FinishButton.Cursor = null; DeliveryList.SelectedItem = null; + RefreshInputs(); InitInputs(); } @@ -1099,8 +1102,8 @@ namespace Elwig.Windows { } private void ShowFinishNewPartDeliveryCancelButtons() { - FinishButton.IsEnabled = IsCreating && IsValid; - NewDeliveryPartButton.IsEnabled = IsCreating && IsValid; + FinishButton.IsEnabled = false; + NewDeliveryPartButton.IsEnabled = false; CancelCreatingButton.IsEnabled = true; FinishButton.Visibility = Visibility.Visible; NewDeliveryPartButton.Visibility = Visibility.Visible;