diff --git a/EpsonPrintService/EpsonPrintService.csproj b/EpsonPrintService/EpsonPrintService.csproj
index 015c459..9ec1ba2 100644
--- a/EpsonPrintService/EpsonPrintService.csproj
+++ b/EpsonPrintService/EpsonPrintService.csproj
@@ -5,7 +5,7 @@
net8.0
enable
enable
- 1.0.8
+ 1.0.9
diff --git a/EpsonTest/EpsonTest.csproj b/EpsonTest/EpsonTest.csproj
index 4351240..cd74a53 100644
--- a/EpsonTest/EpsonTest.csproj
+++ b/EpsonTest/EpsonTest.csproj
@@ -12,6 +12,9 @@
+
+ PreserveNewest
+
PreserveNewest
diff --git a/EpsonTest/Program.cs b/EpsonTest/Program.cs
index d7e6677..004e3e0 100644
--- a/EpsonTest/Program.cs
+++ b/EpsonTest/Program.cs
@@ -43,19 +43,20 @@ using System.Text.Json;
// ============================================================================
// INVOICE RECEIPT - HTML PRINTER
// ============================================================================
-//var receipt = TestHelpers.BuildSampleInvoiceReceipt();
+var receipt = TestHelpers.BuildSampleInvoiceReceipt();
//var serializedReceipt = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true });
+var fileContent = File.ReadAllText("invoice.json");
+var serializedReceipt = JsonSerializer.Deserialize(fileContent);
+var converter = new InvoiceReceiptConverter(lineWidth: 48, bigFontLineWidth: 24);
+var printCommands = converter.Convert(serializedReceipt);
-//var converter = new InvoiceReceiptConverter(lineWidth: 48, bigFontLineWidth: 24);
-//var printCommands = converter.Convert(serializedReceipt);
+TestHelpers.PrintCommandsToConsole(printCommands);
-//TestHelpers.PrintCommandsToConsole(printCommands);
-
-//var printer = await TestHelpers.CreateHtmlPrinterAsync();
-//await TestHelpers.PrintCommandsToHtmlPrinterAsync(
-// printer,
-// printCommands,
-// logoPath: "ristorante-klinglers.ch-logo_white_bg.png");
+var printer = await TestHelpers.CreateHtmlPrinterAsync();
+await TestHelpers.PrintCommandsToHtmlPrinterAsync(
+ printer,
+ printCommands,
+ logoPath: "ristorante-klinglers.ch-logo_white_bg.png");
// ============================================================================
@@ -112,17 +113,17 @@ using System.Text.Json;
// ============================================================================
// KITCHEN RECEIPT - EPSON PRINTER
// ============================================================================
-var receipt = TestHelpers.BuildSampleKitchenReceipt();
-var serializedReceipt = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true });
-var deserializedReceipt = JsonSerializer.Deserialize(serializedReceipt);
+//var receipt = TestHelpers.BuildSampleKitchenReceipt();
+//var serializedReceipt = JsonSerializer.Serialize(receipt, new JsonSerializerOptions { WriteIndented = true });
+//var deserializedReceipt = JsonSerializer.Deserialize(serializedReceipt);
-var converter = new KitchenReceiptConverter(bigLineWidth: 18, lineWidth: 33);
-var printCommands = converter.ConvertToPrintCommands(deserializedReceipt);
+//var converter = new KitchenReceiptConverter(bigLineWidth: 18, lineWidth: 33);
+//var printCommands = converter.ConvertToPrintCommands(deserializedReceipt);
-TestHelpers.PrintCommandsToConsole(printCommands);
+//TestHelpers.PrintCommandsToConsole(printCommands);
-var printer = await TestHelpers.CreateEpsonPrinterAsync(paperWidth: TestHelpers.KitchenPaperWidth);
-await TestHelpers.PrintCommandsToEpsonPrinterAsync(printer, printCommands, useDelay: true);
+//var printer = await TestHelpers.CreateEpsonPrinterAsync(paperWidth: TestHelpers.KitchenPaperWidth);
+//await TestHelpers.PrintCommandsToEpsonPrinterAsync(printer, printCommands, useDelay: true);
// ============================================================================
diff --git a/EpsonTest/TestHelpers.cs b/EpsonTest/TestHelpers.cs
index 173dc5e..a425e1f 100644
--- a/EpsonTest/TestHelpers.cs
+++ b/EpsonTest/TestHelpers.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics;
using Inspectron.Epson;
using Inspectron.Epson.PrintServer.Printers.Utils;
using Inspectron.Epson.PrintServer.Printers.Utils.FinalRecipe;
@@ -108,6 +109,10 @@ public static class TestHelpers
TotalEftAmount = 93.00m,
Currency = "CHF"
}
+ },
+ DiscountInfo = new DiscountInfo()
+ {
+
}
};
diff --git a/EpsonTest/invoice.json b/EpsonTest/invoice.json
index 1da4b24..6982e86 100644
--- a/EpsonTest/invoice.json
+++ b/EpsonTest/invoice.json
@@ -1,6 +1,7 @@
-{
- "PrinterIp": "10.0.20.12",
- "LogoUrl": "https://james-dev-public-images.s3.eu-central-1.amazonaws.com/01-21-26-15:26:16.jpeg",
- "ReceiptType": 4,
- "Content": "{\"CompanyName\":\"Gaumenfreuden\",\"Address1\":\"Orellistrasse 21\",\"Address2\":\"8044 Zurich\",\"Phone\":\"\\u002B380504371463\",\"ReceiptNumber\":null,\"DateTime\":\"2026-01-28T12:47:47.0874074Z\",\"Guests\":null,\"Items\":[{\"Quantity\":1,\"Description\":\"Beer light\",\"UnitPrice\":40,\"TotalPrice\":40,\"TaxCategory\":\"A\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Premium Juice\",\"UnitPrice\":1.2,\"TotalPrice\":1.2,\"TaxCategory\":\"B\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Beer light from Catalog\",\"UnitPrice\":20,\"TotalPrice\":20,\"TaxCategory\":\"A\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Beer light from Catalog\",\"UnitPrice\":20,\"TotalPrice\":20,\"TaxCategory\":\"A\",\"SubItems\":null}],\"Total\":81.2,\"Currency\":\"CHF\",\"ThankYouMessage\":\"Thanks\",\"TableNumber\":\"HappyHoursDrinks\"}"
-}
\ No newline at end of file
+
+
+
+
+
+
+"{\"CompanyName\":\"Gaumenfreuden\",\"Address1\":\"Orellistrasse 21\",\"Address2\":\"8044 Zurich\",\"Phone\":\"\\u002B380504371463\",\"ReceiptNumber\":null,\"DateTime\":\"2026-01-28T12:47:47.0874074Z\",\"Guests\":null,\"Items\":[{\"Quantity\":1,\"Description\":\"Beer light\",\"UnitPrice\":40,\"TotalPrice\":40,\"TaxCategory\":\"A\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Premium Juice\",\"UnitPrice\":1.2,\"TotalPrice\":1.2,\"TaxCategory\":\"B\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Beer light from Catalog\",\"UnitPrice\":20,\"TotalPrice\":20,\"TaxCategory\":\"A\",\"SubItems\":null},{\"Quantity\":1,\"Description\":\"Beer light from Catalog\",\"UnitPrice\":20,\"TotalPrice\":20,\"TaxCategory\":\"A\",\"SubItems\":null}],\"Total\":81.2,\"Currency\":\"CHF\",\"ThankYouMessage\":\"Thanks\",\"TableNumber\":\"HappyHoursDrinks\"}"
diff --git a/Inspectron.Epson/PrintServer/Printers/Utils/BarReceipt/BarReceiptConverter.cs b/Inspectron.Epson/PrintServer/Printers/Utils/BarReceipt/BarReceiptConverter.cs
index b72c1ec..c29b20c 100644
--- a/Inspectron.Epson/PrintServer/Printers/Utils/BarReceipt/BarReceiptConverter.cs
+++ b/Inspectron.Epson/PrintServer/Printers/Utils/BarReceipt/BarReceiptConverter.cs
@@ -31,7 +31,7 @@ public class BarReceiptConverter
//string serverIdLine = $"{kitchenReceipt.WaiterId}";
//commands.Add(new PrintCommand(Center(serverIdLine, false)));
-
+ commands.Add(new PrintCommand(""));
string tableLine = $"Tisch: {kitchenReceipt.TableNumber}";
commands.Add(new PrintCommand(Center(tableLine, true), true, true));
diff --git a/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/Models.cs b/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/Models.cs
index f386415..42f34c6 100644
--- a/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/Models.cs
+++ b/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/Models.cs
@@ -27,6 +27,16 @@ public class FinalReceipt
public string GoodbyeMessageLine1 { get; set; }
public string GoodbyeMessageLine2 { get; set; }
public List TerminalReceipts { get; set; } = new List();
+ public DiscountInfo? DiscountInfo { get; set; }
+}
+
+public class DiscountInfo
+{
+ public string Description { get; set; }
+ public decimal Amount { get; set; }
+ public string Currency { get; set; }
+ public decimal? AmountInAlternateCurrency { get; set; }
+ public string AlternateCurrency { get; set; }
}
public class FinalReceiptItem
diff --git a/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/ReceiptConverter.cs b/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/ReceiptConverter.cs
index dc054a2..e5e0f59 100644
--- a/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/ReceiptConverter.cs
+++ b/Inspectron.Epson/PrintServer/Printers/Utils/FinalReceipt/ReceiptConverter.cs
@@ -77,6 +77,14 @@ public class ReceiptConverter
commands.Add(new PrintCommand(""));
}
+ // Discount
+ //if (finalReceipt.DiscountInfo != null && finalReceipt.DiscountInfo.Amount > 0)
+ //{
+
+ // commands.Add(new PrintCommand(finalReceipt.DiscountInfo.Description.PadLeft(_lineWidth/2)));
+ // commands.Add(new PrintCommand(""));
+ //}
+
// Split payments
if (finalReceipt.SplitPayments != null && finalReceipt.SplitPayments.Count > 0)
{
@@ -118,7 +126,10 @@ public class ReceiptConverter
// Footer info
commands.Add(new PrintCommand($"Bedient von:".PadLeft(_lineWidth / 2) + $" {finalReceipt.WaiterName}"));
- commands.Add(new PrintCommand($"Terminal:".PadLeft(_lineWidth / 2) + $" {finalReceipt.Terminal}"));
+
+ if(!string.IsNullOrEmpty(finalReceipt.Terminal))
+ commands.Add(new PrintCommand($"Terminal:".PadLeft(_lineWidth / 2) + $" {finalReceipt.Terminal}"));
+
commands.Add(new PrintCommand($"Tisch:".PadLeft(_lineWidth / 2)+$" {finalReceipt.TableNumber}"));
commands.Add(new PrintCommand(""));
commands.Add(new PrintCommand(""));
diff --git a/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/Models.cs b/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/Models.cs
index 4e4f2ea..2579f1b 100644
--- a/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/Models.cs
+++ b/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/Models.cs
@@ -8,7 +8,7 @@ public class InvoiceReceipt
public string Phone { get; set; }
public string ReceiptNumber { get; set; }
public DateTime DateTime { get; set; }
- public int Guests { get; set; }
+ public int? Guests { get; set; }
public List Items { get; set; } = new List();
public decimal Total { get; set; }
public string Currency { get; set; }
diff --git a/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/ReceiptConverter.cs b/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/ReceiptConverter.cs
index eb83437..c911935 100644
--- a/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/ReceiptConverter.cs
+++ b/Inspectron.Epson/PrintServer/Printers/Utils/InvoiceReceipt/ReceiptConverter.cs
@@ -34,7 +34,10 @@ public class ReceiptConverter
receiptLine += $"{invoiceReceipt.DateTime:HH:mm dd.MM.yyyy}".PadLeft(_lineWidth / 2);
commands.Add(new PrintCommand(receiptLine,isBold:true));
- commands.Add(new PrintCommand($"Guests: {invoiceReceipt.Guests}"));
+
+ if(invoiceReceipt.Guests != null)
+ commands.Add(new PrintCommand($"Guests: {invoiceReceipt.Guests}"));
+
commands.Add(new PrintCommand(""));
// Items