@kreiseck/kasseneck-api 0.31.0 → 1.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +317 -0
- package/README.de.md +11 -7
- package/README.md +509 -126
- package/dist/cjs/client/api.d.ts +7 -6
- package/dist/cjs/client/api.js +2 -2
- package/dist/cjs/client/aufrufe.d.ts +29 -5
- package/dist/cjs/client/aufrufe.js +114 -2
- package/dist/cjs/client/auth.d.ts +2 -0
- package/dist/cjs/client/auth.js +17 -1
- package/dist/cjs/client/cashregisters.d.ts +1 -1
- package/dist/cjs/client/cashregisters.js +2 -2
- package/dist/cjs/client/errors.d.ts +94 -19
- package/dist/cjs/client/errors.js +132 -28
- package/dist/cjs/client/fehlercodes.d.ts +9 -0
- package/dist/cjs/client/fehlercodes.js +36 -0
- package/dist/cjs/client/index.d.ts +5 -5
- package/dist/cjs/client/index.js +11 -3
- package/dist/cjs/client/receipts.d.ts +131 -124
- package/dist/cjs/client/receipts.js +196 -137
- package/dist/cjs/client/reports.d.ts +26 -4
- package/dist/cjs/client/reports.js +37 -4
- package/dist/cjs/client/status.d.ts +3 -3
- package/dist/cjs/client/status.js +7 -7
- package/dist/cjs/client/transport.d.ts +56 -4
- package/dist/cjs/client/transport.js +234 -25
- package/dist/cjs/enums/vat-rate.d.ts +2 -2
- package/dist/cjs/enums/vat-rate.js +1 -1
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +42 -13
- package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
- package/dist/cjs/{rechnung → invoice}/api.js +6 -6
- package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
- package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
- package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
- package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
- package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
- package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/cjs/invoice/fehler.d.ts +31 -0
- package/dist/cjs/invoice/fehler.js +39 -0
- package/dist/cjs/invoice/index.d.ts +21 -0
- package/dist/cjs/invoice/index.js +86 -0
- package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
- package/dist/cjs/invoice/texte.d.ts +224 -0
- package/dist/cjs/invoice/texte.js +425 -0
- package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
- package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
- package/dist/cjs/models/cancellation.d.ts +43 -24
- package/dist/cjs/models/cancellation.js +94 -46
- package/dist/cjs/models/hobex-receipt.d.ts +3 -3
- package/dist/cjs/models/hobex-receipt.js +35 -35
- package/dist/cjs/models/index.d.ts +6 -5
- package/dist/cjs/models/index.js +22 -2
- package/dist/cjs/models/payment-errors.d.ts +32 -15
- package/dist/cjs/models/payment-errors.js +80 -32
- package/dist/cjs/models/receipt-company.d.ts +6 -5
- package/dist/cjs/models/receipt-company.js +4 -4
- package/dist/cjs/models/receipt-email.d.ts +32 -18
- package/dist/cjs/models/receipt-email.js +69 -24
- package/dist/cjs/models/receipt-errors.d.ts +39 -0
- package/dist/cjs/models/receipt-errors.js +94 -0
- package/dist/cjs/models/receipt-item.d.ts +9 -1
- package/dist/cjs/models/receipt-item.js +3 -0
- package/dist/cjs/models/receipt-summary.d.ts +10 -4
- package/dist/cjs/models/receipt-summary.js +10 -4
- package/dist/cjs/models/receipt.d.ts +31 -2
- package/dist/cjs/models/receipt.js +12 -1
- package/dist/cjs/models/voucher.d.ts +7 -6
- package/dist/cjs/models/voucher.js +2 -7
- package/dist/cjs/partner/ablauf.d.ts +10 -10
- package/dist/cjs/partner/ablauf.js +29 -29
- package/dist/cjs/partner/api.d.ts +26 -23
- package/dist/cjs/partner/api.js +11 -13
- package/dist/cjs/partner/auth.d.ts +1 -1
- package/dist/cjs/partner/auth.js +2 -2
- package/dist/cjs/partner/betrieb.d.ts +7 -7
- package/dist/cjs/partner/betrieb.js +10 -10
- package/dist/cjs/partner/endpunkte.d.ts +27 -14
- package/dist/cjs/partner/endpunkte.js +80 -39
- package/dist/cjs/partner/fehler.d.ts +60 -30
- package/dist/cjs/partner/fehler.js +99 -43
- package/dist/cjs/partner/index.d.ts +13 -12
- package/dist/cjs/partner/index.js +35 -22
- package/dist/cjs/partner/secret.d.ts +3 -3
- package/dist/cjs/partner/secret.js +6 -6
- package/dist/cjs/partner/typen.d.ts +129 -71
- package/dist/cjs/partner/typen.js +76 -3
- package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
- package/dist/cjs/partner/webhook-signatur.js +12 -12
- package/dist/cjs/partner/webhooks.d.ts +60 -32
- package/dist/cjs/partner/webhooks.js +40 -34
- package/dist/cjs/payments/hobex.d.ts +11 -3
- package/dist/cjs/payments/hobex.js +17 -5
- package/dist/cjs/payments/stripe.d.ts +5 -2
- package/dist/cjs/payments/stripe.js +10 -5
- package/dist/cjs/pos/artikel.d.ts +90 -0
- package/dist/cjs/pos/artikel.js +89 -0
- package/dist/cjs/pos/client.d.ts +27 -0
- package/dist/cjs/pos/client.js +144 -0
- package/dist/cjs/pos/drucker.d.ts +86 -0
- package/dist/cjs/pos/drucker.js +78 -0
- package/dist/cjs/pos/errors.d.ts +36 -0
- package/dist/cjs/pos/errors.js +95 -0
- package/dist/cjs/pos/index.d.ts +15 -0
- package/dist/cjs/pos/index.js +102 -0
- package/dist/cjs/pos/settings.d.ts +313 -0
- package/dist/cjs/pos/settings.js +376 -0
- package/dist/cjs/pos/texte.d.ts +883 -0
- package/dist/cjs/pos/texte.js +489 -0
- package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/cjs/printing/escpos.d.ts +29 -29
- package/dist/cjs/printing/escpos.js +61 -61
- package/dist/cjs/printing/index.d.ts +2 -2
- package/dist/cjs/printing/index.js +17 -17
- package/dist/cjs/printing/qr-groesse.d.ts +38 -38
- package/dist/cjs/printing/qr-groesse.js +47 -47
- package/dist/cjs/printing/webusb.d.ts +2 -2
- package/dist/cjs/printing/webusb.js +4 -4
- package/dist/cjs/react/index.d.ts +21 -21
- package/dist/cjs/react/index.js +40 -30
- package/dist/cjs/receipt/bild.d.ts +4 -4
- package/dist/cjs/receipt/bild.js +11 -11
- package/dist/cjs/receipt/blatt.d.ts +46 -46
- package/dist/cjs/receipt/blatt.js +59 -59
- package/dist/cjs/receipt/discount.d.ts +1 -1
- package/dist/cjs/receipt/discount.js +8 -8
- package/dist/cjs/receipt/due.d.ts +86 -0
- package/dist/cjs/receipt/due.js +261 -0
- package/dist/cjs/receipt/epos.d.ts +22 -22
- package/dist/cjs/receipt/epos.js +45 -45
- package/dist/cjs/receipt/grid.d.ts +10 -10
- package/dist/cjs/receipt/grid.js +20 -20
- package/dist/cjs/receipt/index.d.ts +9 -8
- package/dist/cjs/receipt/index.js +26 -23
- package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
- package/dist/cjs/receipt/layout-escpos.js +49 -49
- package/dist/cjs/receipt/layout.d.ts +28 -23
- package/dist/cjs/receipt/layout.js +45 -21
- package/dist/cjs/receipt/marke-daten.d.ts +8 -8
- package/dist/cjs/receipt/marke-daten.js +8 -8
- package/dist/cjs/receipt/marke.d.ts +7 -7
- package/dist/cjs/receipt/marke.js +10 -10
- package/dist/cjs/register/errors.d.ts +61 -0
- package/dist/cjs/register/errors.js +112 -0
- package/dist/cjs/register/index.d.ts +14 -1
- package/dist/cjs/register/index.js +20 -1
- package/dist/cjs/register/pairing.d.ts +55 -36
- package/dist/cjs/register/pairing.js +33 -29
- package/dist/cjs/register/session.d.ts +5 -5
- package/dist/cjs/register/session.js +7 -7
- package/dist/cjs/stored/draht.d.ts +45 -0
- package/dist/cjs/stored/draht.js +220 -0
- package/dist/cjs/stored/einstellungen.d.ts +23 -0
- package/dist/cjs/stored/einstellungen.js +200 -0
- package/dist/cjs/stored/index.d.ts +109 -0
- package/dist/cjs/stored/index.js +225 -0
- package/dist/cjs/stored/vokabular.d.ts +18 -0
- package/dist/cjs/stored/vokabular.js +389 -0
- package/dist/cjs/version.d.ts +7 -0
- package/dist/cjs/version.js +10 -0
- package/dist/cjs/vienna-time.d.ts +1 -1
- package/dist/cjs/vienna-time.js +2 -2
- package/dist/esm/client/api.d.ts +7 -6
- package/dist/esm/client/api.js +4 -4
- package/dist/esm/client/aufrufe.d.ts +29 -5
- package/dist/esm/client/aufrufe.js +111 -1
- package/dist/esm/client/auth.d.ts +2 -0
- package/dist/esm/client/auth.js +16 -1
- package/dist/esm/client/cashregisters.d.ts +1 -1
- package/dist/esm/client/cashregisters.js +2 -2
- package/dist/esm/client/errors.d.ts +94 -19
- package/dist/esm/client/errors.js +129 -27
- package/dist/esm/client/fehlercodes.d.ts +9 -0
- package/dist/esm/client/fehlercodes.js +32 -0
- package/dist/esm/client/index.d.ts +5 -5
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/receipts.d.ts +131 -124
- package/dist/esm/client/receipts.js +195 -140
- package/dist/esm/client/reports.d.ts +26 -4
- package/dist/esm/client/reports.js +36 -4
- package/dist/esm/client/status.d.ts +3 -3
- package/dist/esm/client/status.js +7 -7
- package/dist/esm/client/transport.d.ts +56 -4
- package/dist/esm/client/transport.js +233 -24
- package/dist/esm/enums/vat-rate.d.ts +2 -2
- package/dist/esm/enums/vat-rate.js +1 -1
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
- package/dist/esm/{rechnung → invoice}/api.js +6 -6
- package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
- package/dist/esm/{rechnung → invoice}/auth.js +4 -4
- package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
- package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
- package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
- package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
- package/dist/esm/invoice/fehler.d.ts +31 -0
- package/dist/esm/invoice/fehler.js +33 -0
- package/dist/esm/invoice/index.d.ts +21 -0
- package/dist/esm/invoice/index.js +20 -0
- package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
- package/dist/esm/{rechnung → invoice}/summen.js +12 -12
- package/dist/esm/invoice/texte.d.ts +224 -0
- package/dist/esm/invoice/texte.js +421 -0
- package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
- package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
- package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
- package/dist/esm/models/cancellation.d.ts +43 -24
- package/dist/esm/models/cancellation.js +90 -45
- package/dist/esm/models/hobex-receipt.d.ts +3 -3
- package/dist/esm/models/hobex-receipt.js +35 -35
- package/dist/esm/models/index.d.ts +6 -5
- package/dist/esm/models/index.js +6 -5
- package/dist/esm/models/payment-errors.d.ts +32 -15
- package/dist/esm/models/payment-errors.js +77 -32
- package/dist/esm/models/receipt-company.d.ts +6 -5
- package/dist/esm/models/receipt-company.js +4 -4
- package/dist/esm/models/receipt-email.d.ts +32 -18
- package/dist/esm/models/receipt-email.js +65 -23
- package/dist/esm/models/receipt-errors.d.ts +39 -0
- package/dist/esm/models/receipt-errors.js +87 -0
- package/dist/esm/models/receipt-item.d.ts +9 -1
- package/dist/esm/models/receipt-item.js +3 -0
- package/dist/esm/models/receipt-summary.d.ts +10 -4
- package/dist/esm/models/receipt-summary.js +9 -3
- package/dist/esm/models/receipt.d.ts +31 -2
- package/dist/esm/models/receipt.js +12 -2
- package/dist/esm/models/voucher.d.ts +7 -6
- package/dist/esm/models/voucher.js +2 -7
- package/dist/esm/partner/ablauf.d.ts +10 -10
- package/dist/esm/partner/ablauf.js +27 -27
- package/dist/esm/partner/api.d.ts +26 -23
- package/dist/esm/partner/api.js +13 -15
- package/dist/esm/partner/auth.d.ts +1 -1
- package/dist/esm/partner/auth.js +2 -2
- package/dist/esm/partner/betrieb.d.ts +7 -7
- package/dist/esm/partner/betrieb.js +8 -8
- package/dist/esm/partner/endpunkte.d.ts +27 -14
- package/dist/esm/partner/endpunkte.js +79 -39
- package/dist/esm/partner/fehler.d.ts +60 -30
- package/dist/esm/partner/fehler.js +91 -35
- package/dist/esm/partner/index.d.ts +13 -12
- package/dist/esm/partner/index.js +12 -11
- package/dist/esm/partner/secret.d.ts +3 -3
- package/dist/esm/partner/secret.js +5 -5
- package/dist/esm/partner/typen.d.ts +129 -71
- package/dist/esm/partner/typen.js +75 -2
- package/dist/esm/partner/webhook-signatur.d.ts +2 -2
- package/dist/esm/partner/webhook-signatur.js +12 -12
- package/dist/esm/partner/webhooks.d.ts +60 -32
- package/dist/esm/partner/webhooks.js +38 -32
- package/dist/esm/payments/hobex.d.ts +11 -3
- package/dist/esm/payments/hobex.js +18 -6
- package/dist/esm/payments/stripe.d.ts +5 -2
- package/dist/esm/payments/stripe.js +11 -6
- package/dist/esm/pos/artikel.d.ts +90 -0
- package/dist/esm/pos/artikel.js +79 -0
- package/dist/esm/pos/client.d.ts +27 -0
- package/dist/esm/pos/client.js +137 -0
- package/dist/esm/pos/drucker.d.ts +86 -0
- package/dist/esm/pos/drucker.js +71 -0
- package/dist/esm/pos/errors.d.ts +36 -0
- package/dist/esm/pos/errors.js +88 -0
- package/dist/esm/pos/index.d.ts +15 -0
- package/dist/esm/pos/index.js +20 -0
- package/dist/esm/pos/settings.d.ts +313 -0
- package/dist/esm/pos/settings.js +367 -0
- package/dist/esm/pos/texte.d.ts +883 -0
- package/dist/esm/pos/texte.js +481 -0
- package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
- package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
- package/dist/esm/printing/escpos.d.ts +29 -29
- package/dist/esm/printing/escpos.js +56 -56
- package/dist/esm/printing/index.d.ts +2 -2
- package/dist/esm/printing/index.js +2 -2
- package/dist/esm/printing/qr-groesse.d.ts +38 -38
- package/dist/esm/printing/qr-groesse.js +42 -42
- package/dist/esm/printing/webusb.d.ts +2 -2
- package/dist/esm/printing/webusb.js +4 -4
- package/dist/esm/react/index.d.ts +21 -21
- package/dist/esm/react/index.js +39 -29
- package/dist/esm/receipt/bild.d.ts +4 -4
- package/dist/esm/receipt/bild.js +11 -11
- package/dist/esm/receipt/blatt.d.ts +46 -46
- package/dist/esm/receipt/blatt.js +55 -55
- package/dist/esm/receipt/discount.d.ts +1 -1
- package/dist/esm/receipt/discount.js +7 -7
- package/dist/esm/receipt/due.d.ts +86 -0
- package/dist/esm/receipt/due.js +257 -0
- package/dist/esm/receipt/epos.d.ts +22 -22
- package/dist/esm/receipt/epos.js +47 -47
- package/dist/esm/receipt/grid.d.ts +10 -10
- package/dist/esm/receipt/grid.js +18 -18
- package/dist/esm/receipt/index.d.ts +9 -8
- package/dist/esm/receipt/index.js +9 -8
- package/dist/esm/receipt/layout-escpos.d.ts +24 -24
- package/dist/esm/receipt/layout-escpos.js +51 -51
- package/dist/esm/receipt/layout.d.ts +28 -23
- package/dist/esm/receipt/layout.js +44 -20
- package/dist/esm/receipt/marke-daten.d.ts +8 -8
- package/dist/esm/receipt/marke-daten.js +7 -7
- package/dist/esm/receipt/marke.d.ts +7 -7
- package/dist/esm/receipt/marke.js +10 -10
- package/dist/esm/register/errors.d.ts +61 -0
- package/dist/esm/register/errors.js +104 -0
- package/dist/esm/register/index.d.ts +14 -1
- package/dist/esm/register/index.js +13 -0
- package/dist/esm/register/pairing.d.ts +55 -36
- package/dist/esm/register/pairing.js +33 -29
- package/dist/esm/register/session.d.ts +5 -5
- package/dist/esm/register/session.js +7 -7
- package/dist/esm/stored/draht.d.ts +45 -0
- package/dist/esm/stored/draht.js +208 -0
- package/dist/esm/stored/einstellungen.d.ts +23 -0
- package/dist/esm/stored/einstellungen.js +196 -0
- package/dist/esm/stored/index.d.ts +109 -0
- package/dist/esm/stored/index.js +217 -0
- package/dist/esm/stored/vokabular.d.ts +18 -0
- package/dist/esm/stored/vokabular.js +386 -0
- package/dist/esm/version.d.ts +7 -0
- package/dist/esm/version.js +7 -0
- package/dist/esm/vienna-time.d.ts +1 -1
- package/dist/esm/vienna-time.js +2 -2
- package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
- package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
- package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
- package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-full.sheet32.json +218 -0
- package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
- package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
- package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
- package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
- package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
- package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
- package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
- package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
- package/fixtures/expected/card-custom.sheet32.json +158 -0
- package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
- package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
- package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
- package/fixtures/expected/card-gptom.sheet32.json +230 -0
- package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
- package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
- package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
- package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
- package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
- package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
- package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
- package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
- package/fixtures/expected/card-mypos.sheet32.json +254 -0
- package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
- package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
- package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
- package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
- package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
- package/fixtures/expected/card-stripe.sheet32.json +212 -0
- package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
- package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
- package/fixtures/expected/card-sumup.sheet32.json +218 -0
- package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
- package/fixtures/expected/discount-lines.sheet32.json +200 -0
- package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
- package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
- package/fixtures/expected/discount-simple.sheet32.json +182 -0
- package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
- package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
- package/fixtures/expected/discount-tip.sheet32.json +212 -0
- package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
- package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
- package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
- package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
- package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
- package/fixtures/expected/long-item-name.sheet32.json +176 -0
- package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
- package/fixtures/expected/sale-card.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
- package/fixtures/expected/sale-cash.sheet32.json +176 -0
- package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
- package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
- package/fixtures/expected/sale-small-business.sheet32.json +182 -0
- package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
- package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
- package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
- package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
- package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
- package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
- package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
- package/fixtures/expected/split-cash-change.sheet32.json +194 -0
- package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
- package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
- package/fixtures/expected/split-long-amount.sheet32.json +266 -0
- package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
- package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
- package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
- package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
- package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
- package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
- package/fixtures/expected/split-tip-card.sheet32.json +272 -0
- package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
- package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
- package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
- package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
- package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
- package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
- package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
- package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
- package/fixtures/{erwartet → expected}/training.lines.json +2 -2
- package/fixtures/expected/training.sheet32.json +236 -0
- package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
- package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
- package/fixtures/expected/zero-annual.sheet32.json +212 -0
- package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
- package/fixtures/expected/zero-final.sheet32.json +206 -0
- package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
- package/fixtures/expected/zero-manual.sheet32.json +206 -0
- package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
- package/fixtures/expected/zero-monthly.sheet32.json +206 -0
- package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
- package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
- package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
- package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
- package/fixtures/expected/zero-start.sheet32.json +206 -0
- package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
- package/fixtures/hobex-hps-codes.json +12 -12
- package/fixtures/invoice-api-examples/brands-ok.json +8 -0
- package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
- package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
- package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
- package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
- package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
- package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
- package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
- package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
- package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
- package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
- package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
- package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
- package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
- package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
- package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
- package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
- package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
- package/fixtures/invoice-texts.json +464 -0
- package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
- package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
- package/fixtures/manifest.json +252 -252
- package/fixtures/pos-message-cases.json +32 -0
- package/fixtures/pos-settings-defaults.json +149 -0
- package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
- package/fixtures/receipt-due-generated.json +1218 -0
- package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
- package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
- package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
- package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
- package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
- package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
- package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
- package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
- package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
- package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
- package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
- package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
- package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
- package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
- package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
- package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
- package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
- package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
- package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
- package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
- package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
- package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
- package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
- package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
- package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
- package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
- package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
- package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
- package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
- package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
- package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
- package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
- package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
- package/fixtures/{belege → receipts}/training.json +2 -2
- package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
- package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
- package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
- package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
- package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
- package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
- package/fixtures/renames-1.0.json +1490 -0
- package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
- package/fixtures/surface.json +877 -0
- package/fixtures/v3/README.md +125 -0
- package/fixtures/v3/antworten/belege.json +4738 -0
- package/fixtures/v3/antworten/belegmail.json +154 -0
- package/fixtures/v3/antworten/kasse-belege.json +4304 -0
- package/fixtures/v3/antworten/kasse.json +12716 -0
- package/fixtures/v3/antworten/rechnungen.json +1712 -0
- package/fixtures/v3/antworten/storno.json +737 -0
- package/fixtures/v3/stored/belege.json +502 -0
- package/fixtures/v3/stored/kasse.json +3461 -0
- package/fixtures/v3/stored/rechnungen.json +750 -0
- package/fixtures/v3/v3-vokabular.json +3375 -0
- package/fixtures/v3/zahlbetrag-faelle.json +794 -0
- package/package.json +32 -18
- package/dist/cjs/kasse/artikel.d.ts +0 -83
- package/dist/cjs/kasse/artikel.js +0 -79
- package/dist/cjs/kasse/client.d.ts +0 -10
- package/dist/cjs/kasse/client.js +0 -38
- package/dist/cjs/kasse/drucker.d.ts +0 -59
- package/dist/cjs/kasse/drucker.js +0 -50
- package/dist/cjs/kasse/index.d.ts +0 -13
- package/dist/cjs/kasse/index.js +0 -83
- package/dist/cjs/kasse/settings.d.ts +0 -229
- package/dist/cjs/kasse/settings.js +0 -172
- package/dist/cjs/kasse/texte.d.ts +0 -868
- package/dist/cjs/kasse/texte.js +0 -474
- package/dist/cjs/rechnung/fehler.d.ts +0 -21
- package/dist/cjs/rechnung/fehler.js +0 -44
- package/dist/cjs/rechnung/index.d.ts +0 -21
- package/dist/cjs/rechnung/index.js +0 -82
- package/dist/cjs/rechnung/texte.d.ts +0 -222
- package/dist/cjs/rechnung/texte.js +0 -425
- package/dist/esm/kasse/artikel.d.ts +0 -83
- package/dist/esm/kasse/artikel.js +0 -70
- package/dist/esm/kasse/client.d.ts +0 -10
- package/dist/esm/kasse/client.js +0 -33
- package/dist/esm/kasse/drucker.d.ts +0 -59
- package/dist/esm/kasse/drucker.js +0 -45
- package/dist/esm/kasse/index.d.ts +0 -13
- package/dist/esm/kasse/index.js +0 -18
- package/dist/esm/kasse/settings.d.ts +0 -229
- package/dist/esm/kasse/settings.js +0 -168
- package/dist/esm/kasse/texte.d.ts +0 -868
- package/dist/esm/kasse/texte.js +0 -466
- package/dist/esm/rechnung/fehler.d.ts +0 -21
- package/dist/esm/rechnung/fehler.js +0 -39
- package/dist/esm/rechnung/index.d.ts +0 -21
- package/dist/esm/rechnung/index.js +0 -20
- package/dist/esm/rechnung/texte.d.ts +0 -222
- package/dist/esm/rechnung/texte.js +0 -421
- package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
- package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
- package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
- package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
- package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
- package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
- package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
- package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
- package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
- package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
- package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
- package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
- package/fixtures/erwartet/null-monat.blatt32.json +0 -206
- package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
- package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
- package/fixtures/erwartet/null-start.blatt32.json +0 -206
- package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
- package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
- package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
- package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
- package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
- package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
- package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
- package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
- package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
- package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
- package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
- package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
- package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
- package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
- package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
- package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
- package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
- package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
- package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
- package/fixtures/erwartet/training.blatt32.json +0 -236
- package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
- package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
- package/fixtures/kasse-meldungen-faelle.json +0 -32
- package/fixtures/oberflaeche.json +0 -558
- package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
- package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
- package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
- package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
- package/fixtures/rechnung-texte.json +0 -464
- /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
- /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
- /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
- /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
- /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
- /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
- /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
- /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
- /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
- /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
- /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
- /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
- /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
- /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
package/dist/esm/receipt/grid.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { wrapText } from '../printing/escpos.js';
|
|
2
2
|
/**
|
|
3
3
|
* Zeichenraster: der Beleg als Zeilen mit **exakt N Zeichen** -- die einzige
|
|
4
4
|
* Wahrheit fuer Bildschirm, Bondruck und PDF. Kein Ausgabeweg rechnet
|
|
@@ -10,7 +10,7 @@ import { wortzeilenText } from '../printing/escpos.js';
|
|
|
10
10
|
* letzte Spalte, jede mindestens 1. Zwischen zwei Spalten steht immer
|
|
11
11
|
* mindestens ein Leerzeichen (letztes Zeichen jeder nicht-letzten Spalte).
|
|
12
12
|
* Die letzte Spalte endet buendig am rechten Rand.
|
|
13
|
-
* - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`
|
|
13
|
+
* - Text/Aufdruck/Spalteninhalt bricht **wortweise** um (`wrapText`,
|
|
14
14
|
* dieselbe Regel wie der ESC/POS-Kern); ueberlange Woerter nach einem
|
|
15
15
|
* Bindestrich, sonst hart; geschuetztes Leerzeichen bricht nie.
|
|
16
16
|
* - Fliessregel: laeuft in einer Spaltenzeile nur eine Spalte ueber die erste
|
|
@@ -19,14 +19,14 @@ import { wortzeilenText } from '../printing/escpos.js';
|
|
|
19
19
|
* - Trennlinie ueber die volle Breite, Leerraum als Leerzeilen, QR als eigene
|
|
20
20
|
* Zeile mit Nutzlast (der Zeichner setzt das Bild).
|
|
21
21
|
*/
|
|
22
|
-
export const
|
|
22
|
+
export const CHARS_PER_PAPER_SIZE = { mm58: 32, mm80: 48 };
|
|
23
23
|
/** Zwoelftel -> Zeichen je Spalte (ganze Zeichen, Rest an die letzte, mindestens 1). */
|
|
24
|
-
export function
|
|
24
|
+
export function gridColumnWidths(twelfths, chars) {
|
|
25
25
|
const out = [];
|
|
26
26
|
let vergeben = 0;
|
|
27
|
-
|
|
28
|
-
const letzte = i ===
|
|
29
|
-
const b = letzte ? Math.max(1,
|
|
27
|
+
twelfths.forEach((w, i) => {
|
|
28
|
+
const letzte = i === twelfths.length - 1;
|
|
29
|
+
const b = letzte ? Math.max(1, chars - vergeben) : Math.max(1, Math.floor((chars * w) / 12));
|
|
30
30
|
out.push(b);
|
|
31
31
|
vergeben += b;
|
|
32
32
|
});
|
|
@@ -52,13 +52,13 @@ function restNach(text, erste) {
|
|
|
52
52
|
return text.slice(i);
|
|
53
53
|
}
|
|
54
54
|
export function renderReceiptGrid(layout, options = {}) {
|
|
55
|
-
const zeichen = Math.max(8, Math.floor(options.
|
|
55
|
+
const zeichen = Math.max(8, Math.floor(options.charsPerLine ?? CHARS_PER_PAPER_SIZE[layout.paperSize] ?? 32));
|
|
56
56
|
const leer = ' '.repeat(zeichen);
|
|
57
57
|
const lines = [];
|
|
58
58
|
for (const z of layout.lines) {
|
|
59
59
|
switch (z.kind) {
|
|
60
60
|
case 'text':
|
|
61
|
-
for (const t of
|
|
61
|
+
for (const t of wrapText(z.text, zeichen))
|
|
62
62
|
lines.push({ text: ausrichten(t, zeichen, z.align), kind: 'text', bold: z.bold });
|
|
63
63
|
break;
|
|
64
64
|
case 'banner': {
|
|
@@ -67,10 +67,10 @@ export function renderReceiptGrid(layout, options = {}) {
|
|
|
67
67
|
// myPOS -- Zeichen fuer Zeichen gleich. Vorher zeichnete jeder Weg seinen
|
|
68
68
|
// eigenen Rahmen (Rechteck, doppelt hoch, invers, gefuellt).
|
|
69
69
|
const rahmen = '='.repeat(zeichen);
|
|
70
|
-
lines.push({ text: rahmen, kind: 'banner', bold: true,
|
|
71
|
-
for (const t of
|
|
72
|
-
lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true,
|
|
73
|
-
lines.push({ text: rahmen, kind: 'banner', bold: true,
|
|
70
|
+
lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
|
|
71
|
+
for (const t of wrapText(z.text, zeichen))
|
|
72
|
+
lines.push({ text: ausrichten(t, zeichen, 'center'), kind: 'banner', bold: true, tone: z.tone });
|
|
73
|
+
lines.push({ text: rahmen, kind: 'banner', bold: true, tone: z.tone });
|
|
74
74
|
break;
|
|
75
75
|
}
|
|
76
76
|
case 'rule':
|
|
@@ -84,10 +84,10 @@ export function renderReceiptGrid(layout, options = {}) {
|
|
|
84
84
|
lines.push({ text: ausrichten(QR_PLATZHALTER, zeichen, 'center'), kind: 'qr', bold: false, qr: z.data });
|
|
85
85
|
break;
|
|
86
86
|
case 'columns': {
|
|
87
|
-
const breiten =
|
|
87
|
+
const breiten = gridColumnWidths(z.columns.map((c) => c.width), zeichen);
|
|
88
88
|
// Inhalt jeder nicht-letzten Spalte um 1 Zeichen schmaler: garantierter Abstand.
|
|
89
89
|
const inhalt = breiten.map((b, i) => (i < breiten.length - 1 ? Math.max(1, b - 1) : b));
|
|
90
|
-
const teile = z.columns.map((c, i) =>
|
|
90
|
+
const teile = z.columns.map((c, i) => wrapText(c.text, inhalt[i]));
|
|
91
91
|
// Fliessregel: laeuft nach der ersten Zeile nur noch EINE Spalte weiter (die anderen sind
|
|
92
92
|
// fertig), bekommt ihr Rest die volle Breite -- auf 58 mm sonst 18-Zeichen-Schnipsel.
|
|
93
93
|
// Laufen mehrere weiter, bleibt das Raster (sonst verschoeben sich die Nachbarn).
|
|
@@ -107,7 +107,7 @@ export function renderReceiptGrid(layout, options = {}) {
|
|
|
107
107
|
// Rest aus dem Originaltext (nicht aus den schmal umbrochenen Stuecken), damit
|
|
108
108
|
// Bindestrich-/Hartbrueche der schmalen Spalte nicht als Leerzeichen zurueckbleiben.
|
|
109
109
|
const rest = restNach(z.columns[i].text, teile[i][0]);
|
|
110
|
-
for (const t of
|
|
110
|
+
for (const t of wrapText(rest, zeichen))
|
|
111
111
|
lines.push({ text: ausrichten(t, zeichen, z.columns[i].align), kind: 'columns', bold: false });
|
|
112
112
|
}
|
|
113
113
|
break;
|
|
@@ -116,9 +116,9 @@ export function renderReceiptGrid(layout, options = {}) {
|
|
|
116
116
|
break;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
return { lines, zeichen };
|
|
119
|
+
return { lines, charsPerLine: zeichen };
|
|
120
120
|
}
|
|
121
121
|
/** Klartext (eine Zeile je Rasterzeile) -- fuer Golden-Dateien und Logs. QR als Platzhalter. */
|
|
122
|
-
export function
|
|
122
|
+
export function gridToText(grid) {
|
|
123
123
|
return grid.lines.map((z) => z.text).join('\n');
|
|
124
124
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, type
|
|
2
|
-
export { type EscPosLayoutOptions, type
|
|
3
|
-
export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid,
|
|
4
|
-
export { type EposPrintXmlOptions, type
|
|
5
|
-
export { type
|
|
6
|
-
export {
|
|
7
|
-
export { type
|
|
8
|
-
export {
|
|
1
|
+
export { type LayoutAlign, type LayoutColumn, type LayoutTextLine, type LayoutColumnsLine, type LayoutRuleLine, type LayoutSpaceLine, type LayoutQrLine, type LayoutLine, type ReceiptLayout, type BuildReceiptLayoutOptions, buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, CURRENT_LAYOUT_RULESET, type LayoutBannerLine, type LayoutBannerTone, type LayoutRuleset, SMALL_BUSINESS_NOTICE, formatCents, } from './layout.js';
|
|
2
|
+
export { type EscPosLayoutOptions, type EscPosLayoutResult, type QrPrintMode, type PrintLogo, assertLogoRaster, escPosLayoutBytes, escPosLayoutResult, } from './layout-escpos.js';
|
|
3
|
+
export { type GridLine, type GridLineKind, type ReceiptGrid, type RenderReceiptGridOptions, renderReceiptGrid, gridColumnWidths, gridToText, CHARS_PER_PAPER_SIZE, } from './grid.js';
|
|
4
|
+
export { type EposPrintXmlOptions, type EposPrintResult, type EposDirectOptions, type EposResponse, EposConnectionError, eposPrintXml, eposPrintXmlResult, eposXmlEscape, eposImageXml, eposServiceUrl, eposSoapEnvelope, eposParseResponse, eposDirectPrint, eposDirectStatus } from './epos.js';
|
|
5
|
+
export { type SheetLogoSize, type SheetLogo, type LogoDimensions, type SheetBlock, type ReceiptSheet, type ReceiptSheetOptions, SHEET_LOGO_SIZES, LOGO_MAX_PIXELS, DOTS_PER_CHAR, DOTS_PER_LINE, paperSizeForChars, logoDimensions, isLogoPixelSizeAllowed, logoRasterSize, qrSheetWidthFraction, receiptSheet, } from './blatt.js';
|
|
6
|
+
export { rasterizeLogo } from './bild.js';
|
|
7
|
+
export { type BrandMarkRaster, BRAND_MARK_RASTERS, BRAND_MARK_PATHS } from './marke-daten.js';
|
|
8
|
+
export { brandMarkImage } from './marke.js';
|
|
9
|
+
export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, receiptDueCents, receiptDueBreakdown, } from './due.js';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export { buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText,
|
|
2
|
-
export {
|
|
3
|
-
export { renderReceiptGrid,
|
|
4
|
-
export { EposConnectionError, eposPrintXml,
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
1
|
+
export { buildReceiptLayout, receiptSignatureFailed, receiptSignatureIsTest, receiptIsZero, receiptAmountsAreZero, receiptIsSmallBusinessConsistent, receiptZdaText, CURRENT_LAYOUT_RULESET, SMALL_BUSINESS_NOTICE, formatCents, } from './layout.js';
|
|
2
|
+
export { assertLogoRaster, escPosLayoutBytes, escPosLayoutResult, } from './layout-escpos.js';
|
|
3
|
+
export { renderReceiptGrid, gridColumnWidths, gridToText, CHARS_PER_PAPER_SIZE, } from './grid.js';
|
|
4
|
+
export { EposConnectionError, eposPrintXml, eposPrintXmlResult, eposXmlEscape, eposImageXml, eposServiceUrl, eposSoapEnvelope, eposParseResponse, eposDirectPrint, eposDirectStatus } from './epos.js';
|
|
5
|
+
export { SHEET_LOGO_SIZES, LOGO_MAX_PIXELS, DOTS_PER_CHAR, DOTS_PER_LINE, paperSizeForChars, logoDimensions, isLogoPixelSizeAllowed, logoRasterSize, qrSheetWidthFraction, receiptSheet, } from './blatt.js';
|
|
6
|
+
export { rasterizeLogo } from './bild.js';
|
|
7
|
+
export { BRAND_MARK_RASTERS, BRAND_MARK_PATHS } from './marke-daten.js';
|
|
8
|
+
export { brandMarkImage } from './marke.js';
|
|
9
|
+
export { receiptDueCents, receiptDueBreakdown, } from './due.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type
|
|
1
|
+
import { type PosCodeTable, type PosCutMode, type PosPaperSize, type QrCorrection, type QrMatrix, type QrModuleSize, type QrSize, type RasterImage } from '../printing/index.js';
|
|
2
2
|
import type { ReceiptLayout } from './layout.js';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ReceiptSheet, type SheetLogoSize, type LogoDimensions } from './blatt.js';
|
|
4
4
|
/**
|
|
5
5
|
* Bruecke vom Layout-Modell zu ESC/POS-Bytes — der Bondrucker-Ausgabeweg.
|
|
6
6
|
*
|
|
@@ -29,18 +29,18 @@ import { type BelegBlatt, type LogoStufe, type LogoMass } from './blatt.js';
|
|
|
29
29
|
* (`qrMatrix`), weil dieses Paket keine QR-Codes rechnet.
|
|
30
30
|
*/
|
|
31
31
|
export type QrPrintMode = 'native' | 'nativeModel1' | 'imageRaster';
|
|
32
|
-
/** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`
|
|
33
|
-
export interface
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
raster:
|
|
32
|
+
/** Firmenlogo fuer den Druck: Stufe, Pixelmass des Originals und das fertige Rasterbild (`rasterizeLogo`). */
|
|
33
|
+
export interface PrintLogo {
|
|
34
|
+
size: SheetLogoSize;
|
|
35
|
+
pixelWidth: number;
|
|
36
|
+
pixelHeight: number;
|
|
37
|
+
raster: RasterImage;
|
|
38
38
|
}
|
|
39
39
|
/** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
|
|
40
|
-
export declare function
|
|
40
|
+
export declare function assertLogoRaster(logo: PrintLogo, dimensions: LogoDimensions, chars: number): void;
|
|
41
41
|
/**
|
|
42
42
|
* Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
|
|
43
|
-
* Zuordnung `
|
|
43
|
+
* Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
|
|
44
44
|
* Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
|
|
45
45
|
* zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
|
|
46
46
|
* Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
|
|
@@ -48,10 +48,10 @@ export declare function pruefeLogoRaster(logo: DruckLogo, mass: LogoMass, zeiche
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function blattFuerDruck(layout: ReceiptLayout, optionen: {
|
|
50
50
|
zeichen: number;
|
|
51
|
-
logo?:
|
|
51
|
+
logo?: PrintLogo | null;
|
|
52
52
|
marke?: boolean;
|
|
53
|
-
qrGroesse:
|
|
54
|
-
}):
|
|
53
|
+
qrGroesse: QrModuleSize;
|
|
54
|
+
}): ReceiptSheet;
|
|
55
55
|
export interface EscPosLayoutOptions {
|
|
56
56
|
/** Papierbreite; Vorgabe ist die des Layouts (dessen Spaltenbreiten daran haengen). */
|
|
57
57
|
paperSize?: PosPaperSize;
|
|
@@ -67,9 +67,9 @@ export interface EscPosLayoutOptions {
|
|
|
67
67
|
/** Fehlerkorrekturstufe des QR-Codes; Vorgabe `M` (wie ePOS, Bildweg und Blatt). */
|
|
68
68
|
qrCorrection?: QrCorrection;
|
|
69
69
|
/** Deckel fuer die gerechnete Modulgroesse; Vorgabe `auto` (hoechstens 6 Punkte je Modul). */
|
|
70
|
-
|
|
70
|
+
qrModuleSize?: QrModuleSize;
|
|
71
71
|
/** Druckweg des QR; Vorgabe `native` (der Bestandsweg). */
|
|
72
|
-
|
|
72
|
+
qrMode?: QrPrintMode;
|
|
73
73
|
/**
|
|
74
74
|
* Raster fuer den Bildweg — ohne das gibt es keinen Notausgang.
|
|
75
75
|
*
|
|
@@ -77,24 +77,24 @@ export interface EscPosLayoutOptions {
|
|
|
77
77
|
* Kopf von `layout.ts`); der Aufrufer bringt das fertige Raster mit, etwa
|
|
78
78
|
* aus der QR-Bibliothek, die er ohnehin fuer den Bildschirm benutzt.
|
|
79
79
|
*/
|
|
80
|
-
qrMatrix?: (
|
|
80
|
+
qrMatrix?: (payload: string) => QrMatrix;
|
|
81
81
|
/** Firmenlogo; ohne Angabe kein Logo (Bestand). */
|
|
82
|
-
logo?:
|
|
82
|
+
logo?: PrintLogo | null;
|
|
83
83
|
/** Das Kasseneck-Logo am Ende (Konto-Flag `kreiseck_logo`). */
|
|
84
|
-
|
|
84
|
+
brandMark?: boolean;
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
87
87
|
* Der Bytestrom **samt** dem, was dem QR unterwegs zugestossen ist.
|
|
88
88
|
*
|
|
89
|
-
* Zwilling von `KeckPrintResult`: `
|
|
90
|
-
* nachdrucken oder elektronisch ausgeben", `
|
|
89
|
+
* Zwilling von `KeckPrintResult`: `qrError` heisst "Beleg ohne QR,
|
|
90
|
+
* nachdrucken oder elektronisch ausgeben", `qrFallback` heisst "gedruckt,
|
|
91
91
|
* aber der eingestellte Weg taugt fuer dieses Geraet nicht" — das eine gehoert
|
|
92
92
|
* dem Kunden gesagt, das andere dem Chef.
|
|
93
93
|
*/
|
|
94
|
-
export interface
|
|
94
|
+
export interface EscPosLayoutResult {
|
|
95
95
|
bytes: Uint8Array;
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
qrError: string | null;
|
|
97
|
+
qrFallback: string | null;
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Bytes fuer den Bondrucker -- **aus dem Zeichenraster** ([renderReceiptGrid]):
|
|
@@ -108,4 +108,4 @@ export declare function escPosLayoutBytes(layout: ReceiptLayout, options?: EscPo
|
|
|
108
108
|
* zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
|
|
109
109
|
* diesen Weg.
|
|
110
110
|
*/
|
|
111
|
-
export declare function
|
|
111
|
+
export declare function escPosLayoutResult(layout: ReceiptLayout, options?: EscPosLayoutOptions): EscPosLayoutResult;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { createEscPosDocument, escPosBytes, escPosCut, escPosFeed, escPosPrintableText, escPosQrCode, escPosQrRaster,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { createEscPosDocument, escPosBytes, escPosCut, escPosFeed, escPosPrintableText, escPosQrCode, escPosQrRaster, escPosRasterImage, escPosReset, escPosText, QR_PRINT_WIDTH_DOTS, qrSizingFor, qrFitsInVersion, } from '../printing/index.js';
|
|
2
|
+
import { receiptSheet, logoRasterSize } from './blatt.js';
|
|
3
|
+
import { CHARS_PER_PAPER_SIZE } from './grid.js';
|
|
4
|
+
import { brandMarkImage } from './marke.js';
|
|
5
5
|
/** Das Rasterbild muss genau so gross sein, wie das Blatt das Logo setzt -- sonst stuende am Bon ein anderes Logo als am Schirm. */
|
|
6
|
-
export function
|
|
7
|
-
const soll =
|
|
8
|
-
if (logo.raster.
|
|
9
|
-
throw new Error(`Logo-Raster ${logo.raster.
|
|
6
|
+
export function assertLogoRaster(logo, dimensions, chars) {
|
|
7
|
+
const soll = logoRasterSize(dimensions, chars);
|
|
8
|
+
if (logo.raster.width !== soll.width || logo.raster.height !== soll.height) {
|
|
9
|
+
throw new Error(`Logo-Raster ${logo.raster.width}x${logo.raster.height} passt nicht zum Blatt (${soll.width}x${soll.height})`);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Baut das Blatt fuer einen Druckweg (ESC/POS, ePOS) an EINER Stelle: die
|
|
14
|
-
* Zuordnung `
|
|
14
|
+
* Zuordnung `PrintLogo` -> `SheetLogo` und die Groessenpruefung des mitgebrachten
|
|
15
15
|
* Rasterbilds teilen sich beide Wege -- ohne das muesste eine Aenderung daran an
|
|
16
16
|
* zwei Stellen nachgezogen werden. Wirft VOR jeder Ausgabe (also bevor der
|
|
17
17
|
* Aufrufer auch nur ein Byte/Zeichen geschrieben hat), wenn das Rasterbild nicht
|
|
@@ -19,16 +19,16 @@ export function pruefeLogoRaster(logo, mass, zeichen) {
|
|
|
19
19
|
*/
|
|
20
20
|
export function blattFuerDruck(layout, optionen) {
|
|
21
21
|
const blattOptionen = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
charsPerLine: optionen.zeichen,
|
|
23
|
+
brandMark: optionen.marke === true,
|
|
24
|
+
qrModuleSize: optionen.qrGroesse,
|
|
25
25
|
};
|
|
26
26
|
if (optionen.logo)
|
|
27
|
-
blattOptionen.logo = {
|
|
28
|
-
const blatt =
|
|
29
|
-
const logoBlock = blatt.
|
|
30
|
-
if (optionen.logo && logoBlock && logoBlock.
|
|
31
|
-
|
|
27
|
+
blattOptionen.logo = { size: optionen.logo.size, pixelWidth: optionen.logo.pixelWidth, pixelHeight: optionen.logo.pixelHeight };
|
|
28
|
+
const blatt = receiptSheet(layout, blattOptionen);
|
|
29
|
+
const logoBlock = blatt.blocks.find((b) => b.kind === 'logo');
|
|
30
|
+
if (optionen.logo && logoBlock && logoBlock.kind === 'logo')
|
|
31
|
+
assertLogoRaster(optionen.logo, logoBlock, blatt.charsPerLine);
|
|
32
32
|
return blatt;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
@@ -57,14 +57,14 @@ function druckbaresLayout(layout) {
|
|
|
57
57
|
* zeigt, druckt der Drucker (Monospace, Font A: 32/48 Zeichen).
|
|
58
58
|
*/
|
|
59
59
|
export function escPosLayoutBytes(layout, options = {}) {
|
|
60
|
-
return
|
|
60
|
+
return escPosLayoutResult(layout, options).bytes;
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Wie [escPosLayoutBytes], gibt aber zusaetzlich zurueck, was dem QR
|
|
64
64
|
* zugestossen ist. Die Bytes sind dieselben; wer die Meldungen braucht, nimmt
|
|
65
65
|
* diesen Weg.
|
|
66
66
|
*/
|
|
67
|
-
export function
|
|
67
|
+
export function escPosLayoutResult(layout, options = {}) {
|
|
68
68
|
const paperSize = options.paperSize ?? layout.paperSize;
|
|
69
69
|
const dokumentOptionen = { paperSize };
|
|
70
70
|
if (options.codeTable !== undefined) {
|
|
@@ -72,38 +72,38 @@ export function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
72
72
|
}
|
|
73
73
|
const doc = createEscPosDocument(dokumentOptionen);
|
|
74
74
|
escPosReset(doc);
|
|
75
|
-
const modus = options.
|
|
75
|
+
const modus = options.qrMode ?? 'native';
|
|
76
76
|
const qrOptionen = { align: 'center' };
|
|
77
77
|
if (options.qrSize !== undefined)
|
|
78
78
|
qrOptionen.size = options.qrSize;
|
|
79
79
|
if (options.qrCorrection !== undefined)
|
|
80
80
|
qrOptionen.correction = options.qrCorrection;
|
|
81
|
-
if (options.
|
|
82
|
-
qrOptionen.
|
|
81
|
+
if (options.qrModuleSize !== undefined)
|
|
82
|
+
qrOptionen.moduleSize = options.qrModuleSize;
|
|
83
83
|
if (modus === 'nativeModel1')
|
|
84
|
-
qrOptionen.
|
|
84
|
+
qrOptionen.model1 = true;
|
|
85
85
|
if (modus === 'imageRaster' && options.qrMatrix === undefined) {
|
|
86
86
|
throw new Error("qrModus 'imageRaster' braucht ein qrMatrix -- dieses Paket rastert nicht selbst");
|
|
87
87
|
}
|
|
88
88
|
const rasterOptionen = { align: 'center' };
|
|
89
|
-
if (options.
|
|
90
|
-
rasterOptionen.
|
|
89
|
+
if (options.qrModuleSize !== undefined)
|
|
90
|
+
rasterOptionen.moduleSize = options.qrModuleSize;
|
|
91
91
|
/**
|
|
92
92
|
* Eine QR-Zeile des Rasters. Hier sitzt der **Notausgang**: passt das Symbol
|
|
93
93
|
* nativ auch mit der Ausnahmegroesse nicht aufs Papier, druckt der Drucker
|
|
94
94
|
* es GAR NICHT -- er schneidet nicht ab, er laesst weg. Ein Pflichtbeleg
|
|
95
95
|
* ohne QR ist der schlechteste aller Ausgaenge, also geht der QR dann als
|
|
96
|
-
* Bild hinaus, und der Aufrufer erfaehrt es ueber `
|
|
96
|
+
* Bild hinaus, und der Aufrufer erfaehrt es ueber `qrFallback`.
|
|
97
97
|
*
|
|
98
98
|
* Ohne `qrMatrix` gibt es diesen Weg nicht -- dann bleibt nur die Meldung
|
|
99
|
-
* `
|
|
99
|
+
* `qrError` aus `escPosQrCode`, und der Beleg geht ohne QR hinaus.
|
|
100
100
|
*/
|
|
101
101
|
const qrZeile = (nutzlast) => {
|
|
102
102
|
// Ein Inhalt, der in keine QR-Version passt, laesst sich weder als Befehl
|
|
103
103
|
// noch als Bild drucken -- beide Wege wuerfen. Der Beleg geht ohne QR
|
|
104
|
-
// hinaus und sagt es ueber `
|
|
105
|
-
if (nutzlast !== '' && !
|
|
106
|
-
doc.
|
|
104
|
+
// hinaus und sagt es ueber `qrError`, wie das Blatt (Anteil 0).
|
|
105
|
+
if (nutzlast !== '' && !qrFitsInVersion(nutzlast)) {
|
|
106
|
+
doc.qrError = 'QR-Inhalt passt in keine QR-Version -- Beleg ohne QR';
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
109
|
const raster = options.qrMatrix;
|
|
@@ -115,15 +115,15 @@ export function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
115
115
|
// Feste `qrSize` heisst: der Aufrufer weiss, was er tut -- dann wird
|
|
116
116
|
// weder gerechnet noch ausgewichen.
|
|
117
117
|
if (options.qrSize === undefined) {
|
|
118
|
-
const mass =
|
|
119
|
-
nutzlast,
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
const mass = qrSizingFor({
|
|
119
|
+
payload: nutzlast,
|
|
120
|
+
paperWidthDots: QR_PRINT_WIDTH_DOTS[paperSize],
|
|
121
|
+
moduleSize: options.qrModuleSize ?? 'auto',
|
|
122
122
|
});
|
|
123
|
-
if (!mass.
|
|
124
|
-
doc.
|
|
125
|
-
`QR mit ${mass.
|
|
126
|
-
`${paperSize === 'mm58' ? 58 : 80} mm (${
|
|
123
|
+
if (!mass.fits) {
|
|
124
|
+
doc.qrFallback =
|
|
125
|
+
`QR mit ${mass.modules} Modulen passt nativ nicht auf ` +
|
|
126
|
+
`${paperSize === 'mm58' ? 58 : 80} mm (${QR_PRINT_WIDTH_DOTS[paperSize]} Punkte) ` +
|
|
127
127
|
`-- als Bild gedruckt`;
|
|
128
128
|
escPosQrRaster(doc, raster(nutzlast), rasterOptionen);
|
|
129
129
|
return;
|
|
@@ -135,33 +135,33 @@ export function escPosLayoutErgebnis(layout, options = {}) {
|
|
|
135
135
|
// `blattFuerDruck` prueft das Logo-Raster bereits VOR der Rueckgabe -- die
|
|
136
136
|
// Schleife unten schreibt darum nie ein Byte auf ein falsch grosses Logo.
|
|
137
137
|
const blatt = blattFuerDruck(druckbaresLayout(layout), {
|
|
138
|
-
zeichen:
|
|
138
|
+
zeichen: CHARS_PER_PAPER_SIZE[paperSize],
|
|
139
139
|
logo: options.logo,
|
|
140
|
-
marke: options.
|
|
141
|
-
qrGroesse: options.
|
|
140
|
+
marke: options.brandMark,
|
|
141
|
+
qrGroesse: options.qrModuleSize ?? 'auto',
|
|
142
142
|
});
|
|
143
|
-
for (const block of blatt.
|
|
144
|
-
switch (block.
|
|
143
|
+
for (const block of blatt.blocks) {
|
|
144
|
+
switch (block.kind) {
|
|
145
145
|
case 'qr':
|
|
146
|
-
qrZeile(block.
|
|
146
|
+
qrZeile(block.payload);
|
|
147
147
|
break;
|
|
148
148
|
case 'logo':
|
|
149
149
|
if (options.logo)
|
|
150
|
-
|
|
150
|
+
escPosRasterImage(doc, options.logo.raster, { align: 'center' });
|
|
151
151
|
break;
|
|
152
|
-
case '
|
|
153
|
-
|
|
152
|
+
case 'brandMark':
|
|
153
|
+
escPosRasterImage(doc, brandMarkImage(paperSize), { align: 'center' });
|
|
154
154
|
break;
|
|
155
|
-
case '
|
|
156
|
-
if (block.
|
|
155
|
+
case 'line':
|
|
156
|
+
if (block.blank)
|
|
157
157
|
escPosFeed(doc, 1);
|
|
158
158
|
else
|
|
159
|
-
escPosText(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.
|
|
159
|
+
escPosText(doc, block.text.trimEnd(), { styles: { align: 'left', bold: block.bold } });
|
|
160
160
|
break;
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
if (options.cut !== false) {
|
|
164
164
|
escPosCut(doc, options.cut === 'partial' ? 'partial' : 'full');
|
|
165
165
|
}
|
|
166
|
-
return { bytes: escPosBytes(doc),
|
|
166
|
+
return { bytes: escPosBytes(doc), qrError: doc.qrError, qrFallback: doc.qrFallback };
|
|
167
167
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Receipt, type ReceiptCompany } from '../models/index.js';
|
|
1
|
+
import { type Receipt, type ReceiptCompany, type RegistrationInfo } from '../models/index.js';
|
|
2
2
|
import type { PosPaperSize } from '../printing/escpos.js';
|
|
3
3
|
/**
|
|
4
4
|
* Beleg-Layout — der Bauplan eines Kasseneck-Belegs als reines Datenmodell.
|
|
@@ -76,9 +76,14 @@ export interface LayoutQrLine {
|
|
|
76
76
|
export interface LayoutBannerLine {
|
|
77
77
|
kind: 'banner';
|
|
78
78
|
text: string;
|
|
79
|
-
/**
|
|
80
|
-
|
|
79
|
+
/**
|
|
80
|
+
* `warning` fuer Testkasse/Testsignatur (kein gueltiger Beleg), sonst
|
|
81
|
+
* `receipt_type` (Belegart). Werte wie am `/v3`-Draht (Katalog `LAYOUT_TON`).
|
|
82
|
+
*/
|
|
83
|
+
tone: LayoutBannerTone;
|
|
81
84
|
}
|
|
85
|
+
/** Ton einer hervorgehobenen Zeile, wie am `/v3`-Draht. */
|
|
86
|
+
export type LayoutBannerTone = 'receipt_type' | 'warning';
|
|
82
87
|
export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | LayoutSpaceLine | LayoutQrLine | LayoutBannerLine;
|
|
83
88
|
/**
|
|
84
89
|
* Version des Layout-Regelwerks. Alte Belege werden mit ihrer gespeicherten
|
|
@@ -88,25 +93,15 @@ export type LayoutLine = LayoutTextLine | LayoutColumnsLine | LayoutRuleLine | L
|
|
|
88
93
|
* Signaturkarte, Zertifizierungsdienst, Registrierdaten); reduziert nur,
|
|
89
94
|
* wenn alle Betraege wirklich 0 sind. Vollbelege unveraendert.
|
|
90
95
|
*/
|
|
91
|
-
export type
|
|
92
|
-
export declare const
|
|
93
|
-
/**
|
|
94
|
-
* Registrierdaten fuer den Block „Prüfangaben“ auf Nullbelegen (Regelwerk 2).
|
|
95
|
-
* Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte und
|
|
96
|
-
* der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“ oder
|
|
97
|
-
* ISO-Zeitstempel (Wiener Kalendertag).
|
|
98
|
-
*/
|
|
99
|
-
export interface Pruefangaben {
|
|
100
|
-
karteRegistriertAm?: string | null;
|
|
101
|
-
kasseRegistriertAm?: string | null;
|
|
102
|
-
}
|
|
96
|
+
export type LayoutRuleset = 1 | 2;
|
|
97
|
+
export declare const CURRENT_LAYOUT_RULESET: LayoutRuleset;
|
|
103
98
|
/** Der fertige Bauplan eines Belegs. */
|
|
104
99
|
export interface ReceiptLayout {
|
|
105
100
|
lines: LayoutLine[];
|
|
106
101
|
/** Papierbreite, nach der die Spaltenbreiten gewaehlt wurden. */
|
|
107
102
|
paperSize: PosPaperSize;
|
|
108
103
|
/** Regelwerk, nach dem gesetzt wurde. */
|
|
109
|
-
|
|
104
|
+
ruleset: LayoutRuleset;
|
|
110
105
|
}
|
|
111
106
|
export interface BuildReceiptLayoutOptions {
|
|
112
107
|
/**
|
|
@@ -115,17 +110,27 @@ export interface BuildReceiptLayoutOptions {
|
|
|
115
110
|
*/
|
|
116
111
|
paperSize?: PosPaperSize;
|
|
117
112
|
/** Layout-Regelwerk (Vorgabe: aktuelles). Unbekannt -> Fehler, nie stumm anders setzen. */
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
|
|
113
|
+
ruleset?: LayoutRuleset;
|
|
114
|
+
/**
|
|
115
|
+
* Beleg einer Testumgebung: Rahmen „TESTKASSE — kein gültiger Beleg“ oben
|
|
116
|
+
* und unten. Aus einer Antwort: `ReceiptWithCompany.testCashregister`.
|
|
117
|
+
*/
|
|
118
|
+
testCashregister?: boolean;
|
|
121
119
|
/**
|
|
122
120
|
* Produktionskonto hat mit einer Test-Signatureinheit signiert: Rahmen
|
|
123
121
|
* „TESTSIGNATUR — kein gültiger Beleg“. Der Aufrufer entscheidet (er kennt
|
|
124
|
-
* das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine
|
|
122
|
+
* das Konto); [receiptSignatureIsTest] sagt nur, OB die Signatur eine
|
|
123
|
+
* Testsignatur ist. Aus einer Antwort: `ReceiptWithCompany.testSignature`.
|
|
124
|
+
*/
|
|
125
|
+
testSignature?: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2).
|
|
128
|
+
* Kennt sie nur das Backend (FinanzOnline-Registrierung der Signaturkarte
|
|
129
|
+
* und der Kasse); fehlen sie, entfallen die Zeilen. Datum als „YYYY-MM-DD“
|
|
130
|
+
* oder ISO-Zeitstempel (Wiener Kalendertag). Aus einer Antwort:
|
|
131
|
+
* `ReceiptWithCompany.registrationInfo`.
|
|
125
132
|
*/
|
|
126
|
-
|
|
127
|
-
/** Registrierdaten fuer den Block „Prüfangaben“ (nur Nullbelege, Regelwerk 2). */
|
|
128
|
-
pruefangaben?: Pruefangaben | null;
|
|
133
|
+
registrationInfo?: RegistrationInfo | null;
|
|
129
134
|
}
|
|
130
135
|
/**
|
|
131
136
|
* Cent-Betrag als Anzeigetext: `1234` -> `"12,34"`. Die **einzige** Stelle, an
|