BaseDataWindow: Add fields for season

This commit is contained in:
2023-11-05 12:20:59 +01:00
parent 6435a649b4
commit 7fe2ea76c3
12 changed files with 244 additions and 57 deletions

View File

@ -21,9 +21,11 @@ namespace Elwig.Windows {
BranchIdInput, BranchNameInput, BranchPlzInput, BranchOrtInput,
BranchAddressInput, BranchPhoneNrInput, BranchFaxNrInput, BranchMobileNrInput,
WineAttributeIdInput, WineAttributeNameInput, WineAttributeActiveInput,
WineAttributeMaxKgPerHaInput, WineAttributeStrictInput, WineAttributeFillLowerInput,
WineAttributeMaxKgPerHaInput.TextBox, WineAttributeStrictInput, WineAttributeFillLowerInput,
WineCultivationIdInput, WineCultivationNameInput, WineCultivationDescriptionInput,
SeasonModifierIdInput, SeasonModifierNameInput, SeasonModifierRelInput, SeasonModifierAbsInput,
SeasonMaxKgPerHaInput.TextBox, SeasonVatNormalInput.TextBox, SeasonVatFlatrateInput.TextBox, SeasonStartInput, SeasonEndInput,
SeasonMinKgPerBsInput.TextBox, SeasonMaxKgPerBsInput.TextBox, SeasonPenaltyPerKgInput.TextBox, SeasonPenaltyInput.TextBox, SeasonPenaltyNoneInput.TextBox,
SeasonModifierIdInput, SeasonModifierNameInput, SeasonModifierRelInput.TextBox, SeasonModifierAbsInput.TextBox,
};
WineAttributeFillLowerInput.Visibility = Visibility.Hidden;
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
@ -44,7 +46,7 @@ namespace Elwig.Windows {
WineAttributeIdInput.IsReadOnly = true;
WineAttributeNameInput.IsReadOnly = true;
WineAttributeActiveInput.IsEnabled = false;
WineAttributeMaxKgPerHaInput.IsReadOnly = true;
WineAttributeMaxKgPerHaInput.TextBox.IsReadOnly = true;
WineAttributeStrictInput.IsEnabled = false;
WineAttributeFillLowerInput.IsEnabled = false;
@ -54,8 +56,8 @@ namespace Elwig.Windows {
SeasonModifierIdInput.IsReadOnly = true;
SeasonModifierNameInput.IsReadOnly = true;
SeasonModifierRelInput.IsReadOnly = true;
SeasonModifierAbsInput.IsReadOnly = true;
SeasonModifierRelInput.TextBox.IsReadOnly = true;
SeasonModifierAbsInput.TextBox.IsReadOnly = true;
}
new protected void UnlockInputs() {
@ -73,7 +75,7 @@ namespace Elwig.Windows {
WineAttributeIdInput.IsReadOnly = false;
WineAttributeNameInput.IsReadOnly = false;
WineAttributeActiveInput.IsEnabled = true;
WineAttributeMaxKgPerHaInput.IsReadOnly = false;
WineAttributeMaxKgPerHaInput.TextBox.IsReadOnly = false;
WineAttributeStrictInput.IsEnabled = true;
WineAttributeFillLowerInput.IsEnabled = true;
@ -83,28 +85,28 @@ namespace Elwig.Windows {
SeasonModifierIdInput.IsReadOnly = false;
SeasonModifierNameInput.IsReadOnly = false;
SeasonModifierRelInput.IsReadOnly = false;
SeasonModifierAbsInput.IsReadOnly = false;
SeasonModifierRelInput.TextBox.IsReadOnly = false;
SeasonModifierAbsInput.TextBox.IsReadOnly = false;
}
private void Window_Loaded(object sender, RoutedEventArgs evt) {
LockInputs();
FillInputs(App.Client);
}
protected override async Task OnRenewContext() {
await base.OnRenewContext();
var year = (SeasonList.SelectedItem as Season)?.Year;
FillInputs(App.Client);
ControlUtils.RenewItemsSource(SeasonList, await Context.Seasons.OrderByDescending(s => s.Year).ToListAsync(), s => (s as Season)?.Year, null, ControlUtils.RenewSourceDefault.First);
ControlUtils.RenewItemsSource(BranchList, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), b => (b as Branch)?.ZwstId);
ControlUtils.RenewItemsSource(WineAttributeList, await Context.WineAttributes.OrderBy(a => a.Name).ToListAsync(), a => (a as WineAttr)?.AttrId);
ControlUtils.RenewItemsSource(WineCultivationList, await Context.WineCultivations.OrderBy(c => c.Name).ToListAsync(), c=> (c as WineCult)?.CultId);
ControlUtils.RenewItemsSource(SeasonModifierList, await Context.Modifiers.Where(m => m.Year == year).OrderBy(m => m.Ordering).ToListAsync(), m => (m as Modifier)?.ModId);
var year = (SeasonList.SelectedItem as Season)?.Year;
ControlUtils.RenewItemsSource(BranchList, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), b => (b as Branch)?.ZwstId, null, ControlUtils.RenewSourceDefault.First);
ControlUtils.RenewItemsSource(WineAttributeList, await Context.WineAttributes.OrderBy(a => a.Name).ToListAsync(), a => (a as WineAttr)?.AttrId, null, ControlUtils.RenewSourceDefault.First);
ControlUtils.RenewItemsSource(WineCultivationList, await Context.WineCultivations.OrderBy(c => c.Name).ToListAsync(), c=> (c as WineCult)?.CultId, null, ControlUtils.RenewSourceDefault.First);
ControlUtils.RenewItemsSource(SeasonModifierList, await Context.Modifiers.Where(m => m.Year == year).OrderBy(m => m.Ordering).ToListAsync(), m => (m as Modifier)?.ModId, null, ControlUtils.RenewSourceDefault.First);
}
protected override void UpdateButtons() {
if (!IsEditing && !IsCreating) return;
bool ch = _branchChanged || _attrChanged || _cultChanged || _modChanged || HasChanged,
bool ch = _branchChanged || _attrChanged || _cultChanged || _seasonChanged || _modChanged || HasChanged,
v = IsValid;
CancelButton.IsEnabled = true;
ResetButton.IsEnabled = ch;
@ -131,6 +133,7 @@ namespace Elwig.Windows {
BranchesInitEditing();
WineAttributesInitEditing();
WineCultivationsInitEditing();
SeasonsInitEditing();
ModifiersInitEditing();
UnlockInputs();
UpdateButtons();
@ -149,6 +152,7 @@ namespace Elwig.Windows {
BranchesFinishEditing();
WineCultivationsFinishEditing();
WineAttributesFinishEditing();
SeasonsFinishEditing();
ModifiersFinishEditing();
ClearInputStates();
@ -166,6 +170,7 @@ namespace Elwig.Windows {
BranchesInitEditing();
WineAttributesInitEditing();
WineCultivationsInitEditing();
SeasonsInitEditing();
ModifiersInitEditing();
ClearInputStates();
@ -179,6 +184,7 @@ namespace Elwig.Windows {
await BranchesSave();
await WineAttributesSave();
await WineCultivationsSave();
await SeasonsSave();
await ModifiersSave();
} catch (Exception exc) {
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
@ -197,6 +203,7 @@ namespace Elwig.Windows {
BranchesFinishEditing();
WineAttributesFinishEditing();
WineCultivationsFinishEditing();
SeasonsFinishEditing();
ModifiersFinishEditing();
ClearInputStates();
@ -267,10 +274,5 @@ namespace Elwig.Windows {
ClientNameFull.Text = $"{ClientNameInput.Text}{(suffix != null ? $", {suffix}," : "")} {ClientNameTypeInput.Text}";
TextBox_TextChanged(sender, evt);
}
private async void SeasonList_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
var year = (SeasonList.SelectedItem as Season)?.Year;
SeasonModifierList.ItemsSource = await Context.Modifiers.Where(m => m.Year == year).OrderBy(m => m.Ordering).ToListAsync();
}
}
}