@kreiseck/kasseneck-api 1.7.0 → 1.8.0
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 +122 -0
- package/README.md +170 -1
- package/dist/cjs/client/aufrufe.d.ts +9 -7
- package/dist/cjs/client/aufrufe.js +57 -2
- package/dist/cjs/client/errors.js +2 -0
- package/dist/cjs/client/index.d.ts +1 -1
- package/dist/cjs/client/index.js +2 -1
- package/dist/cjs/client/transport.d.ts +27 -3
- package/dist/cjs/client/transport.js +29 -3
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/inventory/api.d.ts +21 -2
- package/dist/cjs/inventory/api.js +22 -3
- package/dist/cjs/inventory/fehler.d.ts +6 -0
- package/dist/cjs/inventory/fehler.js +12 -0
- package/dist/cjs/inventory/index.d.ts +6 -4
- package/dist/cjs/inventory/index.js +33 -3
- package/dist/cjs/inventory/inventur.d.ts +104 -0
- package/dist/cjs/inventory/inventur.js +245 -0
- package/dist/cjs/inventory/lesen.d.ts +20 -1
- package/dist/cjs/inventory/lesen.js +307 -0
- package/dist/cjs/inventory/typen.d.ts +410 -1
- package/dist/cjs/inventory/vertrag.d.ts +94 -8
- package/dist/cjs/inventory/vertrag.js +117 -5
- package/dist/cjs/invoice/vertrag.d.ts +1 -1
- package/dist/cjs/invoice/vertrag.js +2 -0
- package/dist/cjs/models/cancellation.d.ts +1 -1
- package/dist/cjs/models/cancellation.js +2 -0
- 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/pos/errors.d.ts +4 -3
- package/dist/cjs/pos/errors.js +23 -2
- package/dist/cjs/pos/index.d.ts +4 -1
- package/dist/cjs/pos/index.js +9 -2
- package/dist/cjs/pos/inventur.d.ts +104 -0
- package/dist/cjs/pos/inventur.js +117 -0
- package/dist/cjs/pos/texte.d.ts +82 -0
- package/dist/cjs/pos/texte.js +35 -0
- package/dist/cjs/react/index.js +6 -0
- package/dist/cjs/register/errors.d.ts +1 -1
- package/dist/cjs/register/errors.js +2 -0
- package/dist/cjs/stored/vokabular.d.ts +1 -1
- package/dist/cjs/stored/vokabular.js +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/client/aufrufe.d.ts +9 -7
- package/dist/esm/client/aufrufe.js +57 -2
- package/dist/esm/client/errors.js +2 -0
- package/dist/esm/client/index.d.ts +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/transport.d.ts +27 -3
- package/dist/esm/client/transport.js +28 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inventory/api.d.ts +21 -2
- package/dist/esm/inventory/api.js +23 -4
- package/dist/esm/inventory/fehler.d.ts +6 -0
- package/dist/esm/inventory/fehler.js +11 -0
- package/dist/esm/inventory/index.d.ts +6 -4
- package/dist/esm/inventory/index.js +5 -3
- package/dist/esm/inventory/inventur.d.ts +104 -0
- package/dist/esm/inventory/inventur.js +226 -0
- package/dist/esm/inventory/lesen.d.ts +20 -1
- package/dist/esm/inventory/lesen.js +301 -0
- package/dist/esm/inventory/typen.d.ts +410 -1
- package/dist/esm/inventory/vertrag.d.ts +94 -8
- package/dist/esm/inventory/vertrag.js +116 -4
- package/dist/esm/invoice/vertrag.d.ts +1 -1
- package/dist/esm/invoice/vertrag.js +2 -0
- package/dist/esm/models/cancellation.d.ts +1 -1
- package/dist/esm/models/cancellation.js +2 -0
- 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/pos/errors.d.ts +4 -3
- package/dist/esm/pos/errors.js +23 -2
- package/dist/esm/pos/index.d.ts +4 -1
- package/dist/esm/pos/index.js +2 -1
- package/dist/esm/pos/inventur.d.ts +104 -0
- package/dist/esm/pos/inventur.js +109 -0
- package/dist/esm/pos/texte.d.ts +82 -0
- package/dist/esm/pos/texte.js +35 -0
- package/dist/esm/react/index.js +6 -0
- package/dist/esm/register/errors.d.ts +1 -1
- package/dist/esm/register/errors.js +2 -0
- package/dist/esm/stored/vokabular.d.ts +1 -1
- package/dist/esm/stored/vokabular.js +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- 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-texts.json +94 -1
- package/fixtures/stocktake-quantity-cases.json +55 -0
- package/fixtures/surface.json +151 -8
- 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 +2958 -3
- package/fixtures/v3/antworten/lager.json +1727 -3
- package/fixtures/v3/antworten/rechnungen.json +1 -1
- package/fixtures/v3/antworten/storno.json +1 -1
- package/fixtures/v3/stored/belege.json +1 -1
- package/fixtures/v3/stored/kasse.json +414 -3
- package/fixtures/v3/stored/rechnungen.json +1 -1
- package/fixtures/v3/v3-vokabular.json +475 -8
- package/fixtures/v3/zahlbetrag-faelle.json +1 -1
- package/package.json +1 -1
package/dist/esm/pos/texte.d.ts
CHANGED
|
@@ -555,6 +555,42 @@ declare const MELDUNGEN_ROH: {
|
|
|
555
555
|
readonly 'logo.remove_failed': {
|
|
556
556
|
readonly text: "Entfernen fehlgeschlagen.";
|
|
557
557
|
};
|
|
558
|
+
readonly 'stocktake.none_open': {
|
|
559
|
+
readonly text: "An diesem Standort läuft gerade keine Inventur. Eine Inventur legt der Inhaber im Panel an.";
|
|
560
|
+
};
|
|
561
|
+
readonly 'stocktake.scan_or_search': {
|
|
562
|
+
readonly text: "Artikel scannen oder suchen.";
|
|
563
|
+
};
|
|
564
|
+
readonly 'stocktake.counted': {
|
|
565
|
+
readonly text: "{name}: {quantity} gezählt.";
|
|
566
|
+
readonly placeholders: readonly ["name", "quantity"];
|
|
567
|
+
};
|
|
568
|
+
readonly 'stocktake.blind_hint': {
|
|
569
|
+
readonly text: "Blind zählen – die Kasse zeigt keinen Buchbestand. Bitte zählen, was wirklich da ist.";
|
|
570
|
+
};
|
|
571
|
+
readonly 'stocktake.recount_hint': {
|
|
572
|
+
readonly text: "Bitte die markierten Positionen nachzählen.";
|
|
573
|
+
};
|
|
574
|
+
readonly 'stocktake.unknown_code': {
|
|
575
|
+
readonly text: "Zu „{code}“ gibt es keinen Artikel. Bitte den Code prüfen oder den Artikel suchen.";
|
|
576
|
+
readonly placeholders: readonly ["code"];
|
|
577
|
+
};
|
|
578
|
+
readonly 'stocktake.quantity_invalid': {
|
|
579
|
+
readonly text: "Bitte eine gültige Menge eingeben – höchstens drei Nachkommastellen, bei Stückware nur ganze Zahlen.";
|
|
580
|
+
};
|
|
581
|
+
readonly 'stocktake.serials_capture': {
|
|
582
|
+
readonly text: "Bitte für jedes Stück die Seriennummer scannen.";
|
|
583
|
+
};
|
|
584
|
+
readonly 'stocktake.serials_mismatch': {
|
|
585
|
+
readonly text: "Je Stück genau eine Seriennummer: {count} erfasst, {quantity} gezählt.";
|
|
586
|
+
readonly placeholders: readonly ["count", "quantity"];
|
|
587
|
+
};
|
|
588
|
+
readonly 'stocktake.reason_missing': {
|
|
589
|
+
readonly text: "Bitte einen Grund für das Stornieren eingeben.";
|
|
590
|
+
};
|
|
591
|
+
readonly 'stocktake.outcome_unknown': {
|
|
592
|
+
readonly text: "Unklar, ob die Zählung angekommen ist. „Erneut senden“ schickt dieselbe Zählung – sie zählt auch dann nur einmal.";
|
|
593
|
+
};
|
|
558
594
|
readonly 'app.not_in_browser': {
|
|
559
595
|
readonly text: "Die Kassen-App läuft nicht im Browser – dafür gibt es kasse.kasseneck.at.";
|
|
560
596
|
readonly only: readonly ["app"];
|
|
@@ -1050,6 +1086,52 @@ declare const BESCHRIFTUNGEN_ROH: {
|
|
|
1050
1086
|
readonly 'stock.return_disposed': {
|
|
1051
1087
|
readonly text: "Entsorgt";
|
|
1052
1088
|
};
|
|
1089
|
+
readonly 'stocktake.title': {
|
|
1090
|
+
readonly text: "Inventur zählen";
|
|
1091
|
+
};
|
|
1092
|
+
readonly 'stocktake.quantity': {
|
|
1093
|
+
readonly text: "Menge";
|
|
1094
|
+
};
|
|
1095
|
+
readonly 'stocktake.defective': {
|
|
1096
|
+
readonly text: "Defekt";
|
|
1097
|
+
};
|
|
1098
|
+
readonly 'stocktake.count_zero': {
|
|
1099
|
+
readonly text: "0 zählen";
|
|
1100
|
+
};
|
|
1101
|
+
readonly 'stocktake.next': {
|
|
1102
|
+
readonly text: "Weiter";
|
|
1103
|
+
};
|
|
1104
|
+
readonly 'stocktake.void': {
|
|
1105
|
+
readonly text: "Stornieren";
|
|
1106
|
+
};
|
|
1107
|
+
readonly 'stocktake.reason': {
|
|
1108
|
+
readonly text: "Grund";
|
|
1109
|
+
};
|
|
1110
|
+
readonly 'stocktake.progress': {
|
|
1111
|
+
readonly text: "{counted} von {total} gezählt";
|
|
1112
|
+
readonly placeholders: readonly ["counted", "total"];
|
|
1113
|
+
};
|
|
1114
|
+
readonly 'stocktake.serial_numbers': {
|
|
1115
|
+
readonly text: "Seriennummern erfassen";
|
|
1116
|
+
};
|
|
1117
|
+
readonly 'stocktake.recount': {
|
|
1118
|
+
readonly text: "Nachzählen";
|
|
1119
|
+
};
|
|
1120
|
+
readonly 'stocktake.resend': {
|
|
1121
|
+
readonly text: "Erneut senden";
|
|
1122
|
+
};
|
|
1123
|
+
readonly 'stocktake.my_counts': {
|
|
1124
|
+
readonly text: "Meine Zählungen";
|
|
1125
|
+
};
|
|
1126
|
+
readonly 'stocktake.sent': {
|
|
1127
|
+
readonly text: "gesendet";
|
|
1128
|
+
};
|
|
1129
|
+
readonly 'stocktake.unconfirmed': {
|
|
1130
|
+
readonly text: "unbestätigt";
|
|
1131
|
+
};
|
|
1132
|
+
readonly 'stocktake.voided': {
|
|
1133
|
+
readonly text: "storniert";
|
|
1134
|
+
};
|
|
1053
1135
|
};
|
|
1054
1136
|
export type LabelKey = keyof typeof BESCHRIFTUNGEN_ROH;
|
|
1055
1137
|
export declare const LABELS: Record<LabelKey, TextEntry>;
|
package/dist/esm/pos/texte.js
CHANGED
|
@@ -282,6 +282,22 @@ const MELDUNGEN_ROH = {
|
|
|
282
282
|
'unpairing.failed': { text: 'Entkoppeln fehlgeschlagen.' },
|
|
283
283
|
'logo.upload_failed': { text: 'Hochladen fehlgeschlagen.' },
|
|
284
284
|
'logo.remove_failed': { text: 'Entfernen fehlgeschlagen.' },
|
|
285
|
+
// --- Inventur zählen ------------------------------------------------------
|
|
286
|
+
// Gezählt wird blind und nur online; bei unklarem Ausgang schickt
|
|
287
|
+
// „Erneut senden“ dieselbe Zählung mit demselben Schlüssel (sie zählt genau
|
|
288
|
+
// einmal), nie eine neue. `{quantity}` ist die Menge samt Einheit („12 Stk“),
|
|
289
|
+
// `{count}` die Zahl der erfassten Seriennummern.
|
|
290
|
+
'stocktake.none_open': { text: 'An diesem Standort läuft gerade keine Inventur. Eine Inventur legt der Inhaber im Panel an.' },
|
|
291
|
+
'stocktake.scan_or_search': { text: 'Artikel scannen oder suchen.' },
|
|
292
|
+
'stocktake.counted': { text: '{name}: {quantity} gezählt.', placeholders: ['name', 'quantity'] },
|
|
293
|
+
'stocktake.blind_hint': { text: 'Blind zählen – die Kasse zeigt keinen Buchbestand. Bitte zählen, was wirklich da ist.' },
|
|
294
|
+
'stocktake.recount_hint': { text: 'Bitte die markierten Positionen nachzählen.' },
|
|
295
|
+
'stocktake.unknown_code': { text: 'Zu „{code}“ gibt es keinen Artikel. Bitte den Code prüfen oder den Artikel suchen.', placeholders: ['code'] },
|
|
296
|
+
'stocktake.quantity_invalid': { text: 'Bitte eine gültige Menge eingeben – höchstens drei Nachkommastellen, bei Stückware nur ganze Zahlen.' },
|
|
297
|
+
'stocktake.serials_capture': { text: 'Bitte für jedes Stück die Seriennummer scannen.' },
|
|
298
|
+
'stocktake.serials_mismatch': { text: 'Je Stück genau eine Seriennummer: {count} erfasst, {quantity} gezählt.', placeholders: ['count', 'quantity'] },
|
|
299
|
+
'stocktake.reason_missing': { text: 'Bitte einen Grund für das Stornieren eingeben.' },
|
|
300
|
+
'stocktake.outcome_unknown': { text: 'Unklar, ob die Zählung angekommen ist. „Erneut senden“ schickt dieselbe Zählung – sie zählt auch dann nur einmal.' },
|
|
285
301
|
// --- Nur App -------------------------------------------------------------
|
|
286
302
|
'app.not_in_browser': { text: 'Die Kassen-App läuft nicht im Browser – dafür gibt es kasse.kasseneck.at.', only: ['app'] },
|
|
287
303
|
'app.open_in_browser': { text: 'Bitte im Browser öffnen: {target}', placeholders: ['target'], only: ['app'] },
|
|
@@ -610,6 +626,25 @@ const BESCHRIFTUNGEN_ROH = {
|
|
|
610
626
|
'stock.return_restock': { text: 'Zurück ins Lager' },
|
|
611
627
|
'stock.return_defective': { text: 'Defekt' },
|
|
612
628
|
'stock.return_disposed': { text: 'Entsorgt' },
|
|
629
|
+
// --- Inventur zählen ---------------------------------------------------------
|
|
630
|
+
// Knöpfe und Zeilen des Zählbildschirms. „gesendet“ und „unbestätigt“ stehen
|
|
631
|
+
// an den Zählungen der Sitzung (unbestätigt: unklarer Ausgang, „Erneut
|
|
632
|
+
// senden“ mit demselben Schlüssel).
|
|
633
|
+
'stocktake.title': { text: 'Inventur zählen' },
|
|
634
|
+
'stocktake.quantity': { text: 'Menge' },
|
|
635
|
+
'stocktake.defective': { text: 'Defekt' },
|
|
636
|
+
'stocktake.count_zero': { text: '0 zählen' },
|
|
637
|
+
'stocktake.next': { text: 'Weiter' },
|
|
638
|
+
'stocktake.void': { text: 'Stornieren' },
|
|
639
|
+
'stocktake.reason': { text: 'Grund' },
|
|
640
|
+
'stocktake.progress': { text: '{counted} von {total} gezählt', placeholders: ['counted', 'total'] },
|
|
641
|
+
'stocktake.serial_numbers': { text: 'Seriennummern erfassen' },
|
|
642
|
+
'stocktake.recount': { text: 'Nachzählen' },
|
|
643
|
+
'stocktake.resend': { text: 'Erneut senden' },
|
|
644
|
+
'stocktake.my_counts': { text: 'Meine Zählungen' },
|
|
645
|
+
'stocktake.sent': { text: 'gesendet' },
|
|
646
|
+
'stocktake.unconfirmed': { text: 'unbestätigt' },
|
|
647
|
+
'stocktake.voided': { text: 'storniert' },
|
|
613
648
|
};
|
|
614
649
|
export const LABELS = BESCHRIFTUNGEN_ROH;
|
|
615
650
|
/**
|
package/dist/esm/react/index.js
CHANGED
|
@@ -86,6 +86,12 @@ export function ReceiptSheetLines({ sheet: blatt, logoUrl, renderQr, qrHidden: q
|
|
|
86
86
|
width: `${z}ch`,
|
|
87
87
|
fontFamily: 'var(--keck-blatt-schrift, "DM Mono", ui-monospace, Menlo, Consolas, monospace)',
|
|
88
88
|
fontVariantLigatures: 'none',
|
|
89
|
+
// Ausdruecklich 0: `letter-spacing`/`word-spacing` erben sich, und das Blatt
|
|
90
|
+
// ist genau `charsPerLine` x 1ch breit. Ein Abstand aus dem Stylesheet der
|
|
91
|
+
// Seite (z. B. `tracking-wide`) machte jede volle Zeile breiter als das
|
|
92
|
+
// Blatt; `overflow: hidden` schnitt das letzte Zeichen ab.
|
|
93
|
+
letterSpacing: 0,
|
|
94
|
+
wordSpacing: 0,
|
|
89
95
|
};
|
|
90
96
|
return (_jsx("div", { className: klasse, "data-zeichen": z, style: blattStil, children: blatt.blocks.map((b, i) => {
|
|
91
97
|
switch (b.kind) {
|
|
@@ -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", "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", "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", "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", "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"];
|
|
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`. */
|
|
@@ -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 = "0f78308720a3098401867185fdceea2aadf292158d719c0f9dc0306826959a27";
|
|
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 {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Erzeugt von scripts/stored-vokabular.mjs aus fixtures/v3/v3-vokabular.json.
|
|
2
2
|
// Nicht von Hand aendern: test/stored.test.ts vergleicht mit dem Vertrag.
|
|
3
3
|
/** Fingerabdruck des Vertrags-Exports, aus dem diese Datei stammt (`_quelle.sha256`). */
|
|
4
|
-
export const VOKABULAR_QUELLE = "
|
|
4
|
+
export const VOKABULAR_QUELLE = "0f78308720a3098401867185fdceea2aadf292158d719c0f9dc0306826959a27";
|
|
5
5
|
/** Schema je Endpunkt (aussen -> innen) und Wertverweise auf die Kataloge. */
|
|
6
6
|
export const SCHEMAS = {
|
|
7
7
|
"getReceipt": {
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
package/fixtures/pos-texts.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.8.0",
|
|
3
3
|
"messages": {
|
|
4
4
|
"network.no_connection": {
|
|
5
5
|
"text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
|
|
@@ -666,6 +666,50 @@
|
|
|
666
666
|
"logo.remove_failed": {
|
|
667
667
|
"text": "Entfernen fehlgeschlagen."
|
|
668
668
|
},
|
|
669
|
+
"stocktake.none_open": {
|
|
670
|
+
"text": "An diesem Standort läuft gerade keine Inventur. Eine Inventur legt der Inhaber im Panel an."
|
|
671
|
+
},
|
|
672
|
+
"stocktake.scan_or_search": {
|
|
673
|
+
"text": "Artikel scannen oder suchen."
|
|
674
|
+
},
|
|
675
|
+
"stocktake.counted": {
|
|
676
|
+
"text": "{name}: {quantity} gezählt.",
|
|
677
|
+
"placeholders": [
|
|
678
|
+
"name",
|
|
679
|
+
"quantity"
|
|
680
|
+
]
|
|
681
|
+
},
|
|
682
|
+
"stocktake.blind_hint": {
|
|
683
|
+
"text": "Blind zählen – die Kasse zeigt keinen Buchbestand. Bitte zählen, was wirklich da ist."
|
|
684
|
+
},
|
|
685
|
+
"stocktake.recount_hint": {
|
|
686
|
+
"text": "Bitte die markierten Positionen nachzählen."
|
|
687
|
+
},
|
|
688
|
+
"stocktake.unknown_code": {
|
|
689
|
+
"text": "Zu „{code}“ gibt es keinen Artikel. Bitte den Code prüfen oder den Artikel suchen.",
|
|
690
|
+
"placeholders": [
|
|
691
|
+
"code"
|
|
692
|
+
]
|
|
693
|
+
},
|
|
694
|
+
"stocktake.quantity_invalid": {
|
|
695
|
+
"text": "Bitte eine gültige Menge eingeben – höchstens drei Nachkommastellen, bei Stückware nur ganze Zahlen."
|
|
696
|
+
},
|
|
697
|
+
"stocktake.serials_capture": {
|
|
698
|
+
"text": "Bitte für jedes Stück die Seriennummer scannen."
|
|
699
|
+
},
|
|
700
|
+
"stocktake.serials_mismatch": {
|
|
701
|
+
"text": "Je Stück genau eine Seriennummer: {count} erfasst, {quantity} gezählt.",
|
|
702
|
+
"placeholders": [
|
|
703
|
+
"count",
|
|
704
|
+
"quantity"
|
|
705
|
+
]
|
|
706
|
+
},
|
|
707
|
+
"stocktake.reason_missing": {
|
|
708
|
+
"text": "Bitte einen Grund für das Stornieren eingeben."
|
|
709
|
+
},
|
|
710
|
+
"stocktake.outcome_unknown": {
|
|
711
|
+
"text": "Unklar, ob die Zählung angekommen ist. „Erneut senden“ schickt dieselbe Zählung – sie zählt auch dann nur einmal."
|
|
712
|
+
},
|
|
669
713
|
"app.not_in_browser": {
|
|
670
714
|
"text": "Die Kassen-App läuft nicht im Browser – dafür gibt es kasse.kasseneck.at.",
|
|
671
715
|
"only": [
|
|
@@ -1106,6 +1150,55 @@
|
|
|
1106
1150
|
},
|
|
1107
1151
|
"stock.return_disposed": {
|
|
1108
1152
|
"text": "Entsorgt"
|
|
1153
|
+
},
|
|
1154
|
+
"stocktake.title": {
|
|
1155
|
+
"text": "Inventur zählen"
|
|
1156
|
+
},
|
|
1157
|
+
"stocktake.quantity": {
|
|
1158
|
+
"text": "Menge"
|
|
1159
|
+
},
|
|
1160
|
+
"stocktake.defective": {
|
|
1161
|
+
"text": "Defekt"
|
|
1162
|
+
},
|
|
1163
|
+
"stocktake.count_zero": {
|
|
1164
|
+
"text": "0 zählen"
|
|
1165
|
+
},
|
|
1166
|
+
"stocktake.next": {
|
|
1167
|
+
"text": "Weiter"
|
|
1168
|
+
},
|
|
1169
|
+
"stocktake.void": {
|
|
1170
|
+
"text": "Stornieren"
|
|
1171
|
+
},
|
|
1172
|
+
"stocktake.reason": {
|
|
1173
|
+
"text": "Grund"
|
|
1174
|
+
},
|
|
1175
|
+
"stocktake.progress": {
|
|
1176
|
+
"text": "{counted} von {total} gezählt",
|
|
1177
|
+
"placeholders": [
|
|
1178
|
+
"counted",
|
|
1179
|
+
"total"
|
|
1180
|
+
]
|
|
1181
|
+
},
|
|
1182
|
+
"stocktake.serial_numbers": {
|
|
1183
|
+
"text": "Seriennummern erfassen"
|
|
1184
|
+
},
|
|
1185
|
+
"stocktake.recount": {
|
|
1186
|
+
"text": "Nachzählen"
|
|
1187
|
+
},
|
|
1188
|
+
"stocktake.resend": {
|
|
1189
|
+
"text": "Erneut senden"
|
|
1190
|
+
},
|
|
1191
|
+
"stocktake.my_counts": {
|
|
1192
|
+
"text": "Meine Zählungen"
|
|
1193
|
+
},
|
|
1194
|
+
"stocktake.sent": {
|
|
1195
|
+
"text": "gesendet"
|
|
1196
|
+
},
|
|
1197
|
+
"stocktake.unconfirmed": {
|
|
1198
|
+
"text": "unbestätigt"
|
|
1199
|
+
},
|
|
1200
|
+
"stocktake.voided": {
|
|
1201
|
+
"text": "storniert"
|
|
1109
1202
|
}
|
|
1110
1203
|
},
|
|
1111
1204
|
"returnDispositionLabels": {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_note": "Prueffaelle parseQuantityMilli (Inventur zaehlen an der Kasse): eingetippter Text, Einheit und gespeicherte Mengenregel des Artikels (rule: piece | decimal | null) -> Tausendstel der Basiseinheit oder null. Stueckware (rule, ohne rule die Vorgabe der Einheit nach quantityRuleForUnit, auch ohne Einheit) nur ganze Zahlen ohne Trenner. Punkt mit genau drei Ziffern und Ganzteil ungleich 0 ist bei jeder Einheit null (Tausenderpunkt oder Dezimalpunkt?). Von Hand gepflegt; der Dart-Zwilling prueft dieselben Faelle.",
|
|
3
|
+
"cases": [
|
|
4
|
+
{ "text": "12", "unit": "Stk", "rule": null, "expected": 12000 },
|
|
5
|
+
{ "text": "0", "unit": "Stk", "rule": null, "expected": 0 },
|
|
6
|
+
{ "text": "00012", "unit": "Stk", "rule": null, "expected": 12000 },
|
|
7
|
+
{ "text": " 7 ", "unit": "Stk", "rule": null, "expected": 7000 },
|
|
8
|
+
{ "text": "37", "unit": null, "rule": null, "expected": 37000 },
|
|
9
|
+
{ "text": "12,5", "unit": "Stk", "rule": null, "expected": null },
|
|
10
|
+
{ "text": "12,0", "unit": "Stk", "rule": null, "expected": null },
|
|
11
|
+
{ "text": "1.000", "unit": "Stk", "rule": null, "expected": null },
|
|
12
|
+
{ "text": "1,5", "unit": null, "rule": null, "expected": null },
|
|
13
|
+
{ "text": "250", "unit": "g", "rule": null, "expected": 250000 },
|
|
14
|
+
{ "text": "2,5", "unit": "g", "rule": null, "expected": null },
|
|
15
|
+
{ "text": "0,25", "unit": "kg", "rule": null, "expected": 250 },
|
|
16
|
+
{ "text": "0,250", "unit": "kg", "rule": null, "expected": 250 },
|
|
17
|
+
{ "text": "1.5", "unit": "kg", "rule": null, "expected": 1500 },
|
|
18
|
+
{ "text": "0,001", "unit": "kg", "rule": null, "expected": 1 },
|
|
19
|
+
{ "text": "1,2340", "unit": "kg", "rule": null, "expected": 1234 },
|
|
20
|
+
{ "text": "1,2345", "unit": "kg", "rule": null, "expected": null },
|
|
21
|
+
{ "text": "1.000", "unit": "kg", "rule": null, "expected": null },
|
|
22
|
+
{ "text": ",5", "unit": "kg", "rule": null, "expected": 500 },
|
|
23
|
+
{ "text": "5,", "unit": "kg", "rule": null, "expected": 5000 },
|
|
24
|
+
{ "text": "1,25", "unit": "l", "rule": null, "expected": 1250 },
|
|
25
|
+
{ "text": "2,75", "unit": "m", "rule": null, "expected": 2750 },
|
|
26
|
+
{ "text": "", "unit": "kg", "rule": null, "expected": null },
|
|
27
|
+
{ "text": " ", "unit": "kg", "rule": null, "expected": null },
|
|
28
|
+
{ "text": ",", "unit": "kg", "rule": null, "expected": null },
|
|
29
|
+
{ "text": "-1", "unit": "kg", "rule": null, "expected": null },
|
|
30
|
+
{ "text": "+1", "unit": "kg", "rule": null, "expected": null },
|
|
31
|
+
{ "text": "1e3", "unit": "kg", "rule": null, "expected": null },
|
|
32
|
+
{ "text": "1 000", "unit": "kg", "rule": null, "expected": null },
|
|
33
|
+
{ "text": "1,2,3", "unit": "kg", "rule": null, "expected": null },
|
|
34
|
+
{ "text": "0x10", "unit": "Stk", "rule": null, "expected": null },
|
|
35
|
+
{ "text": "zwölf", "unit": "Stk", "rule": null, "expected": null },
|
|
36
|
+
{ "text": "9007199254740", "unit": "Stk", "rule": null, "expected": 9007199254740000 },
|
|
37
|
+
{ "text": "9007199254741", "unit": "Stk", "rule": null, "expected": null },
|
|
38
|
+
{ "text": "12.500", "unit": "kg", "rule": null, "expected": null },
|
|
39
|
+
{ "text": "1.200", "unit": "m", "rule": null, "expected": null },
|
|
40
|
+
{ "text": "1,000", "unit": "kg", "rule": null, "expected": 1000 },
|
|
41
|
+
{ "text": "1,200", "unit": "m", "rule": null, "expected": 1200 },
|
|
42
|
+
{ "text": "0.500", "unit": "kg", "rule": null, "expected": 500 },
|
|
43
|
+
{ "text": ".500", "unit": "kg", "rule": null, "expected": 500 },
|
|
44
|
+
{ "text": "00.500", "unit": "kg", "rule": null, "expected": 500 },
|
|
45
|
+
{ "text": "1.25", "unit": "kg", "rule": null, "expected": 1250 },
|
|
46
|
+
{ "text": "1.50", "unit": "l", "rule": null, "expected": 1500 },
|
|
47
|
+
{ "text": "2,5", "unit": "Stk", "rule": "decimal", "expected": 2500 },
|
|
48
|
+
{ "text": "2,5", "unit": "Rolle", "rule": "decimal", "expected": 2500 },
|
|
49
|
+
{ "text": "1.5", "unit": null, "rule": "decimal", "expected": 1500 },
|
|
50
|
+
{ "text": "1.000", "unit": "Stk", "rule": "decimal", "expected": null },
|
|
51
|
+
{ "text": "0,5", "unit": "kg", "rule": "piece", "expected": null },
|
|
52
|
+
{ "text": "3", "unit": "kg", "rule": "piece", "expected": 3000 },
|
|
53
|
+
{ "text": "12", "unit": "Stk", "rule": "piece", "expected": 12000 }
|
|
54
|
+
]
|
|
55
|
+
}
|