Add wine quality level in DeliveryAdminWindow
This commit is contained in:
@ -56,6 +56,26 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<ControlTemplate x:Key="WineQualityLevelTemplateSimple">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Text="{Binding Name}"/>
|
||||||
|
</StackPanel>
|
||||||
|
</ControlTemplate>
|
||||||
|
<ControlTemplate x:Key="WineQualityLevelTemplateExtended">
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Text="{Binding Name}" MinWidth="100" Margin="0,0,10,0"/>
|
||||||
|
<TextBlock Text="{Binding MinKmwStr}"/>
|
||||||
|
</StackPanel>
|
||||||
|
</ControlTemplate>
|
||||||
|
<DataTemplate x:Key="WineQualityLevelTemplate">
|
||||||
|
<Control x:Name="Control" Focusable="False" Template="{StaticResource WineQualityLevelTemplateExtended}"/>
|
||||||
|
<DataTemplate.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}" Value="{x:Null}">
|
||||||
|
<Setter TargetName="Control" Property="Template" Value="{StaticResource WineQualityLevelTemplateSimple}"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</DataTemplate.Triggers>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
<ControlTemplate x:Key="WineOriginTemplateSimple">
|
<ControlTemplate x:Key="WineOriginTemplateSimple">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock Text="{Binding Name}"/>
|
<TextBlock Text="{Binding Name}"/>
|
||||||
|
@ -542,7 +542,7 @@ namespace Elwig.Helpers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var oe = double.Parse(input.Text);
|
var oe = double.Parse(input.Text);
|
||||||
if (oe < 10 || oe >= 200) {
|
if (oe < 10 || oe >= 300) {
|
||||||
return new(false, "Ungültiger Oechsle-Wert");
|
return new(false, "Ungültiger Oechsle-Wert");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,7 +558,7 @@ namespace Elwig.Helpers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var kmw = double.Parse(input.Text);
|
var kmw = double.Parse(input.Text);
|
||||||
if (kmw < 0 || kmw >= 50) {
|
if (kmw < 5 || kmw >= 50) {
|
||||||
return new(false, "Ungültiger KMW-Wert");
|
return new(false, "Ungültiger KMW-Wert");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace Elwig.Models {
|
namespace Elwig.Models {
|
||||||
[Table("wine_quality"), PrimaryKey("QualId")]
|
[Table("wine_quality_level"), PrimaryKey("QualId")]
|
||||||
public class WineQualLevel {
|
public class WineQualLevel {
|
||||||
[Column("qualid")]
|
[Column("qualid")]
|
||||||
public string QualId { get; private set; }
|
public string QualId { get; private set; }
|
||||||
@ -22,5 +22,7 @@ namespace Elwig.Models {
|
|||||||
|
|
||||||
[Column("name")]
|
[Column("name")]
|
||||||
public string Name { get; private set; }
|
public string Name { get; private set; }
|
||||||
|
|
||||||
|
public string MinKmwStr => (MinKmw == null) ? "" : $"(mind. {MinKmw:#.0} °KMW)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,17 +112,23 @@
|
|||||||
|
|
||||||
<GroupBox Header="Gradation" Grid.Column="2" Grid.Row="2" Margin="5,5,5,5">
|
<GroupBox Header="Gradation" Grid.Column="2" Grid.Row="2" Margin="5,5,5,5">
|
||||||
<Grid>
|
<Grid>
|
||||||
<TextBox x:Name="GradationOeInput" Width="80" Grid.Row="1" Grid.Column="1" Margin="10,10,10,10" HorizontalAlignment="Left"
|
<Grid Grid.Row="1" Grid.Column="1" Width="56" Height="25" Margin="10,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
||||||
IsReadOnly="False" IsEnabled="True"
|
<TextBox x:Name="GradationOeInput" TextAlignment="Right" Padding="2,1,25,2"
|
||||||
TextAlignment="Right" Padding="2,2,25,2"
|
IsReadOnly="False" IsEnabled="True"
|
||||||
TextChanged="GradationOeInput_TextChanged" LostFocus="GradationOeInput_LostFocus"/>
|
TextChanged="GradationOeInput_TextChanged" LostFocus="GradationOeInput_LostFocus"/>
|
||||||
<Label Content="°Oe" Margin="63,11,10,10"/>
|
<Label Content="°Oe" Margin="0,1,3,0" HorizontalAlignment="Right"/>
|
||||||
<Label Content="=" Margin="94,10,10,10"/>
|
</Grid>
|
||||||
<TextBox x:Name="GradationKmwInput" Width="80" Grid.Row="1" Grid.Column="1" Margin="110,10,10,10" HorizontalAlignment="Left"
|
<Label Content="=" Margin="72,10,10,10"/>
|
||||||
IsReadOnly="False" IsEnabled="True"
|
<Grid Grid.Row="1" Grid.Column="1" Width="72" Height="25" Margin="90,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
||||||
TextAlignment="Right" Padding="2,2,38,2"
|
<TextBox x:Name="GradationKmwInput" TextAlignment="Right" Padding="2,1,38,2"
|
||||||
TextChanged="GradationKmwInput_TextChanged" LostFocus="GradationKmwInput_LostFocus"/>
|
IsReadOnly="False" IsEnabled="True"
|
||||||
<Label Content="°KMW" Margin="150,11,10,10"/>
|
TextChanged="GradationKmwInput_TextChanged" LostFocus="GradationKmwInput_LostFocus"/>
|
||||||
|
<Label Content="°KMW" Margin="0,1,3,0" HorizontalAlignment="Right"/>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Label Content="Qualitätsstufe:" Margin="10,40,10,10"/>
|
||||||
|
<ComboBox x:Name="WineQualityLevelInput" IsEnabled="True" Margin="100,40,10,10"
|
||||||
|
ItemTemplate="{StaticResource WineQualityLevelTemplate}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
@ -137,7 +143,7 @@
|
|||||||
<GroupBox Header="Herkunft" Grid.Column="2" Grid.Row="4" Margin="5,5,5,5">
|
<GroupBox Header="Herkunft" Grid.Column="2" Grid.Row="4" Margin="5,5,5,5">
|
||||||
<Grid>
|
<Grid>
|
||||||
<ComboBox x:Name="WineOriginInput" IsEnabled="True" Margin="10,10,10,10"
|
<ComboBox x:Name="WineOriginInput" IsEnabled="True" Margin="10,10,10,10"
|
||||||
ItemTemplate="{StaticResource WineOriginTemplate}" SelectedValuePath="Name"/>
|
ItemTemplate="{StaticResource WineOriginTemplate}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -16,7 +16,8 @@ namespace Elwig.Windows {
|
|||||||
MgNrInput, MemberInput,
|
MgNrInput, MemberInput,
|
||||||
SortIdInput, WineVarietyInput,
|
SortIdInput, WineVarietyInput,
|
||||||
GradationOeInput, GradationKmwInput,
|
GradationOeInput, GradationKmwInput,
|
||||||
WineOriginInput
|
WineQualityLevelInput,
|
||||||
|
WineOriginInput,
|
||||||
};
|
};
|
||||||
ExemptInputs = new Control[] {
|
ExemptInputs = new Control[] {
|
||||||
MgNrInput, MemberInput,
|
MgNrInput, MemberInput,
|
||||||
@ -28,6 +29,7 @@ namespace Elwig.Windows {
|
|||||||
MemberInput.ItemsSource = Context.Members.OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToList();
|
MemberInput.ItemsSource = Context.Members.OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToList();
|
||||||
WineVarietyInput.ItemsSource = Context.WineVarieties.OrderBy(v => v.Name).ToList();
|
WineVarietyInput.ItemsSource = Context.WineVarieties.OrderBy(v => v.Name).ToList();
|
||||||
AttributesInput.ItemsSource = Context.WineAttributes.OrderBy(a => a.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();
|
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);
|
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;
|
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() {
|
private void UpdateGradationKmw() {
|
||||||
IsUpdatingGradation = true;
|
IsUpdatingGradation = true;
|
||||||
var caret = GradationKmwInput.CaretIndex;
|
var caret = GradationKmwInput.CaretIndex;
|
||||||
GradationKmwInput.Text = $"{Utils.OeToKmw(double.Parse(GradationOeInput.Text)):#.0}";
|
GradationKmwInput.Text = $"{Utils.OeToKmw(double.Parse(GradationOeInput.Text)):#.0}";
|
||||||
GradationKmwInput.CaretIndex = caret;
|
GradationKmwInput.CaretIndex = caret;
|
||||||
IsUpdatingGradation = false;
|
IsUpdatingGradation = false;
|
||||||
|
UpdateWineQualityLevels();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateGradationOe() {
|
private void UpdateGradationOe() {
|
||||||
@ -94,6 +106,7 @@ namespace Elwig.Windows {
|
|||||||
GradationOeInput.Text = $"{Utils.KmwToOe(double.Parse(GradationKmwInput.Text)):#}";
|
GradationOeInput.Text = $"{Utils.KmwToOe(double.Parse(GradationKmwInput.Text)):#}";
|
||||||
GradationOeInput.CaretIndex = caret;
|
GradationOeInput.CaretIndex = caret;
|
||||||
IsUpdatingGradation = false;
|
IsUpdatingGradation = false;
|
||||||
|
UpdateWineQualityLevels();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GradationOeInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void GradationOeInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
@ -112,6 +125,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private void GradationKmwInput_LostFocus(object sender, RoutedEventArgs evt) {
|
private void GradationKmwInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||||
InputLostFocus((TextBox)sender, Validator.CheckGradationKmw);
|
InputLostFocus((TextBox)sender, Validator.CheckGradationKmw);
|
||||||
|
if (!GradationKmwInput.Text.Contains(',')) GradationKmwInput.Text += ",0";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AttributesInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
private void AttributesInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
||||||
|
Reference in New Issue
Block a user