Improve DeliveryAdminWindow
This commit is contained in:
@ -1,8 +1,11 @@
|
||||
using Elwig.Helpers;
|
||||
using Elwig.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Threading;
|
||||
using Xceed.Wpf.Toolkit.Primitives;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
@ -10,6 +13,8 @@ namespace Elwig.Windows {
|
||||
|
||||
private bool IsUpdatingGradation = false;
|
||||
|
||||
private DispatcherTimer dispatcherTimer;
|
||||
|
||||
public DeliveryAdminWindow() {
|
||||
InitializeComponent();
|
||||
RequiredInputs = new Control[] {
|
||||
@ -17,21 +22,35 @@ namespace Elwig.Windows {
|
||||
SortIdInput, WineVarietyInput,
|
||||
GradationOeInput, GradationKmwInput,
|
||||
WineQualityLevelInput,
|
||||
WineOriginInput,
|
||||
WineOriginInput, WineKgInput
|
||||
};
|
||||
ExemptInputs = new Control[] {
|
||||
MgNrInput, MemberInput,
|
||||
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) {
|
||||
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();
|
||||
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);
|
||||
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() {
|
||||
@ -52,6 +71,14 @@ 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;
|
||||
}
|
||||
|
||||
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) {
|
||||
@ -135,5 +162,31 @@ namespace Elwig.Windows {
|
||||
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