diff --git a/Elwig/Helpers/ClientParameters.cs b/Elwig/Helpers/ClientParameters.cs index af56656..6a412cc 100644 --- a/Elwig/Helpers/ClientParameters.cs +++ b/Elwig/Helpers/ClientParameters.cs @@ -14,8 +14,13 @@ namespace Elwig.Helpers { public bool IsWolkersdorf => Client == Type.Winzerkeller && App.ZwstId == "W"; public bool IsHaugsdorf => Client == Type.Winzerkeller && App.ZwstId == "H"; public bool IsSitzendorf => Client == Type.Winzerkeller && App.ZwstId == "S"; - public bool HasRebler => IsMatzen || IsWolkersdorf; - public bool HasKisten => IsHaugsdorf || IsSitzendorf; + + public bool HasRebler(string? zwstId) => IsMatzen || (IsWinzerkeller && zwstId == "W"); + public bool HasRebler(Branch? b) => HasRebler(b?.ZwstId); + public bool HasRebler() => HasRebler(App.ZwstId); + public bool HasKisten(string? zwstId) => IsWinzerkeller && (zwstId == "H" || zwstId == "S"); + public bool HasKisten(Branch? b) => HasKisten(b?.ZwstId); + public bool HasKisten() => HasKisten(App.ZwstId); public string NameToken; public string NameShort; diff --git a/Elwig/Windows/AdministrationWindow.cs b/Elwig/Windows/AdministrationWindow.cs index 6b06f3a..85fd453 100644 --- a/Elwig/Windows/AdministrationWindow.cs +++ b/Elwig/Windows/AdministrationWindow.cs @@ -252,9 +252,9 @@ namespace Elwig.Windows { foreach (var ccb in CheckComboBoxInputs) ccb.SelectedItems.Clear(); foreach (var cb in CheckBoxInputs) - cb.IsChecked = false; + cb.IsChecked = cb.IsThreeState ? null : false; foreach (var rb in RadioButtonInputs) - rb.IsChecked = false; + rb.IsChecked = rb.IsThreeState ? null : false; if (validate) ValidateRequiredInputs(); } diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs index 78dd73a..17c7b3a 100644 --- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs +++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs @@ -208,6 +208,36 @@ namespace Elwig.Windows { } } + private void InitialDefaultInputs() { + if (App.Client.HasRebler(BranchInput.SelectedValue as Branch)) { + GerebeltGewogenInput.IsEnabled = false; + SetDefaultValue(GerebeltGewogenInput, true); + } else { + GerebeltGewogenInput.IsEnabled = true; + UnsetDefaultValue(GerebeltGewogenInput); + } + + if (App.Client.HasKisten(BranchInput.SelectedValue as Branch)) { + LesewagenInput.IsEnabled = false; + SetDefaultValue(LesewagenInput, false); + HandPickedInput.IsThreeState = false; + UnsetDefaultValue(HandPickedInput); + } else { + LesewagenInput.IsEnabled = true; + UnsetDefaultValue(LesewagenInput); + HandPickedInput.IsThreeState = true; + SetDefaultValue(HandPickedInput, null); + } + + if (App.Client.IsMatzen || App.Client.IsWinzerkeller) { + GebundenInput.IsEnabled = false; + SetDefaultValue(GebundenInput, null); + } else { + GebundenInput.IsEnabled = true; + UnsetDefaultValue(GebundenInput); + } + } + private void InitialInputs() { LastScaleError = null; WeighingId = null; @@ -217,41 +247,11 @@ namespace Elwig.Windows { ClearOriginalValues(); ClearDefaultValues(); - if (App.Client.HasRebler) { - GerebeltGewogenInput.IsChecked = true; - GerebeltGewogenInput.IsEnabled = false; - SetDefaultValue(GerebeltGewogenInput); - } else { - GerebeltGewogenInput.IsChecked = false; - GerebeltGewogenInput.IsEnabled = true; - UnsetDefaultValue(GerebeltGewogenInput); - } - - if (App.Client.HasKisten) { - LesewagenInput.IsChecked = false; - LesewagenInput.IsEnabled = false; - SetDefaultValue(LesewagenInput); - HandPickedInput.IsThreeState = false; - HandPickedInput.IsChecked = true; - UnsetDefaultValue(HandPickedInput); - } else { - LesewagenInput.IsChecked = false; - LesewagenInput.IsEnabled = true; - UnsetDefaultValue(LesewagenInput); - HandPickedInput.IsThreeState = true; - HandPickedInput.IsChecked = null; - SetDefaultValue(HandPickedInput); - } - - if (App.Client.IsMatzen || App.Client.IsWinzerkeller) { - GebundenInput.IsChecked = null; - GebundenInput.IsEnabled = false; - SetDefaultValue(GebundenInput); - } else { - GebundenInput.IsChecked = null; - GebundenInput.IsEnabled = true; - UnsetDefaultValue(GebundenInput); - } + GerebeltGewogenInput.IsChecked = App.Client.HasRebler(BranchInput.SelectedValue as Branch); + LesewagenInput.IsChecked = false; + HandPickedInput.IsChecked = App.Client.HasKisten(BranchInput.SelectedValue as Branch) ? true : null; + GebundenInput.IsChecked = null; + InitialDefaultInputs(); WineQualityLevelInput.IsEnabled = false; ValidateRequiredInputs(); @@ -1407,14 +1407,17 @@ namespace Elwig.Windows { } } - private void DateInput_TextChanged(object sender, TextChangedEventArgs evt) { + private async void DateInput_TextChanged(object sender, TextChangedEventArgs evt) { base.DateInput_TextChanged(sender, evt); - if (IsEditing || IsCreating) UpdateLsNr().GetAwaiter().GetResult(); + if (IsEditing || IsCreating) await UpdateLsNr(); } - private void BranchInput_SelectionChanged(object sender, RoutedEventArgs evt) { + private async void BranchInput_SelectionChanged(object sender, RoutedEventArgs evt) { base.ComboBox_SelectionChanged(sender, evt); - if (IsEditing || IsCreating) UpdateLsNr().GetAwaiter().GetResult(); + if (IsEditing || IsCreating) { + await UpdateLsNr(); + InitialDefaultInputs(); + } } private void UpdateWineVariety(bool valid) { @@ -1603,14 +1606,14 @@ namespace Elwig.Windows { } private void GerebeltGewogenInput_Changed(object sender, RoutedEventArgs evt) { - if (App.Client.HasKisten) { + if (App.Client.HasKisten(BranchInput.SelectedValue as Branch)) { HandPickedInput.IsChecked = !GerebeltGewogenInput.IsChecked; } CheckBox_Changed(sender, evt); } private void HandPickedInput_Changed(object sender, RoutedEventArgs evt) { - if (App.Client.HasKisten) { + if (App.Client.HasKisten(BranchInput.SelectedValue as Branch)) { GerebeltGewogenInput.IsChecked = !HandPickedInput.IsChecked; } CheckBox_Changed(sender, evt);