@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
|
@@ -1,28 +1,70 @@
|
|
|
1
|
+
import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
|
|
2
|
+
/** Die Codes des Versands selbst (`errorCodes.receiptEmail`); jeder hat einen Satz im Textkatalog. */
|
|
3
|
+
export const RECEIPT_EMAIL_SEND_ERROR_CODES = Object.freeze([
|
|
4
|
+
'invalid_address', // Empfaengeradresse unbrauchbar (Pruefung im Backend)
|
|
5
|
+
'receipt_not_found', // Beleg gibt es nicht ODER er gehoert einer anderen Kasse
|
|
6
|
+
'too_many_requests', // Schleuse: 5 Mails je Beleg (24 h), 30 je Kasse und Stunde
|
|
7
|
+
'send_failed', // die Mail selbst ging nicht hinaus
|
|
8
|
+
]);
|
|
1
9
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
10
|
+
* Fehlercodes von `sendReceiptEmail` unter `/v3`: die Versandcodes
|
|
11
|
+
* ([RECEIPT_EMAIL_SEND_ERROR_CODES]) und dahinter (ab 1.0) die Codes, die
|
|
12
|
+
* Anmeldung und Rand auf diesem Endpunkt erzeugen koennen: `errorCodes.auth`
|
|
13
|
+
* ohne die sieben des Partner-Zugangs und `errorCodes.edge` (`not_found`,
|
|
14
|
+
* `dialect_mismatch`, `response_translation_failed` ...). Das Paket reicht sie
|
|
15
|
+
* als [KasseneckApiError.code] durch; ein Code ausserhalb bleibt dort lesbar.
|
|
16
|
+
* Zuletzt `route_missing` (Code des Pakets).
|
|
9
17
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
|
|
18
|
+
export const RECEIPT_EMAIL_ERROR_CODES = Object.freeze([
|
|
19
|
+
...RECEIPT_EMAIL_SEND_ERROR_CODES,
|
|
20
|
+
// Anmeldung und Rand (errorCodes.auth ohne Partner-Zugang, errorCodes.edge)
|
|
21
|
+
'account_not_found',
|
|
22
|
+
'admin_required',
|
|
23
|
+
'cashregister_not_assigned',
|
|
24
|
+
'cashregister_not_found',
|
|
25
|
+
'cashregister_token_invalid',
|
|
26
|
+
'cashregister_token_missing',
|
|
27
|
+
'dialect_mismatch',
|
|
28
|
+
'internal_translation_error',
|
|
29
|
+
'live_not_enabled',
|
|
30
|
+
'method_not_allowed',
|
|
31
|
+
'mfa_required',
|
|
32
|
+
'not_found',
|
|
33
|
+
'register_user_no_business',
|
|
34
|
+
'register_user_not_allowed',
|
|
35
|
+
'register_user_not_found',
|
|
36
|
+
'response_translation_failed',
|
|
37
|
+
'session_expired',
|
|
38
|
+
'session_other_cashregister',
|
|
39
|
+
'unauthorized',
|
|
40
|
+
'user_disabled',
|
|
41
|
+
'user_verification_failed',
|
|
42
|
+
'validation',
|
|
43
|
+
// Code des Pakets (CLIENT_ERROR_CODES; response_unreadable nur an signierenden Aufrufen)
|
|
44
|
+
'route_missing',
|
|
45
|
+
]);
|
|
26
46
|
export function isReceiptEmailErrorCode(value) {
|
|
27
47
|
return typeof value === 'string' && RECEIPT_EMAIL_ERROR_CODES.includes(value);
|
|
28
48
|
}
|
|
49
|
+
const RECEIPTEMAIL_BEKANNT = new Set(RECEIPT_EMAIL_ERROR_CODES);
|
|
50
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_EMAIL_ERROR_CODES] steht; sonst `undefined`. */
|
|
51
|
+
export function receiptEmailErrorCode(error) {
|
|
52
|
+
return bekannterCode(error, RECEIPTEMAIL_BEKANNT);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Kurzform fuer `catch (e) { if (isReceiptEmailError(e, 'too_many_requests')) … }`.
|
|
56
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_EMAIL_ERROR_CODES]?
|
|
57
|
+
*/
|
|
58
|
+
export function isReceiptEmailError(error, code) {
|
|
59
|
+
const gefunden = receiptEmailErrorCode(error);
|
|
60
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Versandweg der Belegmail (Katalog `MAILWEG`): Postfach des Betriebs,
|
|
64
|
+
* Plattform, oder Plattform als Rueckfall, weil das eigene Postfach scheiterte.
|
|
65
|
+
*/
|
|
66
|
+
export const RECEIPT_EMAIL_VIAS = Object.freeze(['own', 'platform', 'platform_fallback']);
|
|
67
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
68
|
+
export function receiptEmailFieldErrors(error) {
|
|
69
|
+
return feldfehlerVon(error);
|
|
70
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { KasseneckApiError } from '../client/errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fehlercodes von `createReceipt` und `getReceipt` unter `/v3` (Vokabular
|
|
4
|
+
* `errorCodes.receiptMessagesByEndpoint`); dazu kommen die Zahlungscodes aus
|
|
5
|
+
* [PAYMENT_ERROR_CODES] und die des Rands (`validation`, `dialect_mismatch`, …).
|
|
6
|
+
*
|
|
7
|
+
* `receipt_outcome_unknown` heisst: der Beleg ist moeglicherweise signiert
|
|
8
|
+
* (`outcome: 'unknown'`). Nie wiederholen, sondern die Belegliste nachlesen.
|
|
9
|
+
*
|
|
10
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
11
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
12
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
13
|
+
* ...). Zuletzt die Codes des Pakets selbst: `route_missing` und
|
|
14
|
+
* `response_unreadable` (Erfolg gemeldet, Antwort unlesbar, Ausgang unklar).
|
|
15
|
+
* Die Zahlungscodes (`payments_sum_mismatch`, `payment_method_not_supported`
|
|
16
|
+
* ...) stehen in [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
|
|
17
|
+
* `KasseneckApiError.code` lesbar.
|
|
18
|
+
*/
|
|
19
|
+
export declare const RECEIPT_ERROR_CODES: readonly ["cancellation_reference_unavailable", "cashregister_closed", "cashregister_decommissioned", "final_receipt_expired", "final_receipt_not_allowed", "module_inactive", "not_permitted", "receipt_limit_exceeded", "receipt_not_found", "receipt_outcome_unknown", "receipt_type_invalid", "signature_incomplete", "signature_missing", "signing_failed", "small_business_vat_not_allowed", "tip_invalid", "tip_not_allowed", "tip_recipient_unknown", "validation", "account_not_found", "admin_required", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "route_missing", "response_unreadable"];
|
|
20
|
+
export type ReceiptErrorCode = (typeof RECEIPT_ERROR_CODES)[number];
|
|
21
|
+
export declare function isReceiptErrorCode(value: unknown): value is ReceiptErrorCode;
|
|
22
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_ERROR_CODES] steht; sonst `undefined`. */
|
|
23
|
+
export declare function receiptErrorCode(error: unknown): ReceiptErrorCode | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Kurzform fuer `catch (e) { if (isReceiptError(e, 'signing_failed')) … }`.
|
|
26
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_ERROR_CODES]?
|
|
27
|
+
*/
|
|
28
|
+
export declare function isReceiptError(error: unknown, code?: ReceiptErrorCode): error is KasseneckApiError;
|
|
29
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort der Belegwelt. */
|
|
30
|
+
export interface ReceiptFieldError {
|
|
31
|
+
/** Feldpfad in der gesendeten Anfrage, z. B. `items.0.vatRate` oder `payments.1.amountCents`. */
|
|
32
|
+
field: string;
|
|
33
|
+
message: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Die Feldfehler einer `validation`-Antwort von `createReceipt`,
|
|
37
|
+
* `cancelReceipt` oder `sendReceiptEmail`; leer, wenn es keine sind.
|
|
38
|
+
*/
|
|
39
|
+
export declare function receiptFieldErrors(error: unknown): ReceiptFieldError[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fehlercodes von `createReceipt` und `getReceipt` unter `/v3` (Vokabular
|
|
4
|
+
* `errorCodes.receiptMessagesByEndpoint`); dazu kommen die Zahlungscodes aus
|
|
5
|
+
* [PAYMENT_ERROR_CODES] und die des Rands (`validation`, `dialect_mismatch`, …).
|
|
6
|
+
*
|
|
7
|
+
* `receipt_outcome_unknown` heisst: der Beleg ist moeglicherweise signiert
|
|
8
|
+
* (`outcome: 'unknown'`). Nie wiederholen, sondern die Belegliste nachlesen.
|
|
9
|
+
*
|
|
10
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
11
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
12
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
13
|
+
* ...). Zuletzt die Codes des Pakets selbst: `route_missing` und
|
|
14
|
+
* `response_unreadable` (Erfolg gemeldet, Antwort unlesbar, Ausgang unklar).
|
|
15
|
+
* Die Zahlungscodes (`payments_sum_mismatch`, `payment_method_not_supported`
|
|
16
|
+
* ...) stehen in [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
|
|
17
|
+
* `KasseneckApiError.code` lesbar.
|
|
18
|
+
*/
|
|
19
|
+
export const RECEIPT_ERROR_CODES = Object.freeze([
|
|
20
|
+
'cancellation_reference_unavailable',
|
|
21
|
+
'cashregister_closed',
|
|
22
|
+
'cashregister_decommissioned',
|
|
23
|
+
'final_receipt_expired',
|
|
24
|
+
'final_receipt_not_allowed',
|
|
25
|
+
'module_inactive',
|
|
26
|
+
'not_permitted',
|
|
27
|
+
'receipt_limit_exceeded',
|
|
28
|
+
'receipt_not_found',
|
|
29
|
+
'receipt_outcome_unknown',
|
|
30
|
+
'receipt_type_invalid',
|
|
31
|
+
'signature_incomplete',
|
|
32
|
+
'signature_missing',
|
|
33
|
+
'signing_failed',
|
|
34
|
+
'small_business_vat_not_allowed',
|
|
35
|
+
'tip_invalid',
|
|
36
|
+
'tip_not_allowed',
|
|
37
|
+
'tip_recipient_unknown',
|
|
38
|
+
'validation',
|
|
39
|
+
// Anmeldung und Rand (errorCodes.auth ohne Partner-Zugang, errorCodes.edge)
|
|
40
|
+
'account_not_found',
|
|
41
|
+
'admin_required',
|
|
42
|
+
'cashregister_not_assigned',
|
|
43
|
+
'cashregister_not_found',
|
|
44
|
+
'cashregister_token_invalid',
|
|
45
|
+
'cashregister_token_missing',
|
|
46
|
+
'dialect_mismatch',
|
|
47
|
+
'internal_translation_error',
|
|
48
|
+
'live_not_enabled',
|
|
49
|
+
'method_not_allowed',
|
|
50
|
+
'mfa_required',
|
|
51
|
+
'not_found',
|
|
52
|
+
'register_user_no_business',
|
|
53
|
+
'register_user_not_allowed',
|
|
54
|
+
'register_user_not_found',
|
|
55
|
+
'response_translation_failed',
|
|
56
|
+
'session_expired',
|
|
57
|
+
'session_other_cashregister',
|
|
58
|
+
'unauthorized',
|
|
59
|
+
'user_disabled',
|
|
60
|
+
'user_verification_failed',
|
|
61
|
+
// Codes des Pakets (CLIENT_ERROR_CODES)
|
|
62
|
+
'route_missing',
|
|
63
|
+
'response_unreadable',
|
|
64
|
+
]);
|
|
65
|
+
export function isReceiptErrorCode(value) {
|
|
66
|
+
return typeof value === 'string' && RECEIPT_ERROR_CODES.includes(value);
|
|
67
|
+
}
|
|
68
|
+
const RECEIPT_BEKANNT = new Set(RECEIPT_ERROR_CODES);
|
|
69
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_ERROR_CODES] steht; sonst `undefined`. */
|
|
70
|
+
export function receiptErrorCode(error) {
|
|
71
|
+
return bekannterCode(error, RECEIPT_BEKANNT);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Kurzform fuer `catch (e) { if (isReceiptError(e, 'signing_failed')) … }`.
|
|
75
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_ERROR_CODES]?
|
|
76
|
+
*/
|
|
77
|
+
export function isReceiptError(error, code) {
|
|
78
|
+
const gefunden = receiptErrorCode(error);
|
|
79
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Die Feldfehler einer `validation`-Antwort von `createReceipt`,
|
|
83
|
+
* `cancelReceipt` oder `sendReceiptEmail`; leer, wenn es keine sind.
|
|
84
|
+
*/
|
|
85
|
+
export function receiptFieldErrors(error) {
|
|
86
|
+
return feldfehlerVon(error);
|
|
87
|
+
}
|
|
@@ -29,7 +29,7 @@ export interface ReceiptItem {
|
|
|
29
29
|
priceCents: number;
|
|
30
30
|
/**
|
|
31
31
|
* Trinkgeld-Position (vom Backend aus dem Parameter `tip` erzeugt, siehe
|
|
32
|
-
* [ReceiptCommonOptions.tip]) oder Rabatt-Position (`
|
|
32
|
+
* [ReceiptCommonOptions.tip]) oder Rabatt-Position (`distributeDiscount`).
|
|
33
33
|
* Mitarbeiter-Trinkgeld ist Durchlaeufer (0 %, kein Umsatz),
|
|
34
34
|
* Inhaber-Trinkgeld (`recipient.owner`) Umsatz. Rabatt-Positionen sind
|
|
35
35
|
* negative Entgeltminderungen je Steuersatz; die Kennzeichnung steuert nur
|
|
@@ -40,6 +40,11 @@ export interface ReceiptItem {
|
|
|
40
40
|
recipient?: TipRecipient | null;
|
|
41
41
|
/** Zahlart der Trinkgeld-Position (kann von der des Belegs abweichen). */
|
|
42
42
|
paymentMethod?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Nur Personal-Trinkgeld: hat der Empfaenger das Geld schon (`true`) oder
|
|
45
|
+
* behaelt der Betrieb es und schuldet es (`false`)? Fehlt bei Altbelegen.
|
|
46
|
+
*/
|
|
47
|
+
receivedImmediately?: boolean;
|
|
43
48
|
/**
|
|
44
49
|
* Artikel-Verweis (Artikelstamm) — Grundlage der Erloesgruppen-Zuordnung
|
|
45
50
|
* im Bericht. Optional; Handeingaben haben keinen.
|
|
@@ -70,6 +75,7 @@ export interface ReceiptItemPayload {
|
|
|
70
75
|
kind?: 'tip' | 'discount';
|
|
71
76
|
recipient?: TipRecipient | null;
|
|
72
77
|
paymentMethod?: string;
|
|
78
|
+
receivedImmediately?: boolean;
|
|
73
79
|
/** Artikel-Verweis, siehe [ReceiptItem.articleId]. */
|
|
74
80
|
articleId?: string;
|
|
75
81
|
}
|
|
@@ -93,6 +99,8 @@ export interface ReceiptItemPayloadRead {
|
|
|
93
99
|
kind?: string | null;
|
|
94
100
|
recipient?: TipRecipient | null;
|
|
95
101
|
paymentMethod?: string | null;
|
|
102
|
+
/** Trinkgeld-Position, siehe [ReceiptItem.receivedImmediately]. */
|
|
103
|
+
receivedImmediately?: boolean | null;
|
|
96
104
|
/** v2: Menge */
|
|
97
105
|
quantity?: number | null;
|
|
98
106
|
/** v2: Einzelpreis in Cent */
|
|
@@ -27,6 +27,8 @@ export function toReceiptItemPayload(item) {
|
|
|
27
27
|
nutzlast.recipient = item.recipient ?? null;
|
|
28
28
|
if (item.paymentMethod != null)
|
|
29
29
|
nutzlast.paymentMethod = item.paymentMethod;
|
|
30
|
+
if (typeof item.receivedImmediately === 'boolean')
|
|
31
|
+
nutzlast.receivedImmediately = item.receivedImmediately;
|
|
30
32
|
}
|
|
31
33
|
// Rabatt-Kennzeichnung reist mit — sonst kaeme ein Storno dieser Position
|
|
32
34
|
// am Bon wieder als gewoehnliche Warenzeile mit "1 x" an.
|
|
@@ -71,6 +73,7 @@ export function fromReceiptItemPayload(payload) {
|
|
|
71
73
|
kind: 'tip',
|
|
72
74
|
recipient: payload.recipient ?? null,
|
|
73
75
|
...(payload.paymentMethod != null ? { paymentMethod: payload.paymentMethod } : {}),
|
|
76
|
+
...(typeof payload.receivedImmediately === 'boolean' ? { receivedImmediately: payload.receivedImmediately } : {}),
|
|
74
77
|
}
|
|
75
78
|
: payload.kind === 'discount'
|
|
76
79
|
? { kind: 'discount' }
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { KeckPaymentMethod, ReceiptType } from '../enums/index.js';
|
|
2
|
+
import { type CancellationStatus } from './cancellation.js';
|
|
2
3
|
import { type ReceiptPayment, type ReceiptPaymentPayload } from './receipt-payment.js';
|
|
3
4
|
/**
|
|
4
5
|
* Belegzeile einer Liste — die Form, die `listMyReceipts` liefert
|
|
@@ -23,7 +24,7 @@ import { type ReceiptPayment, type ReceiptPaymentPayload } from './receipt-payme
|
|
|
23
24
|
/** Anlass eines Nullbelegs (Backend: cashregister-lifecycle ZERO_KINDS). */
|
|
24
25
|
export declare const ZERO_KINDS: readonly ["monthly", "annual", "annual_replacement", "outage_end", "final", "manual"];
|
|
25
26
|
export type ZeroKind = (typeof ZERO_KINDS)[number];
|
|
26
|
-
export declare function
|
|
27
|
+
export declare function isZeroKind(w: unknown): w is ZeroKind;
|
|
27
28
|
export interface ReceiptSummary {
|
|
28
29
|
receiptId: string;
|
|
29
30
|
/** Fortlaufender Belegzaehler der Kasse; fehlt bei Alt-Belegen. */
|
|
@@ -60,8 +61,13 @@ export interface ReceiptSummary {
|
|
|
60
61
|
timeStamp?: string;
|
|
61
62
|
};
|
|
62
63
|
cancellationReason?: string;
|
|
63
|
-
/**
|
|
64
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Storno-Stand des Originals: `none`, `partial` oder `full`. Ein Wert, den
|
|
66
|
+
* dieses Paket nicht kennt, kommt sichtbar als `'unknown'` an, nie still als
|
|
67
|
+
* `none`: die Kasse bietet dann keinen Storno an, bis sie den Beleg einzeln
|
|
68
|
+
* liest. Fehlt das Feld in der Antwort, fehlt es auch hier.
|
|
69
|
+
*/
|
|
70
|
+
cancellationStatus?: CancellationStatus | 'unknown';
|
|
65
71
|
/** Nur am Nullbeleg, nur fuer Kassen-Benutzer: Anlass (monthly, annual, annual_replacement, outage_end, final, manual). */
|
|
66
72
|
zeroKind?: ZeroKind;
|
|
67
73
|
/**
|
|
@@ -96,7 +102,7 @@ export interface ReceiptSummaryPayload {
|
|
|
96
102
|
timeStamp?: string | null;
|
|
97
103
|
} | null;
|
|
98
104
|
cancellationReason?: string | null;
|
|
99
|
-
|
|
105
|
+
cancellationStatus?: string | null;
|
|
100
106
|
zeroKind?: string | null;
|
|
101
107
|
payments?: ReceiptPaymentPayload[] | null;
|
|
102
108
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { KeckPaymentMethod, ReceiptType } from '../enums/index.js';
|
|
2
2
|
import { euroToCents } from '../money.js';
|
|
3
3
|
import { readEnumKey } from './enum-payload.js';
|
|
4
|
+
import { CANCELLATION_STATUSES } from './cancellation.js';
|
|
4
5
|
import { fromReceiptPaymentPayload } from './receipt-payment.js';
|
|
5
6
|
/**
|
|
6
7
|
* Belegzeile einer Liste — die Form, die `listMyReceipts` liefert
|
|
@@ -24,7 +25,7 @@ import { fromReceiptPaymentPayload } from './receipt-payment.js';
|
|
|
24
25
|
*/
|
|
25
26
|
/** Anlass eines Nullbelegs (Backend: cashregister-lifecycle ZERO_KINDS). */
|
|
26
27
|
export const ZERO_KINDS = ['monthly', 'annual', 'annual_replacement', 'outage_end', 'final', 'manual'];
|
|
27
|
-
export function
|
|
28
|
+
export function isZeroKind(w) {
|
|
28
29
|
return typeof w === 'string' && ZERO_KINDS.includes(w);
|
|
29
30
|
}
|
|
30
31
|
export function fromReceiptSummaryPayload(payload) {
|
|
@@ -47,8 +48,13 @@ export function fromReceiptSummaryPayload(payload) {
|
|
|
47
48
|
...(typeof payload.cancellationOf.timeStamp === 'string' && payload.cancellationOf.timeStamp ? { timeStamp: payload.cancellationOf.timeStamp } : {}),
|
|
48
49
|
} } : {}),
|
|
49
50
|
...(payload.cancellationReason ? { cancellationReason: payload.cancellationReason } : {}),
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
...(payload.cancellationStatus == null
|
|
52
|
+
? {}
|
|
53
|
+
: { cancellationStatus: isCancellationStatus(payload.cancellationStatus) ? payload.cancellationStatus : 'unknown' }),
|
|
54
|
+
...(isZeroKind(payload.zeroKind) ? { zeroKind: payload.zeroKind } : {}),
|
|
52
55
|
...(Array.isArray(payload.payments) ? { payments: payload.payments.map(fromReceiptPaymentPayload) } : {}),
|
|
53
56
|
};
|
|
54
57
|
}
|
|
58
|
+
function isCancellationStatus(wert) {
|
|
59
|
+
return typeof wert === 'string' && CANCELLATION_STATUSES.includes(wert);
|
|
60
|
+
}
|
|
@@ -18,8 +18,15 @@ import { type ReceiptPayment, type ReceiptPaymentPayload } from './receipt-payme
|
|
|
18
18
|
* echten Zeitpunkt um (uneinheitliches Server-Format, siehe dort).
|
|
19
19
|
*
|
|
20
20
|
* `paymentMethod`/`receiptType`/`creditCardProvider` sind beim Lesen entweder
|
|
21
|
-
* der bekannte Enum-Eintrag oder
|
|
22
|
-
* Schluessel
|
|
21
|
+
* der bekannte Enum-Eintrag oder, bei einem der Nutzlast unbekannten
|
|
22
|
+
* Schluessel, der rohe String (siehe `enum-payload.ts`, `readEnumKey`).
|
|
23
|
+
*
|
|
24
|
+
* **Zahlungen stehen in `payments`.** `paymentMethod` vergibt der Server
|
|
25
|
+
* (`mixed` bei mehreren Zahlarten); gesendet wird es unter `/v3` nie. Die
|
|
26
|
+
* Anbieterdaten (`payments[].providerPaymentId`/`providerData`, bei
|
|
27
|
+
* Altbelegen `cardPaymentId`/`cardPaymentData`) liefert nur der Kassenweg
|
|
28
|
+
* (Kanal `app`, `kasse.kasseneck.at/api/v3`); am oeffentlichen Weg fehlen
|
|
29
|
+
* sie. Darum sind sie hier optional.
|
|
23
30
|
*/
|
|
24
31
|
export interface Receipt {
|
|
25
32
|
receiptId: string;
|
|
@@ -61,6 +68,17 @@ export interface Receipt {
|
|
|
61
68
|
* Kartenfelder. Siehe [ReceiptPayment].
|
|
62
69
|
*/
|
|
63
70
|
payments?: ReceiptPayment[];
|
|
71
|
+
/** Kennung der Kopf-Version (Firmenkopf, wie er fuer diesen Beleg galt). */
|
|
72
|
+
headerVersionId?: string;
|
|
73
|
+
/** Layout-Regelwerk, in dem der Beleg ausgestellt wurde. */
|
|
74
|
+
layoutRuleset?: number;
|
|
75
|
+
/** Nur an Nullbelegen: Registrierdaten fuer den Block „Prüfangaben“. */
|
|
76
|
+
registrationInfo?: RegistrationInfo;
|
|
77
|
+
}
|
|
78
|
+
/** Registrierdaten von Signaturkarte und Kasse (Zeitstempel oder `null`, wenn unbekannt). */
|
|
79
|
+
export interface RegistrationInfo {
|
|
80
|
+
cardRegisteredAt: string | null;
|
|
81
|
+
cashregisterRegisteredAt: string | null;
|
|
64
82
|
}
|
|
65
83
|
export interface ReceiptPayload {
|
|
66
84
|
qr: string;
|
|
@@ -101,6 +119,12 @@ export interface ReceiptPayloadRead extends Omit<ReceiptPayload, 'items' | 'vouc
|
|
|
101
119
|
cancellationReason?: string | null;
|
|
102
120
|
zeroKind?: string | null;
|
|
103
121
|
cancellations?: Cancellation[] | null;
|
|
122
|
+
headerVersionId?: string | null;
|
|
123
|
+
layoutRuleset?: number | null;
|
|
124
|
+
registrationInfo?: {
|
|
125
|
+
cardRegisteredAt?: string | null;
|
|
126
|
+
cashregisterRegisteredAt?: string | null;
|
|
127
|
+
} | null;
|
|
104
128
|
}
|
|
105
129
|
/**
|
|
106
130
|
* Schreibt die Nutzlast in der **neuen** Form — sie **normalisiert, statt zu
|
|
@@ -114,6 +138,11 @@ export interface ReceiptPayloadRead extends Omit<ReceiptPayload, 'items' | 'vouc
|
|
|
114
138
|
*/
|
|
115
139
|
export declare function toReceiptPayload(receipt: Receipt): ReceiptPayload;
|
|
116
140
|
export declare function fromReceiptPayload(payload: ReceiptPayloadRead): Receipt;
|
|
141
|
+
/** Registrierdaten lesen; ein fehlender oder leerer Zeitstempel wird `null`. */
|
|
142
|
+
export declare function readRegistrationInfo(roh: {
|
|
143
|
+
cardRegisteredAt?: unknown;
|
|
144
|
+
cashregisterRegisteredAt?: unknown;
|
|
145
|
+
}): RegistrationInfo;
|
|
117
146
|
/**
|
|
118
147
|
* Zwischensumme in **Cent** — Positionen plus verkaufte Wertgutscheine minus
|
|
119
148
|
* eingeloeste Promotionsgutscheine. Wertgutschein-Einloesungen wirken erst auf
|
|
@@ -2,7 +2,7 @@ import { ReceiptType, KeckPaymentMethod, CreditCardProvider, VoucherAction, Vouc
|
|
|
2
2
|
import { readEnumKey, requireEnumKey } from './enum-payload.js';
|
|
3
3
|
import { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, } from './receipt-item.js';
|
|
4
4
|
import { toVoucherPayload, fromVoucherPayload } from './voucher.js';
|
|
5
|
-
import {
|
|
5
|
+
import { isZeroKind } from './receipt-summary.js';
|
|
6
6
|
import { fromReceiptPaymentPayload, toReceiptPaymentPayload } from './receipt-payment.js';
|
|
7
7
|
/**
|
|
8
8
|
* Schreibt die Nutzlast in der **neuen** Form — sie **normalisiert, statt zu
|
|
@@ -78,11 +78,21 @@ export function fromReceiptPayload(payload) {
|
|
|
78
78
|
...(typeof payload.cancellationOf.timeStamp === 'string' && payload.cancellationOf.timeStamp ? { timeStamp: payload.cancellationOf.timeStamp } : {}),
|
|
79
79
|
} } : {}),
|
|
80
80
|
...(payload.cancellationReason ? { cancellationReason: payload.cancellationReason } : {}),
|
|
81
|
-
...(
|
|
81
|
+
...(isZeroKind(payload.zeroKind) ? { zeroKind: payload.zeroKind } : {}),
|
|
82
82
|
...(payload.cancellations ? { cancellations: payload.cancellations.map(leseStorno) } : {}),
|
|
83
83
|
...(Array.isArray(payload.payments) ? { payments: payload.payments.map(fromReceiptPaymentPayload) } : {}),
|
|
84
|
+
...(typeof payload.headerVersionId === 'string' && payload.headerVersionId !== '' ? { headerVersionId: payload.headerVersionId } : {}),
|
|
85
|
+
...(typeof payload.layoutRuleset === 'number' ? { layoutRuleset: payload.layoutRuleset } : {}),
|
|
86
|
+
...(payload.registrationInfo != null && typeof payload.registrationInfo === 'object'
|
|
87
|
+
? { registrationInfo: readRegistrationInfo(payload.registrationInfo) }
|
|
88
|
+
: {}),
|
|
84
89
|
};
|
|
85
90
|
}
|
|
91
|
+
/** Registrierdaten lesen; ein fehlender oder leerer Zeitstempel wird `null`. */
|
|
92
|
+
export function readRegistrationInfo(roh) {
|
|
93
|
+
const zeit = (v) => (typeof v === 'string' && v !== '' ? v : null);
|
|
94
|
+
return { cardRegisteredAt: zeit(roh.cardRegisteredAt), cashregisterRegisteredAt: zeit(roh.cashregisterRegisteredAt) };
|
|
95
|
+
}
|
|
86
96
|
function leseStorno(eintrag) {
|
|
87
97
|
return {
|
|
88
98
|
...(eintrag.receiptId !== undefined ? { receiptId: eintrag.receiptId } : {}),
|
|
@@ -18,16 +18,17 @@ export interface Voucher {
|
|
|
18
18
|
valueCents?: number;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Nutzlast
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* Nutzlast eines Gutscheins. Geschrieben wird nur `valueCents` (ganze Cent);
|
|
22
|
+
* `value` (Euro) kommt nur beim Lesen vor: der Server legt es in seinen
|
|
23
|
+
* Antworten daneben, gelesen wird es nur, wenn `valueCents` fehlt.
|
|
24
|
+
* `name` und `code` gehen nur hinaus, wenn sie gesetzt sind.
|
|
24
25
|
*/
|
|
25
26
|
export interface VoucherPayload {
|
|
26
|
-
name
|
|
27
|
-
code
|
|
27
|
+
name?: string | null;
|
|
28
|
+
code?: string | null;
|
|
28
29
|
action: string;
|
|
29
30
|
type: string;
|
|
30
|
-
value
|
|
31
|
+
value?: number | null;
|
|
31
32
|
valueCents: number | null;
|
|
32
33
|
}
|
|
33
34
|
export declare function toVoucherPayload(voucher: Voucher): VoucherPayload;
|
|
@@ -3,16 +3,11 @@ import { euroToCents } from '../money.js';
|
|
|
3
3
|
import { readEnumKey, requireEnumKey } from './enum-payload.js';
|
|
4
4
|
export function toVoucherPayload(voucher) {
|
|
5
5
|
return {
|
|
6
|
-
name: voucher.name ?? null,
|
|
7
|
-
code: voucher.code ?? null,
|
|
8
|
-
// Schreibpfad bleibt streng: action/type sehen fuer bekannte und
|
|
9
|
-
// unbekannte Werte gleich aus (reine Strings) — erst der Lookup hier
|
|
10
|
-
// entscheidet, ob geschrieben werden darf.
|
|
11
6
|
action: requireEnumKey(VoucherAction, voucher.action, 'Gutschein-Aktion'),
|
|
12
7
|
type: requireEnumKey(VoucherType, voucher.type, 'Gutscheinart'),
|
|
13
|
-
// Euro-Feld nur fuer Altbestand-Konsumenten des Backends — siehe Kommentar oben.
|
|
14
|
-
value: voucher.valueCents == null ? null : voucher.valueCents / 100,
|
|
15
8
|
valueCents: voucher.valueCents ?? null,
|
|
9
|
+
...(voucher.code != null ? { code: voucher.code } : {}),
|
|
10
|
+
...(voucher.name != null ? { name: voucher.name } : {}),
|
|
16
11
|
};
|
|
17
12
|
}
|
|
18
13
|
/**
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* `signature_not_ready`).
|
|
9
9
|
* Wer die Reihenfolge nur aus einer Fehlermeldung lernt, lernt sie einmal je
|
|
10
10
|
* Fehler. Hier steht sie vorher — abfragbar, ausgebbar, und in
|
|
11
|
-
* [
|
|
11
|
+
* [nextFlowStep] auch beantwortbar.
|
|
12
12
|
*
|
|
13
13
|
* **Kein eigener Vertragsschritt.** AVV und Nutzungsvertrag bestaetigt der
|
|
14
14
|
* Betrieb ueber denselben Einrichtungs-Link wie seinen FinanzOnline-Zugang
|
|
15
15
|
* (Schritt `fon`). Live geht ohne beide keine Kasse live
|
|
16
|
-
* (`
|
|
16
|
+
* (`contracts_pending`); den Stand zeigen `avv` und `terms` am Betrieb.
|
|
17
17
|
*
|
|
18
18
|
* Zwei Dinge laufen bewusst **parallel**: der Signaturantrag und das Anlegen
|
|
19
19
|
* der Kasse. Eine mit `automatic:true` angelegte Kasse wartet, bis die
|
|
@@ -21,18 +21,18 @@
|
|
|
21
21
|
* darum immer nur den **weitesten erreichten** Meilenstein, nicht die einzige
|
|
22
22
|
* laufende Arbeit.
|
|
23
23
|
*/
|
|
24
|
-
import type {
|
|
24
|
+
import type { PartnerCustomerStatus } from './typen.js';
|
|
25
25
|
/** Ein Schritt der Kette. */
|
|
26
|
-
export interface
|
|
26
|
+
export interface FlowStep {
|
|
27
27
|
key: string;
|
|
28
28
|
/** Was in diesem Schritt passiert. */
|
|
29
29
|
text: string;
|
|
30
30
|
/** Der Aufruf, der ihn ausloest — `null`, wenn hier nur gewartet wird. */
|
|
31
|
-
|
|
31
|
+
call: string | null;
|
|
32
32
|
/** Das Ereignis, das seinen Abschluss meldet — `null`, wenn es sofort feststeht. */
|
|
33
|
-
|
|
33
|
+
waitsFor: string | null;
|
|
34
34
|
/** Der Fehlercode, mit dem ein spaeterer Aufruf sich beschwert, wenn dieser Schritt fehlt. */
|
|
35
|
-
|
|
35
|
+
missingCode: string | null;
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
38
|
* Die Kette in ihrer Reihenfolge. Sie beschreibt den **Live-Weg**; mit einem
|
|
@@ -40,9 +40,9 @@ export interface AblaufSchritt {
|
|
|
40
40
|
* ist sofort bereit (AT100-Testkarte — die damit erzeugten Belege sind keine
|
|
41
41
|
* gueltigen RKSV-Belege).
|
|
42
42
|
*/
|
|
43
|
-
export declare const
|
|
43
|
+
export declare const PARTNER_FLOW: readonly FlowStep[];
|
|
44
44
|
/**
|
|
45
45
|
* Der Schritt, an dem ein Betrieb mit diesem Status steht — `null` fuer
|
|
46
|
-
* `
|
|
46
|
+
* `blocked` und fuer jeden Status, den dieses Paket nicht kennt.
|
|
47
47
|
*/
|
|
48
|
-
export declare function
|
|
48
|
+
export declare function nextFlowStep(status: PartnerCustomerStatus): FlowStep | null;
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* `signature_not_ready`).
|
|
9
9
|
* Wer die Reihenfolge nur aus einer Fehlermeldung lernt, lernt sie einmal je
|
|
10
10
|
* Fehler. Hier steht sie vorher — abfragbar, ausgebbar, und in
|
|
11
|
-
* [
|
|
11
|
+
* [nextFlowStep] auch beantwortbar.
|
|
12
12
|
*
|
|
13
13
|
* **Kein eigener Vertragsschritt.** AVV und Nutzungsvertrag bestaetigt der
|
|
14
14
|
* Betrieb ueber denselben Einrichtungs-Link wie seinen FinanzOnline-Zugang
|
|
15
15
|
* (Schritt `fon`). Live geht ohne beide keine Kasse live
|
|
16
|
-
* (`
|
|
16
|
+
* (`contracts_pending`); den Stand zeigen `avv` und `terms` am Betrieb.
|
|
17
17
|
*
|
|
18
18
|
* Zwei Dinge laufen bewusst **parallel**: der Signaturantrag und das Anlegen
|
|
19
19
|
* der Kasse. Eine mit `automatic:true` angelegte Kasse wartet, bis die
|
|
@@ -27,49 +27,49 @@
|
|
|
27
27
|
* ist sofort bereit (AT100-Testkarte — die damit erzeugten Belege sind keine
|
|
28
28
|
* gueltigen RKSV-Belege).
|
|
29
29
|
*/
|
|
30
|
-
export const
|
|
30
|
+
export const PARTNER_FLOW = [
|
|
31
31
|
{
|
|
32
32
|
key: 'business',
|
|
33
33
|
text: 'Betrieb anlegen (idempotencyKey = eigene Kundennummer).',
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
call: 'createPartnerCustomer',
|
|
35
|
+
waitsFor: 'customer.created',
|
|
36
|
+
missingCode: null,
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
key: 'fon',
|
|
40
40
|
text: 'FinanzOnline einrichten: Link an den Betrieb, der Betrieb traegt seinen Zugang ein.',
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
call: 'sendPartnerCustomerFonLink',
|
|
42
|
+
waitsFor: 'customer.fon_verified',
|
|
43
|
+
missingCode: 'fon_missing',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
key: 'signature',
|
|
47
47
|
text: 'Signatureinheit beantragen. Kasseneck weist eine Karte zu und meldet sie bei FinanzOnline an.',
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
call: 'requestCustomerSignature',
|
|
49
|
+
waitsFor: 'signature.ready',
|
|
50
|
+
missingCode: 'signature_missing',
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
key: 'cashregister',
|
|
54
54
|
text: 'Kasse anlegen. Mit automatic:true (Vorgabe) geht sie von selbst live, sobald die Signatur bereit ist — ' +
|
|
55
55
|
'sie darf deshalb schon vorher angelegt werden.',
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
call: 'createCustomerCashregister',
|
|
57
|
+
waitsFor: 'cashregister.live',
|
|
58
|
+
missingCode: 'cashregister_not_found',
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
key: '
|
|
61
|
+
key: 'credentials',
|
|
62
62
|
text: 'Zugangsdaten des Betriebs holen (Scope credentials:read). Geheimnisse — nur verschluesselt speichern.',
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
call: 'getCustomerCredentials',
|
|
64
|
+
waitsFor: null,
|
|
65
|
+
missingCode: null,
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
key: '
|
|
68
|
+
key: 'receipts',
|
|
69
69
|
text: 'Belege signieren: Bearer = apiKey des Betriebs, Kopfzeile cashregister-token = Token der Kasse.',
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
call: 'createReceipt',
|
|
71
|
+
waitsFor: null,
|
|
72
|
+
missingCode: null,
|
|
73
73
|
},
|
|
74
74
|
];
|
|
75
75
|
/**
|
|
@@ -84,13 +84,13 @@ const STATUS_SCHRITT = {
|
|
|
84
84
|
signature_requested: 'signature',
|
|
85
85
|
signature_ready: 'cashregister',
|
|
86
86
|
cashregister_created: 'cashregister',
|
|
87
|
-
live: '
|
|
87
|
+
live: 'credentials',
|
|
88
88
|
};
|
|
89
89
|
/**
|
|
90
90
|
* Der Schritt, an dem ein Betrieb mit diesem Status steht — `null` fuer
|
|
91
|
-
* `
|
|
91
|
+
* `blocked` und fuer jeden Status, den dieses Paket nicht kennt.
|
|
92
92
|
*/
|
|
93
|
-
export function
|
|
93
|
+
export function nextFlowStep(status) {
|
|
94
94
|
const key = STATUS_SCHRITT[status];
|
|
95
|
-
return key ?
|
|
95
|
+
return key ? PARTNER_FLOW.find((s) => s.key === key) ?? null : null;
|
|
96
96
|
}
|