Improve DeliveryAdminWindow
This commit is contained in:
@ -2,9 +2,12 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:local="clr-namespace:Elwig"
|
xmlns:local="clr-namespace:Elwig"
|
||||||
|
xmlns:controls="clr-namespace:Elwig.Controls"
|
||||||
StartupUri="Windows\MainWindow.xaml"
|
StartupUri="Windows\MainWindow.xaml"
|
||||||
xmlns:ui="http://schemas.modernwpf.com/2019">
|
xmlns:ui="http://schemas.modernwpf.com/2019">
|
||||||
<Application.Resources>
|
<Application.Resources>
|
||||||
|
<controls:BoolToStringConverter x:Key="BoolToStarConverter" FalseValue="" TrueValue="*"/>
|
||||||
|
|
||||||
<DataTemplate x:Key="PostalDestTemplate">
|
<DataTemplate x:Key="PostalDestTemplate">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock Text="{Binding Dest}"/>
|
<TextBlock Text="{Binding Dest}"/>
|
||||||
@ -63,6 +66,7 @@
|
|||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
<ControlTemplate x:Key="WineQualityLevelTemplateExtended">
|
<ControlTemplate x:Key="WineQualityLevelTemplateExtended">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<TextBlock Text="{Binding IsPredicate, Converter={StaticResource BoolToStarConverter}}" MinWidth="6"/>
|
||||||
<TextBlock Text="{Binding Name}" MinWidth="100" Margin="0,0,10,0"/>
|
<TextBlock Text="{Binding Name}" MinWidth="100" Margin="0,0,10,0"/>
|
||||||
<TextBlock Text="{Binding MinKmwStr}"/>
|
<TextBlock Text="{Binding MinKmwStr}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -15,6 +15,8 @@ namespace Elwig {
|
|||||||
public static readonly string DataPath = @"C:\ProgramData\Elwig\";
|
public static readonly string DataPath = @"C:\ProgramData\Elwig\";
|
||||||
public static readonly string ExePath = @"C:\Program Files\Elwig\";
|
public static readonly string ExePath = @"C:\Program Files\Elwig\";
|
||||||
public static readonly Config Config = new(DataPath + "config.ini");
|
public static readonly Config Config = new(DataPath + "config.ini");
|
||||||
|
|
||||||
|
public static string ZwstId { get; private set; }
|
||||||
public static IEnumerable<IScale> Scales { get; private set; }
|
public static IEnumerable<IScale> Scales { get; private set; }
|
||||||
public static ClientParameters Client { get; private set; }
|
public static ClientParameters Client { get; private set; }
|
||||||
|
|
||||||
@ -30,10 +32,13 @@ namespace Elwig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs evt) {
|
protected override void OnStartup(StartupEventArgs evt) {
|
||||||
|
IEnumerable<string> branches = Array.Empty<string>();
|
||||||
using (var ctx = new AppDbContext()) {
|
using (var ctx = new AppDbContext()) {
|
||||||
if (!ctx.Database.CanConnect()) {
|
if (!ctx.Database.CanConnect()) {
|
||||||
MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show($"Invalid Database:\n\n{Config.DatabaseFile}", "Invalid Database", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
Shutdown();
|
Shutdown();
|
||||||
|
} else {
|
||||||
|
branches = ctx.Branches.Select(b => b.ZwstId).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged));
|
Utils.RunBackground("HTML Initialization", () => Documents.Html.Init(PrintingReadyChanged));
|
||||||
@ -62,6 +67,20 @@ namespace Elwig {
|
|||||||
}
|
}
|
||||||
Scales = list;
|
Scales = list;
|
||||||
|
|
||||||
|
if (Config.ZwstId != null) {
|
||||||
|
if (!branches.Contains(Config.ZwstId)) {
|
||||||
|
MessageBox.Show("Invalid branch id in config!", "Invalid Branch Config", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
Shutdown();
|
||||||
|
} else {
|
||||||
|
ZwstId = Config.ZwstId;
|
||||||
|
}
|
||||||
|
} else if (branches.Count() == 1) {
|
||||||
|
ZwstId = branches.First();
|
||||||
|
} else {
|
||||||
|
MessageBox.Show("Unable to determine local branch!", "Invalid Branch Config", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
base.OnStartup(evt);
|
base.OnStartup(evt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,5 +100,13 @@ namespace Elwig.Helpers {
|
|||||||
.ForEach(a => { if (a <= c + 100) c = a; });
|
.ForEach(a => { if (a <= c + 100) c = a; });
|
||||||
return c + 1;
|
return c + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<int> NextLNr(DateOnly date) {
|
||||||
|
var dateStr = date.ToString("yyyy-MM-dd");
|
||||||
|
int c = 0;
|
||||||
|
(await Deliveries.Where(d => d.DateString == dateStr).Select(d => d.LNr).ToListAsync())
|
||||||
|
.ForEach(a => { if (a <= c + 10) c = a; });
|
||||||
|
return c + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ namespace Elwig.Helpers {
|
|||||||
private readonly string FileName;
|
private readonly string FileName;
|
||||||
public string DatabaseFile = App.DataPath + "database.sqlite3";
|
public string DatabaseFile = App.DataPath + "database.sqlite3";
|
||||||
public string? DatabaseLog = null;
|
public string? DatabaseLog = null;
|
||||||
|
public string? ZwstId = null;
|
||||||
public IEnumerable<string[]> Scales;
|
public IEnumerable<string[]> Scales;
|
||||||
private readonly LinkedList<string[]> ScaleList = new();
|
private readonly LinkedList<string[]> ScaleList = new();
|
||||||
|
|
||||||
@ -43,6 +44,12 @@ namespace Elwig.Helpers {
|
|||||||
DatabaseLog = App.DataPath + log;
|
DatabaseLog = App.DataPath + log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ini == null || !ini.TryGetKey("general.branch", out string branch)) {
|
||||||
|
ZwstId = null;
|
||||||
|
} else {
|
||||||
|
ZwstId = branch;
|
||||||
|
}
|
||||||
|
|
||||||
ScaleList.Clear();
|
ScaleList.Clear();
|
||||||
Scales = ScaleList;
|
Scales = ScaleList;
|
||||||
if (ini != null) {
|
if (ini != null) {
|
||||||
|
5
Elwig/Helpers/NullItem.cs
Normal file
5
Elwig/Helpers/NullItem.cs
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
namespace Elwig.Helpers {
|
||||||
|
public class NullItem {
|
||||||
|
public static string Name => "- Keine Angabe -";
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,6 @@ using System.Diagnostics;
|
|||||||
using System.Windows.Controls.Primitives;
|
using System.Windows.Controls.Primitives;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.IO.Ports;
|
using System.IO.Ports;
|
||||||
using PdfSharp.Charting;
|
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
|
|
||||||
namespace Elwig.Helpers {
|
namespace Elwig.Helpers {
|
||||||
|
@ -23,6 +23,6 @@ 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)";
|
public string MinKmwStr => (MinKmw == null) ? "" : $"(mind. {MinKmw:#.0}°)";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,6 +88,30 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
|
<GroupBox Header="Lieferung" Grid.Column="1" Grid.Row="2" Margin="5,5,5,5">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="100"/>
|
||||||
|
<ColumnDefinition/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Label Content="LieferscheinNr.:" Margin="10,10,0,0" Grid.Column="0"/>
|
||||||
|
<TextBox x:Name="LsNrInput" Width="125" Grid.Column="1" HorizontalAlignment="Left" Margin="0,10,0,0"
|
||||||
|
IsEnabled="False"/>
|
||||||
|
|
||||||
|
<Label Content="Datum/Uhrzeit:" Margin="10,40,0,0" Grid.Column="0"/>
|
||||||
|
<TextBox x:Name="DateInput" Width="76" Grid.Column="1" HorizontalAlignment="Left" Margin="0,40,0,0"
|
||||||
|
IsEnabled="False"
|
||||||
|
TextChanged="DateInput_TextChanged"/>
|
||||||
|
<TextBox x:Name="TimeInput" Width="44" Grid.Column="1" HorizontalAlignment="Left" Margin="81,40,0,0"
|
||||||
|
IsEnabled="False"/>
|
||||||
|
|
||||||
|
<Label Content="Zweigstelle:" Margin="10,70,0,0" Grid.Column="0"/>
|
||||||
|
<ComboBox x:Name="BranchInput" Width="125" Margin="0,70,10,0" Grid.Column="1" HorizontalAlignment="Left"
|
||||||
|
DisplayMemberPath="Name" TextSearch.TextPath="Name"/>
|
||||||
|
</Grid>
|
||||||
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Header="Sorte" Grid.Column="2" Grid.Row="1" Margin="5,5,5,5">
|
<GroupBox Header="Sorte" Grid.Column="2" Grid.Row="1" Margin="5,5,5,5">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@ -112,27 +136,39 @@
|
|||||||
|
|
||||||
<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>
|
||||||
<Grid Grid.Row="1" Grid.Column="1" Width="56" Height="25" Margin="10,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
<Grid.ColumnDefinitions>
|
||||||
<TextBox x:Name="GradationOeInput" TextAlignment="Right" Padding="2,1,25,2"
|
<ColumnDefinition Width="100"/>
|
||||||
|
<ColumnDefinition/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Label Content="Gradation:" Margin="10,10,10,10"/>
|
||||||
|
<Grid Grid.Column="1" Width="56" Height="25" Margin="0,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
||||||
|
<TextBox x:Name="GradationOeInput" TextAlignment="Right" Padding="2,2,25,2"
|
||||||
IsReadOnly="False" IsEnabled="True"
|
IsReadOnly="False" IsEnabled="True"
|
||||||
TextChanged="GradationOeInput_TextChanged" LostFocus="GradationOeInput_LostFocus"/>
|
TextChanged="GradationOeInput_TextChanged" LostFocus="GradationOeInput_LostFocus"/>
|
||||||
<Label Content="°Oe" Margin="0,1,3,0" HorizontalAlignment="Right"/>
|
<Label Content="°Oe" Margin="0,2,3,0" HorizontalAlignment="Right"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Content="=" Margin="72,10,10,10"/>
|
<Label Content="=" Margin="62,10,10,10" Grid.Column="1"/>
|
||||||
<Grid Grid.Row="1" Grid.Column="1" Width="72" Height="25" Margin="90,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
<Grid Grid.Column="1" Width="72" Height="25" Margin="80,10,10,10" HorizontalAlignment="Left" VerticalAlignment="Top">
|
||||||
<TextBox x:Name="GradationKmwInput" TextAlignment="Right" Padding="2,1,38,2"
|
<TextBox x:Name="GradationKmwInput" TextAlignment="Right" Padding="2,2,39,2" SnapsToDevicePixels="True"
|
||||||
IsReadOnly="False" IsEnabled="True"
|
IsReadOnly="False" IsEnabled="True"
|
||||||
TextChanged="GradationKmwInput_TextChanged" LostFocus="GradationKmwInput_LostFocus"/>
|
TextChanged="GradationKmwInput_TextChanged" LostFocus="GradationKmwInput_LostFocus"/>
|
||||||
<Label Content="°KMW" Margin="0,1,3,0" HorizontalAlignment="Right"/>
|
<Label Content="°KMW" Margin="0,2,3,0" HorizontalAlignment="Right"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Label Content="Qualitätsstufe:" Margin="10,40,10,10"/>
|
<Label Content="Qualitätsstufe:" Margin="10,40,10,10"/>
|
||||||
<ComboBox x:Name="WineQualityLevelInput" IsEnabled="True" Margin="100,40,10,10"
|
<ComboBox x:Name="WineQualityLevelInput" IsEnabled="True" Width="152" Margin="0,40,10,10" Grid.Column="1" HorizontalAlignment="Left"
|
||||||
ItemTemplate="{StaticResource WineQualityLevelTemplate}"/>
|
ItemTemplate="{StaticResource WineQualityLevelTemplate}"
|
||||||
|
SelectionChanged="WineQualityLevelInput_SelectionChanged"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Header="Zu-/Abschläge" Grid.Column="2" Grid.Row="3" Margin="5,5,5,5">
|
<GroupBox Header="Gewicht" Grid.Column="2" Grid.Row="3" Margin="5,5,5,5">
|
||||||
|
<Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</GroupBox>
|
||||||
|
|
||||||
|
<GroupBox Header="Zu-/Abschläge" Grid.Column="2" Grid.Row="4" Margin="5,5,5,5">
|
||||||
<Grid>
|
<Grid>
|
||||||
<xctk:CheckComboBox x:Name="ModifiersInput" IsEnabled="True" Margin="10,10,10,10"
|
<xctk:CheckComboBox x:Name="ModifiersInput" IsEnabled="True" Margin="10,10,10,10"
|
||||||
ItemTemplate="{StaticResource ModifierTemplate}" Delimiter=", " AllItemsSelectedContent="Alle"
|
ItemTemplate="{StaticResource ModifierTemplate}" Delimiter=", " AllItemsSelectedContent="Alle"
|
||||||
@ -140,10 +176,25 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
<GroupBox Header="Herkunft" Grid.Column="2" Grid.Row="4" Margin="5,5,5,5">
|
<GroupBox Header="Herkunft" Grid.Column="1" Grid.Row="4" Margin="5,5,5,5">
|
||||||
<Grid>
|
<Grid>
|
||||||
<ComboBox x:Name="WineOriginInput" IsEnabled="True" Margin="10,10,10,10"
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="100"/>
|
||||||
|
<ColumnDefinition/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Label Content="Weinbaugebiet:" Margin="10,10,0,10" Grid.Column="0"/>
|
||||||
|
<ComboBox x:Name="WineOriginInput" IsEnabled="True" Margin="0,10,10,10" Grid.Column="1"
|
||||||
ItemTemplate="{StaticResource WineOriginTemplate}"/>
|
ItemTemplate="{StaticResource WineOriginTemplate}"/>
|
||||||
|
|
||||||
|
<Label Content="Weinbau-KG:" Margin="10,40,0,10" Grid.Column="0"/>
|
||||||
|
<ComboBox x:Name="WineKgInput" IsEnabled="True" Margin="0,40,10,10" Grid.Column="1"
|
||||||
|
DisplayMemberPath="Name"
|
||||||
|
SelectionChanged="WineKgInput_SelectionChanged"/>
|
||||||
|
|
||||||
|
<Label Content="Ried:" Margin="10,70,0,10" Grid.Column="0"/>
|
||||||
|
<ComboBox x:Name="WineRdInput" IsEnabled="True" Margin="0,70,10,10" Grid.Column="1"
|
||||||
|
DisplayMemberPath="Name"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
using Elwig.Helpers;
|
using Elwig.Helpers;
|
||||||
using Elwig.Models;
|
using Elwig.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Threading;
|
||||||
using Xceed.Wpf.Toolkit.Primitives;
|
using Xceed.Wpf.Toolkit.Primitives;
|
||||||
|
|
||||||
namespace Elwig.Windows {
|
namespace Elwig.Windows {
|
||||||
@ -10,6 +13,8 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private bool IsUpdatingGradation = false;
|
private bool IsUpdatingGradation = false;
|
||||||
|
|
||||||
|
private DispatcherTimer dispatcherTimer;
|
||||||
|
|
||||||
public DeliveryAdminWindow() {
|
public DeliveryAdminWindow() {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
RequiredInputs = new Control[] {
|
RequiredInputs = new Control[] {
|
||||||
@ -17,21 +22,35 @@ namespace Elwig.Windows {
|
|||||||
SortIdInput, WineVarietyInput,
|
SortIdInput, WineVarietyInput,
|
||||||
GradationOeInput, GradationKmwInput,
|
GradationOeInput, GradationKmwInput,
|
||||||
WineQualityLevelInput,
|
WineQualityLevelInput,
|
||||||
WineOriginInput,
|
WineOriginInput, WineKgInput
|
||||||
};
|
};
|
||||||
ExemptInputs = new Control[] {
|
ExemptInputs = new Control[] {
|
||||||
MgNrInput, MemberInput,
|
MgNrInput, MemberInput,
|
||||||
MemberAddressField
|
MemberAddressField
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dispatcherTimer = new DispatcherTimer();
|
||||||
|
dispatcherTimer.Tick += new EventHandler(OnSecondPassed);
|
||||||
|
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
|
||||||
|
dispatcherTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
||||||
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();
|
||||||
|
BranchInput.ItemsSource = Context.Branches.OrderBy(b => b.Name).ToList();
|
||||||
|
BranchInput.SelectedItem = BranchInput.ItemsSource.Cast<Branch>().Where(b => b.ZwstId == App.ZwstId).First();
|
||||||
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();
|
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);
|
||||||
|
WineKgInput.ItemsSource = Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSecondPassed(object? sender, EventArgs evt) {
|
||||||
|
var now = DateTime.Now;
|
||||||
|
TimeInput.Text = now.ToString("HH:mm");
|
||||||
|
DateInput.Text = now.ToString("dd.MM.yyyy");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateButtons() {
|
protected override void UpdateButtons() {
|
||||||
@ -52,6 +71,14 @@ namespace Elwig.Windows {
|
|||||||
var m = MemberInput.SelectedItem as Member;
|
var m = MemberInput.SelectedItem as Member;
|
||||||
if (m != null) MgNrInput.Text = m.MgNr.ToString();
|
if (m != null) MgNrInput.Text = m.MgNr.ToString();
|
||||||
MemberAddressField.Text = m?.FullAddress;
|
MemberAddressField.Text = m?.FullAddress;
|
||||||
|
WineKgInput.SelectedItem = m?.DefaultKg;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DateInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
|
var branch = (Branch)BranchInput.SelectedItem;
|
||||||
|
var date = DateOnly.ParseExact(DateInput.Text, "dd.MM.yyyy");
|
||||||
|
var lnr = Context.NextLNr(date).GetAwaiter().GetResult();
|
||||||
|
LsNrInput.Text = $"{date.ToString("yyyyMMdd")}{branch.ZwstId}{lnr:000}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateWineVariety(bool valid) {
|
private void UpdateWineVariety(bool valid) {
|
||||||
@ -135,5 +162,31 @@ namespace Elwig.Windows {
|
|||||||
private void ModifiersInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
private void ModifiersInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateWineOrigin() {
|
||||||
|
var qual = (WineQualLevel)WineQualityLevelInput.SelectedItem;
|
||||||
|
var kg = ((AT_Kg)WineKgInput.SelectedItem)?.WbKg;
|
||||||
|
if (qual == null || kg == null) return;
|
||||||
|
var o = kg.Origin;
|
||||||
|
while (o != null && o.Level > qual.OriginLevel) o = o.Parent;
|
||||||
|
WineOriginInput.SelectedItem = o;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WineQualityLevelInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||||
|
UpdateWineOrigin();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WineKgInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||||
|
UpdateWineOrigin();
|
||||||
|
var kg = (AT_Kg)WineKgInput.SelectedItem;
|
||||||
|
if (kg != null) {
|
||||||
|
var list = Context.WbRde.Where(r => r.KgNr == kg.KgNr).OrderBy(r => r.Name).Cast<object>().ToList();
|
||||||
|
list.Insert(0, new NullItem());
|
||||||
|
WineRdInput.ItemsSource = list;
|
||||||
|
WineRdInput.SelectedIndex = 0;
|
||||||
|
} else {
|
||||||
|
WineRdInput.ItemsSource = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user