From 87452868604d953e5636fde8d2ad28b5cc91c975 Mon Sep 17 00:00:00 2001 From: Elias Fierke Date: Thu, 24 Sep 2026 17:15:35 +0200 Subject: [PATCH] [fix:] pallet number DividedByZero Exception fixed --- Tasks/PdfBuilder.cs | 112 ++++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 52 deletions(-) diff --git a/Tasks/PdfBuilder.cs b/Tasks/PdfBuilder.cs index 6940f70..47992ec 100644 --- a/Tasks/PdfBuilder.cs +++ b/Tasks/PdfBuilder.cs @@ -197,7 +197,7 @@ public class PdfBuilder { if (addresses == null || addresses.Count == 0) throw new ArgumentException("Addresses array cannot be null or empty"); - + var document = new PdfDocument(); var addressIndex = 0; @@ -712,12 +712,14 @@ public class PdfBuilder var fontBig = new XFont("Arial", 30, XFontStyleEx.Bold); int firstIndex = pageIndex * 2; - int palletNumber = - Settings._instance.pdfExport.rsPalNr + - (firstIndex / Settings._instance.pdfExport.rsBundNrPal); - - int bundleOnPallet = - (firstIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + int? palletNumber = null; + int? bundleOnPallet = null; + if (Settings._instance.pdfExport.rsBundNrPal > 0) + { + palletNumber = Settings._instance.pdfExport.rsPalNr + + (firstIndex / Settings._instance.pdfExport.rsBundNrPal); + bundleOnPallet = (firstIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + } DrawGermanyRunningSheet( gfx, @@ -738,12 +740,14 @@ public class PdfBuilder int secondIndex = firstIndex + 1; - int palletNumber2 = - Settings._instance.pdfExport.rsPalNr + - (secondIndex / Settings._instance.pdfExport.rsBundNrPal); - - int bundleOnPallet2 = - (secondIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + int? palletNumber2 = null; + int? bundleOnPallet2 = null; + if (Settings._instance.pdfExport.rsBundNrPal > 0) + { + palletNumber2 = Settings._instance.pdfExport.rsPalNr + + (secondIndex / Settings._instance.pdfExport.rsBundNrPal); + bundleOnPallet2 = (secondIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + } if (firstIndex + 1 < grouped_nums.Count) { @@ -769,7 +773,7 @@ public class PdfBuilder document.Save(path); } - private void DrawGermanyRunningSheet(XGraphics gfx, double x, double y, double w, double h, KasAddressList list, dynamic result, List<(int,string,string,string,int)> grouped_nums, XFont fontLabel, XFont fontText, XFont fontBig, int pal_nr, int bundleOnPallet, int totalBundleNumber) + private void DrawGermanyRunningSheet(XGraphics gfx, double x, double y, double w, double h, KasAddressList list, dynamic result, List<(int,string,string,string,int)> grouped_nums, XFont fontLabel, XFont fontText, XFont fontBig, int? pal_nr, int? bundleOnPallet, int totalBundleNumber) { double line = 1.0; @@ -917,20 +921,20 @@ public class PdfBuilder new XRect(valueX, blY1 + 4, valueW, 14), XStringFormats.TopRight); - if (options.rsBundNrPal == null) goto nopal; - gfx.DrawString(pal_nr.ToString(), fontText, XBrushes.Black, - new XRect(valueX, blY3 + 4, valueW, 14), - XStringFormats.TopRight); + if (options.rsBundNrPal > 0) + { + gfx.DrawString(pal_nr?.ToString() ?? string.Empty, fontText, XBrushes.Black, + new XRect(valueX, blY3 + 4, valueW, 14), + XStringFormats.TopRight); - - gfx.DrawString( - $"{bundleOnPallet}/{Settings._instance.pdfExport.rsBundNrPal}", - fontText, - XBrushes.Black, - new XRect(valueX, blY4 + 4, valueW, 14), - XStringFormats.TopRight); + gfx.DrawString( + $"{bundleOnPallet}/{options.rsBundNrPal}", + fontText, + XBrushes.Black, + new XRect(valueX, blY4 + 4, valueW, 14), + XStringFormats.TopRight); + } - nopal: gfx.DrawString( $"{totalBundleNumber}/{grouped_nums.Count}", fontText, @@ -987,12 +991,14 @@ public class PdfBuilder int firstIndex = pageIndex * 2; - int palletNumber = - Settings._instance.pdfExport.rsPalNr + - (firstIndex / Settings._instance.pdfExport.rsBundNrPal); - - int bundleOnPallet = - (firstIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + int? palletNumber = null; + int? bundleOnPallet = null; + if (Settings._instance.pdfExport.rsBundNrPal > 0) + { + palletNumber = Settings._instance.pdfExport.rsPalNr + + (firstIndex / Settings._instance.pdfExport.rsBundNrPal); + bundleOnPallet = (firstIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + } @@ -1017,12 +1023,14 @@ public class PdfBuilder { int secondIndex = firstIndex + 1; - int palletNumber2 = - Settings._instance.pdfExport.rsPalNr + - (secondIndex / Settings._instance.pdfExport.rsBundNrPal); - - int bundleOnPallet2 = - (secondIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + int? palletNumber2 = null; + int? bundleOnPallet2 = null; + if (Settings._instance.pdfExport.rsBundNrPal > 0) + { + palletNumber2 = Settings._instance.pdfExport.rsPalNr + + (secondIndex / Settings._instance.pdfExport.rsBundNrPal); + bundleOnPallet2 = (secondIndex % Settings._instance.pdfExport.rsBundNrPal) + 1; + } DrawInternationalRunningSheet( gfx, @@ -1045,7 +1053,7 @@ public class PdfBuilder document.Save(path); } - private void DrawInternationalRunningSheet(XGraphics gfx, double x, double y, double w, double h, KasAddressList list, dynamic result, List<(int,string,string,string,int)> grouped_nums, XFont fontLabel, XFont fontText, XFont fontBig, int pal_nr, int bundleOnPallet, int totalBundleNumber, string category = "ECONOMY Non-EU") + private void DrawInternationalRunningSheet(XGraphics gfx, double x, double y, double w, double h, KasAddressList list, dynamic result, List<(int,string,string,string,int)> grouped_nums, XFont fontLabel, XFont fontText, XFont fontBig, int? pal_nr, int? bundleOnPallet, int totalBundleNumber, string category = "ECONOMY Non-EU") { double line = 1.0; @@ -1197,20 +1205,20 @@ public class PdfBuilder new XRect(valueX, blY2 + 4, valueW, 14), XStringFormats.TopRight); - if (options.rsBundNrPal == 0) goto nopal; - gfx.DrawString(pal_nr.ToString(), fontText, XBrushes.Black, - new XRect(valueX, blY3 + 4, valueW, 14), - XStringFormats.TopRight); + if (options.rsBundNrPal > 0) + { + gfx.DrawString(pal_nr?.ToString() ?? string.Empty, fontText, XBrushes.Black, + new XRect(valueX, blY3 + 4, valueW, 14), + XStringFormats.TopRight); + + gfx.DrawString( + $"{bundleOnPallet}/{options.rsBundNrPal}", + fontText, + XBrushes.Black, + new XRect(valueX, blY4 + 4, valueW, 14), + XStringFormats.TopRight); + } - - gfx.DrawString( - $"{bundleOnPallet}/{Settings._instance.pdfExport.rsBundNrPal}", - fontText, - XBrushes.Black, - new XRect(valueX, blY4 + 4, valueW, 14), - XStringFormats.TopRight); - - nopal: gfx.DrawString( $"{totalBundleNumber}/{grouped_nums.Count}", fontText,