adapt money return receipt to new refund payload schema

This commit is contained in:
EugeneTes
2026-07-09 08:48:26 +02:00
parent f64d2c8f28
commit a51e5cb636
5 changed files with 289 additions and 262 deletions

View File

@@ -463,64 +463,46 @@ public static class TestHelpers
};
}
// Mirrors money_return_receipt_data.json plus the credit-note specific fields
// shown in money_return_receipt.jpg (original invoice reference, refund type, tip).
// Mirrors money_return_receipt_data.json (restaurant refund payload with
// Unix-ms timestamps and per-rate VAT breakdown).
public static MoneyReturnReceipt BuildSampleMoneyReturnReceipt()
{
var receipt = new MoneyReturnReceipt
return new MoneyReturnReceipt
{
CompanyName = "Big Mac Bistro",
Address1 = "Zelena 186",
Address2 = "79000 Lviv",
Phone = "080 039 47 69",
ReceiptNumber = "25",
DateTime = new DateTime(2026, 7, 4, 11, 8, 13),
Guests = 1,
Total = 20.00m,
RestaurantName = "Gaumenfreuden",
RestaurantPhoneNumber = "043 810 48 48",
RestaurantAddressLine1 = "Seestrasse 11",
RestaurantAddressLine2 = "8810 Horgen",
RestaurantWebsite = "https://gaumen-freuden.ch",
RestaurantVatNumber = null,
ThanksMessage = "Thank you for your order!",
NoVAT = false,
RefundReceiptId = null,
RefundNumber = 1,
RefundTimestamp = 1783522075649,
OriginalTransactionNumber = 186,
OriginalPaymentTimestamp = 1783521986035,
OriginalPaymentMethod = "Cash",
Currency = "CHF",
PaymentMethod = "Cash",
PaymentAmount = 13.00m,
WaiterName = "Ronald McDonald",
VatNumber = " MWST",
ThankYouMessage = "Thank you for your order!",
GoodbyeMessageLine1 = "Auf Wiedersehen.",
GoodbyeMessageLine2 = "Powered by James",
// Credit-note specific fields
OriginalInvoiceNumber = "773",
OriginalDateTime = new DateTime(2026, 7, 4, 11, 7, 0),
RefundType = "Full refund",
Tip = 7.00m
RefundType = "Full",
TipAmount = 0.3m,
RefundedAmount = 11.0m,
RefundPaymentMethod = "Cash",
RefundedItems = new List<RefundedItem>
{
new() { Name = "Cappuccino", Size = "", Quantity = 1, Price = 5.8m, TaxAbbr = "A" },
new() { Name = "Kaffee Crème", Size = "", Quantity = 1, Price = 4.9m, TaxAbbr = "A" }
},
StandardRate = new TaxRateBreakdown
{
Rate = 8.1m,
TotalAmount = 10.7m,
TotalAmountNetto = 9.90m,
TotalAmountTax = 0.80m
},
ReducedRate = new TaxRateBreakdown { Rate = 0m, TotalAmount = 0m, TotalAmountNetto = 0m, TotalAmountTax = 0m },
SpecialRateForAccommodation = new TaxRateBreakdown { Rate = 0m, TotalAmount = 0m, TotalAmountNetto = 0m, TotalAmountTax = 0m }
};
receipt.Items.Add(new MoneyReturnReceiptItem
{
Quantity = 1,
Description = "Cloudy Bay Sauvignon Blanc 2024",
UnitPrice = 13.00m,
TotalPrice = 13.00m,
TaxCategory = "D"
});
receipt.Items.Add(new MoneyReturnReceiptItem
{
Quantity = 1,
Description = "Trinkgeld",
UnitPrice = 7.00m,
TotalPrice = 7.00m,
TaxCategory = "D"
});
receipt.TaxBreakdown.Add(new MoneyReturnTaxInfo
{
Category = "D",
Rate = 0m,
Gross = 20.00m,
Net = 20.00m,
TaxAmount = 0.00m,
Currency = "CHF"
});
return receipt;
}
#endregion
@@ -559,7 +541,7 @@ public static class TestHelpers
public static async Task PrintCommandsToEpsonPrinterAsync(
EpsonPrinter printer,
IEnumerable<PrintCommand> commands,
bool useDelay = true,
bool useDelay = false,
int delayMs = 200)
{
await printer.FeedLinesAsync(1);