[#15] DeliveryConfirmationsWindow: Replace with MailWindow

This commit is contained in:
2024-02-29 11:14:18 +01:00
parent e5c462b43f
commit 09a739d135
5 changed files with 23 additions and 159 deletions

View File

@ -52,7 +52,7 @@ namespace Elwig.Windows {
CreditNote.Name,
];
protected Season? Season;
protected readonly int? Year;
public ObservableCollection<SelectedDoc> SelectedDocs = [];
public IEnumerable<Member> Recipients = [];
@ -99,8 +99,11 @@ namespace Elwig.Windows {
});
// powershell -Command "$(Get-WmiObject -Class Win32_Printer | Where-Object {$_.Default -eq $True}).Name"
public MailWindow() {
public MailWindow(int? year = null) {
InitializeComponent();
Year = year ?? Context.Seasons.OrderBy(s => s.Year).LastOrDefault()?.Year;
Title = $"Rundschreiben {Year} - Elwig";
AvaiableDocumentsList.ItemsSource = AvaiableDocuments;
SelectedDocumentsList.ItemsSource = SelectedDocs;
@ -120,13 +123,13 @@ namespace Elwig.Windows {
}
protected override async Task OnRenewContext() {
Season = await Context.Seasons.OrderBy(s => s.Year).LastOrDefaultAsync();
var season = await Context.Seasons.FindAsync(Year);
var l = new List<string> {
MemberDataSheet.Name
};
if (Season != null) {
l.Add($"{DeliveryConfirmation.Name} {Season.Year}");
l.AddRange(Season.PaymentVariants.Where(v => !v.TestVariant).OrderBy(v => v.AvNr).Select(v => $"{CreditNote.Name} {v.Name}"));
if (season != null) {
l.Add($"{DeliveryConfirmation.Name} {Year}");
l.AddRange(season.PaymentVariants.Where(v => !v.TestVariant).OrderBy(v => v.AvNr).Select(v => $"{CreditNote.Name} {v.Name}"));
}
AvaiableDocumentsList.ItemsSource = l;
@ -221,10 +224,10 @@ namespace Elwig.Windows {
if (idx == 0) {
SelectedDocs.Add(new(DocType.MemberDataSheet, s, null));
} else if (idx == 1) {
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, (Season!.Year, DocumentNonDeliverersInput.IsChecked == true)));
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, ((int)Year!, DocumentNonDeliverersInput.IsChecked == true)));
} else if (idx >= 2) {
var name = s.Split(" ")[^1];
var pv = Context.PaymentVariants.Single(v => v.Year == Season!.Year && v.Name == name)!;
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;
@ -553,5 +556,13 @@ namespace Elwig.Windows {
Process.Start("explorer.exe", d.FolderName);
}
}
public void AddDeliveryConfirmation() {
AvaiableDocumentsList.SelectedIndex = 1;
if (AvaiableDocumentsList.SelectedItem is not string s)
return;
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, ((int)Year!, DocumentNonDeliverersInput.IsChecked == true)));
SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
}
}
}