[feat:] split into german and international addresses
This commit is contained in:
+35
-6
@@ -101,6 +101,12 @@ public class PdfBuilder
|
|||||||
{
|
{
|
||||||
// Find the AddressSet by ID
|
// Find the AddressSet by ID
|
||||||
var addressSet = Settings._instance.addressSets.GetAddressSetByID(addressSetId);
|
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)
|
if (addressSet == null)
|
||||||
throw new ArgumentException($"AddressSet with ID {addressSetId} not found");
|
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
|
// Generate markdown addresses from all KasPersons in the set
|
||||||
//var addresses = new string?[addressSet.KasPersons.Count];
|
//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
|
// find customer (owner) to include sender_address
|
||||||
string senderLine = null;
|
string senderLine = null;
|
||||||
@@ -126,26 +133,48 @@ public class PdfBuilder
|
|||||||
|
|
||||||
for (var i = 0; i < addressSet.KasPersons.Count; i++)
|
for (var i = 0; i < addressSet.KasPersons.Count; i++)
|
||||||
{
|
{
|
||||||
|
if (!addressSet.KasPersons[i].IsGermany()) continue;
|
||||||
var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id);
|
var addr = AddressCreator.CreateFinalMarkdownString(addressSet.KasPersons[i].id);
|
||||||
if (string.IsNullOrWhiteSpace(addr)) continue;
|
if (string.IsNullOrWhiteSpace(addr)) continue;
|
||||||
if (!string.IsNullOrEmpty(senderLine))
|
if (!string.IsNullOrEmpty(senderLine))
|
||||||
addresses.Add(senderLine + (addr ?? ""));
|
addresses_german.Add(senderLine + (addr ?? ""));
|
||||||
else
|
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");
|
MessageBox.Show(MainWindow._instance, "Keine validen Adressen konnten generiert werden. Abbruch.", "Fehler");
|
||||||
return;
|
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)
|
if (_settings.exportRunningSheets)
|
||||||
{
|
{
|
||||||
ExportRunningSheets(addressSetId, outputPath);
|
ExportRunningSheets(addressSetId, outputPath);
|
||||||
}
|
}
|
||||||
CreateAddressLabelPdfWithPlaceholder(addresses, placeholderText, outputPath);
|
//CreateAddressLabelPdfWithPlaceholder(addresses_german, placeholderText, outputPath);
|
||||||
|
//CreateAddressLabelPdfWithPlaceholder(addresses_inter, placeholderText, output_inter);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user