kitchen receipt + html printer

This commit is contained in:
EugeneTes
2026-01-14 11:47:43 +01:00
parent 011978136d
commit 147265358f
16 changed files with 1346 additions and 178 deletions

View File

@@ -11,26 +11,26 @@ public class ReceiptConverter
_bigFontLineWidth = bigFontLineWidth;
}
public List<PrintCommand> ConvertToPrintCommands(Receipt receipt)
public List<PrintCommand> ConvertToPrintCommands(FinalReceipt finalReceipt)
{
var commands = new List<PrintCommand>();
// Header - Company info
commands.Add(new PrintCommand(Center(receipt.CompanyName, false)));
commands.Add(new PrintCommand(Center(receipt.Address1, false)));
commands.Add(new PrintCommand(Center(receipt.Address2, false)));
commands.Add(new PrintCommand(Center(receipt.Phone, false)));
commands.Add(new PrintCommand(Center(finalReceipt.CompanyName, false)));
commands.Add(new PrintCommand(Center(finalReceipt.Address1, false)));
commands.Add(new PrintCommand(Center(finalReceipt.Address2, false)));
commands.Add(new PrintCommand(Center(finalReceipt.Phone, false)));
commands.Add(new PrintCommand(""));
commands.Add(new PrintCommand(""));
// Receipt info
string receiptLine = $"Rechnung Nr. {receipt.ReceiptNumber}".PadRight(_lineWidth/2)+$"{receipt.DateTime:HH:mm dd.MM.yyyy}".PadLeft(_lineWidth/2);
// FinalReceipt info
string receiptLine = $"Rechnung Nr. {finalReceipt.ReceiptNumber}".PadRight(_lineWidth/2)+$"{finalReceipt.DateTime:HH:mm dd.MM.yyyy}".PadLeft(_lineWidth/2);
commands.Add(new PrintCommand(receiptLine,isBold:true));
commands.Add(new PrintCommand($"Guests: {receipt.Guests}"));
commands.Add(new PrintCommand($"Guests: {finalReceipt.Guests}"));
commands.Add(new PrintCommand(""));
// Items
foreach (var item in receipt.Items)
foreach (var item in finalReceipt.Items)
{
string quantityDesc = $"{item.Quantity}x {item.Description}";
string prices = $"{item.UnitPrice:F2}"+$"{item.TotalPrice:F2}".PadLeft(7)+$" {item.TaxCategory}";
@@ -48,31 +48,31 @@ public class ReceiptConverter
commands.Add(new PrintCommand("")); //Reini
// Total
string totalLine = $"Summe: {receipt.Total:F2} {receipt.Currency}";
string totalLine = $"Summe: {finalReceipt.Total:F2} {finalReceipt.Currency}";
commands.Add(new PrintCommand(Center(totalLine, true), true, true));
commands.Add(new PrintCommand(""));
// Alternate currency
if (receipt.TotalInAlternateCurrency.HasValue)
if (finalReceipt.TotalInAlternateCurrency.HasValue)
{
string altCurrencyLine = $"{receipt.TotalInAlternateCurrency:F2} {receipt.AlternateCurrency}";
string altCurrencyLine = $"{finalReceipt.TotalInAlternateCurrency:F2} {finalReceipt.AlternateCurrency}";
commands.Add(new PrintCommand(altCurrencyLine.PadLeft(_lineWidth)));
commands.Add(new PrintCommand(""));
}
// Payment method
string paymentLine = $"{receipt.PaymentMethod}";
string paymentAmount = $"{receipt.PaymentAmount:F2} {receipt.Currency}";
string paymentLine = $"{finalReceipt.PaymentMethod}";
string paymentAmount = $"{finalReceipt.PaymentAmount:F2} {finalReceipt.Currency}";
int paymentSpaces = _lineWidth - paymentLine.Length - paymentAmount.Length;
if (paymentSpaces < 1) paymentSpaces = 1;
commands.Add(new PrintCommand(paymentLine + new string(' ', paymentSpaces) + paymentAmount,isBold:true));
commands.Add(new PrintCommand(""));
// Tax breakdown
foreach (var tax in receipt.TaxBreakdown)
foreach (var tax in finalReceipt.TaxBreakdown)
{
string taxLine = "MwSt %".PadRight(_lineWidth/4)+" Brutto".PadRight(_lineWidth / 4) + " Netto".PadRight(_lineWidth / 4) + "MwSt".PadLeft(_lineWidth / 4);
if (receipt.TaxBreakdown.IndexOf(tax) == 0)
if (finalReceipt.TaxBreakdown.IndexOf(tax) == 0)
{
commands.Add(new PrintCommand(taxLine));
}
@@ -83,22 +83,22 @@ public class ReceiptConverter
commands.Add(new PrintCommand(""));
// Footer info
//commands.Add(new PrintCommand(Center($"Bedient von: {receipt.ServerName}", false)));
//commands.Add(new PrintCommand(Center($"Terminal: {receipt.Terminal}", false)));
//commands.Add(new PrintCommand(Center($"Tisch: {receipt.TableNumber}", false)));
commands.Add(new PrintCommand($"Bedient von:".PadLeft(_lineWidth / 2) + $" {receipt.ServerName}"));
commands.Add(new PrintCommand($"Terminal:".PadLeft(_lineWidth / 2) + $" {receipt.Terminal}"));
commands.Add(new PrintCommand($"Tisch:".PadLeft(_lineWidth / 2)+$" {receipt.TableNumber}"));
//commands.Add(new PrintCommand(Center($"Bedient von: {finalReceipt.WaiterName}", false)));
//commands.Add(new PrintCommand(Center($"Terminal: {finalReceipt.Terminal}", false)));
//commands.Add(new PrintCommand(Center($"Tisch: {finalReceipt.TableNumber}", false)));
commands.Add(new PrintCommand($"Bedient von:".PadLeft(_lineWidth / 2) + $" {finalReceipt.WaiterName}"));
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(""));
// VAT number
commands.Add(new PrintCommand(Center(receipt.VatNumber, false)));
commands.Add(new PrintCommand(Center(finalReceipt.VatNumber, false)));
// Thank you message
commands.Add(new PrintCommand(Center(receipt.ThankYouMessage, false)));
commands.Add(new PrintCommand(Center(receipt.GoodbyeMessageLine1, false)));
commands.Add(new PrintCommand(Center(receipt.GoodbyeMessageLine2, false)));
commands.Add(new PrintCommand(Center(finalReceipt.ThankYouMessage, false)));
commands.Add(new PrintCommand(Center(finalReceipt.GoodbyeMessageLine1, false)));
commands.Add(new PrintCommand(Center(finalReceipt.GoodbyeMessageLine2, false)));
return commands;
}