MailWindow: Order members by billing address if applicable

This commit is contained in:
2024-03-09 15:08:51 +01:00
parent 58c7eec6f8
commit 746d0f10de

View File

@ -374,6 +374,9 @@ namespace Elwig.Windows {
DisposeDocs();
await UpdateTextParameters();
var doublePaged = DoublePagedInput.IsChecked == true;
var docs = SelectedDocs.OrderByDescending(d => d.Type).ToList();
IEnumerable<Member> recipients = Recipients;
if (OrderMgNrInput.IsChecked == true) {
recipients = recipients
@ -386,17 +389,24 @@ namespace Elwig.Windows {
.ThenBy(m => m.MgNr)
.ToList();
} else if (OrderPlzInput.IsChecked == true) {
if (docs.Any(d => d.Type == DocType.DeliveryConfirmation || d.Type == DocType.CreditNote)) {
recipients = recipients
.OrderBy(m => m.PostalDest.AtPlz.Plz)
.ThenBy(m => m.PostalDest.AtPlz.Ort.Name)
.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<int, IDictionary<int, DeliveryConfirmationDeliveryData>> dcData = [];
Dictionary<(int, int), (IDictionary<int, CreditNoteDeliveryData>, IDictionary<int, PaymentMember>, BillingData)> cnData = [];