Update DeliveryAdminWindow
This commit is contained in:
@ -14,8 +14,7 @@ namespace Elwig.Windows {
|
||||
public partial class DeliveryAdminWindow : AdministrationWindow {
|
||||
|
||||
private bool IsUpdatingGradation = false;
|
||||
|
||||
private DispatcherTimer dispatcherTimer;
|
||||
private readonly DispatcherTimer Timer;
|
||||
|
||||
public DeliveryAdminWindow() {
|
||||
InitializeComponent();
|
||||
@ -31,10 +30,10 @@ namespace Elwig.Windows {
|
||||
MemberAddressField
|
||||
};
|
||||
|
||||
dispatcherTimer = new DispatcherTimer();
|
||||
dispatcherTimer.Tick += new EventHandler(OnSecondPassed);
|
||||
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
|
||||
dispatcherTimer.Start();
|
||||
Timer = new DispatcherTimer();
|
||||
Timer.Tick += new EventHandler(OnSecondPassed);
|
||||
Timer.Interval = new TimeSpan(0, 0, 1);
|
||||
Timer.Start();
|
||||
}
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
||||
@ -61,7 +60,10 @@ namespace Elwig.Windows {
|
||||
Utils.RenewItemsSource(WineQualityLevelInput, await Context.WineQualityLevels.ToListAsync(), i => (i as WineQualLevel)?.QualId);
|
||||
Utils.RenewItemsSource(ModifiersInput, await Context.Modifiers.Where(m => m.Season.Year == 2022).OrderBy(m => m.Name).ToListAsync(), i => (i as Modifier)?.ModId);
|
||||
Utils.RenewItemsSource(WineOriginInput, (await Context.WineOrigins.ToListAsync()).OrderByDescending(o => o.SortKey).ThenBy(o => o.HkId), i => (i as WineOrigin)?.HkId);
|
||||
Utils.RenewItemsSource(WineKgInput, await Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).ToListAsync(), i => (i as AT_Kg)?.KgNr);
|
||||
var kgList = await Context.WbKgs.Select(k => k.AtKg).OrderBy(k => k.Name).Cast<object>().ToListAsync();
|
||||
kgList.Insert(0, new NullItem());
|
||||
Utils.RenewItemsSource(WineKgInput, kgList, i => (i as AT_Kg)?.KgNr);
|
||||
if (WineKgInput.SelectedItem == null) WineKgInput.SelectedIndex = 0;
|
||||
UpdateWineQualityLevels();
|
||||
UpdateRdInput();
|
||||
}
|
||||
@ -80,14 +82,20 @@ namespace Elwig.Windows {
|
||||
var m = MemberInput.SelectedItem as Member;
|
||||
if (m != null) MgNrInput.Text = m.MgNr.ToString();
|
||||
MemberAddressField.Text = m?.FullAddress;
|
||||
WineKgInput.SelectedItem = m?.DefaultKg;
|
||||
if (m == null) {
|
||||
UnsetOriginalValue(WineKgInput);
|
||||
WineKgInput.SelectedIndex = 0;
|
||||
} else {
|
||||
SetOriginalValue(WineKgInput, m.DefaultKg);
|
||||
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}";
|
||||
LsNrInput.Text = $"{date:yyyyMMdd}{branch.ZwstId}{lnr:000}";
|
||||
}
|
||||
|
||||
private void UpdateWineVariety(bool valid) {
|
||||
@ -119,10 +127,16 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void UpdateWineQualityLevels() {
|
||||
if (!GetInputValid(GradationKmwInput)) {
|
||||
UnsetOriginalValue(WineQualityLevelInput);
|
||||
WineQualityLevelInput.ItemsSource = null;
|
||||
return;
|
||||
}
|
||||
var kmw = double.Parse(GradationKmwInput.Text);
|
||||
WineQualityLevelInput.ItemsSource = Context.WineQualityLevels.Where(q => q.MinKmw == null || q.MinKmw <= kmw).ToList();
|
||||
var qual = Context.WineQualityLevels.Where(q => !q.IsPredicate && (q.MinKmw == null || q.MinKmw <= kmw)).OrderBy(q => q.MinKmw).LastOrDefault();
|
||||
SetOriginalValue(WineQualityLevelInput, qual);
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -133,7 +147,6 @@ namespace Elwig.Windows {
|
||||
GradationKmwInput.Text = $"{Utils.OeToKmw(double.Parse(GradationOeInput.Text)):#.0}";
|
||||
GradationKmwInput.CaretIndex = caret;
|
||||
IsUpdatingGradation = false;
|
||||
UpdateWineQualityLevels();
|
||||
}
|
||||
|
||||
private void UpdateGradationOe() {
|
||||
@ -142,12 +155,15 @@ 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) {
|
||||
var valid = InputTextChanged((TextBox)sender, Validator.CheckGradatoinOe);
|
||||
if (valid && !IsUpdatingGradation) UpdateGradationKmw();
|
||||
if (!IsUpdatingGradation) {
|
||||
if (valid) UpdateGradationKmw();
|
||||
else if (GradationOeInput.Text.Length == 0) GradationKmwInput.Text = "";
|
||||
UpdateWineQualityLevels();
|
||||
}
|
||||
}
|
||||
|
||||
private void GradationOeInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
@ -156,7 +172,11 @@ namespace Elwig.Windows {
|
||||
|
||||
private void GradationKmwInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
var valid = InputTextChanged((TextBox)sender, Validator.CheckGradationKmw);
|
||||
if (valid && !IsUpdatingGradation) UpdateGradationOe();
|
||||
if (!IsUpdatingGradation) {
|
||||
if (valid) UpdateGradationOe();
|
||||
else if (GradationKmwInput.Text.Length == 0) GradationOeInput.Text = "";
|
||||
UpdateWineQualityLevels();
|
||||
}
|
||||
}
|
||||
|
||||
private void GradationKmwInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
@ -173,9 +193,13 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void UpdateWineOrigin() {
|
||||
var qual = (WineQualLevel)WineQualityLevelInput.SelectedItem;
|
||||
var kg = ((AT_Kg)WineKgInput.SelectedItem)?.WbKg;
|
||||
if (qual == null || kg == null) return;
|
||||
var qual = WineQualityLevelInput.SelectedItem as WineQualLevel;
|
||||
var kg = (WineKgInput.SelectedItem as AT_Kg)?.WbKg;
|
||||
if (qual == null || kg == null) {
|
||||
WineOriginInput.IsEnabled = true;
|
||||
return;
|
||||
}
|
||||
WineOriginInput.IsEnabled = false;
|
||||
var o = kg.Origin;
|
||||
while (o != null && o.Level > qual.OriginLevel) o = o.Parent;
|
||||
WineOriginInput.SelectedItem = o;
|
||||
@ -191,8 +215,10 @@ namespace Elwig.Windows {
|
||||
list.Insert(0, new NullItem());
|
||||
Utils.RenewItemsSource(WineRdInput, list, i => ((i as WbRd)?.KgNr, (i as WbRd)?.RdNr));
|
||||
if (WineRdInput.SelectedItem == null) WineRdInput.SelectedIndex = 0;
|
||||
WineRdInput.IsEnabled = list.Count > 1;
|
||||
} else {
|
||||
WineRdInput.ItemsSource = null;
|
||||
WineRdInput.IsEnabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user