diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 119707b..1729d4d 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -100,8 +100,10 @@ namespace Elwig.Windows { protected override void UpdateButtons() { if (!IsEditing && !IsCreating) return; bool ch = HasChanged, v = IsValid; - ResetButton.IsEnabled = (ch); - SaveButton.IsEnabled = (v && ch); + ResetButton.IsEnabled = ch; + SaveButton.IsEnabled = v && ch; + FinishButton.IsEnabled = v && ch; + NewDeliveryPartButton.IsEnabled = v && ch; } private async Task RefreshDeliveryList() { @@ -219,8 +221,8 @@ namespace Elwig.Windows { GerebeltGewogenInput.IsChecked = p?.IsGerebelt ?? false; ControlUtils.SelectCheckComboBoxItems(ModifiersInput, p?.Modifiers, i => (i as Modifier)?.ModId); PartCommentInput.Text = p?.Comment ?? ""; - TemperatureInput.Text = p?.Temperature?.ToString() ?? ""; - AcidInput.Text = p?.Acid?.ToString() ?? ""; + TemperatureInput.Text = (p != null && p.Temperature != null) ? $"{p.Temperature:N1}" : ""; + AcidInput.Text = (p != null && p.Acid != null) ? $"{p.Acid:N1}" : ""; LesewagenInput.IsChecked = p?.IsLesewagen ?? false; HandPickedInput.IsChecked = p?.IsHandPicked; @@ -382,7 +384,7 @@ namespace Elwig.Windows { AbwertenButton.IsEnabled = true; EditDeliveryButton.IsEnabled = true; ExtractDeliveryPartButton.IsEnabled = true; - DeleteDeliveryPartButton.IsEnabled = true; + DeleteDeliveryPartButton.IsEnabled = DeliveryList.SelectedItem is Delivery { Parts.Count: > 1 }; } else { AbwertenButton.IsEnabled = false; EditDeliveryButton.IsEnabled = false; @@ -469,9 +471,19 @@ namespace Elwig.Windows { DeleteDeliveryPartButton.IsEnabled = false; } - private void DeleteDeliveryButton_Click(object sender, RoutedEventArgs evt) { - // TODO delete dialog - // TODO delete delivery + private async void DeleteDeliveryButton_Click(object sender, RoutedEventArgs evt) { + if (DeliveryList.SelectedItem is not Delivery d) + return; + + var r = MessageBox.Show( + $"Soll die Lieferung {d.LsNr} ({d.Member.AdministrativeName}, MgNr. {d.Member.MgNr}) wirklich unwiderruflich gelöscht werden?", + "Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); + if (r == MessageBoxResult.Yes) { + Context.Remove(d); + await Context.SaveChangesAsync(); + await RefreshDeliveryList(); + RefreshDeliveryParts(); + } } private async void SaveButton_Click(object sender, RoutedEventArgs evt) { @@ -528,8 +540,18 @@ namespace Elwig.Windows { // TODO extract delivery part } - private void DeleteDeliveryPartButton_Click(object sender, RoutedEventArgs evt) { - // TODO delete delivery part + private async void DeleteDeliveryPartButton_Click(object sender, RoutedEventArgs evt) { + if (DeliveryPartList.SelectedItem is not DeliveryPart p) + return; + + var r = MessageBox.Show( + $"Soll die Teillieferung Nr. {p.DPNr} wirklich unwiderruflich gelöscht werden?", + "Lieferung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); + if (r == MessageBoxResult.Yes) { + Context.Remove(p); + await Context.SaveChangesAsync(); + RefreshDeliveryParts(); + } } private void ShowSaveResetCancelButtons() { diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 742d070..15e1ca3 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -190,15 +190,13 @@ namespace Elwig.Windows { } private async void DeleteMemberButton_Click(object sender, RoutedEventArgs evt) { - Member m = (Member)MemberList.SelectedItem; - if (m == null) return; + if (MemberList.SelectedItem is not Member m) + return; var r = MessageBox.Show( - $"Soll das Mitglied \"{m.FamilyName} {m.GivenName}\" (MgNr. {m.MgNr}) wirklich unwiderruflich gelöscht werden?", + $"Soll das Mitglied \"{m.AdministrativeName}\" (MgNr. {m.MgNr}) wirklich unwiderruflich gelöscht werden?", "Mitglied löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No); if (r == MessageBoxResult.Yes) { - DeleteMemberButton.IsEnabled = false; - EditMemberButton.IsEnabled = false; Context.Remove(m); await Context.SaveChangesAsync(); await RefreshMemberList(); @@ -514,18 +512,18 @@ namespace Elwig.Windows { FillOriginalValues(); } - new protected void ClearInputs() { + new protected void ClearInputs(bool validate = false) { Menu_Member_SendEmail.IsEnabled = false; AreaCommitment.Text = "- m²"; Age.Text = "-"; - base.ClearInputs(); + base.ClearInputs(validate); } override protected void UpdateButtons() { if (!IsEditing && !IsCreating) return; bool ch = HasChanged, v = IsValid; - ResetButton.IsEnabled = (ch); - SaveButton.IsEnabled = (v && ch); + ResetButton.IsEnabled = ch; + SaveButton.IsEnabled = v && ch; } protected void InputTextChanged(TextBox input, Func checker) {