@kreiseck/kasseneck-api 1.10.1 → 1.11.1
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 +247 -0
- package/dist/cjs/client/aufrufe.d.ts +5 -5
- package/dist/cjs/client/aufrufe.js +22 -2
- package/dist/cjs/client/errors.js +2 -0
- package/dist/cjs/client/receipts.d.ts +34 -1
- package/dist/cjs/client/receipts.js +34 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +11 -3
- package/dist/cjs/inventory/vertrag.d.ts +1 -1
- package/dist/cjs/inventory/vertrag.js +2 -0
- package/dist/cjs/invoice/vertrag.d.ts +1 -1
- package/dist/cjs/invoice/vertrag.js +2 -0
- package/dist/cjs/models/cancellation.d.ts +49 -1
- package/dist/cjs/models/cancellation.js +139 -1
- package/dist/cjs/models/index.d.ts +2 -2
- package/dist/cjs/models/index.js +10 -2
- package/dist/cjs/models/payment-errors.d.ts +1 -1
- package/dist/cjs/models/payment-errors.js +2 -0
- package/dist/cjs/models/receipt-email.d.ts +1 -1
- package/dist/cjs/models/receipt-email.js +2 -0
- package/dist/cjs/models/receipt-errors.d.ts +1 -1
- package/dist/cjs/models/receipt-errors.js +2 -0
- package/dist/cjs/models/receipt-item.d.ts +10 -0
- package/dist/cjs/models/receipt-item.js +3 -0
- package/dist/cjs/models/receipt.d.ts +19 -1
- package/dist/cjs/models/receipt.js +28 -4
- package/dist/cjs/pos/client.js +10 -0
- package/dist/cjs/pos/errors.d.ts +4 -3
- package/dist/cjs/pos/errors.js +21 -2
- package/dist/cjs/pos/index.d.ts +6 -2
- package/dist/cjs/pos/index.js +33 -3
- package/dist/cjs/pos/schicht-lesen.d.ts +39 -0
- package/dist/cjs/pos/schicht-lesen.js +405 -0
- package/dist/cjs/pos/schicht-typen.d.ts +380 -0
- package/dist/cjs/pos/schicht-typen.js +59 -0
- package/dist/cjs/pos/schicht.d.ts +208 -0
- package/dist/cjs/pos/schicht.js +235 -0
- package/dist/cjs/pos/settings.d.ts +37 -1
- package/dist/cjs/pos/settings.js +43 -3
- package/dist/cjs/pos/texte.d.ts +627 -0
- package/dist/cjs/pos/texte.js +236 -0
- package/dist/cjs/react/index.js +1 -1
- package/dist/cjs/receipt/grid.js +2 -2
- package/dist/cjs/receipt/layout.d.ts +5 -0
- package/dist/cjs/receipt/layout.js +14 -5
- package/dist/cjs/receipt/shift-sheet.d.ts +33 -0
- package/dist/cjs/receipt/shift-sheet.js +207 -0
- package/dist/cjs/register/errors.d.ts +1 -1
- package/dist/cjs/register/errors.js +2 -0
- package/dist/cjs/stored/draht.d.ts +1 -1
- package/dist/cjs/stored/draht.js +4 -3
- package/dist/cjs/stored/einstellungen.js +26 -3
- package/dist/cjs/stored/vokabular.d.ts +1 -1
- package/dist/cjs/stored/vokabular.js +118 -12
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client/aufrufe.d.ts +5 -5
- package/dist/esm/client/aufrufe.js +22 -2
- package/dist/esm/client/errors.js +2 -0
- package/dist/esm/client/receipts.d.ts +34 -1
- package/dist/esm/client/receipts.js +35 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inventory/vertrag.d.ts +1 -1
- package/dist/esm/inventory/vertrag.js +2 -0
- package/dist/esm/invoice/vertrag.d.ts +1 -1
- package/dist/esm/invoice/vertrag.js +2 -0
- package/dist/esm/models/cancellation.d.ts +49 -1
- package/dist/esm/models/cancellation.js +132 -0
- package/dist/esm/models/index.d.ts +2 -2
- package/dist/esm/models/index.js +2 -2
- package/dist/esm/models/payment-errors.d.ts +1 -1
- package/dist/esm/models/payment-errors.js +2 -0
- package/dist/esm/models/receipt-email.d.ts +1 -1
- package/dist/esm/models/receipt-email.js +2 -0
- package/dist/esm/models/receipt-errors.d.ts +1 -1
- package/dist/esm/models/receipt-errors.js +2 -0
- package/dist/esm/models/receipt-item.d.ts +10 -0
- package/dist/esm/models/receipt-item.js +3 -0
- package/dist/esm/models/receipt.d.ts +19 -1
- package/dist/esm/models/receipt.js +27 -4
- package/dist/esm/pos/client.js +11 -1
- package/dist/esm/pos/errors.d.ts +4 -3
- package/dist/esm/pos/errors.js +21 -2
- package/dist/esm/pos/index.d.ts +6 -2
- package/dist/esm/pos/index.js +7 -2
- package/dist/esm/pos/schicht-lesen.d.ts +39 -0
- package/dist/esm/pos/schicht-lesen.js +392 -0
- package/dist/esm/pos/schicht-typen.d.ts +380 -0
- package/dist/esm/pos/schicht-typen.js +56 -0
- package/dist/esm/pos/schicht.d.ts +208 -0
- package/dist/esm/pos/schicht.js +222 -0
- package/dist/esm/pos/settings.d.ts +37 -1
- package/dist/esm/pos/settings.js +40 -2
- package/dist/esm/pos/texte.d.ts +627 -0
- package/dist/esm/pos/texte.js +236 -0
- package/dist/esm/react/index.js +1 -1
- package/dist/esm/receipt/grid.js +2 -2
- package/dist/esm/receipt/layout.d.ts +5 -0
- package/dist/esm/receipt/layout.js +15 -6
- package/dist/esm/receipt/shift-sheet.d.ts +33 -0
- package/dist/esm/receipt/shift-sheet.js +203 -0
- package/dist/esm/register/errors.d.ts +1 -1
- package/dist/esm/register/errors.js +2 -0
- package/dist/esm/stored/draht.d.ts +1 -1
- package/dist/esm/stored/draht.js +4 -3
- package/dist/esm/stored/einstellungen.js +27 -4
- package/dist/esm/stored/vokabular.d.ts +1 -1
- package/dist/esm/stored/vokabular.js +118 -12
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/fixtures/cancellation-tip-cases.json +679 -0
- package/fixtures/expected/cash-movement.grid32.txt +15 -0
- package/fixtures/expected/cash-movement.grid48.txt +15 -0
- package/fixtures/expected/cash-movement.lines.json +171 -0
- package/fixtures/expected/shift-close-blind.grid32.txt +28 -0
- package/fixtures/expected/shift-close-blind.grid48.txt +27 -0
- package/fixtures/expected/shift-close-blind.lines.json +275 -0
- package/fixtures/expected/shift-close-put-in.grid32.txt +38 -0
- package/fixtures/expected/shift-close-put-in.grid48.txt +35 -0
- package/fixtures/expected/shift-close-put-in.lines.json +403 -0
- package/fixtures/expected/shift-close-take-out.grid32.txt +38 -0
- package/fixtures/expected/shift-close-take-out.grid48.txt +35 -0
- package/fixtures/expected/shift-close-take-out.lines.json +403 -0
- package/fixtures/expected/shift-close.grid32.txt +37 -0
- package/fixtures/expected/shift-close.grid48.txt +35 -0
- package/fixtures/expected/shift-close.lines.json +413 -0
- package/fixtures/expected/shift-interim.grid32.txt +28 -0
- package/fixtures/expected/shift-interim.grid48.txt +27 -0
- package/fixtures/expected/shift-interim.lines.json +293 -0
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/invoice-api.schema.json +1 -1
- package/fixtures/invoice-texts.json +1 -1
- package/fixtures/pos-message-cases.json +45 -0
- package/fixtures/pos-texts.json +723 -1
- package/fixtures/receipt-due-generated.json +1 -1
- package/fixtures/shift-cases.json +87 -0
- package/fixtures/shift-receipts.json +41 -0
- package/fixtures/surface.json +119 -3
- package/fixtures/v3/antworten/belege.json +1 -1
- package/fixtures/v3/antworten/belegmail.json +1 -1
- package/fixtures/v3/antworten/kasse-belege.json +1 -1
- package/fixtures/v3/antworten/kasse.json +10874 -4865
- package/fixtures/v3/antworten/lager.json +1 -1
- package/fixtures/v3/antworten/rechnungen.json +1 -1
- package/fixtures/v3/antworten/storno.json +1 -1
- package/fixtures/v3/stored/belege.json +18 -6
- package/fixtures/v3/stored/kasse.json +4667 -183
- package/fixtures/v3/stored/rechnungen.json +1 -1
- package/fixtures/v3/v3-vokabular.json +739 -32
- package/fixtures/v3/zahlbetrag-faelle.json +1 -1
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ import { KasseneckApiError } from '../client/errors.js';
|
|
|
22
22
|
* ueber `KasseneckApiError.code` lesbar; die Kasse braucht dafuer einen
|
|
23
23
|
* Rueckfallzweig.
|
|
24
24
|
*/
|
|
25
|
-
export declare const REGISTER_ERROR_CODES: readonly ["account_not_found", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_in_use", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "device_bound_elsewhere", "device_not_found", "device_not_paired", "device_takeover_required", "dialect_mismatch", "internal_translation_error", "licenses_exhausted", "live_not_enabled", "location_outside", "location_required", "login_failed", "login_mode_select_user", "login_unavailable", "method_not_allowed", "mfa_required", "not_found", "pairing_code_expired", "pairing_code_unknown", "pairing_code_used", "pairing_failed", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "register_user_only", "response_translation_failed", "session_ended", "session_expired", "session_not_running", "session_other_cashregister", "too_many_attempts", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing"];
|
|
25
|
+
export declare const REGISTER_ERROR_CODES: readonly ["account_not_found", "action_confirmation_required", "admin_required", "api_not_approved", "app_check_invalid", "app_check_missing", "cashregister_in_use", "cashregister_not_assigned", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "device_bound_elsewhere", "device_not_found", "device_not_paired", "device_takeover_required", "dialect_mismatch", "internal_translation_error", "licenses_exhausted", "live_not_enabled", "location_outside", "location_required", "login_failed", "login_mode_select_user", "login_unavailable", "method_not_allowed", "mfa_required", "not_found", "pairing_code_expired", "pairing_code_unknown", "pairing_code_used", "pairing_failed", "password_change_required", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "register_user_only", "response_translation_failed", "second_factor_required", "session_ended", "session_expired", "session_not_running", "session_other_cashregister", "too_many_attempts", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing"];
|
|
26
26
|
export type RegisterErrorCode = typeof REGISTER_ERROR_CODES[number];
|
|
27
27
|
export declare function isRegisterErrorCode(value: unknown): value is RegisterErrorCode;
|
|
28
28
|
/** Der Code eines geworfenen Fehlers, wenn es einer der Kassen-Anmeldung ist; sonst `undefined`. */
|
|
@@ -33,6 +33,7 @@ const fehlercodes_js_1 = require("../client/fehlercodes.js");
|
|
|
33
33
|
*/
|
|
34
34
|
exports.REGISTER_ERROR_CODES = Object.freeze([
|
|
35
35
|
'account_not_found',
|
|
36
|
+
'action_confirmation_required',
|
|
36
37
|
'admin_required',
|
|
37
38
|
'api_not_approved',
|
|
38
39
|
'app_check_invalid',
|
|
@@ -68,6 +69,7 @@ exports.REGISTER_ERROR_CODES = Object.freeze([
|
|
|
68
69
|
'register_user_not_found',
|
|
69
70
|
'register_user_only',
|
|
70
71
|
'response_translation_failed',
|
|
72
|
+
'second_factor_required',
|
|
71
73
|
'session_ended',
|
|
72
74
|
'session_expired',
|
|
73
75
|
'session_not_running',
|
|
@@ -14,7 +14,7 @@ export declare function innereNamen(schema: SchemaObjekt): Map<string, string>;
|
|
|
14
14
|
export declare const _RUECKGABE_NACH_AUSSEN: Readonly<Record<string, string>>;
|
|
15
15
|
/**
|
|
16
16
|
* Ein Belegdokument, wie Handler und Rand es vor der Uebersetzung sehen:
|
|
17
|
-
* ohne Storno-Marke
|
|
17
|
+
* ohne Storno-Marke, Lager-Standort, Lade und Schicht (storno-core.ohneInterneBelegFelder,
|
|
18
18
|
* Rand ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
19
19
|
* Beleg selbst (der Server reicht sie so durch). Wirft, wenn es kein
|
|
20
20
|
* Belegdokument ist.
|
package/dist/cjs/stored/draht.js
CHANGED
|
@@ -107,9 +107,10 @@ const ohneMarke = (o) => {
|
|
|
107
107
|
/**
|
|
108
108
|
* Interne Dokumentfelder eines Belegs, die keine Antwort traegt (Zwilling von
|
|
109
109
|
* storno-core.INTERNE_BELEG_FELDER): der Lager-Standort der Kasse, den
|
|
110
|
-
* createReceipt fuer die Lagerbuchung an den Beleg kopiert
|
|
110
|
+
* createReceipt fuer die Lagerbuchung an den Beleg kopiert, sowie Lade und
|
|
111
|
+
* Schicht, in deren Kassenstand der Beleg zaehlt.
|
|
111
112
|
*/
|
|
112
|
-
const INTERNE_BELEG_FELDER = ['lagerStandortId'];
|
|
113
|
+
const INTERNE_BELEG_FELDER = ['lagerStandortId', 'ladeId', 'schichtId', 'ausserhalbSchicht'];
|
|
113
114
|
/** Rueckgabe-Wahl innen -> aussen (Katalog RUECKGABE; stored.test.ts vergleicht mit dem Vertrag). */
|
|
114
115
|
exports._RUECKGABE_NACH_AUSSEN = Object.freeze({ lager: 'restock', defekt: 'defective', entsorgt: 'disposed' });
|
|
115
116
|
/**
|
|
@@ -159,7 +160,7 @@ function alsIso(ts) {
|
|
|
159
160
|
}
|
|
160
161
|
/**
|
|
161
162
|
* Ein Belegdokument, wie Handler und Rand es vor der Uebersetzung sehen:
|
|
162
|
-
* ohne Storno-Marke
|
|
163
|
+
* ohne Storno-Marke, Lager-Standort, Lade und Schicht (storno-core.ohneInterneBelegFelder,
|
|
163
164
|
* Rand ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
164
165
|
* Beleg selbst (der Server reicht sie so durch). Wirft, wenn es kein
|
|
165
166
|
* Belegdokument ist.
|
|
@@ -45,6 +45,19 @@ const PRUEFER = {
|
|
|
45
45
|
drawerEnabled: bool, terminalIp: ip, terminalPort: ganz(1, 65535), terminalTid: tid, shortcutHints: bool,
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Optionale Geraete-Einstellungen (Zwilling von `GERAET_OPTIONAL` und
|
|
50
|
+
* `mischeGeraet` in kasse-settings-core): sie gehen nur hinaus, wenn sie als
|
|
51
|
+
* gueltiger Text gespeichert sind; sonst fehlen sie still, ohne Eintrag in
|
|
52
|
+
* `weggelassen` (der Server meldet sie dann auch nicht).
|
|
53
|
+
*/
|
|
54
|
+
const GERAET_OPTIONAL = Object.fromEntries(settings_js_1.POS_DEVICE_OPTIONAL_FIELDS.map((feld) => [feld, (v) => (0, settings_js_1._optionalerWert)(v, false)]));
|
|
55
|
+
/**
|
|
56
|
+
* Optionale Betriebs-Schalter (Zwilling von `BETRIEB_OPTIONAL` und
|
|
57
|
+
* `mischeBetrieb`): sie gehen nur hinaus, wenn sie als Wahrheitswert
|
|
58
|
+
* gespeichert sind; sonst fehlen sie still.
|
|
59
|
+
*/
|
|
60
|
+
const BETRIEB_OPTIONAL = Object.fromEntries(settings_js_1.POS_BUSINESS_OPTIONAL_FIELDS.map((feld) => [feld, (v) => typeof v === 'boolean']));
|
|
48
61
|
/** Aufzaehlungen (aussen, englisch) je Teil. */
|
|
49
62
|
const AUFZAEHLUNGEN = {
|
|
50
63
|
business: settings_js_1.POS_BUSINESS_VALUES, device: settings_js_1.POS_DEVICE_VALUES,
|
|
@@ -128,6 +141,16 @@ function teilNachAussen(teil, gespeichert, weg) {
|
|
|
128
141
|
if (aussen === undefined || w === undefined)
|
|
129
142
|
continue;
|
|
130
143
|
const pfad = `${teil}.${aussen}`;
|
|
144
|
+
if (teil === 'device' && (0, draht_js_1.hat)(GERAET_OPTIONAL, aussen)) {
|
|
145
|
+
if (GERAET_OPTIONAL[aussen](w))
|
|
146
|
+
raus[aussen] = w;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (teil === 'business' && (0, draht_js_1.hat)(BETRIEB_OPTIONAL, aussen)) {
|
|
150
|
+
if (BETRIEB_OPTIONAL[aussen](w))
|
|
151
|
+
raus[aussen] = w;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
131
154
|
if (aussen === 'shortcuts') {
|
|
132
155
|
if (!w || typeof w !== 'object') {
|
|
133
156
|
weg.push(pfad);
|
|
@@ -194,7 +217,7 @@ function _storedPosSettingsToWire(stored) {
|
|
|
194
217
|
}
|
|
195
218
|
/** Nur fuer den Test: die Feldliste der Pruefer (muss mit der Vorgabe deckungsgleich sein). */
|
|
196
219
|
exports._PRUEFER_FELDER = Object.freeze({
|
|
197
|
-
business: [...Object.keys(PRUEFER.business), ...Object.keys(settings_js_1.POS_BUSINESS_VALUES), ...Object.keys(KARTEN)],
|
|
198
|
-
device: [...Object.keys(PRUEFER.device), ...Object.keys(settings_js_1.POS_DEVICE_VALUES), 'shortcuts'],
|
|
199
|
-
standard: { business: Object.keys(settings_js_1.POS_BUSINESS_DEFAULTS), device: Object.keys(settings_js_1.POS_DEVICE_DEFAULTS) },
|
|
220
|
+
business: [...Object.keys(PRUEFER.business), ...Object.keys(settings_js_1.POS_BUSINESS_VALUES), ...Object.keys(BETRIEB_OPTIONAL), ...Object.keys(KARTEN)],
|
|
221
|
+
device: [...Object.keys(PRUEFER.device), ...Object.keys(settings_js_1.POS_DEVICE_VALUES), ...Object.keys(GERAET_OPTIONAL), 'shortcuts'],
|
|
222
|
+
standard: { business: [...Object.keys(settings_js_1.POS_BUSINESS_DEFAULTS), ...settings_js_1.POS_BUSINESS_OPTIONAL_FIELDS], device: [...Object.keys(settings_js_1.POS_DEVICE_DEFAULTS), ...settings_js_1.POS_DEVICE_OPTIONAL_FIELDS] },
|
|
200
223
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
2
|
-
export declare const VOKABULAR_QUELLE = "
|
|
2
|
+
export declare const VOKABULAR_QUELLE = "e061453f62c8f4af21528eb51a677d6f947553f5b78621d64497f45833dd8b09";
|
|
3
3
|
/** Schema-Notation des Vertrags: Blatt 'aussen': 'innen', Objekt { __: 'innen', ... }, Liste [ { __: 'innen', ... } ]. */
|
|
4
4
|
export type SchemaEintrag = string | SchemaObjekt | readonly [SchemaObjekt];
|
|
5
5
|
export interface SchemaObjekt {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.KATALOGE = exports.ARTIKEL_FELDER = exports.SCHEMAS = exports.VOKABULAR_QUELLE = void 0;
|
|
6
6
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
7
|
-
exports.VOKABULAR_QUELLE = "
|
|
7
|
+
exports.VOKABULAR_QUELLE = "e061453f62c8f4af21528eb51a677d6f947553f5b78621d64497f45833dd8b09";
|
|
8
8
|
/** Schema je Endpunkt (aussen -> innen) und Wertverweise auf die Kataloge. */
|
|
9
9
|
exports.SCHEMAS = {
|
|
10
10
|
"getReceipt": {
|
|
@@ -21,7 +21,8 @@ exports.SCHEMAS = {
|
|
|
21
21
|
"items": [
|
|
22
22
|
{
|
|
23
23
|
"__": "items",
|
|
24
|
-
"receivedImmediately": "sofortErhalten"
|
|
24
|
+
"receivedImmediately": "sofortErhalten",
|
|
25
|
+
"keptByEmployee": "direkt"
|
|
25
26
|
}
|
|
26
27
|
]
|
|
27
28
|
},
|
|
@@ -96,6 +97,7 @@ exports.SCHEMAS = {
|
|
|
96
97
|
"change": "rueckgeld",
|
|
97
98
|
"tipChips": "tgChips",
|
|
98
99
|
"exactCash": "schnellbar",
|
|
100
|
+
"tipKeptByDefault": "tgDirekt",
|
|
99
101
|
"checkoutMode": "kassierenModus",
|
|
100
102
|
"receiptOutput": "belegAusgabe",
|
|
101
103
|
"doneScreenSeconds": "fertigSekunden",
|
|
@@ -151,6 +153,7 @@ exports.SCHEMAS = {
|
|
|
151
153
|
"qrMode": "qrModus",
|
|
152
154
|
"drawerEnabled": "ladeAn",
|
|
153
155
|
"drawerAutoOpen": "ladeAuto",
|
|
156
|
+
"drawerId": "ladeId",
|
|
154
157
|
"terminalIp": "terminalIp",
|
|
155
158
|
"terminalPort": "terminalPort",
|
|
156
159
|
"terminalTid": "terminalTid",
|
|
@@ -268,30 +271,133 @@ exports.ARTIKEL_FELDER = [
|
|
|
268
271
|
/** Wertkataloge innen (deutsch) -> aussen (englisch). */
|
|
269
272
|
exports.KATALOGE = {
|
|
270
273
|
"E1A_GRUPPE": {
|
|
274
|
+
"erloese": "revenue",
|
|
275
|
+
"erloese_waren": "revenue_goods",
|
|
276
|
+
"erloese_leistungen": "revenue_services",
|
|
277
|
+
"eigenverbrauch": "own_use_withdrawal",
|
|
278
|
+
"trinkgeld_erhalten": "tips_received",
|
|
279
|
+
"erloese_109a": "revenue_109a",
|
|
280
|
+
"anlagenverkauf": "asset_sales_withdrawals",
|
|
281
|
+
"uebrige_einnahmen": "other_income",
|
|
282
|
+
"zinsertrag": "interest_income",
|
|
283
|
+
"versicherungsentschaedigung": "insurance_payout",
|
|
284
|
+
"foerderung": "subsidy",
|
|
285
|
+
"steuerrueckzahlung": "tax_refund",
|
|
286
|
+
"geschenk_erhalten": "gift_received",
|
|
287
|
+
"vertragsstrafe_erhalten": "penalty_received",
|
|
288
|
+
"ust_vereinnahmt": "vat_collected_gross_system",
|
|
289
|
+
"durchlaufend_einnahme": "pass_through_receipt",
|
|
271
290
|
"waren": "goods_materials",
|
|
272
291
|
"fremdleistungen": "third_party_services",
|
|
292
|
+
"subunternehmer": "subcontractors",
|
|
293
|
+
"leihpersonal": "temporary_staff",
|
|
273
294
|
"personal": "staff_costs",
|
|
295
|
+
"loehne": "wages_salaries",
|
|
296
|
+
"lohnabgaben": "payroll_taxes",
|
|
297
|
+
"personal_sozialaufwand": "staff_welfare",
|
|
298
|
+
"kleidung_mitarbeiter": "staff_clothing",
|
|
299
|
+
"abschreibung": "depreciation_group",
|
|
274
300
|
"afa": "depreciation",
|
|
275
301
|
"gwg": "low_value_assets",
|
|
276
|
-
"
|
|
302
|
+
"kfz_afa": "vehicle_depreciation",
|
|
303
|
+
"afa_degressiv": "declining_balance_depreciation",
|
|
304
|
+
"afa_gebaeude": "building_depreciation",
|
|
305
|
+
"anlagenabgang": "asset_disposal_book_value",
|
|
277
306
|
"instandhaltung_gebaeude": "building_maintenance",
|
|
278
307
|
"reise": "travel_expenses",
|
|
308
|
+
"fahrkarten": "travel_tickets",
|
|
309
|
+
"naechtigung_beleg": "lodging_invoice",
|
|
310
|
+
"reise_nebenkosten": "travel_incidentals",
|
|
311
|
+
"fortbildungsreise": "conference_travel",
|
|
312
|
+
"kilometergeld_pkw": "mileage_allowance_car",
|
|
313
|
+
"kilometergeld_motorrad": "mileage_allowance_motorcycle",
|
|
314
|
+
"kilometergeld_fahrrad": "mileage_allowance_bicycle",
|
|
315
|
+
"mitfahrerzuschlag": "passenger_allowance",
|
|
316
|
+
"tagesgeld_inland": "per_diem_domestic",
|
|
317
|
+
"tagesgeld_ausland": "per_diem_abroad",
|
|
318
|
+
"naechtigung_pauschal": "lodging_allowance",
|
|
279
319
|
"oeffi_pauschale": "public_transport_allowance",
|
|
280
320
|
"kfz": "vehicle_costs",
|
|
321
|
+
"treibstoff": "vehicle_fuel",
|
|
322
|
+
"kfz_service": "vehicle_service_repair",
|
|
323
|
+
"kfz_versicherung": "vehicle_insurance",
|
|
324
|
+
"kfz_steuer": "vehicle_tax",
|
|
325
|
+
"vignette_maut": "toll_vignette",
|
|
326
|
+
"parken_garage": "parking_garage",
|
|
327
|
+
"autofahrerklub": "motoring_club",
|
|
328
|
+
"miete": "rent_lease",
|
|
329
|
+
"miete_geschaeftsraum": "premises_rent",
|
|
330
|
+
"leasing_kfz": "vehicle_lease",
|
|
331
|
+
"leasing_geraete": "equipment_lease",
|
|
332
|
+
"coworking": "coworking_storage",
|
|
281
333
|
"provisionen": "commissions_royalties",
|
|
282
334
|
"werbung": "advertising_hospitality",
|
|
335
|
+
"werbung_anzeigen": "advertising",
|
|
336
|
+
"geschenke": "gifts",
|
|
337
|
+
"werbegeschenke": "promotional_gifts",
|
|
338
|
+
"geschenke_geschaeftsfreunde": "business_gifts",
|
|
339
|
+
"bewirtung": "hospitality",
|
|
340
|
+
"bewirtung_werbung": "hospitality_advertising",
|
|
341
|
+
"bewirtung_voll": "hospitality_full",
|
|
342
|
+
"bewirtung_repraesentation": "hospitality_representation",
|
|
343
|
+
"sponsoring": "sponsorship",
|
|
344
|
+
"trinkgeld_gegeben": "tips_given",
|
|
345
|
+
"kranz_blumen": "wreaths_flowers",
|
|
346
|
+
"spende_sonstige": "donation_non_qualifying",
|
|
347
|
+
"spenden": "donations_qualifying",
|
|
348
|
+
"spende_forschung_kultur": "donation_research_culture",
|
|
349
|
+
"spende_mildtaetig": "donation_charity",
|
|
350
|
+
"spende_umwelt_tier": "donation_environment_animals",
|
|
351
|
+
"spende_feuerwehr": "donation_fire_brigade",
|
|
352
|
+
"spende_sport": "donation_sports",
|
|
353
|
+
"spende_kindergarten": "donation_kindergarten",
|
|
354
|
+
"spende_schule": "donation_school",
|
|
355
|
+
"spende_sonstige_beguenstigt": "donation_other_qualifying",
|
|
356
|
+
"arbeitszimmer": "home_office_room",
|
|
357
|
+
"arbeitsplatzpauschale": "workspace_allowance_group",
|
|
358
|
+
"arbeitsplatz_gross": "workspace_allowance_large",
|
|
359
|
+
"arbeitsplatz_klein": "workspace_allowance_small",
|
|
360
|
+
"arbeitsplatz_mobiliar": "ergonomic_furniture",
|
|
283
361
|
"zinsen": "interest",
|
|
362
|
+
"zinsen_kredit": "loan_interest",
|
|
363
|
+
"zinsen_stundung": "deferral_interest",
|
|
284
364
|
"sv_beitraege": "social_insurance_contributions",
|
|
285
|
-
"
|
|
286
|
-
"
|
|
287
|
-
"
|
|
288
|
-
"
|
|
289
|
-
"beratung": "legal_advisory",
|
|
365
|
+
"svs": "svs_contributions",
|
|
366
|
+
"vorsorgekasse": "self_employed_provision_fund",
|
|
367
|
+
"kammer_versorgung": "chamber_pension_fund",
|
|
368
|
+
"arbeitslosen_optin": "voluntary_unemployment_insurance",
|
|
290
369
|
"uebrige_ausgaben": "other_expenses",
|
|
291
|
-
"
|
|
292
|
-
"
|
|
293
|
-
"
|
|
294
|
-
"
|
|
370
|
+
"telefon_internet": "phone_internet",
|
|
371
|
+
"buero": "office_supplies",
|
|
372
|
+
"software": "software_subscriptions",
|
|
373
|
+
"fachliteratur": "professional_literature",
|
|
374
|
+
"fortbildung": "training",
|
|
375
|
+
"beratung": "legal_advisory",
|
|
376
|
+
"steuerberatung": "tax_advisory",
|
|
377
|
+
"rechtsberatung": "legal_counsel",
|
|
378
|
+
"versicherung": "insurance",
|
|
379
|
+
"versicherung_betrieb": "business_insurance",
|
|
380
|
+
"mitgliedsbeitrag": "membership_fee",
|
|
381
|
+
"kammer_verbaende": "chamber_association_fees",
|
|
382
|
+
"betriebssteuern": "business_taxes_fees",
|
|
383
|
+
"bankspesen": "bank_charges",
|
|
384
|
+
"kleidung": "clothing",
|
|
385
|
+
"berufskleidung": "work_clothing",
|
|
386
|
+
"gruendung": "startup_costs",
|
|
387
|
+
"strafe": "penalty",
|
|
388
|
+
"schadenersatz_gezahlt": "damages_paid",
|
|
389
|
+
"ust_bezahlt": "vat_paid_gross_system",
|
|
390
|
+
"telefon_buero": "phone_internet_office_supplies",
|
|
391
|
+
"nicht_abzugsfaehig": "non_deductible",
|
|
392
|
+
"privat": "non_deductible_private",
|
|
393
|
+
"einkommensteuer": "non_deductible_income_tax",
|
|
394
|
+
"strafen": "non_deductible_fines",
|
|
395
|
+
"brille_uhr": "non_deductible_glasses_watch",
|
|
396
|
+
"kleidung_buergerlich": "non_deductible_clothing",
|
|
397
|
+
"zeitungen": "non_deductible_newspapers",
|
|
398
|
+
"fitness_fuehrerschein": "non_deductible_fitness_licence",
|
|
399
|
+
"ball_kultur": "non_deductible_events",
|
|
400
|
+
"durchlaufend_ausgabe": "pass_through_payment"
|
|
295
401
|
},
|
|
296
402
|
"KASSE_BETRIEB_WERTE.cardProvider": {
|
|
297
403
|
"keiner": "none",
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* umhuellt, muss ihn weiterhin absetzen koennen.
|
|
14
14
|
*/
|
|
15
15
|
import type { PdfOrData, TransportBodyFields, TransportCallOptions } from './transport.js';
|
|
16
|
-
export declare const ALL_CALLS: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCashregisterReport", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "getReportV2", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listBrands", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyStock", "listMyStockLocations", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "recordInvoicePayment", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "reportCustomerContract", "requestCustomerSignature", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount"];
|
|
16
|
+
export declare const ALL_CALLS: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCashregisterReport", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "getReportV2", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listBrands", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyStock", "listMyStockLocations", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "recordInvoicePayment", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "reportCustomerContract", "requestCustomerSignature", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook", "getArticle", "listArticles", "lookupArticleByCode", "listLocations", "getStock", "listStock", "listStockMovements", "createWebhook", "updateWebhook", "deleteWebhook", "listWebhooks", "sendWebhookTest", "rotateWebhookSecret", "listWebhookDeliveries", "createArticle", "updateArticle", "deactivateArticle", "receiveGoods", "transferStock", "recordStockLoss", "changeStockCondition", "reverseStockMovement", "createReservation", "extendReservation", "releaseReservation", "getReservation", "listReservations", "createVariantGroup", "updateVariantGroup", "getVariantGroup", "listVariantGroups", "addVariant", "createStocktake", "listStocktakes", "getStocktake", "listStocktakeItems", "recordStocktakeCount", "voidStocktakeCount", "listStocktakeCounts", "reviewStocktake", "recountStocktake", "closeStocktake", "cancelStocktake", "getStocktakePdf", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount", "getMyDrawerState", "openMyShift", "recordMyCashMovement", "logMyDrawerOpenings", "getMyShiftReport", "closeMyShift"];
|
|
17
17
|
export type ApiCall = typeof ALL_CALLS[number];
|
|
18
18
|
/**
|
|
19
19
|
* Die oeffentlichen Endpunkte unter `/v3` (`https://api.kasseneck.at/v3/<name>`),
|
|
@@ -28,7 +28,7 @@ export declare const PUBLIC_CALLS: readonly ["createReceipt", "getReceipt", "can
|
|
|
28
28
|
* `endpoints.register`. Sechs davon sind zugleich oeffentlich; die Kasse ruft
|
|
29
29
|
* sie trotzdem ueber diesen Weg (ein Dialekt je Client, Nachtrag §5.2).
|
|
30
30
|
*/
|
|
31
|
-
export declare const POS_CALLS: readonly ["pairRegisterDevice", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "registerUserLogin", "registerPinLogin", "renewRegisterSession", "endRegisterSession", "unpairRegisterDevice", "listMyCashregisters", "listMyReceipts", "getReceipt", "createReceipt", "generateFullReceiptId", "cancelReceipt", "sendReceiptEmail", "listMyArticleGroups", "listMyArticles", "getKasseSettings", "setMyKasseSettings", "setMyKasseLogo", "setMyRegisterDeviceSettings", "listMyPrinters", "createPrintJob", "getPrintJob", "listMyTipRecipients", "listMyStockLocations", "listMyStock", "setMyCashregisterStockLocation", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount"];
|
|
31
|
+
export declare const POS_CALLS: readonly ["pairRegisterDevice", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "registerUserLogin", "registerPinLogin", "renewRegisterSession", "endRegisterSession", "unpairRegisterDevice", "listMyCashregisters", "listMyReceipts", "getReceipt", "createReceipt", "generateFullReceiptId", "cancelReceipt", "sendReceiptEmail", "listMyArticleGroups", "listMyArticles", "getKasseSettings", "setMyKasseSettings", "setMyKasseLogo", "setMyRegisterDeviceSettings", "listMyPrinters", "createPrintJob", "getPrintJob", "listMyTipRecipients", "listMyStockLocations", "listMyStock", "setMyCashregisterStockLocation", "listMyStocktakes", "listMyStocktakeItems", "listMyStocktakeCounts", "recordMyStocktakeCount", "voidMyStocktakeCount", "getMyDrawerState", "openMyShift", "recordMyCashMovement", "logMyDrawerOpenings", "getMyShiftReport", "closeMyShift"];
|
|
32
32
|
export type PublicCall = typeof PUBLIC_CALLS[number];
|
|
33
33
|
export type PosCall = typeof POS_CALLS[number];
|
|
34
34
|
/**
|
|
@@ -49,7 +49,7 @@ export type PosCall = typeof POS_CALLS[number];
|
|
|
49
49
|
* [ALL_CALLS], [PUBLIC_CALLS] und [POS_CALLS] steht entweder hier oder in
|
|
50
50
|
* [CALLS_WITHOUT_EFFECT] (Waechter `test/ausgang-einordnung.test.ts`).
|
|
51
51
|
*/
|
|
52
|
-
export declare const UNKNOWN_OUTCOME_CALLS: readonly ["activateCashregister", "addVariant", "cancelInvoice", "cancelReceipt", "cancelStocktake", "changeStockCondition", "closeStocktake", "createArticle", "createCreditNote", "createCustomer", "createCustomerCashregister", "createInvoiceItem", "createPartnerCustomer", "createPartnerWebhook", "createPrintJob", "createReceipt", "createReservation", "createStocktake", "createVariantGroup", "createWebhook", "deactivateArticle", "deletePartnerWebhook", "deleteWebhook", "extendReservation", "financeWebService", "hobexPayApi", "hobexRefundApi", "issueInvoice", "pairRegisterDevice", "receiveGoods", "recordInvoicePayment", "recordMyStocktakeCount", "recordStockLoss", "recordStocktakeCount", "recountStocktake", "releaseReservation", "reportCustomerContract", "requestCustomerSignature", "reverseStockMovement", "reviewStocktake", "revokeCustomerMandate", "rotatePartnerWebhookSecret", "rotateWebhookSecret", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "sendWebhookTest", "setCustomerMandate", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "transferStock", "unpairRegisterDevice", "updateArticle", "updateCustomer", "updateInvoiceItem", "updatePartnerWebhook", "updateVariantGroup", "updateWebhook", "voidMyStocktakeCount", "voidStocktakeCount", "withdrawInvoiceItem"];
|
|
52
|
+
export declare const UNKNOWN_OUTCOME_CALLS: readonly ["activateCashregister", "addVariant", "cancelInvoice", "cancelReceipt", "cancelStocktake", "changeStockCondition", "closeMyShift", "closeStocktake", "createArticle", "createCreditNote", "createCustomer", "createCustomerCashregister", "createInvoiceItem", "createPartnerCustomer", "createPartnerWebhook", "createPrintJob", "createReceipt", "createReservation", "createStocktake", "createVariantGroup", "createWebhook", "deactivateArticle", "deletePartnerWebhook", "deleteWebhook", "extendReservation", "financeWebService", "hobexPayApi", "hobexRefundApi", "issueInvoice", "logMyDrawerOpenings", "openMyShift", "pairRegisterDevice", "receiveGoods", "recordInvoicePayment", "recordMyCashMovement", "recordMyStocktakeCount", "recordStockLoss", "recordStocktakeCount", "recountStocktake", "releaseReservation", "reportCustomerContract", "requestCustomerSignature", "reverseStockMovement", "reviewStocktake", "revokeCustomerMandate", "rotatePartnerWebhookSecret", "rotateWebhookSecret", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "sendWebhookTest", "setCustomerMandate", "setMyCashregisterStockLocation", "setMyKasseLogo", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "transferStock", "unpairRegisterDevice", "updateArticle", "updateCustomer", "updateInvoiceItem", "updatePartnerWebhook", "updateVariantGroup", "updateWebhook", "voidMyStocktakeCount", "voidStocktakeCount", "withdrawInvoiceItem"];
|
|
53
53
|
/** Warum ein Aufruf keine Wirkung hat, die ein Zeitlimit offen lassen koennte. */
|
|
54
54
|
export type CallWithoutEffectReason = 'read' | 'repeatable';
|
|
55
55
|
/**
|
|
@@ -85,10 +85,10 @@ export declare const CALLS_WITHOUT_EFFECT: Readonly<Record<string, CallWithoutEf
|
|
|
85
85
|
* absetzt, sagt es mit `hasEffect: true`.
|
|
86
86
|
*/
|
|
87
87
|
export declare function isUnknownOutcomeCall(name: string): boolean;
|
|
88
|
-
/** Einer der
|
|
88
|
+
/** Einer der 39 Aufrufe des Kassenwegs. */
|
|
89
89
|
export declare function isPosCall(name: string): boolean;
|
|
90
90
|
/**
|
|
91
|
-
* Nur ueber den Kassenweg erreichbar (
|
|
91
|
+
* Nur ueber den Kassenweg erreichbar (33 Namen): unter `api.kasseneck.at/v3`
|
|
92
92
|
* gibt es sie nicht. Der Transport schickt sie darum ohne eigene Basis an
|
|
93
93
|
* [POS_BASE_URL] statt an die oeffentliche Basis.
|
|
94
94
|
*/
|
|
@@ -125,6 +125,13 @@ export const ALL_CALLS = [
|
|
|
125
125
|
'listMyStocktakeCounts',
|
|
126
126
|
'recordMyStocktakeCount',
|
|
127
127
|
'voidMyStocktakeCount',
|
|
128
|
+
// Schicht, Kassenstand und Lade-Protokoll an der Kasse (./pos)
|
|
129
|
+
'getMyDrawerState',
|
|
130
|
+
'openMyShift',
|
|
131
|
+
'recordMyCashMovement',
|
|
132
|
+
'logMyDrawerOpenings',
|
|
133
|
+
'getMyShiftReport',
|
|
134
|
+
'closeMyShift',
|
|
128
135
|
];
|
|
129
136
|
/**
|
|
130
137
|
* Die oeffentlichen Endpunkte unter `/v3` (`https://api.kasseneck.at/v3/<name>`),
|
|
@@ -288,6 +295,13 @@ export const POS_CALLS = [
|
|
|
288
295
|
'listMyStocktakeCounts',
|
|
289
296
|
'recordMyStocktakeCount',
|
|
290
297
|
'voidMyStocktakeCount',
|
|
298
|
+
// Schicht, Kassenstand und Lade-Protokoll: nur ueber den Kassenweg.
|
|
299
|
+
'getMyDrawerState',
|
|
300
|
+
'openMyShift',
|
|
301
|
+
'recordMyCashMovement',
|
|
302
|
+
'logMyDrawerOpenings',
|
|
303
|
+
'getMyShiftReport',
|
|
304
|
+
'closeMyShift',
|
|
291
305
|
];
|
|
292
306
|
/**
|
|
293
307
|
* Die Aufrufe **mit Wirkung**, alphabetisch: sie legen etwas an, aendern oder
|
|
@@ -314,6 +328,7 @@ export const UNKNOWN_OUTCOME_CALLS = [
|
|
|
314
328
|
'cancelReceipt',
|
|
315
329
|
'cancelStocktake',
|
|
316
330
|
'changeStockCondition',
|
|
331
|
+
'closeMyShift',
|
|
317
332
|
'closeStocktake',
|
|
318
333
|
'createArticle',
|
|
319
334
|
'createCreditNote',
|
|
@@ -336,9 +351,12 @@ export const UNKNOWN_OUTCOME_CALLS = [
|
|
|
336
351
|
'hobexPayApi',
|
|
337
352
|
'hobexRefundApi',
|
|
338
353
|
'issueInvoice',
|
|
354
|
+
'logMyDrawerOpenings',
|
|
355
|
+
'openMyShift',
|
|
339
356
|
'pairRegisterDevice',
|
|
340
357
|
'receiveGoods',
|
|
341
358
|
'recordInvoicePayment',
|
|
359
|
+
'recordMyCashMovement',
|
|
342
360
|
'recordMyStocktakeCount',
|
|
343
361
|
'recordStockLoss',
|
|
344
362
|
'recordStocktakeCount',
|
|
@@ -417,6 +435,8 @@ export const CALLS_WITHOUT_EFFECT = Object.freeze({
|
|
|
417
435
|
getInvoiceSetupStatus: 'read',
|
|
418
436
|
getInvoiceXml: 'read',
|
|
419
437
|
getKasseSettings: 'read',
|
|
438
|
+
getMyDrawerState: 'read',
|
|
439
|
+
getMyShiftReport: 'read',
|
|
420
440
|
getPartnerBilling: 'read',
|
|
421
441
|
getPartnerBillingMonth: 'read',
|
|
422
442
|
getPartnerCustomer: 'read',
|
|
@@ -481,12 +501,12 @@ export function isUnknownOutcomeCall(name) {
|
|
|
481
501
|
const OEFFENTLICH = new Set(PUBLIC_CALLS);
|
|
482
502
|
const KASSENWEG = new Set(POS_CALLS);
|
|
483
503
|
const NUR_KASSE = new Set(POS_CALLS.filter((name) => !OEFFENTLICH.has(name)));
|
|
484
|
-
/** Einer der
|
|
504
|
+
/** Einer der 39 Aufrufe des Kassenwegs. */
|
|
485
505
|
export function isPosCall(name) {
|
|
486
506
|
return KASSENWEG.has(name);
|
|
487
507
|
}
|
|
488
508
|
/**
|
|
489
|
-
* Nur ueber den Kassenweg erreichbar (
|
|
509
|
+
* Nur ueber den Kassenweg erreichbar (33 Namen): unter `api.kasseneck.at/v3`
|
|
490
510
|
* gibt es sie nicht. Der Transport schickt sie darum ohne eigene Basis an
|
|
491
511
|
* [POS_BASE_URL] statt an die oeffentliche Basis.
|
|
492
512
|
*/
|
|
@@ -272,6 +272,8 @@ export const PAYMENT_CALL_REJECTED_CODES = Object.freeze([
|
|
|
272
272
|
'app_check_invalid',
|
|
273
273
|
'unauthorized',
|
|
274
274
|
'password_change_required', // Pflichtwechsel des Passworts offen: vor dem Handler abgewiesen
|
|
275
|
+
'second_factor_required', // Anmeldung wartet auf die Bestaetigung in der Kasseneck-App: vor dem Handler abgewiesen
|
|
276
|
+
'action_confirmation_required', // Aenderung wartet auf die Bestaetigung in der Kasseneck-App: vor dem Handler abgewiesen
|
|
275
277
|
'mfa_required',
|
|
276
278
|
'user_verification_failed',
|
|
277
279
|
'admin_required',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReceiptType, type ReceiptTypeKey, KeckPaymentMethod, type KeckPaymentMethodKey } from '../enums/index.js';
|
|
2
|
-
import { type Receipt, type ReceiptCompany, type ReceiptItem, type Voucher, type ReceiptSummary, type ReportMonth, type CancellationItem, type CancellationOf, type CancellationReason, type ReturnDisposition, type ReceiptPaymentInput, type RegistrationInfo, type ReceiptEmailVia } from '../models/index.js';
|
|
2
|
+
import { type Receipt, type ReceiptCompany, type ReceiptItem, type Voucher, type ReceiptSummary, type ReportMonth, type CancellationItem, type CancellationOf, type CancellationReason, type TipRefundSource, type ReturnDisposition, type ReceiptPaymentInput, type RegistrationInfo, type ReceiptEmailVia } from '../models/index.js';
|
|
3
3
|
import type { InternerTransport } from './aufrufe.js';
|
|
4
4
|
import { type ReceiptLayout } from '../receipt/layout.js';
|
|
5
5
|
import type { PosPaperSize } from '../printing/escpos.js';
|
|
@@ -49,6 +49,12 @@ export interface ReceiptCommonOptions {
|
|
|
49
49
|
* anteilig je Steuersatz). Nur auf `standard` und `training`.
|
|
50
50
|
*/
|
|
51
51
|
tip?: number | TipOptions;
|
|
52
|
+
/**
|
|
53
|
+
* Lade, in deren Kassenstand der Beleg zaehlt (Schichtbetrieb, Geraete-
|
|
54
|
+
* Einstellung `drawerId`). Ohne Angabe gilt die Lade des Geraets bzw. die
|
|
55
|
+
* Hauptlade der Kasse. Leer oder kein Text: wirft vor dem Senden.
|
|
56
|
+
*/
|
|
57
|
+
drawerId?: string;
|
|
52
58
|
}
|
|
53
59
|
/** Trinkgeld mit eigener Zahlart und/oder Empfaengern (Kassen-Benutzer-IDs, Summe = cents). */
|
|
54
60
|
export interface TipOptions {
|
|
@@ -73,6 +79,15 @@ export interface TipOptions {
|
|
|
73
79
|
* (ohne angemeldeten Kassen-Benutzer) gilt die Einschraenkung nicht.
|
|
74
80
|
*/
|
|
75
81
|
receivedImmediately?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Bar-Trinkgeld „gleich behalten“: die Mitarbeiterin steckt das Trinkgeld
|
|
84
|
+
* beim Verkauf gleich ein. Der Beleg bleibt, wie er ist (signiert, im DEP);
|
|
85
|
+
* nur im Kassenstand zaehlt der Betrag nicht ins Bar-Soll und gilt sofort als
|
|
86
|
+
* „schon genommen“. Nur `true` geht hinaus. Der Server nimmt es nur bei
|
|
87
|
+
* Mitarbeiter-Trinkgeld, bar und sofort erhalten; sonst faellt es still weg.
|
|
88
|
+
* Vorbelegung des Schalters: [posTipKeptByDefault] der Kassen-Einstellungen.
|
|
89
|
+
*/
|
|
90
|
+
keptByEmployee?: boolean;
|
|
76
91
|
}
|
|
77
92
|
export interface TipRecipientShare {
|
|
78
93
|
registerUserId: string;
|
|
@@ -135,6 +150,24 @@ export type CancelReceiptOptions = {
|
|
|
135
150
|
* Kassenweg (Kanal `app`, `registerUserAuth`).
|
|
136
151
|
*/
|
|
137
152
|
payments?: ReceiptPaymentInput[];
|
|
153
|
+
/** Lade, in deren Kassenstand der Storno zaehlt; wie bei [ReceiptCommonOptions.drawerId]. */
|
|
154
|
+
drawerId?: string;
|
|
155
|
+
/**
|
|
156
|
+
* Antwort auf „Trinkgeld auch zurueckgeben?“ (Schichten-Spec, Nachtrag 5). `false`: ohne das
|
|
157
|
+
* Mitarbeiter-Trinkgeld (ohne `items` = alle Restmengen ausser dem Trinkgeld); `true` mit `items`:
|
|
158
|
+
* das noch offene Trinkgeld kommt dazu. Fehlt = wie bisher (ein Vollstorno nimmt es mit). Die
|
|
159
|
+
* Positionen dazu rechnet [cancellationItemsForTip]. An einem Beleg mit Wertgutschein gibt es
|
|
160
|
+
* `false` nicht (`tip_keep_not_possible_with_voucher`, siehe [asksRefundTip]).
|
|
161
|
+
*/
|
|
162
|
+
refundTip?: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Antwort auf „Woher kommt das Trinkgeld zurueck?“, nur bei Barrueckgabe ([asksTipRefundSource]):
|
|
165
|
+
* `drawer` aus der Lade, `employee` gibt die Mitarbeiterin direkt. Nicht zusammen mit
|
|
166
|
+
* `refundTip: false`. Der Server weist eine Quelle ohne Bargeld-Deckung ab
|
|
167
|
+
* (`tip_refund_source_requires_cash`). `refundTip: true` ohne Quelle heisst bei Barrueckgabe:
|
|
168
|
+
* aus der Lade (kein „gibt die Mitarbeiterin direkt“).
|
|
169
|
+
*/
|
|
170
|
+
tipRefundSource?: TipRefundSource;
|
|
138
171
|
} & ({
|
|
139
172
|
receipt: Receipt;
|
|
140
173
|
cashregisterId?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReceiptType, KeckPaymentMethod, CreditCardProvider, VoucherAction, VoucherType, } from '../enums/index.js';
|
|
2
|
-
import { fromReceiptCompanyPayload, fromReceiptPayload, toReceiptItemPayload, toVoucherPayload, receiptItemIsValid, voucherIsValid, fromReceiptSummaryPayload, isCancellationReason, isReturnDisposition, RETURN_DISPOSITIONS, RECEIPT_EMAIL_VIAS, readRegistrationInfo, } from '../models/index.js';
|
|
2
|
+
import { fromReceiptCompanyPayload, fromReceiptPayload, toReceiptItemPayload, toVoucherPayload, receiptItemIsValid, voucherIsValid, fromReceiptSummaryPayload, isCancellationReason, isReturnDisposition, RETURN_DISPOSITIONS, isTipRefundSource, TIP_REFUND_SOURCES, RECEIPT_EMAIL_VIAS, readRegistrationInfo, } from '../models/index.js';
|
|
3
3
|
import { parseServerTimeStamp, toViennaWallClock } from '../vienna-time.js';
|
|
4
4
|
import { euroToCents } from '../money.js';
|
|
5
5
|
import { KasseneckValidationError, isKasseneckApiError, signiertGelesen } from './errors.js';
|
|
@@ -117,8 +117,18 @@ function createReceiptParams(options) {
|
|
|
117
117
|
if (options.legalMessage != null) {
|
|
118
118
|
params['legalMessage'] = options.legalMessage.join('\n');
|
|
119
119
|
}
|
|
120
|
+
if (options.drawerId !== undefined) {
|
|
121
|
+
params['drawerId'] = ladeKennung('createReceipt', options.drawerId);
|
|
122
|
+
}
|
|
120
123
|
return params;
|
|
121
124
|
}
|
|
125
|
+
/** Die Lade eines Belegs: ein nicht leerer Text, sonst wirft der Aufruf vor dem Senden. */
|
|
126
|
+
function ladeKennung(name, wert) {
|
|
127
|
+
if (typeof wert !== 'string' || wert.trim() === '') {
|
|
128
|
+
throw new KasseneckValidationError(name, 'drawerId muss eine Kennung sein (oder weglassen)', 'request');
|
|
129
|
+
}
|
|
130
|
+
return wert;
|
|
131
|
+
}
|
|
122
132
|
/** Felder des alten Einzel-Zahlungswegs; unter /v3 abgewiesen. */
|
|
123
133
|
const ALTE_ZAHLFELDER = ['paymentMethod', 'paymentMethodFromServer', 'creditCardProvider', 'cardPaymentId', 'cardPaymentData'];
|
|
124
134
|
/** Normalbeleg (Verkauf) nach RKSV. */
|
|
@@ -172,6 +182,15 @@ export async function cancelReceipt(transport, options) {
|
|
|
172
182
|
if (options.note !== undefined && options.note.length > NOTE_MAX) {
|
|
173
183
|
throw new KasseneckValidationError('cancelReceipt', `Anmerkung ist zu lang (hoechstens ${NOTE_MAX} Zeichen)`, 'request');
|
|
174
184
|
}
|
|
185
|
+
if (options.refundTip !== undefined && typeof options.refundTip !== 'boolean') {
|
|
186
|
+
throw new KasseneckValidationError('cancelReceipt', 'refundTip muss true oder false sein (oder weglassen)', 'request');
|
|
187
|
+
}
|
|
188
|
+
if (options.tipRefundSource !== undefined && !isTipRefundSource(options.tipRefundSource)) {
|
|
189
|
+
throw new KasseneckValidationError('cancelReceipt', `tipRefundSource: erlaubt sind ${TIP_REFUND_SOURCES.join(', ')}`, 'request');
|
|
190
|
+
}
|
|
191
|
+
if (options.tipRefundSource !== undefined && options.refundTip === false) {
|
|
192
|
+
throw new KasseneckValidationError('cancelReceipt', 'tipRefundSource nur, wenn das Trinkgeld zurueckgeht (refundTip nicht false)', 'request');
|
|
193
|
+
}
|
|
175
194
|
const altfeld = ALTE_ZAHLFELDER.find((feld) => options[feld] != null);
|
|
176
195
|
if (altfeld != null) {
|
|
177
196
|
throw new KasseneckValidationError('cancelReceipt', `${altfeld} gibt es unter /v3 nicht mehr: Rueckzahlungen gehen als payments hinaus.`, 'request');
|
|
@@ -194,6 +213,12 @@ export async function cancelReceipt(transport, options) {
|
|
|
194
213
|
params.note = options.note;
|
|
195
214
|
if (zahlungen !== undefined)
|
|
196
215
|
params.payments = zahlungen;
|
|
216
|
+
if (options.drawerId !== undefined)
|
|
217
|
+
params.drawerId = ladeKennung('cancelReceipt', options.drawerId);
|
|
218
|
+
if (options.refundTip !== undefined)
|
|
219
|
+
params.refundTip = options.refundTip;
|
|
220
|
+
if (options.tipRefundSource !== undefined)
|
|
221
|
+
params.tipRefundSource = options.tipRefundSource;
|
|
197
222
|
const daten = await transport('cancelReceipt', params);
|
|
198
223
|
return signiertGelesen('cancelReceipt', () => stornoAusHuelle(daten));
|
|
199
224
|
}
|
|
@@ -514,6 +539,14 @@ function gepruefterTip(tip) {
|
|
|
514
539
|
}
|
|
515
540
|
nutzlast['receivedImmediately'] = tip.receivedImmediately;
|
|
516
541
|
}
|
|
542
|
+
if (tip.keptByEmployee != null) {
|
|
543
|
+
if (typeof tip.keptByEmployee !== 'boolean') {
|
|
544
|
+
throw eingabefehler('Trinkgeld: keptByEmployee muss true oder false sein.');
|
|
545
|
+
}
|
|
546
|
+
// `false` ist dasselbe wie weglassen: die Nutzlast bleibt wie bisher.
|
|
547
|
+
if (tip.keptByEmployee)
|
|
548
|
+
nutzlast['keptByEmployee'] = true;
|
|
549
|
+
}
|
|
517
550
|
if (tip.recipients != null) {
|
|
518
551
|
if (!Array.isArray(tip.recipients) || tip.recipients.length === 0) {
|
|
519
552
|
throw eingabefehler('Trinkgeld: recipients darf nicht leer sein.');
|
|
@@ -538,7 +571,7 @@ function gepruefterTip(tip) {
|
|
|
538
571
|
}
|
|
539
572
|
return nutzlast;
|
|
540
573
|
}
|
|
541
|
-
const TIP_FELDER = ['cents', 'paymentMethod', 'recipients', 'receivedImmediately'];
|
|
574
|
+
const TIP_FELDER = ['cents', 'paymentMethod', 'recipients', 'receivedImmediately', 'keptByEmployee'];
|
|
542
575
|
/**
|
|
543
576
|
* Zahlungsart des Aufrufers pruefen — unbekannt wirft, bevor etwas rausgeht.
|
|
544
577
|
* `mixed` wirft ebenfalls: den Wert vergibt nur der Server (Beleg mit
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ReceiptType, type ReceiptTypeKey, VatRate, type VatRateKey, KeckPaymentMethod, type KeckPaymentMethodKey, CreditCardProvider, type CreditCardProviderKey, VoucherType, type VoucherTypeKey, VoucherAction, type VoucherActionKey, StripeLinkMode, type StripeLinkModeKey, } from './enums/index.js';
|
|
2
|
-
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError, type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
2
|
+
export { type ReceiptItem, type ReceiptItemPayload, type ReceiptItemPayloadRead, toReceiptItemPayload, fromReceiptItemPayload, receiptItemTotalCents, receiptItemIsValid, negateReceiptItem, type TipRecipient, isTipItem, type Voucher, type VoucherPayload, toVoucherPayload, fromVoucherPayload, voucherIsValid, type Receipt, type RegistrationInfo, type ReceiptPayload, type ReceiptPayloadRead, toReceiptPayload, fromReceiptPayload, receiptSubSumCents, receiptSumCents, receiptValueVoucherSign, type CancellationOf, type CancellationItem, type Cancellation, type CancellationReason, type CancellationErrorCode, type CancellationStatus, type ReturnDisposition, RETURN_DISPOSITIONS, CANCELLATION_REASONS, CANCELLATION_STATUSES, CANCELLATION_ERROR_CODES, CANCELLATION_RESERVATION_MS, isCancellationReason, isReturnDisposition, isCancellationErrorCode, cancellationErrorCode, isCancellationError, cancellationFieldErrors, type CancellationFieldError, type ReceiptPayment, type ReceiptPaymentPayload, type ReceiptPaymentInput, fromReceiptPaymentPayload, toReceiptPaymentPayload, type PaymentErrorCode, PAYMENT_ERROR_CODES, isPaymentErrorCode, paymentErrorCode, isPaymentError, paymentFieldErrors, type PaymentFieldError, type ReceiptEmailErrorCode, type ReceiptEmailVia, RECEIPT_EMAIL_ERROR_CODES, RECEIPT_EMAIL_SEND_ERROR_CODES, type ReceiptEmailSendErrorCode, RECEIPT_EMAIL_VIAS, isReceiptEmailErrorCode, receiptEmailErrorCode, isReceiptEmailError, receiptEmailFieldErrors, type ReceiptEmailFieldError, type ReceiptErrorCode, type ReceiptFieldError, RECEIPT_ERROR_CODES, isReceiptErrorCode, receiptErrorCode, isReceiptError, receiptFieldErrors, remainingQuantities, TIP_REFUND_SOURCES, type TipRefundSource, isTipRefundSource, openStaffTipCents, cancellationItemsForTip, cancellationCashRefundCents, asksTipRefundSource, asksRefundTip, type ReceiptCompany, type ReceiptCompanyPayload, fromReceiptCompanyPayload, receiptCompanyTaxInfo, type Cashregister, type CashregisterOnboarding, type CashregisterPayload, type CashregisterOnboardingPayload, type CashregisterAutoLogout, type CashregisterAutoLogoutPayload, fromCashregisterPayload, type ReceiptSummary, type ReceiptSummaryPayload, fromReceiptSummaryPayload, type ZeroKind, ZERO_KINDS, isZeroKind, type ReportMonth, reportMonthFromDate, previousReportMonth, nextReportMonth, reportMonthKey, reportMonthReadable, type StripeUrlSession, type StripeUrlSessionPayload, toStripeUrlSessionPayload, fromStripeUrlSessionPayload, type HobexReceipt, type HobexReceiptPayload, toHobexReceiptPayload, fromHobexReceiptPayload, hobexReceiptToCardPaymentData, hobexReceiptNeedsSignature, } from './models/index.js';
|
|
3
3
|
export { type AuthCredentials, type KasseneckAuth, type ApiKeyAuthOptions, type RegisterUserAuthOptions, apiKeyAuth, registerUserAuth, DEFAULT_BASE_URL, POS_BASE_URL, DEFAULT_TIMEOUT_MS, type HttpResponseLike, type HttpRequestInit, type FetchLike, type TransportOptions, type TransportBodyFields, type TransportCallOptions, type KasseneckTransport, type KasseneckBinaryTransport, type KasseneckPdfOrDataTransport, type PdfOrData, ALL_CALLS, type ApiCall, PUBLIC_CALLS, POS_CALLS, UNKNOWN_OUTCOME_CALLS, type PublicCall, type PosCall, createTransport, createBinaryTransport, createPdfOrDataTransport, KasseneckApiError, KasseneckAuthError, KasseneckHttpError, KasseneckNetworkError, KasseneckValidationError, type ValidationScope, type KasseneckError, type HttpFailureReason, type CauseDigest, type ErrorOutcome, CLIENT_ERROR_CODES, type ClientErrorCode, isKasseneckApiError, isKasseneckAuthError, isKasseneckHttpError, isKasseneckNetworkError, isKasseneckValidationError, isOutcomeUnknown, type ReceiptCommonOptions, type SellReceiptOptions, type TipOptions, type TipRecipientShare, type CancelReceiptOptions, type CancelReceiptResult, type ReceiptWithCompany, sellReceipt, sellReceiptWithCompany, paymentsExpectedCents, cardRefundReference, receiptLayoutFromResult, cancelReceipt, zeroReceipt, getReceipt, getReceiptWithCompany, generateFullReceiptId, getFirstReceiptDate, listMyReceipts, type ListMyReceiptsOptions, type ReceiptList, type ReceiptListStats, listMyCashregisters, checkVoucherCombinationError, type SendReceiptEmailOptions, type SendReceiptEmailResult, sendReceiptEmail, downloadDailyReport, downloadMonthlyReport, getCashregisterReport, type CashregisterReportPeriod, getReportV2, type ReportV2, type ReportV2Metadata, type ReportV2Options, type CashboxStatus, type SignatureStatus, getCashboxStatus, getSignatureStatus, type KasseneckApi, createKasseneckApi, } from './client/index.js';
|
|
4
4
|
export { type ReceiptDueTip, type ReceiptDueTipRecipient, type ReceiptDueOptions, type ReceiptDueBuckets, type ReceiptDueBreakdown, type ReceiptDueErrorReason, receiptDueCents, receiptDueBreakdown, ReceiptDueError, RECEIPT_DUE_ERROR_REASONS, isReceiptDueError, } from './receipt/due.js';
|
|
5
5
|
export { parseServerTimeStamp, toViennaWallClock, type ViennaWallClock } from './vienna-time.js';
|