Migrácia na verziu 8
Pri prechode z verzie 7 na verziu 8 je potrebné pri práci s knižnicou adaptovať niektoré spätne nekompatibilné zmeny.
1. Konfigurácia je súčasťou knižnice NineDigit.eKasa
Tip
Táto zmena sa týka iba integrácie prostredníctvom DLL knižnice. Integrácia prostredníctvom HTTP REST API nie je dotknutá.
Po aktualizácii knižnice NineDigit.eKasa na verziu 8 a novšiu odinštalujte knižnicu NineDigit.eKasa.Configuration.
2. Určenie obsahu nefiskálneho dokladu
Pri tlači nefiskálneho dokladu je potrebné vlastnosťou ContentFlags indikovať, či text obsahuje informáciu o cene tovaru alebo cene služby.
Ak je tento príznak nastavený, na doklade sa zobrazí text „NEPLATNÝ DOKLAD“ v každom treťom riadku, pre splnenie §5 ods. 3 písm. t) zákona o evidencii tržieb.
2.1 Príklady použitia (HTTP REST API)
Príklady API volania POST api/v1/printers/print:
Tlač textu obsahujúceho informáciu o cene tovaru alebo cene služby musí byť sprevádzaná vyplnením vlastnosti contentFlags s uvedenou hodnotou priceInformation.
{
"text" : "Suma za tovar alebo službu je 12,34 EUR.",
"cashRegisterCode" : "88812345678900001",
"contentFlags": [ "priceInformation" ]
}
Pri tlači textu neobsahujúceho informáciu o cene tovaru alebo cene služby je vlastnosť contentFlags nastavená na hodnotu prázdneho zoznamu.
{
"text" : "Tento nefiskálny doklad neobsahuje informáciu o cene tovaru alebo cene služby.",
"cashRegisterCode" : "88812345678900001",
"contentFlags": []
}
V prípade, ak nebude vlastnosť contentFlags uvedená, alebo bude nastavená na hodnotu null, aplikácia vytlači text „NEPLATNÝ DOKLAD“ v každom treťom riadku.
2.2 Príklady použitia (DLL knižnica)
Tlač textu obsahujúceho informáciu o cene tovaru alebo cene služby:
ReceiptText receiptText = new ReceiptText(
"Suma za tovar alebo službu je 12,34 EUR.");
TextPrintContext context = new TextPrintContext(
receiptText, NonfiscalReceiptContentFlags.PriceInformation);
this.client.PrintTextAsync(context, CancellationToken.None);
Tlač textu neobsahujúceho informáciu o cene tovaru alebo cene služby:
ReceiptText receiptText = new ReceiptText(
"Tento nefiskálny doklad neobsahuje informáciu " +
"o cene tovaru alebo cene služby.");
TextPrintContext context = new TextPrintContext(
receiptText, NonfiscalReceiptContentFlags.None);
this.client.PrintTextAsync(context, CancellationToken.None);
3. Úprava kompozície nastavení e-mailového dokladu
Tip
Táto zmena sa týka iba integrácie prostredníctvom DLL knižnice. Integrácia prostredníctvom HTTP REST API nie je dotknutá.
Dátový typ EmailPrintingOptions odteraz v konštruktore prijíma povinný parameter to, reprezentujúci e-mailovú adresu kupujúceho.
Predtým:
EmailPrintingOptions printOptions = new EmailPrintingOptions()
{
To = "example@example.com",
...
}
Od verzie 8:
EmailPrintingOptions printOptions = new EmailPrintingOptions("example@example.com")
{
...
}
⚠️ Pozor, volanie PrintingOptions.CreateDefault(PrinterName.Email) skončí výnimkou typu InvalidOperationException.
PrintingOptions.CreateDefault(PrinterName.Email); // InvalidOperationException
4. Zmeny v konfiguračnom súbore
Warning
V prípade návratu z verzie 8 na staršiu verziu nemusí byť súbor settings.json kompatibilný.
V rámci doplnenia automatickej detekcie modelu úložiska, umiestnenia úložiska (sériový port) či eKasa prostredia, sú v konfiguračnom súbore (settings.json) vykonané nasledovné zmeny:
| názov | vlastnosť | popis zmeny |
|---|---|---|
| Model úložiska | storage.storageModel |
Povolená je aj hodnota null označujúca automatickú detekciu modelu úložiska. |
| Sériový port úložiska | storage.serialPortName |
Hodnota bola odstránená. Je nahradená vlastnosťou storage.location |
| Umiestnenie úložiska | storage.location |
Nahrádza vlastnosť serialPortName. Povolená je aj hodnota null označujúca automatickú detekciu umiestnenia úložiska. |
| eKasa prostredie | eKasaClient.environment |
Povolená je aj hodnota null označujúca automatickú detekciu prostredia. |
V rámci implementácie QR platieb sa v konfiguračnom súbore nachádza nová sekcia qrPayments.
Príklad:
...
"qrPayments":
{
"merchant":
{
"iban": "SK4811000000002944116480",
"name": "Merchant Name, s.r.o."
},
"paymentTimeoutSeconds": 120,
"environment": null,
"recipientMessage": null
}
| vlastnosť | dátový typ | popis |
|---|---|---|
merchant.iban |
string? |
Číslo účtu obchodníka v tvare IBAN. Predvolená hodnota je null. |
merchant.name |
string? |
Meno obchodníka prijímajúceho platby, pod ktorým je účet obchodníka evidovaný v banke za účelom overenia prijímateľa okamžitej platby. Maximálna dĺžka je 70 znakov. Hodnota nesmie obsahovať mäkčene ani dĺžne. Zo špeciálnych znakov je možné použiť len: +, ?, /, -, (, ), ., ,, : a '. Predvolená hodnota je null. |
paymentTimeoutSeconds |
int |
Časový interval v sekundách, po ktorého uplynutí bude platna označená ako exspirovaná. Predvolená hodnota je 120. |
environment |
string? |
Prostredie služby QR platieb. Povolené hodnoty: production (produkčné prostredie), integration (integračné prostredie) alebo null pre automatickú detekciu (odporúčané). |
recipientMessage |
string? |
Prostredie služby QR platieb. Povolené hodnoty: production (produkčné prostredie), integration (integračné prostredie) alebo null pre automatickú detekciu (odporúčané). |
V prípade, ak niektorá z vlastností merchant.iban a merchant.name nadobúda hodnotu null, pokus o realizáciu QR platby skončí chybou Údaje obchodníka nie sú nastavené. Overte nastavenia QR platieb..