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