private async Task PrintPaperReceipt(CashRegisterReceipt receipt) { // prepare request object RegisterCashRegisterReceiptRequest receiptRequest = new RegisterCashRegisterReceiptRequest(receipt); // and register receipt RegisterReceiptResult result = await client.RegisterReceiptAsync(receiptRequest, CancellationToken.None); }
private void HandleReceiptRegistrationResult(RegisterReceiptResult result) { if (result.IsSuccessful == true) { string message = $"Receipt was registered in ONLINE mode, with unique ID: " + result.Response.Data.Id; Console.WriteLine(message); } else if (result.IsSuccessful == null) { string message = $"Receipt was registered in OFFLINE mode, no ID is available. As replacement for ID, OKP is used: {result.Request.Data.OKP}"; Console.WriteLine(message); } else if (result.IsSuccessful == false) { string message = $"eKasa system rejected our request for receipt registration. Error #{result.Error.Code}: {result.Error.Message}"; Console.WriteLine(message); } }
private async Task PrintPdfReceipt(CashRegisterReceipt receipt) { // there are no options available for pdf printer. // prepare print context object without additional options. RegisterReceiptPrintContext printContext = RegisterReceiptPrintContext.CreatePdf(); // wrap receipt to request RegisterCashRegisterReceiptRequest receiptRequest = new RegisterCashRegisterReceiptRequest(receipt); // and register receipt RegisterReceiptResult result = await client.RegisterReceiptAsync(receiptRequest, printContext, CancellationToken.None); // PDF file is created now. // by default, its location is : "C:/ProgramData/NineDigit/Portos.eKasa/receipts" this.HandleReceiptRegistrationResult(result); }
private async Task PrintPaperReceiptWithCustomOptions(CashRegisterReceipt receipt) { // we can override default client configuration with these options: PosPrintingOptions printOptions = new PosPrintingOptions() { // this will override the "configuration.Printers.Pos.Drawer.Enabled" for this specific receipt. OpenDrawer = false, // this will override the "configuration.Printers.Pos.Logo.Enabled" for this specific receipt. PrintLogo = true, // this will override the "configuration.Printers.Pos.Logo.MemoryAddress" for this specific receipt. LogoMemoryAddress = 2 }; // prepare print context object from printer name and printing options RegisterReceiptPrintContext printContext = RegisterReceiptPrintContext.CreatePos(printOptions); // wrap receipt to request RegisterCashRegisterReceiptRequest receiptRequest = new RegisterCashRegisterReceiptRequest(receipt); // and register receipt RegisterReceiptResult result = await client.RegisterReceiptAsync(receiptRequest, printContext, CancellationToken.None); this.HandleReceiptRegistrationResult(result); }