From 746d0f10deaa4911dc5f07edf7ee6c58fb573661 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sat, 9 Mar 2024 15:08:51 +0100 Subject: [PATCH] MailWindow: Order members by billing address if applicable --- Elwig/Windows/MailWindow.xaml.cs | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/Elwig/Windows/MailWindow.xaml.cs b/Elwig/Windows/MailWindow.xaml.cs index 2d10942..a26848f 100644 --- a/Elwig/Windows/MailWindow.xaml.cs +++ b/Elwig/Windows/MailWindow.xaml.cs @@ -374,6 +374,9 @@ namespace Elwig.Windows { DisposeDocs(); await UpdateTextParameters(); + var doublePaged = DoublePagedInput.IsChecked == true; + var docs = SelectedDocs.OrderByDescending(d => d.Type).ToList(); + IEnumerable recipients = Recipients; if (OrderMgNrInput.IsChecked == true) { recipients = recipients @@ -386,18 +389,25 @@ namespace Elwig.Windows { .ThenBy(m => m.MgNr) .ToList(); } else if (OrderPlzInput.IsChecked == true) { - recipients = recipients - .OrderBy(m => m.PostalDest.AtPlz.Plz) - .ThenBy(m => m.PostalDest.AtPlz.Ort.Name) - .ThenBy(m => m.FamilyName) - .ThenBy(m => m.GivenName) - .ThenBy(m => m.MgNr) - .ToList(); + if (docs.Any(d => d.Type == DocType.DeliveryConfirmation || d.Type == DocType.CreditNote)) { + recipients = recipients + .OrderBy(m => m.BillingAddress?.PostalDest.AtPlz?.Plz ?? m.PostalDest.AtPlz?.Plz) + .ThenBy(m => m.BillingAddress?.PostalDest.AtPlz?.Ort.Name ?? m.PostalDest.AtPlz?.Ort.Name) + .ThenBy(m => m.FamilyName) + .ThenBy(m => m.GivenName) + .ThenBy(m => m.MgNr) + .ToList(); + } else { + recipients = recipients + .OrderBy(m => m.PostalDest.AtPlz?.Plz) + .ThenBy(m => m.PostalDest.AtPlz?.Ort.Name) + .ThenBy(m => m.FamilyName) + .ThenBy(m => m.GivenName) + .ThenBy(m => m.MgNr) + .ToList(); + } } - var doublePaged = DoublePagedInput.IsChecked == true; - var docs = SelectedDocs.OrderByDescending(d => d.Type).ToList(); - Dictionary> dcData = []; Dictionary<(int, int), (IDictionary, IDictionary, BillingData)> cnData = []; foreach (var doc in docs) {