diff --git a/Elwig/Windows/MailWindow.xaml.cs b/Elwig/Windows/MailWindow.xaml.cs
index ca1f1fe..e9e1183 100644
--- a/Elwig/Windows/MailWindow.xaml.cs
+++ b/Elwig/Windows/MailWindow.xaml.cs
@@ -564,5 +564,15 @@ namespace Elwig.Windows {
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, ((int)Year!, DocumentNonDeliverersInput.IsChecked == true)));
SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
}
+
+ public void AddCreditNote(int index) {
+ AvaiableDocumentsList.SelectedIndex = 2 + index;
+ if (AvaiableDocumentsList.SelectedItem is not string s || SelectedDocs.Any(d => d.Type == DocType.CreditNote))
+ return;
+ var name = s.Split(" – ")[^1];
+ var pv = Context.PaymentVariants.Single(v => v.Year == Year && v.Name == name)!;
+ SelectedDocs.Add(new(DocType.CreditNote, s, (pv.Year, pv.AvNr)));
+ SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
+ }
}
}
diff --git a/Elwig/Windows/PaymentVariantsWindow.xaml b/Elwig/Windows/PaymentVariantsWindow.xaml
index 3e7b809..4b300c8 100644
--- a/Elwig/Windows/PaymentVariantsWindow.xaml
+++ b/Elwig/Windows/PaymentVariantsWindow.xaml
@@ -166,15 +166,9 @@
-
-
-
-
+
diff --git a/Elwig/Windows/PaymentVariantsWindow.xaml.cs b/Elwig/Windows/PaymentVariantsWindow.xaml.cs
index bfc104c..9a9b448 100644
--- a/Elwig/Windows/PaymentVariantsWindow.xaml.cs
+++ b/Elwig/Windows/PaymentVariantsWindow.xaml.cs
@@ -1,9 +1,7 @@
-using Elwig.Documents;
-using Elwig.Helpers;
+using Elwig.Helpers;
using Elwig.Models.Dtos;
using Elwig.Models.Entities;
using Microsoft.EntityFrameworkCore;
-using System.Collections.Generic;
using System;
using System.Linq;
using System.Threading.Tasks;
@@ -54,8 +52,7 @@ namespace Elwig.Windows {
EditButton.Content = locked ? "Ansehen" : "Bearbeiten";
EditButton.IsEnabled = true;
SaveButton.IsEnabled = !locked;
- ShowButton.IsEnabled = true;
- PrintButton.IsEnabled = true;
+ MailButton.IsEnabled = true;
ExportButton.IsEnabled = locked;
TransactionButton.IsEnabled = locked;
@@ -99,8 +96,7 @@ namespace Elwig.Windows {
RevertButton.Visibility = Visibility.Hidden;
Arrow3.Content = "\xF0AF";
DeleteButton.IsEnabled = false;
- ShowButton.IsEnabled = false;
- PrintButton.IsEnabled = false;
+ MailButton.IsEnabled = false;
ExportButton.IsEnabled = false;
TransactionButton.IsEnabled = false;
@@ -249,12 +245,16 @@ namespace Elwig.Windows {
App.FocusChartWindow(v.Year, v.AvNr);
}
- private async void ShowButton_Click(object sender, RoutedEventArgs evt) {
- await Generate(1);
- }
-
- private async void PrintButton_Click(object sender, RoutedEventArgs evt) {
- await Generate(2);
+ private async void MailButton_Click(object sender, RoutedEventArgs evt) {
+ if (PaymentVariantList.SelectedItem is not PaymentVar pv)
+ return;
+ var vars = await Context.PaymentVariants
+ .Where(v => pv.Year == v.Year && !v.TestVariant)
+ .OrderBy(v => v.AvNr)
+ .Select(v => v.AvNr)
+ .ToArrayAsync();
+ var w = App.FocusMailWindow(pv.Year);
+ w.AddCreditNote(Array.IndexOf(vars, pv.AvNr));
}
private async void CommitButton_Click(object sender, RoutedEventArgs evt) {
@@ -511,51 +511,5 @@ namespace Elwig.Windows {
}
UpdateSaveButton();
}
-
- private async Task Generate(int mode) {
- if (PaymentVariantList.SelectedItem is not PaymentVar v)
- return;
-
- Mouse.OverrideCursor = Cursors.AppStarting;
-
- var members = Context.Members.FromSqlRaw($"""
- SELECT m.*
- FROM member m
- INNER JOIN delivery d ON d.mgnr = m.mgnr
- WHERE d.year = {Year}
- GROUP BY m.mgnr
- """);
- members = members.OrderBy(m => m.MgNr);
-
- IEnumerable list = await members.ToListAsync();
- var data = await CreditNoteDeliveryData.ForPaymentVariant(Context.CreditNoteDeliveryRows, Context.Seasons, v.Year, v.AvNr);
- var payments = await Context.MemberPayments.Where(p => p.Year == v.Year && p.AvNr == v.AvNr).ToDictionaryAsync(c => c.MgNr);
- await Context.GetMemberAreaCommitmentBuckets(Year, 0);
- using var doc = Document.Merge(list.Select(m =>
- new CreditNote(
- Context,
- payments[m.MgNr],
- data[m.MgNr],
- BillingData?.ConsiderContractPenalties ?? false,
- BillingData?.ConsiderTotalPenalty ?? false,
- BillingData?.ConsiderAutoBusinessShares ?? false,
- Context.GetMemberUnderDelivery(Year, m.MgNr).GetAwaiter().GetResult()
- )
- ));
- await doc.Generate(new Progress(v => {
- ProgressBar.Value = v;
- }));
- Mouse.OverrideCursor = null;
-
- if (mode < 2) {
- doc.Show();
- return;
- }
- if (App.Config.Debug) {
- doc.Show();
- } else {
- await doc.Print();
- }
- }
}
}