@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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Die Aufrufe der Rechnungs-API — Kunden, Rechnungen, Gutschriften, Dateien.
|
|
3
3
|
*
|
|
4
4
|
* Jede Funktion nimmt den Transport als ersten Parameter und ist einzeln
|
|
5
|
-
* importierbar; die Fassade [
|
|
5
|
+
* importierbar; die Fassade [createInvoiceApi] bindet ihn nur einmal.
|
|
6
6
|
*
|
|
7
7
|
* **Geprueft wird hier nichts Fachliches.** Die Anfrage geht unveraendert an
|
|
8
8
|
* das Backend, das sie gegen denselben Vertrag prueft (`vertrag.ts`) und einen
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* der Aufruf `KasseneckValidationError` mit `scope:'response'`.
|
|
18
18
|
*/
|
|
19
19
|
import { KasseneckValidationError } from '../client/errors.js';
|
|
20
|
+
import { EINVOICE_FORMATS } from './vertrag.js';
|
|
20
21
|
function objekt(wert) {
|
|
21
22
|
return wert !== null && typeof wert === 'object' && !Array.isArray(wert)
|
|
22
23
|
? wert
|
|
@@ -69,30 +70,30 @@ function kennungVerlangen(aufruf, kennung, felder) {
|
|
|
69
70
|
/** Anfrageobjekt als Nutzlast — flache Kopie, damit der Aufrufer sein Objekt behaelt. */
|
|
70
71
|
const nutzlast = (anfrage) => ({ ...anfrage });
|
|
71
72
|
// ---- Kunden -----------------------------------------------------------------
|
|
72
|
-
export async function createCustomer(
|
|
73
|
+
export async function createCustomer(transport, customer, options = {}) {
|
|
73
74
|
const params = { customer };
|
|
74
|
-
if (
|
|
75
|
-
params['idempotencyKey'] =
|
|
76
|
-
const daten = await
|
|
75
|
+
if (options.idempotencyKey)
|
|
76
|
+
params['idempotencyKey'] = options.idempotencyKey;
|
|
77
|
+
const daten = await transport('createCustomer', params);
|
|
77
78
|
return pflichtObjekt('createCustomer', daten, 'customer');
|
|
78
79
|
}
|
|
79
|
-
export async function getCustomer(
|
|
80
|
-
kennungVerlangen('getCustomer',
|
|
81
|
-
const daten = await
|
|
80
|
+
export async function getCustomer(transport, ref) {
|
|
81
|
+
kennungVerlangen('getCustomer', ref, '{ customerId } oder { externalId }');
|
|
82
|
+
const daten = await transport('getCustomer', nutzlast(ref));
|
|
82
83
|
return pflichtObjekt('getCustomer', daten, 'customer');
|
|
83
84
|
}
|
|
84
|
-
export async function updateCustomer(
|
|
85
|
-
const daten = await
|
|
85
|
+
export async function updateCustomer(transport, customerId, patch) {
|
|
86
|
+
const daten = await transport('updateCustomer', { customerId, customer: patch });
|
|
86
87
|
return pflichtObjekt('updateCustomer', daten, 'customer');
|
|
87
88
|
}
|
|
88
|
-
export async function searchCustomers(
|
|
89
|
-
const daten = await
|
|
89
|
+
export async function searchCustomers(transport, search) {
|
|
90
|
+
const daten = await transport('searchCustomers', nutzlast(search));
|
|
90
91
|
const { eintraege, nextCursor } = seite('searchCustomers', daten, 'customers');
|
|
91
92
|
return { customers: eintraege, nextCursor };
|
|
92
93
|
}
|
|
93
94
|
// ---- Rechnungen -------------------------------------------------------------
|
|
94
|
-
export async function issueInvoice(
|
|
95
|
-
const daten = await
|
|
95
|
+
export async function issueInvoice(transport, request) {
|
|
96
|
+
const daten = await transport('issueInvoice', nutzlast(request));
|
|
96
97
|
const ergebnis = {
|
|
97
98
|
invoice: pflichtObjekt('issueInvoice', daten, 'invoice'),
|
|
98
99
|
replayed: objekt(daten)['replayed'] === true,
|
|
@@ -112,16 +113,16 @@ export async function issueInvoice(rufen, anfrage) {
|
|
|
112
113
|
* danach unveraendert ausstellen. Verbindlich ist das Ausstellen — zwischen
|
|
113
114
|
* Probelauf und Ausstellen kann sich der Kunde oder das Konto aendern.
|
|
114
115
|
*/
|
|
115
|
-
export async function previewInvoice(
|
|
116
|
-
const daten = await
|
|
116
|
+
export async function previewInvoice(transport, request) {
|
|
117
|
+
const daten = await transport('issueInvoice', { ...nutzlast(request), dryRun: true });
|
|
117
118
|
const ergebnis = { preview: pflichtObjekt('issueInvoice', daten, 'preview') };
|
|
118
119
|
const notice = hinweise(daten);
|
|
119
120
|
if (notice)
|
|
120
121
|
ergebnis.notice = notice;
|
|
121
122
|
return ergebnis;
|
|
122
123
|
}
|
|
123
|
-
export async function cancelInvoice(
|
|
124
|
-
const daten = await
|
|
124
|
+
export async function cancelInvoice(transport, request) {
|
|
125
|
+
const daten = await transport('cancelInvoice', nutzlast(request));
|
|
125
126
|
return {
|
|
126
127
|
creditNote: pflichtObjekt('cancelInvoice', daten, 'creditNote'),
|
|
127
128
|
original: pflichtObjekt('cancelInvoice', daten, 'original'),
|
|
@@ -129,21 +130,21 @@ export async function cancelInvoice(rufen, anfrage) {
|
|
|
129
130
|
replayed: objekt(daten)['replayed'] === true,
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
|
-
export async function createCreditNote(
|
|
133
|
-
const daten = await
|
|
133
|
+
export async function createCreditNote(transport, request) {
|
|
134
|
+
const daten = await transport('createCreditNote', nutzlast(request));
|
|
134
135
|
return {
|
|
135
136
|
creditNote: pflichtObjekt('createCreditNote', daten, 'creditNote'),
|
|
136
137
|
remainingCents: zahl(objekt(daten)['remainingCents']),
|
|
137
138
|
replayed: objekt(daten)['replayed'] === true,
|
|
138
139
|
};
|
|
139
140
|
}
|
|
140
|
-
export async function getInvoice(
|
|
141
|
-
kennungVerlangen('getInvoice',
|
|
142
|
-
const daten = await
|
|
141
|
+
export async function getInvoice(transport, ref) {
|
|
142
|
+
kennungVerlangen('getInvoice', ref, '{ invoiceId } oder { number }');
|
|
143
|
+
const daten = await transport('getInvoice', nutzlast(ref));
|
|
143
144
|
return pflichtObjekt('getInvoice', daten, 'invoice');
|
|
144
145
|
}
|
|
145
|
-
export async function listInvoices(
|
|
146
|
-
const daten = await
|
|
146
|
+
export async function listInvoices(transport, query = {}) {
|
|
147
|
+
const daten = await transport('listInvoices', nutzlast(query));
|
|
147
148
|
const { eintraege, nextCursor } = seite('listInvoices', daten, 'invoices');
|
|
148
149
|
return { invoices: eintraege, nextCursor };
|
|
149
150
|
}
|
|
@@ -153,8 +154,8 @@ export async function listInvoices(rufen, abfrage = {}) {
|
|
|
153
154
|
* ohne Freigabe und vor der Live-Freischaltung — genau dann braucht man die
|
|
154
155
|
* Antwort. Vor dem ersten `issueInvoice` aufrufen und `missing` anzeigen.
|
|
155
156
|
*/
|
|
156
|
-
export async function getInvoiceSetupStatus(
|
|
157
|
-
const daten = objekt(await
|
|
157
|
+
export async function getInvoiceSetupStatus(transport) {
|
|
158
|
+
const daten = objekt(await transport('getInvoiceSetupStatus', {}));
|
|
158
159
|
if (typeof daten['ready'] !== 'boolean' || !Array.isArray(daten['missing'])) {
|
|
159
160
|
throw new KasseneckValidationError('getInvoiceSetupStatus', 'Antwort ohne ready/missing', 'response');
|
|
160
161
|
}
|
|
@@ -171,11 +172,11 @@ export async function getInvoiceSetupStatus(rufen) {
|
|
|
171
172
|
* eine **Uebersetzungskopie**: dieselbe Nummer, auf jeder Seite als Uebersetzung
|
|
172
173
|
* gekennzeichnet, ohne eingebettete E-Rechnung — keine eigene Rechnung.
|
|
173
174
|
*/
|
|
174
|
-
export function getInvoicePdf(
|
|
175
|
+
export function getInvoicePdf(binaryTransport, invoiceId, options = {}) {
|
|
175
176
|
const params = { invoiceId };
|
|
176
|
-
if (
|
|
177
|
-
params['language'] =
|
|
178
|
-
return
|
|
177
|
+
if (options.language)
|
|
178
|
+
params['language'] = options.language;
|
|
179
|
+
return binaryTransport('getInvoicePdf', params);
|
|
179
180
|
}
|
|
180
181
|
/**
|
|
181
182
|
* Eine Zahlung nachtragen, die nach dem Ausstellen eingetroffen ist
|
|
@@ -186,8 +187,8 @@ export function getInvoicePdf(rufenBinaer, invoiceId, optionen = {}) {
|
|
|
186
187
|
* zusaetzlich `notice` — eine Barzahlung ist ein Barumsatz und braucht einen
|
|
187
188
|
* Beleg (§ 132a BAO), den dieser Vermerk nicht ersetzt.
|
|
188
189
|
*/
|
|
189
|
-
export async function recordInvoicePayment(
|
|
190
|
-
const daten = await
|
|
190
|
+
export async function recordInvoicePayment(transport, request) {
|
|
191
|
+
const daten = await transport('recordInvoicePayment', nutzlast(request));
|
|
191
192
|
const roh = objekt(daten);
|
|
192
193
|
const ergebnis = {
|
|
193
194
|
invoice: pflichtObjekt('recordInvoicePayment', daten, 'invoice'),
|
|
@@ -200,22 +201,31 @@ export async function recordInvoicePayment(rufen, anfrage) {
|
|
|
200
201
|
return ergebnis;
|
|
201
202
|
}
|
|
202
203
|
/** Die Marken des Kontos — die Kennung geht als `brandId` in `issueInvoice`. */
|
|
203
|
-
export async function listBrands(
|
|
204
|
-
const brands = objekt(await
|
|
204
|
+
export async function listBrands(transport) {
|
|
205
|
+
const brands = objekt(await transport('listBrands', {}))['brands'];
|
|
205
206
|
if (!Array.isArray(brands))
|
|
206
207
|
throw new KasseneckValidationError('listBrands', 'Antwort ohne brands', 'response');
|
|
207
208
|
return brands;
|
|
208
209
|
}
|
|
209
210
|
/**
|
|
210
|
-
* Die E-Rechnung
|
|
211
|
-
* und nicht als rohe Datei: so
|
|
212
|
-
* (`einvoice_incomplete` mit `missing[]`) ein
|
|
211
|
+
* Die E-Rechnung samt Format und Dateiname, genau wie der Server sie schickt.
|
|
212
|
+
* Sie kommt im gewohnten Umschlag (`data.xml`) und nicht als rohe Datei: so
|
|
213
|
+
* bleibt ein fachlicher Fehler (`einvoice_incomplete` mit `missing[]`) ein
|
|
214
|
+
* gewoehnlicher Fehler. Den Dateinamen nicht selbst bauen, sondern
|
|
215
|
+
* `filename` nehmen (`invoice-<Nummer>.xml`).
|
|
213
216
|
*/
|
|
214
|
-
export async function getInvoiceXml(
|
|
215
|
-
const daten = await
|
|
216
|
-
const xml =
|
|
217
|
+
export async function getInvoiceXml(transport, invoiceId, format = 'ubl') {
|
|
218
|
+
const daten = objekt(await transport('getInvoiceXml', { invoiceId, format }));
|
|
219
|
+
const { xml, filename } = daten;
|
|
220
|
+
const gesendet = daten['format'];
|
|
217
221
|
if (typeof xml !== 'string' || !xml) {
|
|
218
222
|
throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne xml', 'response');
|
|
219
223
|
}
|
|
220
|
-
|
|
224
|
+
if (typeof gesendet !== 'string' || !EINVOICE_FORMATS.includes(gesendet)) {
|
|
225
|
+
throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne gueltiges format', 'response');
|
|
226
|
+
}
|
|
227
|
+
if (typeof filename !== 'string' || !filename) {
|
|
228
|
+
throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne filename', 'response');
|
|
229
|
+
}
|
|
230
|
+
return { xml, format: gesendet, filename };
|
|
221
231
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fehler der Rechnungs-API auswerten: am Code, nie am Text.
|
|
3
|
+
*
|
|
4
|
+
* Es zaehlen die Codes des Vertrags ([INVOICE_ERROR_CODES]) und die, die
|
|
5
|
+
* Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen
|
|
6
|
+
* ([INVOICE_REQUEST_ERROR_CODES], z. B. `dialect_mismatch`, `not_found`,
|
|
7
|
+
* `route_missing`). Ein fremder Code ist fuer diese Helfer kein
|
|
8
|
+
* Rechnungs-Fehler: wer darauf verzweigt, soll es bewusst ueber
|
|
9
|
+
* `KasseneckApiError.code` tun.
|
|
10
|
+
*/
|
|
11
|
+
import type { KasseneckApiError } from '../client/errors.js';
|
|
12
|
+
import { type InvoiceErrorCode, type InvoiceRequestErrorCode } from './vertrag.js';
|
|
13
|
+
/** Ein Code, den ein Rechnungsaufruf liefern kann. */
|
|
14
|
+
export type InvoiceApiErrorCode = InvoiceErrorCode | InvoiceRequestErrorCode;
|
|
15
|
+
/** `true` fuer einen Code aus [INVOICE_ERROR_CODES] oder [INVOICE_REQUEST_ERROR_CODES]. */
|
|
16
|
+
export declare function isInvoiceErrorCode(value: unknown): value is InvoiceApiErrorCode;
|
|
17
|
+
/** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Rechnungs-API ist. */
|
|
18
|
+
export declare function invoiceErrorCode(error: unknown): InvoiceApiErrorCode | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Kurzform fuer `catch (e) { if (isInvoiceError(e, 'customer_exists')) … }`.
|
|
21
|
+
* Ohne `code`: ist es ueberhaupt ein Fehler der Rechnungs-API?
|
|
22
|
+
*/
|
|
23
|
+
export declare function isInvoiceError(error: unknown, code?: InvoiceApiErrorCode): error is KasseneckApiError;
|
|
24
|
+
/** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */
|
|
25
|
+
export interface InvoiceFieldError {
|
|
26
|
+
/** Feldpfad in der gesendeten Anfrage, z. B. `items[2].vatRate` oder `customer.vatId`. */
|
|
27
|
+
field: string;
|
|
28
|
+
message: string;
|
|
29
|
+
}
|
|
30
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
31
|
+
export declare function invoiceFieldErrors(error: unknown): InvoiceFieldError[];
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fehler der Rechnungs-API auswerten: am Code, nie am Text.
|
|
3
|
+
*
|
|
4
|
+
* Es zaehlen die Codes des Vertrags ([INVOICE_ERROR_CODES]) und die, die
|
|
5
|
+
* Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen
|
|
6
|
+
* ([INVOICE_REQUEST_ERROR_CODES], z. B. `dialect_mismatch`, `not_found`,
|
|
7
|
+
* `route_missing`). Ein fremder Code ist fuer diese Helfer kein
|
|
8
|
+
* Rechnungs-Fehler: wer darauf verzweigt, soll es bewusst ueber
|
|
9
|
+
* `KasseneckApiError.code` tun.
|
|
10
|
+
*/
|
|
11
|
+
import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
|
|
12
|
+
import { INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, } from './vertrag.js';
|
|
13
|
+
const BEKANNT = new Set([...INVOICE_ERROR_CODES, ...INVOICE_REQUEST_ERROR_CODES]);
|
|
14
|
+
/** `true` fuer einen Code aus [INVOICE_ERROR_CODES] oder [INVOICE_REQUEST_ERROR_CODES]. */
|
|
15
|
+
export function isInvoiceErrorCode(value) {
|
|
16
|
+
return typeof value === 'string' && BEKANNT.has(value);
|
|
17
|
+
}
|
|
18
|
+
/** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Rechnungs-API ist. */
|
|
19
|
+
export function invoiceErrorCode(error) {
|
|
20
|
+
return bekannterCode(error, BEKANNT);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Kurzform fuer `catch (e) { if (isInvoiceError(e, 'customer_exists')) … }`.
|
|
24
|
+
* Ohne `code`: ist es ueberhaupt ein Fehler der Rechnungs-API?
|
|
25
|
+
*/
|
|
26
|
+
export function isInvoiceError(error, code) {
|
|
27
|
+
const gefunden = invoiceErrorCode(error);
|
|
28
|
+
return gefunden !== undefined && (code === undefined || gefunden === code);
|
|
29
|
+
}
|
|
30
|
+
/** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
|
|
31
|
+
export function invoiceFieldErrors(error) {
|
|
32
|
+
return feldfehlerVon(error);
|
|
33
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@kreiseck/kasseneck-api/invoice` – Rechnungen (§ 11 UStG, keine Belege)
|
|
3
|
+
* und Kunden ueber die Rechnungs-API.
|
|
4
|
+
*
|
|
5
|
+
* Ein eigener Unterpfad wie `partner`: der `api_key` eines Kontos, mit dem
|
|
6
|
+
* Rechnungen ausgestellt werden, gehoert auf einen **Server** und soll nicht
|
|
7
|
+
* versehentlich in ein Browser-Buendel der Kasse wandern.
|
|
8
|
+
*
|
|
9
|
+
* Die Beschreibung der Endpunkte steht in der Referenz des Backends
|
|
10
|
+
* (`docs/api/rechnungen.md`). Was hier steht, ist der Vertrag als Daten und die
|
|
11
|
+
* Benutzung des Clients.
|
|
12
|
+
*/
|
|
13
|
+
export { createInvoiceApi, type InvoiceApi, type InvoiceApiOptions } from './api.js';
|
|
14
|
+
export { invoiceKeyAuth, type InvoiceKeyAuthOptions } from './auth.js';
|
|
15
|
+
export { isInvoiceError, isInvoiceErrorCode, invoiceErrorCode, invoiceFieldErrors, type InvoiceApiErrorCode, type InvoiceFieldError, } from './fehler.js';
|
|
16
|
+
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, previewInvoice, recordInvoicePayment, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
+
export type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, EInvoiceStatus, Invoice, InvoiceDetail, InvoiceDetailPayment, InvoiceItem, InvoiceItemInput, InvoiceListQuery, InvoicePage, InvoiceRecipient, InvoiceSetupGap, InvoiceSetupStatus, InvoiceTotals, InvoiceXml, InvoiceNotice, InvoicePayment, InvoicePreview, InvoiceRateTotals, IssueInvoiceRequest, IssueResult, PaymentInput, PreviewResult, RecordPaymentRequest, RecordPaymentResult, } from './typen.js';
|
|
18
|
+
export { INVOICE_TEXTS, invoiceText, type InvoiceTextKey } from './texte.js';
|
|
19
|
+
export { computeInvoiceTotals, ZERO_RATED_TAX_SCHEMES, type TotalsItem } from './summen.js';
|
|
20
|
+
export { proratedPriceMicros, MAX_AMOUNT_CENTS, itemFromEuro, formatUnitPrice, CalcError, calculateInvoice, roundDiv, vatRateMapKey, formatVatRate, type CalcResult, type CalcErrorCode, type CalcOptions, type CalcItem, type RateTotal, type ItemConversion, type ConversionReason, type LineAmount, } from './calc.js';
|
|
21
|
+
export { INVOICE_CONTRACT_VERSION, INVOICE_ENDPOINTS, INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, EINVOICE_MISSING_CODES, WRITE_OFF_REASON_CODES, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, INVOICE_UNIT_CODES, INVOICE_SETUP_REQUIREMENTS, CUSTOMER_FIELDS, ITEM_FIELDS, ITEM_PRICE_EXACTLY_ONE, INVOICE_REQUESTS, INVOICE_EXACTLY_ONE, INVOICE_AT_LEAST_ONE, type InvoiceEndpoint, type InvoiceErrorCode, type InvoiceRequestErrorCode, type CreditNoteReason, type TaxScheme, type PriceMode, type VatRatePercent, type CustomerType, type InvoiceListStatus, type DocType, type EInvoiceFormat, type EInvoiceMissingCode, type WriteOffReasonCode, type InvoiceLanguage, type InvoicePaymentMethod, type ItemKind, type ReverseChargeReason, type InvoiceNoticeCode, type InvoiceUnit, type InvoiceSetupRequirement, type FieldFormat, type Field, } from './vertrag.js';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@kreiseck/kasseneck-api/invoice` – Rechnungen (§ 11 UStG, keine Belege)
|
|
3
|
+
* und Kunden ueber die Rechnungs-API.
|
|
4
|
+
*
|
|
5
|
+
* Ein eigener Unterpfad wie `partner`: der `api_key` eines Kontos, mit dem
|
|
6
|
+
* Rechnungen ausgestellt werden, gehoert auf einen **Server** und soll nicht
|
|
7
|
+
* versehentlich in ein Browser-Buendel der Kasse wandern.
|
|
8
|
+
*
|
|
9
|
+
* Die Beschreibung der Endpunkte steht in der Referenz des Backends
|
|
10
|
+
* (`docs/api/rechnungen.md`). Was hier steht, ist der Vertrag als Daten und die
|
|
11
|
+
* Benutzung des Clients.
|
|
12
|
+
*/
|
|
13
|
+
export { createInvoiceApi } from './api.js';
|
|
14
|
+
export { invoiceKeyAuth } from './auth.js';
|
|
15
|
+
export { isInvoiceError, isInvoiceErrorCode, invoiceErrorCode, invoiceFieldErrors, } from './fehler.js';
|
|
16
|
+
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, previewInvoice, recordInvoicePayment, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
+
export { INVOICE_TEXTS, invoiceText } from './texte.js';
|
|
18
|
+
export { computeInvoiceTotals, ZERO_RATED_TAX_SCHEMES } from './summen.js';
|
|
19
|
+
export { proratedPriceMicros, MAX_AMOUNT_CENTS, itemFromEuro, formatUnitPrice, CalcError, calculateInvoice, roundDiv, vatRateMapKey, formatVatRate, } from './calc.js';
|
|
20
|
+
export { INVOICE_CONTRACT_VERSION, INVOICE_ENDPOINTS, INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, EINVOICE_MISSING_CODES, WRITE_OFF_REASON_CODES, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, INVOICE_UNIT_CODES, INVOICE_SETUP_REQUIREMENTS, CUSTOMER_FIELDS, ITEM_FIELDS, ITEM_PRICE_EXACTLY_ONE, INVOICE_REQUESTS, INVOICE_EXACTLY_ONE, INVOICE_AT_LEAST_ONE, } from './vertrag.js';
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
|
|
4
4
|
*
|
|
5
5
|
* **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
|
|
6
|
-
* Rechnung ueber den exakten Ganzzahl-Kern aus (`
|
|
7
|
-
* `…/
|
|
6
|
+
* Rechnung ueber den exakten Ganzzahl-Kern aus (`calculateInvoice` in
|
|
7
|
+
* `…/invoice/calc`). An Halbcent-Grenzen weicht diese Funktion davon um
|
|
8
8
|
* einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
|
|
9
9
|
* Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
|
|
10
10
|
* schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
|
|
11
11
|
* ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
|
|
12
|
-
* Dart-Zwilling pruefen gegen `fixtures/
|
|
13
|
-
* nimmt `
|
|
12
|
+
* Dart-Zwilling pruefen gegen `fixtures/invoice-totals.json`. Neuer Code
|
|
13
|
+
* nimmt `calculateInvoice` oder `previewInvoice`.
|
|
14
14
|
*
|
|
15
15
|
* Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
|
|
16
16
|
*
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
* ist das Brutto der vereinbarte Preis und bleibt, wie die Zeilen es ergeben.
|
|
24
24
|
* Bei einem steuerfreien Steuerfall zaehlt jede Zeile zu 0 %.
|
|
25
25
|
*
|
|
26
|
-
* `fixtures/
|
|
26
|
+
* `fixtures/invoice-totals.json` haelt die Prueffaelle; Backend und
|
|
27
27
|
* Dart-Zwilling pruefen gegen dieselbe Datei. Verbindlich bleibt, was der
|
|
28
28
|
* Server rechnet — mit `previewInvoice` laesst sich das vorab abfragen.
|
|
29
29
|
*/
|
|
30
30
|
import type { InvoiceTotals } from './typen.js';
|
|
31
31
|
import type { PriceMode, TaxScheme } from './vertrag.js';
|
|
32
|
-
import {
|
|
32
|
+
import { ZERO_RATED_TAX_SCHEMES } from './calc.js';
|
|
33
33
|
/** Aus dem Kern uebernommen, damit Kern und Huelle nie auseinanderlaufen. */
|
|
34
|
-
export {
|
|
34
|
+
export { ZERO_RATED_TAX_SCHEMES };
|
|
35
35
|
/** Was fuer die Summe zaehlt — `InvoiceItemInput` passt unveraendert. */
|
|
36
|
-
export interface
|
|
36
|
+
export interface TotalsItem {
|
|
37
37
|
quantity: number;
|
|
38
38
|
unitPriceCents: number;
|
|
39
39
|
vatRate: number;
|
|
@@ -50,8 +50,8 @@ export interface SummenPosition {
|
|
|
50
50
|
*
|
|
51
51
|
* @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
|
|
52
52
|
* an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
|
|
53
|
-
* Rechnung abweichen. Stattdessen `
|
|
54
|
-
* `@kreiseck/kasseneck-api/
|
|
55
|
-
* `
|
|
53
|
+
* Rechnung abweichen. Stattdessen `calculateInvoice` aus
|
|
54
|
+
* `@kreiseck/kasseneck-api/invoice/calc` (Euro-Positionen ueber
|
|
55
|
+
* `itemFromEuro`) oder `previewInvoice` verwenden.
|
|
56
56
|
*/
|
|
57
|
-
export declare function
|
|
57
|
+
export declare function computeInvoiceTotals(items: readonly TotalsItem[], priceMode: PriceMode, taxScheme?: TaxScheme): InvoiceTotals;
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
|
|
4
4
|
*
|
|
5
5
|
* **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
|
|
6
|
-
* Rechnung ueber den exakten Ganzzahl-Kern aus (`
|
|
7
|
-
* `…/
|
|
6
|
+
* Rechnung ueber den exakten Ganzzahl-Kern aus (`calculateInvoice` in
|
|
7
|
+
* `…/invoice/calc`). An Halbcent-Grenzen weicht diese Funktion davon um
|
|
8
8
|
* einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
|
|
9
9
|
* Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
|
|
10
10
|
* schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
|
|
11
11
|
* ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
|
|
12
|
-
* Dart-Zwilling pruefen gegen `fixtures/
|
|
13
|
-
* nimmt `
|
|
12
|
+
* Dart-Zwilling pruefen gegen `fixtures/invoice-totals.json`. Neuer Code
|
|
13
|
+
* nimmt `calculateInvoice` oder `previewInvoice`.
|
|
14
14
|
*
|
|
15
15
|
* Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
|
|
16
16
|
*
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
* ist das Brutto der vereinbarte Preis und bleibt, wie die Zeilen es ergeben.
|
|
24
24
|
* Bei einem steuerfreien Steuerfall zaehlt jede Zeile zu 0 %.
|
|
25
25
|
*
|
|
26
|
-
* `fixtures/
|
|
26
|
+
* `fixtures/invoice-totals.json` haelt die Prueffaelle; Backend und
|
|
27
27
|
* Dart-Zwilling pruefen gegen dieselbe Datei. Verbindlich bleibt, was der
|
|
28
28
|
* Server rechnet — mit `previewInvoice` laesst sich das vorab abfragen.
|
|
29
29
|
*/
|
|
30
|
-
import {
|
|
30
|
+
import { ZERO_RATED_TAX_SCHEMES } from './calc.js';
|
|
31
31
|
/** Aus dem Kern uebernommen, damit Kern und Huelle nie auseinanderlaufen. */
|
|
32
|
-
export {
|
|
32
|
+
export { ZERO_RATED_TAX_SCHEMES };
|
|
33
33
|
/** Auf Cent gerundete Euro — dieselbe Rundung wie am Server (halber Cent vom Nullpunkt weg). */
|
|
34
34
|
function euroRund(n) {
|
|
35
35
|
return ((n < 0 ? -1 : 1) * Math.round((Math.abs(n) + Number.EPSILON) * 100)) / 100;
|
|
@@ -51,12 +51,12 @@ function centRund(x) {
|
|
|
51
51
|
*
|
|
52
52
|
* @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
|
|
53
53
|
* an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
|
|
54
|
-
* Rechnung abweichen. Stattdessen `
|
|
55
|
-
* `@kreiseck/kasseneck-api/
|
|
56
|
-
* `
|
|
54
|
+
* Rechnung abweichen. Stattdessen `calculateInvoice` aus
|
|
55
|
+
* `@kreiseck/kasseneck-api/invoice/calc` (Euro-Positionen ueber
|
|
56
|
+
* `itemFromEuro`) oder `previewInvoice` verwenden.
|
|
57
57
|
*/
|
|
58
|
-
export function
|
|
59
|
-
const steuerfrei =
|
|
58
|
+
export function computeInvoiceTotals(items, priceMode, taxScheme = 'normal') {
|
|
59
|
+
const steuerfrei = ZERO_RATED_TAX_SCHEMES.includes(taxScheme);
|
|
60
60
|
const bruttoPreise = priceMode === 'gross' && !steuerfrei;
|
|
61
61
|
// Ungerundete Zeilen je Satz, in Euro wie am Server.
|
|
62
62
|
const jeSatz = new Map();
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Texte von Rechnung und Gutschrift in jeder Sprache der Rechnungs-API — eine
|
|
3
|
+
* Quelle fuer das Backend (PDF, E-Rechnung, Mail) und das Web (Statusseite).
|
|
4
|
+
* Das Backend liest sie aus `fixtures/invoice-texts.json` (`npm run
|
|
5
|
+
* fixtures:rechnungstexte`).
|
|
6
|
+
*
|
|
7
|
+
* Datum und Betraege stehen NICHT hier: sie bleiben in jeder Sprache
|
|
8
|
+
* oesterreichisch formatiert (15.09.2026, € 1.234,56) und werden vom Aufrufer
|
|
9
|
+
* eingesetzt. Platzhalter in {geschweiften} Klammern; jede Sprache hat dieselben
|
|
10
|
+
* Schluessel und je Schluessel dieselben Platzhalter (test/rechnung-texte.test.ts).
|
|
11
|
+
* Die Schluessel sind seit 1.0 englisch (alt und neu in
|
|
12
|
+
* `fixtures/renames-1.0.json`), die Texte bleiben, wie sie sind.
|
|
13
|
+
*
|
|
14
|
+
* Steuerhinweise nennen in jeder Sprache die Gesetzesstelle — § 11 UStG verlangt
|
|
15
|
+
* einen Hinweis, keinen Wortlaut; die Fundstelle macht ihn eindeutig.
|
|
16
|
+
*/
|
|
17
|
+
import type { InvoiceLanguage } from './vertrag.js';
|
|
18
|
+
declare const DE: {
|
|
19
|
+
readonly 'pdf.title.invoice': "RECHNUNG";
|
|
20
|
+
readonly 'pdf.title.credit_note': "GUTSCHRIFT";
|
|
21
|
+
readonly 'pdf.badge.paid': "BEZAHLT";
|
|
22
|
+
readonly 'pdf.badge.direct_debit': "SEPA-LASTSCHRIFT";
|
|
23
|
+
readonly 'pdf.meta.number.invoice': "Rechnungsnr.";
|
|
24
|
+
readonly 'pdf.meta.number.credit_note': "Gutschriftsnr.";
|
|
25
|
+
readonly 'pdf.meta.date.invoice': "Rechnungsdatum";
|
|
26
|
+
readonly 'pdf.meta.date.credit_note': "Gutschriftsdatum";
|
|
27
|
+
readonly 'pdf.meta.service_period': "Leistungszeitraum";
|
|
28
|
+
readonly 'pdf.meta.due_date': "Fälligkeit";
|
|
29
|
+
readonly 'pdf.reference.credit_note': "Gutschrift zu Rechnung {number}";
|
|
30
|
+
readonly 'pdf.reference.dated': " vom {date}";
|
|
31
|
+
readonly 'pdf.label.invoice': "Rechnung {number}";
|
|
32
|
+
readonly 'pdf.label.credit_note': "Gutschrift {number}";
|
|
33
|
+
readonly 'pdf.vat_id': "UID: {vatId}";
|
|
34
|
+
readonly 'pdf.table.pos': "POS";
|
|
35
|
+
readonly 'pdf.table.description': "BESCHREIBUNG";
|
|
36
|
+
readonly 'pdf.table.quantity': "MENGE";
|
|
37
|
+
readonly 'pdf.table.vat': "UST";
|
|
38
|
+
readonly 'pdf.table.unit_net': "EINZEL NETTO";
|
|
39
|
+
readonly 'pdf.table.amount_net': "BETRAG NETTO";
|
|
40
|
+
readonly 'pdf.table.unit_gross': "EINZEL BRUTTO";
|
|
41
|
+
readonly 'pdf.table.amount_gross': "BETRAG BRUTTO";
|
|
42
|
+
readonly 'pdf.item.discount': "abzüglich {percent} % Rabatt";
|
|
43
|
+
readonly 'pdf.totals.subtotal': "Zwischensumme netto";
|
|
44
|
+
readonly 'pdf.totals.vat': "Umsatzsteuer {rate}%";
|
|
45
|
+
readonly 'pdf.totals.included_vat': "darin {rate}% USt von {net} netto";
|
|
46
|
+
readonly 'pdf.totals.grand_total.invoice': "Gesamtbetrag";
|
|
47
|
+
readonly 'pdf.totals.grand_total.credit_note': "Gutschriftsbetrag";
|
|
48
|
+
readonly 'tax.small_business': "Gemäß § 6 Abs. 1 Z 27 UStG wird keine Umsatzsteuer verrechnet (Kleinunternehmer).";
|
|
49
|
+
readonly 'tax.intra_community_supply.title': "Steuerfreie innergemeinschaftliche Lieferung. ";
|
|
50
|
+
readonly 'tax.intra_community_supply.text': "Gemäß Art. 6 Abs. 1 UStG (Art. 138 MwSt-RL 2006/112/EG). Die Erwerbsbesteuerung erfolgt durch den Abnehmer im Bestimmungsland.";
|
|
51
|
+
readonly 'tax.export_third_country': "Steuerfreie Ausfuhrlieferung (§ 6 Abs. 1 Z 1 UStG).";
|
|
52
|
+
readonly 'tax.reverse_charge.title': "Steuerschuldnerschaft des Leistungsempfängers. ";
|
|
53
|
+
readonly 'tax.reverse_charge.text': "Übergang der Steuerschuld gem. Art. 196 MwSt-RL 2006/112/EG (innergemeinschaftliche Leistung). Die Leistung ist nicht steuerfrei — die Umsatzsteuer schuldet und entrichtet der Leistungsempfänger in seinem Land.";
|
|
54
|
+
readonly 'tax.vat_id_line': "UID Leistungserbringer: {seller} · UID Leistungsempfänger: {buyer}";
|
|
55
|
+
readonly 'tax.reverse_charge_reason.construction': "Bauleistung gemäß § 19 Abs. 1a UStG.";
|
|
56
|
+
readonly 'tax.reverse_charge_reason.scrap': "Schrott und Abfallstoffe gemäß Schrott-Umsatzsteuerverordnung (BGBl. II Nr. 129/2007).";
|
|
57
|
+
readonly 'tax.reverse_charge_reason.mobile_devices': "Mobilfunkgeräte bzw. integrierte Schaltkreise gemäß § 19 Abs. 1e lit. b UStG.";
|
|
58
|
+
readonly 'tax.reverse_charge_reason.it_devices': "Laptops, Tablets bzw. Videospielkonsolen gemäß § 2 Z 1 Umsatzsteuerbetrugsbekämpfungsverordnung (BGBl. II Nr. 369/2013).";
|
|
59
|
+
readonly 'tax.reverse_charge_reason.metals': "Metalle gemäß § 2 Z 4 Umsatzsteuerbetrugsbekämpfungsverordnung.";
|
|
60
|
+
readonly 'tax.reverse_charge_reason.emission_certificates': "Treibhausgasemissionszertifikate gemäß § 19 Abs. 1e lit. a UStG.";
|
|
61
|
+
readonly 'tax.reverse_charge_reason.gas_electricity': "Lieferung von Gas oder Elektrizität an einen Wiederverkäufer gemäß § 2 Z 2 Umsatzsteuerbetrugsbekämpfungsverordnung.";
|
|
62
|
+
readonly 'tax.reverse_charge_reason.energy_certificates': "Gas- und Elektrizitätszertifikate gemäß § 2 Z 3 Umsatzsteuerbetrugsbekämpfungsverordnung.";
|
|
63
|
+
readonly 'tax.reverse_charge_reason.investment_gold': "Steuerpflichtige Lieferung von Anlagegold gemäß § 2 Z 5 Umsatzsteuerbetrugsbekämpfungsverordnung.";
|
|
64
|
+
readonly 'tax.reverse_charge_reason.security_transfer': "Lieferung von Sicherungs- bzw. Vorbehaltseigentum gemäß § 19 Abs. 1b UStG.";
|
|
65
|
+
readonly 'tax.reverse_charge_reason.foreign_supplier': "Leistung eines nicht im Inland ansässigen Unternehmers gemäß § 19 Abs. 1 zweiter Satz UStG.";
|
|
66
|
+
readonly 'tax.domestic_reverse_charge.text': "Die Umsatzsteuer schuldet und entrichtet der Leistungsempfänger. Die Leistung ist nicht steuerfrei.";
|
|
67
|
+
readonly 'tax.outside_scope.title': "Nicht steuerbarer Umsatz. ";
|
|
68
|
+
readonly 'tax.outside_scope.text': "Der Leistungsort liegt gemäß § 3a Abs. 6 UStG im Ansässigkeitsstaat des Leistungsempfängers; in Österreich fällt keine Umsatzsteuer an.";
|
|
69
|
+
readonly 'pdf.payment.title': "ZAHLUNGSINFORMATIONEN";
|
|
70
|
+
readonly 'pdf.payment.recipient': "Empfänger";
|
|
71
|
+
readonly 'pdf.payment.iban': "IBAN";
|
|
72
|
+
readonly 'pdf.payment.bic': "BIC";
|
|
73
|
+
readonly 'pdf.payment.payment_reference': "Verwendungszweck";
|
|
74
|
+
readonly 'pdf.payment.note_until': "Zahlbar ohne Abzug bis {date}. Vielen Dank für Ihren Auftrag.";
|
|
75
|
+
readonly 'pdf.payment.note': "Zahlbar ohne Abzug. Vielen Dank für Ihren Auftrag.";
|
|
76
|
+
readonly 'pdf.payment.qr': "Mit Banking-App scannen & zahlen";
|
|
77
|
+
readonly 'pdf.paid.text': "Diese Rechnung ist beglichen. Es ist nichts weiter zu tun.";
|
|
78
|
+
readonly 'pdf.paid.date': "Bezahlt am";
|
|
79
|
+
readonly 'pdf.paid.payment_method': "Zahlungsart";
|
|
80
|
+
readonly 'payment_method.cash': "Bar";
|
|
81
|
+
readonly 'payment_method.transfer': "Überweisung";
|
|
82
|
+
readonly 'payment_method.card': "Karte";
|
|
83
|
+
readonly 'payment_method.online': "Online";
|
|
84
|
+
readonly 'pdf.direct_debit.text': "Der Betrag wird per SEPA-Lastschrift eingezogen. Sie müssen nichts veranlassen.";
|
|
85
|
+
readonly 'pdf.direct_debit.collection_date': "Einzug am";
|
|
86
|
+
readonly 'pdf.direct_debit.account': "Konto";
|
|
87
|
+
readonly 'pdf.direct_debit.mandate_reference': "Mandatsreferenz";
|
|
88
|
+
readonly 'pdf.direct_debit.mandate_date': "Mandat vom";
|
|
89
|
+
readonly 'pdf.direct_debit.warning': "Bitte für Deckung sorgen — die Kosten einer Rücklastschrift werden weiterverrechnet.";
|
|
90
|
+
readonly 'pdf.refund.text': "Der Betrag wird auf dem ursprünglichen Zahlungsweg erstattet. Sie müssen nichts veranlassen.";
|
|
91
|
+
readonly 'pdf.refund.reference': "Bezug";
|
|
92
|
+
readonly 'pdf.refund.amount': "Erstattungsbetrag";
|
|
93
|
+
readonly 'pdf.status.title': "Zahlungsstatus online verfolgen";
|
|
94
|
+
readonly 'pdf.status.text': "Zahlung bzw. Einzug prüfen und Benachrichtigungen aktivieren.";
|
|
95
|
+
readonly 'pdf.status.link': "Link";
|
|
96
|
+
readonly 'pdf.status.password': "Passwort";
|
|
97
|
+
readonly 'pdf.footer.contact': "Kontakt";
|
|
98
|
+
readonly 'pdf.footer.register': "Register & Steuer";
|
|
99
|
+
readonly 'pdf.footer.registered_office': "Sitz: {place}";
|
|
100
|
+
readonly 'pdf.footer.note': "Erstellt mit Kasseneck — ein Produkt der Kreiseck";
|
|
101
|
+
readonly 'pdf.page': "Seite {number} / {total}";
|
|
102
|
+
readonly 'country.AT': "Österreich";
|
|
103
|
+
readonly 'country.DE': "Deutschland";
|
|
104
|
+
readonly 'country.CH': "Schweiz";
|
|
105
|
+
readonly 'country.IT': "Italien";
|
|
106
|
+
readonly 'country.LI': "Liechtenstein";
|
|
107
|
+
readonly 'copy.invoice': "Übersetzung – keine eigene Rechnung · Original: Rechnung Nr. {number} vom {date}";
|
|
108
|
+
readonly 'copy.credit_note': "Übersetzung – keine eigene Gutschrift · Original: Gutschrift Nr. {number} vom {date}";
|
|
109
|
+
readonly 'credit_note.intro': "Grund: {reason}";
|
|
110
|
+
readonly 'credit_note.reason.cancellation': "Stornierung";
|
|
111
|
+
readonly 'credit_note.reason.price_reduction': "Preisnachlass";
|
|
112
|
+
readonly 'credit_note.reason.return': "Rücksendung";
|
|
113
|
+
readonly 'credit_note.reason.incorrect_invoice': "Fehlerhafte Rechnung";
|
|
114
|
+
readonly 'credit_note.reason.other': "Sonstiges";
|
|
115
|
+
readonly 'einvoice.exemption.reverse_charge': "Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)";
|
|
116
|
+
readonly 'einvoice.exemption.small_business': "Steuerbefreit — Kleinunternehmer gemäß §6 Abs. 1 Z 27 UStG";
|
|
117
|
+
readonly 'einvoice.exemption.intra_community_supply': "Steuerfreie innergemeinschaftliche Lieferung gemäß Art. 6 Abs. 1 UStG";
|
|
118
|
+
readonly 'einvoice.exemption.outside_scope': "Nicht steuerbarer Umsatz — Leistungsort im Ausland (§ 3a Abs. 6 UStG)";
|
|
119
|
+
readonly 'einvoice.exemption.export_third_country': "Steuerfreie Ausfuhrlieferung gemäß §6 Abs. 1 Z 1 UStG";
|
|
120
|
+
readonly 'einvoice.payable_until': "Zahlbar bis {date}";
|
|
121
|
+
readonly 'unit_symbol.piece': "Stk";
|
|
122
|
+
readonly 'unit_symbol.pair': "Paar";
|
|
123
|
+
readonly 'unit_symbol.set': "Set";
|
|
124
|
+
readonly 'unit_symbol.dozen': "Dtzd.";
|
|
125
|
+
readonly 'unit_symbol.second': "Sek.";
|
|
126
|
+
readonly 'unit_symbol.minute': "Min.";
|
|
127
|
+
readonly 'unit_symbol.hour': "Std";
|
|
128
|
+
readonly 'unit_symbol.day': "Tag";
|
|
129
|
+
readonly 'unit_symbol.night': "Nacht";
|
|
130
|
+
readonly 'unit_symbol.week': "Woche";
|
|
131
|
+
readonly 'unit_symbol.month': "Monat";
|
|
132
|
+
readonly 'unit_symbol.quarter': "Quartal";
|
|
133
|
+
readonly 'unit_symbol.half_year': "Halbjahr";
|
|
134
|
+
readonly 'unit_symbol.year': "Jahr";
|
|
135
|
+
readonly 'unit_symbol.milligram': "mg";
|
|
136
|
+
readonly 'unit_symbol.gram': "g";
|
|
137
|
+
readonly 'unit_symbol.kilogram': "kg";
|
|
138
|
+
readonly 'unit_symbol.tonne': "t";
|
|
139
|
+
readonly 'unit_symbol.millimetre': "mm";
|
|
140
|
+
readonly 'unit_symbol.centimetre': "cm";
|
|
141
|
+
readonly 'unit_symbol.metre': "m";
|
|
142
|
+
readonly 'unit_symbol.running_metre': "lfm";
|
|
143
|
+
readonly 'unit_symbol.kilometre': "km";
|
|
144
|
+
readonly 'unit_symbol.square_metre': "m²";
|
|
145
|
+
readonly 'unit_symbol.hectare': "ha";
|
|
146
|
+
readonly 'unit_symbol.millilitre': "ml";
|
|
147
|
+
readonly 'unit_symbol.litre': "l";
|
|
148
|
+
readonly 'unit_symbol.cubic_metre': "m³";
|
|
149
|
+
readonly 'unit_symbol.kilowatt_hour': "kWh";
|
|
150
|
+
readonly 'unit_symbol.megawatt_hour': "MWh";
|
|
151
|
+
readonly 'unit_symbol.gigabyte': "GB";
|
|
152
|
+
readonly 'unit_symbol.terabyte': "TB";
|
|
153
|
+
readonly 'unit_symbol.flat_rate': "Pauschal";
|
|
154
|
+
readonly 'unit_symbol.person': "Pers.";
|
|
155
|
+
readonly 'unit_symbol.licence': "Lizenz";
|
|
156
|
+
readonly 'unit_symbol.user': "Benutzer";
|
|
157
|
+
readonly 'unit_symbol.device': "Gerät";
|
|
158
|
+
readonly 'unit_symbol.session': "Sitzung";
|
|
159
|
+
readonly 'unit_symbol.trip': "Fahrt";
|
|
160
|
+
readonly 'unit_symbol.page': "Seite";
|
|
161
|
+
readonly 'unit_symbol.sheet': "Blatt";
|
|
162
|
+
readonly 'unit_symbol.package': "Pkg.";
|
|
163
|
+
readonly 'unit_symbol.box': "Box";
|
|
164
|
+
readonly 'unit_symbol.carton': "Karton";
|
|
165
|
+
readonly 'unit_symbol.bottle': "Fl.";
|
|
166
|
+
readonly 'unit_symbol.can': "Dose";
|
|
167
|
+
readonly 'unit_symbol.roll': "Rolle";
|
|
168
|
+
readonly 'unit_symbol.bag': "Sack";
|
|
169
|
+
readonly 'unit_symbol.pallet': "Palette";
|
|
170
|
+
readonly 'unit_name.piece': "Stück";
|
|
171
|
+
readonly 'unit_name.pair': "Paar";
|
|
172
|
+
readonly 'unit_name.set': "Set";
|
|
173
|
+
readonly 'unit_name.dozen': "Dutzend";
|
|
174
|
+
readonly 'unit_name.second': "Sekunde";
|
|
175
|
+
readonly 'unit_name.minute': "Minute";
|
|
176
|
+
readonly 'unit_name.hour': "Stunde";
|
|
177
|
+
readonly 'unit_name.day': "Tag";
|
|
178
|
+
readonly 'unit_name.night': "Nacht";
|
|
179
|
+
readonly 'unit_name.week': "Woche";
|
|
180
|
+
readonly 'unit_name.month': "Monat";
|
|
181
|
+
readonly 'unit_name.quarter': "Quartal";
|
|
182
|
+
readonly 'unit_name.half_year': "Halbjahr";
|
|
183
|
+
readonly 'unit_name.year': "Jahr";
|
|
184
|
+
readonly 'unit_name.milligram': "Milligramm";
|
|
185
|
+
readonly 'unit_name.gram': "Gramm";
|
|
186
|
+
readonly 'unit_name.kilogram': "Kilogramm";
|
|
187
|
+
readonly 'unit_name.tonne': "Tonne";
|
|
188
|
+
readonly 'unit_name.millimetre': "Millimeter";
|
|
189
|
+
readonly 'unit_name.centimetre': "Zentimeter";
|
|
190
|
+
readonly 'unit_name.metre': "Meter";
|
|
191
|
+
readonly 'unit_name.running_metre': "Laufmeter";
|
|
192
|
+
readonly 'unit_name.kilometre': "Kilometer";
|
|
193
|
+
readonly 'unit_name.square_metre': "Quadratmeter";
|
|
194
|
+
readonly 'unit_name.hectare': "Hektar";
|
|
195
|
+
readonly 'unit_name.millilitre': "Milliliter";
|
|
196
|
+
readonly 'unit_name.litre': "Liter";
|
|
197
|
+
readonly 'unit_name.cubic_metre': "Kubikmeter";
|
|
198
|
+
readonly 'unit_name.kilowatt_hour': "Kilowattstunde";
|
|
199
|
+
readonly 'unit_name.megawatt_hour': "Megawattstunde";
|
|
200
|
+
readonly 'unit_name.gigabyte': "Gigabyte";
|
|
201
|
+
readonly 'unit_name.terabyte': "Terabyte";
|
|
202
|
+
readonly 'unit_name.flat_rate': "Pauschale";
|
|
203
|
+
readonly 'unit_name.person': "Person";
|
|
204
|
+
readonly 'unit_name.licence': "Lizenz";
|
|
205
|
+
readonly 'unit_name.user': "Benutzer";
|
|
206
|
+
readonly 'unit_name.device': "Gerät";
|
|
207
|
+
readonly 'unit_name.session': "Sitzung";
|
|
208
|
+
readonly 'unit_name.trip': "Fahrt";
|
|
209
|
+
readonly 'unit_name.page': "Seite";
|
|
210
|
+
readonly 'unit_name.sheet': "Blatt";
|
|
211
|
+
readonly 'unit_name.package': "Packung";
|
|
212
|
+
readonly 'unit_name.box': "Box";
|
|
213
|
+
readonly 'unit_name.carton': "Karton";
|
|
214
|
+
readonly 'unit_name.bottle': "Flasche";
|
|
215
|
+
readonly 'unit_name.can': "Dose";
|
|
216
|
+
readonly 'unit_name.roll': "Rolle";
|
|
217
|
+
readonly 'unit_name.bag': "Sack";
|
|
218
|
+
readonly 'unit_name.pallet': "Palette";
|
|
219
|
+
};
|
|
220
|
+
export type InvoiceTextKey = keyof typeof DE;
|
|
221
|
+
export declare const INVOICE_TEXTS: Readonly<Record<InvoiceLanguage, Readonly<Record<InvoiceTextKey, string>>>>;
|
|
222
|
+
/** Ein Text der gewaehlten Sprache mit eingesetzten Werten; ein fehlender Wert ist ein Programmierfehler. */
|
|
223
|
+
export declare function invoiceText(language: InvoiceLanguage, key: InvoiceTextKey, values?: Readonly<Record<string, string | number>>): string;
|
|
224
|
+
export {};
|