128 lines
5.0 KiB
C#
128 lines
5.0 KiB
C#
using Elwig.Helpers;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace Elwig.Windows {
|
|
public partial class BaseDataWindow : AdministrationWindow {
|
|
public BaseDataWindow() {
|
|
InitializeComponent();
|
|
RequiredInputs = new Control[] {
|
|
ClientNameInput, ClientNameTypeInput, ClientNameTokenInput, ClientNameShortInput,
|
|
ClientAddressInput, ClientPlzInput, ClientOrtInput,
|
|
};
|
|
ExemptInputs = new Control[] {
|
|
ClientNameFull,
|
|
};
|
|
}
|
|
|
|
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
|
LockInputs();
|
|
FillInputs(App.Client);
|
|
}
|
|
|
|
protected override void UpdateButtons() {
|
|
if (!IsEditing && !IsCreating) return;
|
|
bool ch = HasChanged, v = IsValid;
|
|
CancelButton.IsEnabled = true;
|
|
ResetButton.IsEnabled = ch;
|
|
SaveButton.IsEnabled = ch && v;
|
|
}
|
|
|
|
private void EditButton_Click(object sender, RoutedEventArgs evt) {
|
|
IsEditing = true;
|
|
EditButton.Visibility = Visibility.Hidden;
|
|
ResetButton.Visibility = Visibility.Visible;
|
|
|
|
UnlockInputs();
|
|
UpdateButtons();
|
|
}
|
|
|
|
private void CancelButton_Click(object sender, RoutedEventArgs evt) {
|
|
IsEditing = false;
|
|
IsCreating = false;
|
|
EditButton.Visibility = Visibility.Visible;
|
|
ResetButton.Visibility = Visibility.Hidden;
|
|
CancelButton.IsEnabled = false;
|
|
SaveButton.IsEnabled = false;
|
|
ResetButton.IsEnabled = false;
|
|
|
|
ClearInputStates();
|
|
FillInputs(App.Client);
|
|
LockInputs();
|
|
}
|
|
|
|
private void ResetButton_Click(object sender, RoutedEventArgs evt) {
|
|
ClearInputStates();
|
|
FillInputs(App.Client);
|
|
UpdateButtons();
|
|
}
|
|
|
|
private void SaveButton_Click(object sender, RoutedEventArgs evt) {
|
|
UpdateClientParameters(App.Client);
|
|
|
|
IsEditing = false;
|
|
IsCreating = false;
|
|
EditButton.Visibility = Visibility.Visible;
|
|
ResetButton.Visibility = Visibility.Hidden;
|
|
CancelButton.IsEnabled = false;
|
|
SaveButton.IsEnabled = false;
|
|
ResetButton.IsEnabled = false;
|
|
|
|
ClearInputStates();
|
|
FillInputs(App.Client);
|
|
LockInputs();
|
|
}
|
|
|
|
private void FillInputs(ClientParameters p) {
|
|
ClearOriginalValues();
|
|
ClearDefaultValues();
|
|
|
|
ClientNameInput.Text = p.Name;
|
|
ClientNameSuffixInput.Text = p.NameSuffix;
|
|
ClientNameTypeInput.Text = p.NameType;
|
|
ClientNameTokenInput.Text = p.NameToken;
|
|
ClientNameShortInput.Text = p.NameShort;
|
|
ClientAddressInput.Text = p.Address;
|
|
ClientPlzInput.Text = p.Plz.ToString();
|
|
ClientOrtInput.Text = p.Ort;
|
|
ClientIbanInput.Text = p.Iban;
|
|
ClientBicInput.Text = p.Bic;
|
|
ClientUstIdNrInput.Text = p.UstIdNr;
|
|
ClientLfbisNrInput.Text = p.LfbisNr;
|
|
ClientPhoneNrInput.Text = p.PhoneNr;
|
|
ClientFaxNrInput.Text = p.FaxNr;
|
|
ClientEmailAddressInput.Text = p.EmailAddress;
|
|
ClientWebsiteInput.Text = p.Website;
|
|
|
|
FinishInputFilling();
|
|
}
|
|
|
|
private async void UpdateClientParameters(ClientParameters p) {
|
|
p.Name = ClientNameInput.Text;
|
|
p.NameSuffix = ClientNameSuffixInput.Text.Length > 0 ? ClientNameSuffixInput.Text : null;
|
|
p.NameType = ClientNameTypeInput.Text;
|
|
p.NameToken = ClientNameTokenInput.Text;
|
|
p.NameShort = ClientNameShortInput.Text;
|
|
p.Address = ClientAddressInput.Text;
|
|
p.Plz = int.Parse(ClientPlzInput.Text);
|
|
p.Ort = ClientOrtInput.Text;
|
|
p.Iban = ClientIbanInput.Text.Length > 0 ? ClientIbanInput.Text.Replace(" ", "") : null;
|
|
p.Bic = ClientBicInput.Text.Length > 0 ? ClientBicInput.Text : null;
|
|
p.UstIdNr = ClientUstIdNrInput.Text.Length > 0 ? ClientUstIdNrInput.Text : null;
|
|
p.LfbisNr = ClientLfbisNrInput.Text.Length > 0 ? ClientLfbisNrInput.Text : null;
|
|
p.PhoneNr = ClientPhoneNrInput.Text.Length > 0 ? ClientPhoneNrInput.Text : null;
|
|
p.FaxNr = ClientFaxNrInput.Text.Length > 0 ? ClientFaxNrInput.Text : null;
|
|
p.EmailAddress = ClientEmailAddressInput.Text.Length > 0 ? ClientEmailAddressInput.Text : null;
|
|
p.Website = ClientWebsiteInput.Text.Length > 0 ? ClientWebsiteInput.Text : null;
|
|
|
|
await p.UpdateValues();
|
|
}
|
|
|
|
private void ClientNames_TextChanged(object sender, TextChangedEventArgs evt) {
|
|
var suffix = ClientNameSuffixInput.Text.Length > 0 ? ClientNameSuffixInput.Text : null;
|
|
ClientNameFull.Text = $"{ClientNameInput.Text}{(suffix != null ? $", {suffix}," : "")} {ClientNameTypeInput.Text}";
|
|
TextBox_TextChanged(sender, evt);
|
|
}
|
|
}
|
|
}
|