diff --git a/Elwig/Windows/MemberAdminWindow.xaml.cs b/Elwig/Windows/MemberAdminWindow.xaml.cs index 3463636..4155443 100644 --- a/Elwig/Windows/MemberAdminWindow.xaml.cs +++ b/Elwig/Windows/MemberAdminWindow.xaml.cs @@ -19,8 +19,8 @@ using Elwig.Helpers.Billing; namespace Elwig.Windows { public partial class MemberAdminWindow : AdministrationWindow { - protected bool TransferPredecessorAreaComs = false; - protected bool CancelAreaComs = false; + protected int? TransferPredecessorAreaComs = null; + protected int? CancelAreaComs = null; protected List TextFilter = []; private readonly (ComboBox Type, TextBox Number, TextBox Comment)[] PhoneNrInputs; @@ -412,8 +412,8 @@ namespace Elwig.Windows { IsCreating = true; MemberList.IsEnabled = false; MemberList.SelectedItem = null; - TransferPredecessorAreaComs = false; - CancelAreaComs = false; + TransferPredecessorAreaComs = null; + CancelAreaComs = null; HideNewEditDeleteButtons(); ShowSaveResetCancelButtons(); UnlockInputs(); @@ -434,8 +434,8 @@ namespace Elwig.Windows { IsEditing = true; MemberList.IsEnabled = false; - TransferPredecessorAreaComs = false; - CancelAreaComs = false; + TransferPredecessorAreaComs = null; + CancelAreaComs = null; HideNewEditDeleteButtons(); ShowSaveResetCancelButtons(); @@ -509,8 +509,8 @@ namespace Elwig.Windows { } private void ResetButton_Click(object? sender, RoutedEventArgs? evt) { - TransferPredecessorAreaComs = false; - CancelAreaComs = false; + TransferPredecessorAreaComs = null; + CancelAreaComs = null; if (IsEditing) { RefreshInputs(); } else if (IsCreating) { @@ -524,8 +524,8 @@ namespace Elwig.Windows { IsEditing = false; IsCreating = false; MemberList.IsEnabled = true; - TransferPredecessorAreaComs = false; - CancelAreaComs = false; + TransferPredecessorAreaComs = null; + CancelAreaComs = null; HideSaveResetCancelButtons(); ShowNewEditDeleteButtons(); RefreshInputs(); @@ -909,8 +909,7 @@ namespace Elwig.Windows { await ctx.SaveChangesAsync(); - if (TransferPredecessorAreaComs && m.PredecessorMgNr is int predecessor) { - var year = Utils.FollowingSeason; + if (TransferPredecessorAreaComs is int year && m.PredecessorMgNr is int predecessor) { var areaComs = await ctx.AreaCommitments .Where(c => c.MgNr == predecessor && (c.YearTo == null || c.YearTo >= year)) .ToListAsync(); @@ -934,20 +933,19 @@ namespace Elwig.Windows { ctx.UpdateRange(areaComs); await ctx.SaveChangesAsync(); } - TransferPredecessorAreaComs = false; + TransferPredecessorAreaComs = null; - if (CancelAreaComs) { - var year = Utils.FollowingSeason; + if (CancelAreaComs is int yearTo) { var areaComs = await ctx.AreaCommitments - .Where(c => c.MgNr == m.MgNr && (c.YearTo == null || c.YearTo >= year)) + .Where(c => c.MgNr == m.MgNr && (c.YearTo == null || c.YearTo > yearTo)) .ToListAsync(); foreach (var ac in areaComs) - ac.YearTo = year - 1; + ac.YearTo = yearTo; ctx.UpdateRange(areaComs); await ctx.SaveChangesAsync(); } - CancelAreaComs = false; + CancelAreaComs = null; if (newMgNr != m.MgNr) { await ctx.Database.ExecuteSqlAsync($"UPDATE member SET mgnr = {newMgNr} WHERE mgnr = {oldMgNr}"); @@ -1131,7 +1129,7 @@ namespace Elwig.Windows { "Aktive Flächenbindungen übernehmen", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (res != MessageBoxResult.Yes) return; - TransferPredecessorAreaComs = true; + TransferPredecessorAreaComs = Utils.FollowingSeason; SetOriginalValue(PredecessorMgNrInput, -1); // hack to allow user to save UpdateButtons(); } @@ -1184,7 +1182,7 @@ namespace Elwig.Windows { "übertragen werden sollen bitte \"Nein\" auswählen!\n\n" + "Die Änderungen werden erst beim Speichern übernommen!", "Flächenbindungen kündigen", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); - CancelAreaComs = res == MessageBoxResult.Yes; + CancelAreaComs = res == MessageBoxResult.Yes ? Utils.FollowingSeason - 1 : null; } } CheckBox_Changed(sender, evt);