diff --git a/Elwig/Windows/PaymentVariantsWindow.xaml b/Elwig/Windows/PaymentVariantsWindow.xaml
index 93cda0b..cbba99d 100644
--- a/Elwig/Windows/PaymentVariantsWindow.xaml
+++ b/Elwig/Windows/PaymentVariantsWindow.xaml
@@ -55,15 +55,15 @@
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Elwig/Windows/PaymentVariantsWindow.xaml.cs b/Elwig/Windows/PaymentVariantsWindow.xaml.cs
index 349a526..fd083a5 100644
--- a/Elwig/Windows/PaymentVariantsWindow.xaml.cs
+++ b/Elwig/Windows/PaymentVariantsWindow.xaml.cs
@@ -46,6 +46,7 @@ namespace Elwig.Windows {
CommitButton.Visibility = !locked ? Visibility.Visible : Visibility.Hidden;
RevertButton.IsEnabled = locked;
RevertButton.Visibility = locked ? Visibility.Visible : Visibility.Hidden;
+ Arrow3.Content = locked ? "\xF0B0" : "\xF0AF";
CopyButton.IsEnabled = true;
EditButton.Content = locked ? "Ansehen" : "Bearbeiten";
ShowButton.IsEnabled = true;
@@ -72,6 +73,7 @@ namespace Elwig.Windows {
CommitButton.Visibility = Visibility.Visible;
RevertButton.IsEnabled = false;
RevertButton.Visibility = Visibility.Hidden;
+ Arrow3.Content = "\xF0AF";
DeleteButton.IsEnabled = false;
ShowButton.IsEnabled = false;
PrintButton.IsEnabled = false;
@@ -120,16 +122,64 @@ namespace Elwig.Windows {
Update();
}
- private void AddButton_Click(object sender, RoutedEventArgs evt) {
+ private async void AddButton_Click(object sender, RoutedEventArgs evt) {
+ try {
+ PaymentVar v = Context.CreateProxy();
+ v.Year = Year;
+ v.AvNr = await Context.NextAvNr(Year);
+ v.Name = "Neue Auszahlungsvariante";
+ v.TestVariant = true;
+ v.DateString = $"{DateTime.Today:yyyy-MM-dd}";
+ v.Data = "{\"mode\": \"elwig\", \"version\": 1, \"payment\": 1.0, \"curves\": []}";
+
+ await Context.AddAsync(v);
+ await Context.SaveChangesAsync();
+ await App.HintContextChange();
+
+ ControlUtils.SelectListBoxItem(PaymentVariantList, v, v => (v as PaymentVar)?.AvNr);
+ } catch (Exception exc) {
+ var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
+ if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
+ MessageBox.Show(str, "Auszahlungsvariante erstellen", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
}
- private void CopyButton_Click(object sender, RoutedEventArgs evt) {
+ private async void CopyButton_Click(object sender, RoutedEventArgs evt) {
+ if (PaymentVariantList.SelectedItem is not PaymentVar orig) return;
+ try {
+ PaymentVar n = Context.CreateProxy();
+ n.Year = orig.Year;
+ n.AvNr = await Context.NextAvNr(Year);
+ n.Name = $"{orig.Name} (Kopie)";
+ n.TestVariant = true;
+ n.DateString = $"{DateTime.Today:yyyy-MM-dd}";
+ n.Data = orig.Data;
+
+ await Context.AddAsync(n);
+ await Context.SaveChangesAsync();
+ await App.HintContextChange();
+
+ ControlUtils.SelectListBoxItem(PaymentVariantList, n, v => (v as PaymentVar)?.AvNr);
+ } catch (Exception exc) {
+ var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
+ if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
+ MessageBox.Show(str, "Auszahlungsvariante kopieren", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
}
- private void DeleteButton_Click(object sender, RoutedEventArgs evt) {
-
+ private async void DeleteButton_Click(object sender, RoutedEventArgs evt) {
+ if (PaymentVariantList.SelectedItem is not PaymentVar v || !v.TestVariant) return;
+ try {
+ Context.Remove(v);
+ await Context.SaveChangesAsync();
+ await HintContextChange();
+ } catch (Exception exc) {
+ var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
+ if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
+ MessageBox.Show(str, "Auszahlungsvariante löschen", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
}
private async void CalculateButton_Click(object sender, RoutedEventArgs evt) {
@@ -233,6 +283,10 @@ namespace Elwig.Windows {
}
}
+ private void ModifierButton_Click(object sender, RoutedEventArgs evt) {
+ App.FocusBaseDataSeason(Year);
+ }
+
private void NameInput_TextChanged(object sender, TextChangedEventArgs evt) {
if (PaymentVariantList.SelectedItem is not PaymentVar v) {
ControlUtils.ClearInputState(NameInput);