Delete button for deliveries works

This commit is contained in:
2023-08-01 13:35:27 +02:00
parent a62fb9ab16
commit 704337aa1d
2 changed files with 39 additions and 19 deletions

View File

@ -100,8 +100,10 @@ namespace Elwig.Windows {
protected override void UpdateButtons() { protected override void UpdateButtons() {
if (!IsEditing && !IsCreating) return; if (!IsEditing && !IsCreating) return;
bool ch = HasChanged, v = IsValid; bool ch = HasChanged, v = IsValid;
ResetButton.IsEnabled = (ch); ResetButton.IsEnabled = ch;
SaveButton.IsEnabled = (v && ch); SaveButton.IsEnabled = v && ch;
FinishButton.IsEnabled = v && ch;
NewDeliveryPartButton.IsEnabled = v && ch;
} }
private async Task RefreshDeliveryList() { private async Task RefreshDeliveryList() {
@ -219,8 +221,8 @@ namespace Elwig.Windows {
GerebeltGewogenInput.IsChecked = p?.IsGerebelt ?? false; GerebeltGewogenInput.IsChecked = p?.IsGerebelt ?? false;
ControlUtils.SelectCheckComboBoxItems(ModifiersInput, p?.Modifiers, i => (i as Modifier)?.ModId); ControlUtils.SelectCheckComboBoxItems(ModifiersInput, p?.Modifiers, i => (i as Modifier)?.ModId);
PartCommentInput.Text = p?.Comment ?? ""; PartCommentInput.Text = p?.Comment ?? "";
TemperatureInput.Text = p?.Temperature?.ToString() ?? ""; TemperatureInput.Text = (p != null && p.Temperature != null) ? $"{p.Temperature:N1}" : "";
AcidInput.Text = p?.Acid?.ToString() ?? ""; AcidInput.Text = (p != null && p.Acid != null) ? $"{p.Acid:N1}" : "";
LesewagenInput.IsChecked = p?.IsLesewagen ?? false; LesewagenInput.IsChecked = p?.IsLesewagen ?? false;
HandPickedInput.IsChecked = p?.IsHandPicked; HandPickedInput.IsChecked = p?.IsHandPicked;
@ -382,7 +384,7 @@ namespace Elwig.Windows {
AbwertenButton.IsEnabled = true; AbwertenButton.IsEnabled = true;
EditDeliveryButton.IsEnabled = true; EditDeliveryButton.IsEnabled = true;
ExtractDeliveryPartButton.IsEnabled = true; ExtractDeliveryPartButton.IsEnabled = true;
DeleteDeliveryPartButton.IsEnabled = true; DeleteDeliveryPartButton.IsEnabled = DeliveryList.SelectedItem is Delivery { Parts.Count: > 1 };
} else { } else {
AbwertenButton.IsEnabled = false; AbwertenButton.IsEnabled = false;
EditDeliveryButton.IsEnabled = false; EditDeliveryButton.IsEnabled = false;
@ -469,9 +471,19 @@ namespace Elwig.Windows {
DeleteDeliveryPartButton.IsEnabled = false; DeleteDeliveryPartButton.IsEnabled = false;
} }
private void DeleteDeliveryButton_Click(object sender, RoutedEventArgs evt) { private async void DeleteDeliveryButton_Click(object sender, RoutedEventArgs evt) {
// TODO delete dialog if (DeliveryList.SelectedItem is not Delivery d)
// TODO delete delivery 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) { private async void SaveButton_Click(object sender, RoutedEventArgs evt) {
@ -528,8 +540,18 @@ namespace Elwig.Windows {
// TODO extract delivery part // TODO extract delivery part
} }
private void DeleteDeliveryPartButton_Click(object sender, RoutedEventArgs evt) { private async void DeleteDeliveryPartButton_Click(object sender, RoutedEventArgs evt) {
// TODO delete delivery part 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() { private void ShowSaveResetCancelButtons() {

View File

@ -190,15 +190,13 @@ namespace Elwig.Windows {
} }
private async void DeleteMemberButton_Click(object sender, RoutedEventArgs evt) { private async void DeleteMemberButton_Click(object sender, RoutedEventArgs evt) {
Member m = (Member)MemberList.SelectedItem; if (MemberList.SelectedItem is not Member m)
if (m == null) return; return;
var r = MessageBox.Show( 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); "Mitglied löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
if (r == MessageBoxResult.Yes) { if (r == MessageBoxResult.Yes) {
DeleteMemberButton.IsEnabled = false;
EditMemberButton.IsEnabled = false;
Context.Remove(m); Context.Remove(m);
await Context.SaveChangesAsync(); await Context.SaveChangesAsync();
await RefreshMemberList(); await RefreshMemberList();
@ -514,18 +512,18 @@ namespace Elwig.Windows {
FillOriginalValues(); FillOriginalValues();
} }
new protected void ClearInputs() { new protected void ClearInputs(bool validate = false) {
Menu_Member_SendEmail.IsEnabled = false; Menu_Member_SendEmail.IsEnabled = false;
AreaCommitment.Text = "- m²"; AreaCommitment.Text = "- m²";
Age.Text = "-"; Age.Text = "-";
base.ClearInputs(); base.ClearInputs(validate);
} }
override protected void UpdateButtons() { override protected void UpdateButtons() {
if (!IsEditing && !IsCreating) return; if (!IsEditing && !IsCreating) return;
bool ch = HasChanged, v = IsValid; bool ch = HasChanged, v = IsValid;
ResetButton.IsEnabled = (ch); ResetButton.IsEnabled = ch;
SaveButton.IsEnabled = (v && ch); SaveButton.IsEnabled = v && ch;
} }
protected void InputTextChanged(TextBox input, Func<TextBox, bool, AppDbContext, Member?, ValidationResult> checker) { protected void InputTextChanged(TextBox input, Func<TextBox, bool, AppDbContext, Member?, ValidationResult> checker) {