[feat:] split into german and international addresses

This commit is contained in:
2026-06-10 14:55:17 +02:00
parent 1f73238216
commit 413004d161
+35 -6
View File
@@ -101,6 +101,12 @@ public class PdfBuilder
{
// Find the AddressSet by ID
var addressSet = Settings._instance.addressSets.GetAddressSetByID(addressSetId);
// foreach (var pers in addressSet.KasPersons)
// {
// AddressCreator.CreateFinalMarkdownString(pers.id);
// }
// addressSet.KasPersons = addressSet.KasPersons.OrderBy(x => x.IsGermany()).ThenBy(y => y.used_plz).ToList();
if (addressSet == null)
throw new ArgumentException($"AddressSet with ID {addressSetId} not found");
@@ -109,7 +115,8 @@ public class PdfBuilder
// Generate markdown addresses from all KasPersons in the set
//var addresses = new string?[addressSet.KasPersons.Count];
var addresses = new List<string>();
var addresses_german = new List<string>();
var addresses_inter = new List<string>();
// find customer (owner) to include sender_address
string senderLine = null;
@@ -126,26 +133,48 @@ public class PdfBuilder
for (var i = 0; i < addressSet.KasPersons.Count; i++)
{
if (!addressSet.KasPersons[i].IsGermany()) continue;
var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id);
if (string.IsNullOrWhiteSpace(addr)) continue;
if (!string.IsNullOrEmpty(senderLine))
addresses.Add(senderLine + (addr ?? ""));
addresses_german.Add(senderLine + (addr ?? ""));
else
addresses.Add(addr);
addresses_german.Add(addr);
}
if (addresses.Count == 0)
for (var i = 0; i < addressSet.KasPersons.Count; i++)
{
if (addressSet.KasPersons[i].IsGermany()) continue;
var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id);
if (string.IsNullOrWhiteSpace(addr)) continue;
if (!string.IsNullOrEmpty(senderLine))
addresses_inter.Add(senderLine + (addr ?? ""));
else
addresses_inter.Add(addr);
}
if (addresses_german.Count == 0 && addresses_inter.Count == 0)
{
MessageBox.Show(MainWindow._instance, "Keine validen Adressen konnten generiert werden. Abbruch.", "Fehler");
return;
}
CreateAddressLabelPdfWithPlaceholder(addresses, placeholderText, outputPath);
string output_inter = outputPath.Replace(".pdf", "-internation.pdf");
if(addresses_german.Count > 0) CreateAddressLabelPdfWithPlaceholder(addresses_german, placeholderText, outputPath);
if(addresses_inter.Count > 0) CreateAddressLabelPdfWithPlaceholder(addresses_inter, placeholderText, outputPath);
if (_settings.exportRunningSheets)
{
ExportRunningSheets(addressSetId, outputPath);
}
CreateAddressLabelPdfWithPlaceholder(addresses, placeholderText, outputPath);
//CreateAddressLabelPdfWithPlaceholder(addresses_german, placeholderText, outputPath);
//CreateAddressLabelPdfWithPlaceholder(addresses_inter, placeholderText, output_inter);
}
catch (Exception ex)
{