Add DeliveryAdminWindow
This commit is contained in:
125
Elwig/Windows/DeliveryAdminWindow.xaml.cs
Normal file
125
Elwig/Windows/DeliveryAdminWindow.xaml.cs
Normal file
@ -0,0 +1,125 @@
|
||||
using Elwig.Helpers;
|
||||
using Elwig.Models;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Xceed.Wpf.Toolkit.Primitives;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class DeliveryAdminWindow : AdministrationWindow {
|
||||
|
||||
private bool IsUpdatingGradation = false;
|
||||
|
||||
public DeliveryAdminWindow() {
|
||||
InitializeComponent();
|
||||
RequiredInputs = new Control[] {
|
||||
MgNrInput, MemberInput,
|
||||
SortIdInput, WineVarietyInput,
|
||||
GradationOeInput, GradationKmwInput,
|
||||
WineOriginInput
|
||||
};
|
||||
ExemptInputs = new Control[] {
|
||||
MgNrInput, MemberInput,
|
||||
MemberAddressField
|
||||
};
|
||||
}
|
||||
|
||||
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
||||
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();
|
||||
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);
|
||||
}
|
||||
|
||||
protected override void UpdateButtons() {
|
||||
|
||||
}
|
||||
|
||||
private void MgNrInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
var valid = InputTextChanged((TextBox)sender, Validator.CheckMgNr);
|
||||
MemberInput.SelectedItem = valid ? Context.Members.Find(int.Parse(MgNrInput.Text)) : null;
|
||||
}
|
||||
|
||||
private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
var valid = InputLostFocus((TextBox)sender, Validator.CheckMgNr);
|
||||
MemberInput.SelectedItem = valid ? Context.Members.Find(int.Parse(MgNrInput.Text)) : null;
|
||||
}
|
||||
|
||||
private void MemberInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||
var m = MemberInput.SelectedItem as Member;
|
||||
if (m != null) MgNrInput.Text = m.MgNr.ToString();
|
||||
MemberAddressField.Text = m?.FullAddress;
|
||||
}
|
||||
|
||||
private void UpdateWineVariety(bool valid) {
|
||||
if (valid) {
|
||||
var text = SortIdInput.Text;
|
||||
WineVarietyInput.SelectedItem = Context.WineVarieties.Find(text[0..2]);
|
||||
if (text.Length >= 3) {
|
||||
AttributesInput.UnSelectAll();
|
||||
AttributesInput.SelectedItems.Add(Context.WineAttributes.Find(text[2..]));
|
||||
SortIdInput.Text = text[0..2];
|
||||
}
|
||||
} else {
|
||||
WineVarietyInput.SelectedItem = null;
|
||||
AttributesInput.UnSelectAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void SortIdInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
UpdateWineVariety(InputTextChanged((TextBox)sender, Validator.CheckSortId));
|
||||
}
|
||||
|
||||
private void SortIdInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
UpdateWineVariety(InputLostFocus((TextBox)sender, Validator.CheckSortId));
|
||||
}
|
||||
|
||||
private void WineVarietyInput_SelectionChanged(object sender, SelectionChangedEventArgs evt) {
|
||||
var s = WineVarietyInput.SelectedItem as WineVar;
|
||||
if (s != null) SortIdInput.Text = s.SortId;
|
||||
}
|
||||
|
||||
private void UpdateGradationKmw() {
|
||||
IsUpdatingGradation = true;
|
||||
var caret = GradationKmwInput.CaretIndex;
|
||||
GradationKmwInput.Text = $"{Utils.OeToKmw(double.Parse(GradationOeInput.Text)):#.0}";
|
||||
GradationKmwInput.CaretIndex = caret;
|
||||
IsUpdatingGradation = false;
|
||||
}
|
||||
|
||||
private void UpdateGradationOe() {
|
||||
IsUpdatingGradation = true;
|
||||
var caret = GradationOeInput.CaretIndex;
|
||||
GradationOeInput.Text = $"{Utils.KmwToOe(double.Parse(GradationKmwInput.Text)):#}";
|
||||
GradationOeInput.CaretIndex = caret;
|
||||
IsUpdatingGradation = false;
|
||||
}
|
||||
|
||||
private void GradationOeInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
var valid = InputTextChanged((TextBox)sender, Validator.CheckGradatoinOe);
|
||||
if (valid && !IsUpdatingGradation) UpdateGradationKmw();
|
||||
}
|
||||
|
||||
private void GradationOeInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
InputLostFocus((TextBox)sender, Validator.CheckGradatoinOe);
|
||||
}
|
||||
|
||||
private void GradationKmwInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||
var valid = InputTextChanged((TextBox)sender, Validator.CheckGradationKmw);
|
||||
if (valid && !IsUpdatingGradation) UpdateGradationOe();
|
||||
}
|
||||
|
||||
private void GradationKmwInput_LostFocus(object sender, RoutedEventArgs evt) {
|
||||
InputLostFocus((TextBox)sender, Validator.CheckGradationKmw);
|
||||
}
|
||||
|
||||
private void AttributesInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
||||
|
||||
}
|
||||
|
||||
private void ModifiersInput_SelectionChanged(object sender, ItemSelectionChangedEventArgs evt) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user