Add wine quality level in DeliveryAdminWindow
This commit is contained in:
@ -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) {
|
||||
|
Reference in New Issue
Block a user