Add wine quality level in DeliveryAdminWindow

This commit is contained in:
2023-05-22 23:45:47 +02:00
parent dc236bab62
commit 2281ec80ae
5 changed files with 58 additions and 16 deletions

View File

@ -16,7 +16,8 @@ namespace Elwig.Windows {
MgNrInput, MemberInput,
SortIdInput, WineVarietyInput,
GradationOeInput, GradationKmwInput,
WineOriginInput
WineQualityLevelInput,
WineOriginInput,
};
ExemptInputs = new Control[] {
MgNrInput, MemberInput,
@ -28,6 +29,7 @@ namespace Elwig.Windows {
MemberInput.ItemsSource = Context.Members.OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToList();
WineVarietyInput.ItemsSource = Context.WineVarieties.OrderBy(v => v.Name).ToList();
AttributesInput.ItemsSource = Context.WineAttributes.OrderBy(a => a.Name).ToList();
WineQualityLevelInput.ItemsSource = Context.WineQualityLevels.ToList();
ModifiersInput.ItemsSource = Context.Modifiers.Where(m => m.Season.Year == 2022).OrderBy(m => m.Name).ToList();
WineOriginInput.ItemsSource = Context.WineOrigins.ToList().OrderByDescending(o => o.SortKey).ThenBy(o => o.HkId);
}
@ -80,12 +82,22 @@ namespace Elwig.Windows {
if (s != null) SortIdInput.Text = s.SortId;
}
private void UpdateWineQualityLevels() {
var kmw = double.Parse(GradationKmwInput.Text);
WineQualityLevelInput.ItemsSource = Context.WineQualityLevels.Where(q => q.MinKmw == null || q.MinKmw <= kmw).ToList();
if (WineQualityLevelInput.SelectedItem == null || (WineQualityLevelInput.SelectedItem is WineQualLevel selected && !selected.IsPredicate)) {
var qual = Context.WineQualityLevels.Where(q => !q.IsPredicate && (q.MinKmw == null || q.MinKmw <= kmw)).OrderBy(q => q.MinKmw).LastOrDefault();
WineQualityLevelInput.SelectedItem = qual;
}
}
private void UpdateGradationKmw() {
IsUpdatingGradation = true;
var caret = GradationKmwInput.CaretIndex;
GradationKmwInput.Text = $"{Utils.OeToKmw(double.Parse(GradationOeInput.Text)):#.0}";
GradationKmwInput.CaretIndex = caret;
IsUpdatingGradation = false;
UpdateWineQualityLevels();
}
private void UpdateGradationOe() {
@ -94,6 +106,7 @@ namespace Elwig.Windows {
GradationOeInput.Text = $"{Utils.KmwToOe(double.Parse(GradationKmwInput.Text)):#}";
GradationOeInput.CaretIndex = caret;
IsUpdatingGradation = false;
UpdateWineQualityLevels();
}
private void GradationOeInput_TextChanged(object sender, TextChangedEventArgs evt) {
@ -112,6 +125,7 @@ namespace Elwig.Windows {
private void GradationKmwInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, Validator.CheckGradationKmw);
if (!GradationKmwInput.Text.Contains(',')) GradationKmwInput.Text += ",0";
}
private void AttributesInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {