@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,3 +1,4 @@
|
|
|
1
|
+
import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
|
|
1
2
|
/**
|
|
2
3
|
* Storno-Metadaten — Zwilling von `functions/storno-core.js`.
|
|
3
4
|
*
|
|
@@ -7,65 +8,105 @@
|
|
|
7
8
|
* Storno-Beleg) und die Liste der Stornos am Original (`cancellations`), aus
|
|
8
9
|
* der sich die Restmengen ergeben.
|
|
9
10
|
*/
|
|
10
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Grund-Katalog: Codes wie unter `/v3` (Katalog `STORNO_GRUND` des
|
|
13
|
+
* Backends), Anzeigetext fuer Bon und Bedienung. Der Anzeigetext bleibt
|
|
14
|
+
* deutsch, er steht so am Beleg.
|
|
15
|
+
*/
|
|
11
16
|
export const CANCELLATION_REASONS = Object.freeze({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
input_error: 'Fehleingabe',
|
|
18
|
+
customer_cancelled: 'Kunde hat storniert',
|
|
19
|
+
wrong_payment_method: 'Falsche Zahlart',
|
|
20
|
+
duplicate: 'Doppelt erfasst',
|
|
21
|
+
other: 'Sonstiges',
|
|
17
22
|
});
|
|
18
23
|
export function isCancellationReason(value) {
|
|
19
24
|
return typeof value === 'string' && Object.prototype.hasOwnProperty.call(CANCELLATION_REASONS, value);
|
|
20
25
|
}
|
|
21
26
|
/**
|
|
22
|
-
* Stabile Fehlercodes von `cancelReceipt`
|
|
23
|
-
* `
|
|
27
|
+
* Stabile Fehlercodes von `cancelReceipt` unter `/v3` (Vokabular
|
|
28
|
+
* `errorCodes.cancellation`, gleiche Reihenfolge). Das Backend legt sie bei
|
|
24
29
|
* jedem fachlichen Fehler als `code` neben die Meldung; das Paket reicht sie
|
|
25
|
-
* als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text
|
|
30
|
+
* als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text:**
|
|
26
31
|
* die deutsche Meldung darf sich aendern, der Code nicht.
|
|
27
32
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
33
|
+
* Formfehler an `payments` selbst melden die Codes aus
|
|
34
|
+
* [PAYMENT_ERROR_CODES]. `cancellation_outcome_unknown` heisst: der Storno
|
|
35
|
+
* ist moeglicherweise gebucht (`outcome: 'unknown'`). Nie wiederholen,
|
|
36
|
+
* sondern das Original nachlesen (`getReceipt`, `cancellations[]`).
|
|
30
37
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* `
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* Die Werte hier sind die von `/v1` und intern. Unter `/v3` heissen die
|
|
39
|
-
* Storno-Codes nach dem /v3-Vokabular anders (`already_cancelled`,
|
|
40
|
-
* `cancellation_payments_required`, functions/gemeinsam/api-vokabular-v3.js);
|
|
41
|
-
* diese Namen kommen mit der Umstellung des Pakets auf `/v3`.
|
|
42
|
-
* [isCancellationErrorCode] prueft darum exakt.
|
|
38
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
39
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
40
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
41
|
+
* ...), zuletzt die Codes des Pakets (`route_missing`, `response_unreadable`).
|
|
42
|
+
* Die Zahlungscodes (`payment_method_not_supported` ...) stehen in
|
|
43
|
+
* [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
|
|
44
|
+
* `KasseneckApiError.code` lesbar.
|
|
43
45
|
*/
|
|
44
|
-
export const CANCELLATION_ERROR_CODES = [
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
50
|
-
'
|
|
51
|
-
'
|
|
52
|
-
'
|
|
53
|
-
'
|
|
54
|
-
'
|
|
55
|
-
'
|
|
56
|
-
'
|
|
57
|
-
'
|
|
58
|
-
'
|
|
59
|
-
//
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
'
|
|
63
|
-
'
|
|
64
|
-
|
|
65
|
-
|
|
46
|
+
export const CANCELLATION_ERROR_CODES = Object.freeze([
|
|
47
|
+
'receipt_not_found', // Original fehlt oder gehoert nicht zu dieser Kasse
|
|
48
|
+
'receipt_type_not_cancellable', // Original ist selbst Storno-, Null- oder Startbeleg
|
|
49
|
+
'training_receipt', // Trainingsbelege werden nicht storniert
|
|
50
|
+
'already_cancelled', // keine Restmenge mehr
|
|
51
|
+
'invalid_line', // Index unbekannt oder doppelt
|
|
52
|
+
'quantity_exceeds_remaining', // Menge nicht ganzzahlig >= 1 oder groesser als der Rest
|
|
53
|
+
'unknown_reason', // reason fehlt oder nicht im Katalog
|
|
54
|
+
'note_too_long', // note laenger als 200 Zeichen
|
|
55
|
+
'invalid_items', // items ist keine Liste
|
|
56
|
+
'cashregister_not_assigned', // Kassen-Benutzer darf diese Kasse nicht
|
|
57
|
+
'not_permitted', // Kassen-Benutzer ohne Storno-Recht
|
|
58
|
+
'own_receipts_only', // Recht "eigene", fremder Beleg
|
|
59
|
+
'cashregister_incomplete', // api_key/token fehlen am Konto bzw. an der Kasse
|
|
60
|
+
'cancellation_failed', // der Storno-Beleg selbst wurde abgelehnt (z. B. Signatur)
|
|
61
|
+
'cancellation_payments_required', // Teilstorno eines Belegs mit mehreren Zahlungen ohne payments
|
|
62
|
+
'cancellation_refund_exceeds_payment', // Rueckzahlungen auf eine Zahlung uebersteigen deren Rest
|
|
63
|
+
'cancellation_refund_reference_required', // Karten-Rueckzahlung ohne refundOf einer Kartenzahlung
|
|
64
|
+
'cancellation_refund_reference_unknown', // refundOf nennt keine Zahlung des Originals
|
|
65
|
+
'cancellation_outcome_unknown', // Ausgang unklar: nachlesen, nie wiederholen
|
|
66
|
+
// Anmeldung und Rand (errorCodes.auth ohne Partner-Zugang, errorCodes.edge)
|
|
67
|
+
'account_not_found',
|
|
68
|
+
'admin_required',
|
|
69
|
+
'cashregister_not_found',
|
|
70
|
+
'cashregister_token_invalid',
|
|
71
|
+
'cashregister_token_missing',
|
|
72
|
+
'dialect_mismatch',
|
|
73
|
+
'internal_translation_error',
|
|
74
|
+
'live_not_enabled',
|
|
75
|
+
'method_not_allowed',
|
|
76
|
+
'mfa_required',
|
|
77
|
+
'not_found',
|
|
78
|
+
'register_user_no_business',
|
|
79
|
+
'register_user_not_allowed',
|
|
80
|
+
'register_user_not_found',
|
|
81
|
+
'response_translation_failed',
|
|
82
|
+
'session_expired',
|
|
83
|
+
'session_other_cashregister',
|
|
84
|
+
'unauthorized',
|
|
85
|
+
'user_disabled',
|
|
86
|
+
'user_verification_failed',
|
|
87
|
+
'validation',
|
|
88
|
+
// Codes des Pakets (CLIENT_ERROR_CODES)
|
|
89
|
+
'route_missing',
|
|
90
|
+
'response_unreadable',
|
|
91
|
+
]);
|
|
66
92
|
export function isCancellationErrorCode(value) {
|
|
67
93
|
return typeof value === 'string' && CANCELLATION_ERROR_CODES.includes(value);
|
|
68
94
|
}
|
|
95
|
+
const CANCELLATION_BEKANNT = new Set(CANCELLATION_ERROR_CODES);
|
|
96
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [CANCELLATION_ERROR_CODES] steht; sonst `undefined`. */
|
|
97
|
+
export function cancellationErrorCode(error) {
|
|
98
|
+
return bekannterCode(error, CANCELLATION_BEKANNT);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Kurzform fuer `catch (e) { if (isCancellationError(e, 'already_cancelled')) … }`.
|
|
102
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [CANCELLATION_ERROR_CODES]?
|
|
103
|
+
*/
|
|
104
|
+
export function isCancellationError(error, code) {
|
|
105
|
+
const gefunden = cancellationErrorCode(error);
|
|
106
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
107
|
+
}
|
|
108
|
+
/** Stornostand eines Belegs in der Belegliste (Katalog `STORNO_STAND`). */
|
|
109
|
+
export const CANCELLATION_STATUSES = Object.freeze(['none', 'partial', 'full']);
|
|
69
110
|
/** Ab wann eine liegengebliebene Reservierung nicht mehr zaehlt (wie im Backend). */
|
|
70
111
|
export const CANCELLATION_RESERVATION_MS = 120_000;
|
|
71
112
|
/**
|
|
@@ -86,3 +127,7 @@ export function remainingQuantities(receipt, nowMs = Date.now()) {
|
|
|
86
127
|
}
|
|
87
128
|
return rest;
|
|
88
129
|
}
|
|
130
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
131
|
+
export function cancellationFieldErrors(error) {
|
|
132
|
+
return feldfehlerVon(error);
|
|
133
|
+
}
|
|
@@ -51,13 +51,13 @@ export interface HobexReceiptPayload {
|
|
|
51
51
|
tip: number;
|
|
52
52
|
cvm: string | number;
|
|
53
53
|
}
|
|
54
|
-
export declare function toHobexReceiptPayload(
|
|
54
|
+
export declare function toHobexReceiptPayload(receipt: HobexReceipt): HobexReceiptPayload;
|
|
55
55
|
export declare function fromHobexReceiptPayload(payload: HobexReceiptPayload): HobexReceipt;
|
|
56
56
|
/**
|
|
57
57
|
* Wandelt den Beleg in die `cardPaymentData`-Map, die auf dem Kasseneck-Beleg
|
|
58
58
|
* landet (siehe [Receipt.cardPaymentData]). Bei HPS-Zahlungen kommen weitere
|
|
59
59
|
* Felder dazu, die nur das lokale Terminal liefert.
|
|
60
60
|
*/
|
|
61
|
-
export declare function hobexReceiptToCardPaymentData(
|
|
61
|
+
export declare function hobexReceiptToCardPaymentData(receipt: HobexReceipt): Record<string, string>;
|
|
62
62
|
/** Kartenzahlung erfordert eine Unterschrift (CVM-Code `"1"`). */
|
|
63
|
-
export declare function hobexReceiptNeedsSignature(
|
|
63
|
+
export declare function hobexReceiptNeedsSignature(receipt: HobexReceipt): boolean;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { CreditCardProvider } from '../enums/index.js';
|
|
2
2
|
import { centsToEuro, euroToCents } from '../money.js';
|
|
3
|
-
export function toHobexReceiptPayload(
|
|
3
|
+
export function toHobexReceiptPayload(receipt) {
|
|
4
4
|
return {
|
|
5
|
-
transactionId:
|
|
6
|
-
tid:
|
|
7
|
-
receipt:
|
|
8
|
-
approvalCode:
|
|
9
|
-
reference:
|
|
10
|
-
transactionDate:
|
|
11
|
-
cardNumber:
|
|
12
|
-
cardExpiry:
|
|
13
|
-
brand:
|
|
14
|
-
cardIssuer:
|
|
15
|
-
responseCode:
|
|
16
|
-
transactionType:
|
|
17
|
-
currency:
|
|
5
|
+
transactionId: receipt.transactionId,
|
|
6
|
+
tid: receipt.tid,
|
|
7
|
+
receipt: receipt.receipt,
|
|
8
|
+
approvalCode: receipt.approvalCode,
|
|
9
|
+
reference: receipt.reference ?? null,
|
|
10
|
+
transactionDate: receipt.transactionDate,
|
|
11
|
+
cardNumber: receipt.cardNumber,
|
|
12
|
+
cardExpiry: receipt.cardExpiry,
|
|
13
|
+
brand: receipt.brand,
|
|
14
|
+
cardIssuer: receipt.cardIssuer,
|
|
15
|
+
responseCode: receipt.responseCode,
|
|
16
|
+
transactionType: receipt.transactionType,
|
|
17
|
+
currency: receipt.currency,
|
|
18
18
|
// Euro-Umwandlung nur hier, an der Terminal-API-Grenze — siehe Kommentar oben.
|
|
19
|
-
amount: centsToEuro(
|
|
20
|
-
tip: centsToEuro(
|
|
21
|
-
cvm:
|
|
19
|
+
amount: centsToEuro(receipt.amountCents),
|
|
20
|
+
tip: centsToEuro(receipt.tipCents),
|
|
21
|
+
cvm: receipt.cvm,
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export function fromHobexReceiptPayload(payload) {
|
|
@@ -60,28 +60,28 @@ export function fromHobexReceiptPayload(payload) {
|
|
|
60
60
|
* landet (siehe [Receipt.cardPaymentData]). Bei HPS-Zahlungen kommen weitere
|
|
61
61
|
* Felder dazu, die nur das lokale Terminal liefert.
|
|
62
62
|
*/
|
|
63
|
-
export function hobexReceiptToCardPaymentData(
|
|
63
|
+
export function hobexReceiptToCardPaymentData(receipt) {
|
|
64
64
|
const data = {
|
|
65
|
-
transactionId:
|
|
66
|
-
date:
|
|
67
|
-
tid:
|
|
68
|
-
no:
|
|
69
|
-
type:
|
|
70
|
-
cardBrand:
|
|
71
|
-
cardNumber:
|
|
72
|
-
responseCode:
|
|
73
|
-
cvm:
|
|
65
|
+
transactionId: receipt.transactionId,
|
|
66
|
+
date: receipt.transactionDate,
|
|
67
|
+
tid: receipt.tid,
|
|
68
|
+
no: receipt.receipt,
|
|
69
|
+
type: receipt.transactionType,
|
|
70
|
+
cardBrand: receipt.brand,
|
|
71
|
+
cardNumber: receipt.cardNumber,
|
|
72
|
+
responseCode: receipt.responseCode,
|
|
73
|
+
cvm: receipt.cvm,
|
|
74
74
|
};
|
|
75
|
-
if (
|
|
76
|
-
data.approvalCode =
|
|
77
|
-
data.cardExpiry =
|
|
78
|
-
data.cardIssuer =
|
|
79
|
-
data.amount = centsToEuro(
|
|
80
|
-
data.currency =
|
|
75
|
+
if (receipt.creditCardProvider === CreditCardProvider.hobexHps) {
|
|
76
|
+
data.approvalCode = receipt.approvalCode;
|
|
77
|
+
data.cardExpiry = receipt.cardExpiry;
|
|
78
|
+
data.cardIssuer = receipt.cardIssuer;
|
|
79
|
+
data.amount = centsToEuro(receipt.amountCents).toFixed(2);
|
|
80
|
+
data.currency = receipt.currency;
|
|
81
81
|
}
|
|
82
82
|
return data;
|
|
83
83
|
}
|
|
84
84
|
/** Kartenzahlung erfordert eine Unterschrift (CVM-Code `"1"`). */
|
|
85
|
-
export function hobexReceiptNeedsSignature(
|
|
86
|
-
return
|
|
85
|
+
export function hobexReceiptNeedsSignature(receipt) {
|
|
86
|
+
return receipt.cvm === '1';
|
|
87
87
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, isDiscountItem, } from './receipt-item.js';
|
|
2
2
|
export { type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid } from './voucher.js';
|
|
3
|
-
export { type Receipt, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
|
-
export { type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, } from './cancellation.js';
|
|
3
|
+
export { type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, readRegistrationInfo, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
|
+
export { type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, remainingQuantities, } from './cancellation.js';
|
|
5
5
|
export { type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, } from './receipt-payment.js';
|
|
6
|
-
export { type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode } from './payment-errors.js';
|
|
7
|
-
export { type ReceiptEmailErrorCode, RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, } from './receipt-email.js';
|
|
6
|
+
export { type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError } from './payment-errors.js';
|
|
7
|
+
export { type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, } from './receipt-email.js';
|
|
8
|
+
export { type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, } from './receipt-errors.js';
|
|
8
9
|
export { type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
|
|
9
10
|
export { type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, fromCashregisterPayload, } from './cashregister.js';
|
|
10
|
-
export { type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS,
|
|
11
|
+
export { type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind } from './receipt-summary.js';
|
|
11
12
|
export { type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, } from './report-month.js';
|
|
12
13
|
export { type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, } from './stripe-url-session.js';
|
|
13
14
|
export { type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './hobex-receipt.js';
|
package/dist/esm/models/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export { toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, isTipItem, isDiscountItem, } from './receipt-item.js';
|
|
2
2
|
export { toVoucherPayload, fromVoucherPayload, voucherIsValid } from './voucher.js';
|
|
3
|
-
export { toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
|
-
export { CANCELLATION_REASONS, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, remainingQuantities, } from './cancellation.js';
|
|
3
|
+
export { toReceiptPayload, fromReceiptPayload, readRegistrationInfo, receiptSubSumCents, receiptSumCents, } from './receipt.js';
|
|
4
|
+
export { CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, remainingQuantities, } from './cancellation.js';
|
|
5
5
|
export { fromReceiptPaymentPayload, toReceiptPaymentPayload, } from './receipt-payment.js';
|
|
6
|
-
export { PAYMENT_ERROR_CODES, isPaymentErrorCode } from './payment-errors.js';
|
|
7
|
-
export { RECEIPT_EMAIL_ERROR_CODES, isReceiptEmailErrorCode, } from './receipt-email.js';
|
|
6
|
+
export { PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors } from './payment-errors.js';
|
|
7
|
+
export { RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, } from './receipt-email.js';
|
|
8
|
+
export { RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, } from './receipt-errors.js';
|
|
8
9
|
export { fromReceiptCompanyPayload, receiptCompanyTaxInfo, } from './receipt-company.js';
|
|
9
10
|
export { fromCashregisterPayload, } from './cashregister.js';
|
|
10
|
-
export { fromReceiptSummaryPayload, ZERO_KINDS,
|
|
11
|
+
export { fromReceiptSummaryPayload, ZERO_KINDS, isZeroKind } from './receipt-summary.js';
|
|
11
12
|
export { reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, } from './report-month.js';
|
|
12
13
|
export { toStripeUrlSessionPayload, fromStripeUrlSessionPayload, } from './stripe-url-session.js';
|
|
13
14
|
export { toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './hobex-receipt.js';
|
|
@@ -1,22 +1,39 @@
|
|
|
1
|
+
import { KasseneckApiError } from '../client/errors.js';
|
|
1
2
|
/**
|
|
2
|
-
* Mehrere Zahlungen je Beleg
|
|
3
|
-
* `
|
|
4
|
-
* Codes, gleiche Reihenfolge).
|
|
3
|
+
* Mehrere Zahlungen je Beleg: Fehlercodes unter `/v3` (Vokabular
|
|
4
|
+
* `errorCodes.payments`, gleiche Codes, gleiche Reihenfolge).
|
|
5
5
|
*
|
|
6
6
|
* `createReceipt` und `cancelReceipt` legen sie bei jedem Fehler rund um
|
|
7
|
-
* `payments`
|
|
8
|
-
*
|
|
9
|
-
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** — die
|
|
7
|
+
* `payments` als `code` neben die Meldung; das Paket reicht sie als
|
|
8
|
+
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text:** die
|
|
10
9
|
* deutsche Meldung darf sich aendern, der Code nicht.
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
11
|
+
* `payments_sum_mismatch` traegt den Zahlbetrag des Servers in
|
|
12
|
+
* `details.expectedCents` (siehe [paymentsExpectedCents]). Der Fehler
|
|
13
|
+
* verbraucht keine Belegnummer; das Paket wiederholt trotzdem nie selbst,
|
|
14
|
+
* denn eine Kartenzahlung ist schon belastet.
|
|
15
|
+
*
|
|
16
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
17
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
18
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
19
|
+
* ...) und zuletzt `route_missing` (Code des Pakets). Ein Code ausserhalb
|
|
20
|
+
* bleibt ueber `KasseneckApiError.code` lesbar.
|
|
18
21
|
*/
|
|
19
|
-
export declare const PAYMENT_ERROR_CODES: readonly ["
|
|
22
|
+
export declare const PAYMENT_ERROR_CODES: readonly ["payments_invalid", "payment_method_invalid", "payment_amount_invalid", "payment_tendered_invalid", "payment_provider_invalid", "payment_provider_not_allowed", "payments_sum_mismatch", "payments_due_negative", "payments_not_allowed", "payments_conflict", "payments_required", "payment_method_not_supported", "tip_payment_method_invalid", "tip_payment_method_required", "tip_exceeds_payment", "payment_refund_not_allowed", "payment_tip_invalid", "tip_conflict", "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", "validation", "route_missing"];
|
|
20
23
|
export type PaymentErrorCode = (typeof PAYMENT_ERROR_CODES)[number];
|
|
21
|
-
/** Erkennt einen Code aus [PAYMENT_ERROR_CODES]
|
|
22
|
-
export declare function isPaymentErrorCode(value: unknown): value is PaymentErrorCode
|
|
24
|
+
/** Erkennt einen Code aus [PAYMENT_ERROR_CODES], exakt (klein, wie unter `/v3`). */
|
|
25
|
+
export declare function isPaymentErrorCode(value: unknown): value is PaymentErrorCode;
|
|
26
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [PAYMENT_ERROR_CODES] steht; sonst `undefined`. */
|
|
27
|
+
export declare function paymentErrorCode(error: unknown): PaymentErrorCode | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Kurzform fuer `catch (e) { if (isPaymentError(e, 'payments_sum_mismatch')) … }`.
|
|
30
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [PAYMENT_ERROR_CODES]?
|
|
31
|
+
*/
|
|
32
|
+
export declare function isPaymentError(error: unknown, code?: PaymentErrorCode): error is KasseneckApiError;
|
|
33
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `payments[]`. */
|
|
34
|
+
export interface PaymentFieldError {
|
|
35
|
+
field: string;
|
|
36
|
+
message: string;
|
|
37
|
+
}
|
|
38
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
39
|
+
export declare function paymentFieldErrors(error: unknown): PaymentFieldError[];
|
|
@@ -1,42 +1,87 @@
|
|
|
1
|
+
import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
|
|
1
2
|
/**
|
|
2
|
-
* Mehrere Zahlungen je Beleg
|
|
3
|
-
* `
|
|
4
|
-
* Codes, gleiche Reihenfolge).
|
|
3
|
+
* Mehrere Zahlungen je Beleg: Fehlercodes unter `/v3` (Vokabular
|
|
4
|
+
* `errorCodes.payments`, gleiche Codes, gleiche Reihenfolge).
|
|
5
5
|
*
|
|
6
6
|
* `createReceipt` und `cancelReceipt` legen sie bei jedem Fehler rund um
|
|
7
|
-
* `payments`
|
|
8
|
-
*
|
|
9
|
-
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** — die
|
|
7
|
+
* `payments` als `code` neben die Meldung; das Paket reicht sie als
|
|
8
|
+
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text:** die
|
|
10
9
|
* deutsche Meldung darf sich aendern, der Code nicht.
|
|
11
10
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
11
|
+
* `payments_sum_mismatch` traegt den Zahlbetrag des Servers in
|
|
12
|
+
* `details.expectedCents` (siehe [paymentsExpectedCents]). Der Fehler
|
|
13
|
+
* verbraucht keine Belegnummer; das Paket wiederholt trotzdem nie selbst,
|
|
14
|
+
* denn eine Kartenzahlung ist schon belastet.
|
|
15
|
+
*
|
|
16
|
+
* Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
|
|
17
|
+
* erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
|
|
18
|
+
* `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
|
|
19
|
+
* ...) und zuletzt `route_missing` (Code des Pakets). Ein Code ausserhalb
|
|
20
|
+
* bleibt ueber `KasseneckApiError.code` lesbar.
|
|
18
21
|
*/
|
|
19
22
|
export const PAYMENT_ERROR_CODES = Object.freeze([
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
-
'
|
|
37
|
-
'
|
|
23
|
+
'payments_invalid', // payments ist keine Liste oder hat mehr als 20 Eintraege
|
|
24
|
+
'payment_method_invalid', // Zahlart unbekannt oder mixed
|
|
25
|
+
'payment_amount_invalid', // amountCents keine Ganzzahl, 0 oder falsches Vorzeichen
|
|
26
|
+
'payment_tendered_invalid', // tenderedCents an Nicht-Bar-Zahlung, zu klein oder am Storno
|
|
27
|
+
'payment_provider_invalid', // Karte ohne/mit unbekanntem provider, providerPaymentId fehlt
|
|
28
|
+
'payment_provider_not_allowed', // Anbieterfelder an einer Zahlung, die weder Karte noch online ist
|
|
29
|
+
'payments_sum_mismatch', // Summe != Zahlbetrag (details.expectedCents)
|
|
30
|
+
'payments_due_negative', // Zahlbetrag < 0 (Wertgutschein groesser als der Beleg)
|
|
31
|
+
'payments_not_allowed', // Null-/Startbeleg mit Zahlungen
|
|
32
|
+
'payments_conflict', // payments zusammen mit paymentMethod oder Kartenfeldern
|
|
33
|
+
'payments_required', // ohne payments
|
|
34
|
+
'payment_method_not_supported', // paymentMethod/Kartenfelder am Beleg
|
|
35
|
+
'tip_payment_method_invalid', // Trinkgeld-Zahlart kommt in payments nicht vor
|
|
36
|
+
'tip_payment_method_required', // mehrere Zahlarten, tip.paymentMethod fehlt
|
|
37
|
+
'tip_exceeds_payment', // Trinkgeld uebersteigt die Zahlungen seiner Zahlart
|
|
38
|
+
'payment_refund_not_allowed', // refundOf ausserhalb eines Stornos oder kein String
|
|
39
|
+
'payment_tip_invalid', // tipCents keine Ganzzahl, <= 0, > amountCents oder nicht am Verkauf
|
|
40
|
+
'tip_conflict', // tip und payments[].tipCents zugleich
|
|
41
|
+
// Anmeldung und Rand (errorCodes.auth ohne Partner-Zugang, errorCodes.edge)
|
|
42
|
+
'account_not_found',
|
|
43
|
+
'admin_required',
|
|
44
|
+
'cashregister_not_assigned',
|
|
45
|
+
'cashregister_not_found',
|
|
46
|
+
'cashregister_token_invalid',
|
|
47
|
+
'cashregister_token_missing',
|
|
48
|
+
'dialect_mismatch',
|
|
49
|
+
'internal_translation_error',
|
|
50
|
+
'live_not_enabled',
|
|
51
|
+
'method_not_allowed',
|
|
52
|
+
'mfa_required',
|
|
53
|
+
'not_found',
|
|
54
|
+
'register_user_no_business',
|
|
55
|
+
'register_user_not_allowed',
|
|
56
|
+
'register_user_not_found',
|
|
57
|
+
'response_translation_failed',
|
|
58
|
+
'session_expired',
|
|
59
|
+
'session_other_cashregister',
|
|
60
|
+
'unauthorized',
|
|
61
|
+
'user_disabled',
|
|
62
|
+
'user_verification_failed',
|
|
63
|
+
'validation',
|
|
64
|
+
// Code des Pakets (CLIENT_ERROR_CODES; response_unreadable nur an signierenden Aufrufen)
|
|
65
|
+
'route_missing',
|
|
38
66
|
]);
|
|
39
|
-
/** Erkennt einen Code aus [PAYMENT_ERROR_CODES]
|
|
67
|
+
/** Erkennt einen Code aus [PAYMENT_ERROR_CODES], exakt (klein, wie unter `/v3`). */
|
|
40
68
|
export function isPaymentErrorCode(value) {
|
|
41
|
-
return typeof value === 'string' && PAYMENT_ERROR_CODES.includes(value
|
|
69
|
+
return typeof value === 'string' && PAYMENT_ERROR_CODES.includes(value);
|
|
70
|
+
}
|
|
71
|
+
const PAYMENT_BEKANNT = new Set(PAYMENT_ERROR_CODES);
|
|
72
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [PAYMENT_ERROR_CODES] steht; sonst `undefined`. */
|
|
73
|
+
export function paymentErrorCode(error) {
|
|
74
|
+
return bekannterCode(error, PAYMENT_BEKANNT);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Kurzform fuer `catch (e) { if (isPaymentError(e, 'payments_sum_mismatch')) … }`.
|
|
78
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [PAYMENT_ERROR_CODES]?
|
|
79
|
+
*/
|
|
80
|
+
export function isPaymentError(error, code) {
|
|
81
|
+
const gefunden = paymentErrorCode(error);
|
|
82
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
83
|
+
}
|
|
84
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
85
|
+
export function paymentFieldErrors(error) {
|
|
86
|
+
return feldfehlerVon(error);
|
|
42
87
|
}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* (`toMetadataJson`/`fromMetadata`).
|
|
5
5
|
*
|
|
6
6
|
* Das Backend liefert sie **neben** dem Beleg: `getReceipt` und `createReceipt`
|
|
7
|
-
* legen Firma, Anschrift, Steuernummer, UID
|
|
7
|
+
* legen Firma, Anschrift, Steuernummer (`taxNumber`), UID (`vatId`),
|
|
8
|
+
* Fusszeilen, Logo-Adresse und das
|
|
8
9
|
* Kleinunternehmer-Kennzeichen direkt in die Antwort (functions/index.js).
|
|
9
10
|
* Zum RKSV-Kernbeleg gehoeren sie nicht — sie betreffen ausschliesslich die
|
|
10
11
|
* Darstellung. Deshalb stehen sie hier als eigenes Modell und nicht in
|
|
@@ -23,9 +24,9 @@ export interface ReceiptCompany {
|
|
|
23
24
|
city: string;
|
|
24
25
|
phone: string;
|
|
25
26
|
/** UID (Umsatzsteuer-Identifikationsnummer); fehlt bei Kleinunternehmern. */
|
|
26
|
-
|
|
27
|
+
vatId?: string;
|
|
27
28
|
/** Steuernummer des Finanzamts. */
|
|
28
|
-
|
|
29
|
+
taxNumber: string;
|
|
29
30
|
/** Kleinunternehmer nach § 6 Abs 1 Z 27 UStG (keine USt im Ausweis). */
|
|
30
31
|
isSmallBusiness: boolean;
|
|
31
32
|
footer1: string;
|
|
@@ -51,8 +52,8 @@ export interface ReceiptCompanyPayload {
|
|
|
51
52
|
zip?: string | null;
|
|
52
53
|
city?: string | null;
|
|
53
54
|
phone?: string | null;
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
vatId?: string | null;
|
|
56
|
+
taxNumber?: string | null;
|
|
56
57
|
is_small_business?: boolean | null;
|
|
57
58
|
footer1?: string | null;
|
|
58
59
|
footer2?: string | null;
|
|
@@ -20,7 +20,7 @@ export function fromReceiptCompanyPayload(payload) {
|
|
|
20
20
|
zip: text(payload.zip),
|
|
21
21
|
city: text(payload.city),
|
|
22
22
|
phone: text(payload.phone),
|
|
23
|
-
|
|
23
|
+
taxNumber: text(payload.taxNumber),
|
|
24
24
|
isSmallBusiness: payload.is_small_business === true,
|
|
25
25
|
footer1: text(payload.footer1),
|
|
26
26
|
footer2: text(payload.footer2),
|
|
@@ -29,8 +29,8 @@ export function fromReceiptCompanyPayload(payload) {
|
|
|
29
29
|
};
|
|
30
30
|
// Die vier Kann-Felder bleiben weg, wenn sie leer sind — ein leerer String
|
|
31
31
|
// in `footer3` erzeugte sonst eine leere Zeile auf dem Beleg.
|
|
32
|
-
if (payload.
|
|
33
|
-
firma.
|
|
32
|
+
if (payload.vatId)
|
|
33
|
+
firma.vatId = payload.vatId;
|
|
34
34
|
if (payload.footer3)
|
|
35
35
|
firma.footer3 = payload.footer3;
|
|
36
36
|
if (payload.footer4)
|
|
@@ -44,5 +44,5 @@ export function fromReceiptCompanyPayload(payload) {
|
|
|
44
44
|
* wenn es eine gibt, sonst die Steuernummer.
|
|
45
45
|
*/
|
|
46
46
|
export function receiptCompanyTaxInfo(company) {
|
|
47
|
-
return company.
|
|
47
|
+
return company.vatId !== undefined && company.vatId.length > 0 ? company.vatId : company.taxNumber;
|
|
48
48
|
}
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
+
import { KasseneckApiError } from '../client/errors.js';
|
|
2
|
+
/** Die Codes des Versands selbst (`errorCodes.receiptEmail`); jeder hat einen Satz im Textkatalog. */
|
|
3
|
+
export declare const RECEIPT_EMAIL_SEND_ERROR_CODES: readonly ["invalid_address", "receipt_not_found", "too_many_requests", "send_failed"];
|
|
4
|
+
export type ReceiptEmailSendErrorCode = (typeof RECEIPT_EMAIL_SEND_ERROR_CODES)[number];
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Fehlercodes von `sendReceiptEmail` unter `/v3`: die Versandcodes
|
|
7
|
+
* ([RECEIPT_EMAIL_SEND_ERROR_CODES]) und dahinter (ab 1.0) die Codes, die
|
|
8
|
+
* Anmeldung und Rand auf diesem Endpunkt erzeugen koennen: `errorCodes.auth`
|
|
9
|
+
* ohne die sieben des Partner-Zugangs und `errorCodes.edge` (`not_found`,
|
|
10
|
+
* `dialect_mismatch`, `response_translation_failed` ...). Das Paket reicht sie
|
|
11
|
+
* als [KasseneckApiError.code] durch; ein Code ausserhalb bleibt dort lesbar.
|
|
12
|
+
* Zuletzt `route_missing` (Code des Pakets).
|
|
9
13
|
*/
|
|
10
|
-
|
|
11
|
-
* Stabile Fehlercodes von `sendReceiptEmail` — Zwilling von
|
|
12
|
-
* `beleg-mail-core.js` FEHLERCODES. Das Backend legt sie bei jedem fachlichen
|
|
13
|
-
* Fehler als `code` neben die Meldung; das Paket reicht sie als
|
|
14
|
-
* [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** — die
|
|
15
|
-
* deutsche Meldung darf sich aendern, der Code nicht.
|
|
16
|
-
*
|
|
17
|
-
* Nur Auth-/Parameterfehler (Sitzung abgelaufen, Pflichtfeld fehlt) kommen
|
|
18
|
-
* ohne Code; dort bleibt `code` undefined.
|
|
19
|
-
*/
|
|
20
|
-
export declare const RECEIPT_EMAIL_ERROR_CODES: readonly ["adresse_ungueltig", "beleg_nicht_gefunden", "zu_oft", "versand_fehlgeschlagen"];
|
|
14
|
+
export declare const RECEIPT_EMAIL_ERROR_CODES: readonly ["invalid_address", "receipt_not_found", "too_many_requests", "send_failed", "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", "validation", "route_missing"];
|
|
21
15
|
export type ReceiptEmailErrorCode = (typeof RECEIPT_EMAIL_ERROR_CODES)[number];
|
|
22
16
|
export declare function isReceiptEmailErrorCode(value: unknown): value is ReceiptEmailErrorCode;
|
|
17
|
+
/** Der Code eines geworfenen Fehlers, wenn er in [RECEIPT_EMAIL_ERROR_CODES] steht; sonst `undefined`. */
|
|
18
|
+
export declare function receiptEmailErrorCode(error: unknown): ReceiptEmailErrorCode | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Kurzform fuer `catch (e) { if (isReceiptEmailError(e, 'too_many_requests')) … }`.
|
|
21
|
+
* Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [RECEIPT_EMAIL_ERROR_CODES]?
|
|
22
|
+
*/
|
|
23
|
+
export declare function isReceiptEmailError(error: unknown, code?: ReceiptEmailErrorCode): error is KasseneckApiError;
|
|
24
|
+
/**
|
|
25
|
+
* Versandweg der Belegmail (Katalog `MAILWEG`): Postfach des Betriebs,
|
|
26
|
+
* Plattform, oder Plattform als Rueckfall, weil das eigene Postfach scheiterte.
|
|
27
|
+
*/
|
|
28
|
+
export declare const RECEIPT_EMAIL_VIAS: readonly ["own", "platform", "platform_fallback"];
|
|
29
|
+
export type ReceiptEmailVia = (typeof RECEIPT_EMAIL_VIAS)[number];
|
|
30
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `sendReceiptEmail`. */
|
|
31
|
+
export interface ReceiptEmailFieldError {
|
|
32
|
+
field: string;
|
|
33
|
+
message: string;
|
|
34
|
+
}
|
|
35
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
36
|
+
export declare function receiptEmailFieldErrors(error: unknown): ReceiptEmailFieldError[];
|