@kreiseck/kasseneck-api 1.1.1 → 1.2.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 +56 -0
- package/README.md +70 -0
- package/dist/cjs/client/aufrufe.d.ts +5 -5
- package/dist/cjs/client/aufrufe.js +21 -2
- package/dist/cjs/client/errors.d.ts +1 -1
- package/dist/cjs/client/errors.js +2 -1
- package/dist/cjs/client/receipts.d.ts +9 -1
- package/dist/cjs/client/receipts.js +18 -3
- package/dist/cjs/client/transport.d.ts +3 -3
- package/dist/cjs/client/transport.js +2 -2
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +6 -3
- package/dist/cjs/invoice/index.d.ts +2 -2
- package/dist/cjs/invoice/index.js +3 -1
- package/dist/cjs/invoice/typen.d.ts +13 -2
- package/dist/cjs/invoice/vertrag.d.ts +10 -1
- package/dist/cjs/invoice/vertrag.js +39 -2
- package/dist/cjs/models/cancellation.d.ts +14 -2
- package/dist/cjs/models/cancellation.js +15 -1
- package/dist/cjs/models/cashregister.d.ts +3 -0
- package/dist/cjs/models/cashregister.js +1 -0
- package/dist/cjs/models/index.d.ts +1 -1
- package/dist/cjs/models/index.js +4 -2
- package/dist/cjs/models/payment-errors.d.ts +1 -1
- package/dist/cjs/models/payment-errors.js +1 -0
- package/dist/cjs/models/receipt-email.d.ts +1 -1
- package/dist/cjs/models/receipt-email.js +1 -0
- package/dist/cjs/models/receipt-errors.d.ts +1 -1
- package/dist/cjs/models/receipt-errors.js +1 -0
- package/dist/cjs/models/receipt-item.d.ts +9 -0
- package/dist/cjs/models/receipt-item.js +5 -0
- package/dist/cjs/models/receipt.d.ts +1 -1
- package/dist/cjs/models/receipt.js +6 -1
- package/dist/cjs/pos/artikel.d.ts +14 -0
- package/dist/cjs/pos/artikel.js +13 -2
- package/dist/cjs/pos/errors.d.ts +3 -3
- package/dist/cjs/pos/errors.js +6 -2
- package/dist/cjs/pos/index.d.ts +5 -2
- package/dist/cjs/pos/index.js +13 -2
- package/dist/cjs/pos/lager.d.ts +95 -0
- package/dist/cjs/pos/lager.js +160 -0
- package/dist/cjs/register/errors.d.ts +1 -1
- package/dist/cjs/register/errors.js +1 -0
- package/dist/cjs/register/pairing.d.ts +27 -1
- package/dist/cjs/register/pairing.js +18 -1
- package/dist/cjs/stored/draht.d.ts +4 -2
- package/dist/cjs/stored/draht.js +46 -5
- package/dist/cjs/stored/vokabular.d.ts +1 -1
- package/dist/cjs/stored/vokabular.js +5 -3
- 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 +21 -2
- package/dist/esm/client/errors.d.ts +1 -1
- package/dist/esm/client/errors.js +2 -1
- package/dist/esm/client/receipts.d.ts +9 -1
- package/dist/esm/client/receipts.js +19 -4
- package/dist/esm/client/transport.d.ts +3 -3
- package/dist/esm/client/transport.js +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/invoice/index.d.ts +2 -2
- package/dist/esm/invoice/index.js +1 -1
- package/dist/esm/invoice/typen.d.ts +13 -2
- package/dist/esm/invoice/vertrag.d.ts +10 -1
- package/dist/esm/invoice/vertrag.js +38 -1
- package/dist/esm/models/cancellation.d.ts +14 -2
- package/dist/esm/models/cancellation.js +13 -0
- package/dist/esm/models/cashregister.d.ts +3 -0
- package/dist/esm/models/cashregister.js +1 -0
- package/dist/esm/models/index.d.ts +1 -1
- package/dist/esm/models/index.js +1 -1
- package/dist/esm/models/payment-errors.d.ts +1 -1
- package/dist/esm/models/payment-errors.js +1 -0
- package/dist/esm/models/receipt-email.d.ts +1 -1
- package/dist/esm/models/receipt-email.js +1 -0
- package/dist/esm/models/receipt-errors.d.ts +1 -1
- package/dist/esm/models/receipt-errors.js +1 -0
- package/dist/esm/models/receipt-item.d.ts +9 -0
- package/dist/esm/models/receipt-item.js +5 -0
- package/dist/esm/models/receipt.d.ts +1 -1
- package/dist/esm/models/receipt.js +6 -1
- package/dist/esm/pos/artikel.d.ts +14 -0
- package/dist/esm/pos/artikel.js +13 -3
- package/dist/esm/pos/errors.d.ts +3 -3
- package/dist/esm/pos/errors.js +6 -2
- package/dist/esm/pos/index.d.ts +5 -2
- package/dist/esm/pos/index.js +6 -2
- package/dist/esm/pos/lager.d.ts +95 -0
- package/dist/esm/pos/lager.js +154 -0
- package/dist/esm/register/errors.d.ts +1 -1
- package/dist/esm/register/errors.js +1 -0
- package/dist/esm/register/pairing.d.ts +27 -1
- package/dist/esm/register/pairing.js +17 -1
- package/dist/esm/stored/draht.d.ts +4 -2
- package/dist/esm/stored/draht.js +45 -4
- package/dist/esm/stored/vokabular.d.ts +1 -1
- package/dist/esm/stored/vokabular.js +5 -3
- 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-examples/cancel-error-return-disposition.json +17 -0
- package/fixtures/invoice-api-examples/credit-error-return-disposition.json +26 -0
- package/fixtures/invoice-api-examples/credit-return-disposition.json +23 -0
- package/fixtures/invoice-api-examples/issue-error-return-disposition.json +25 -0
- package/fixtures/invoice-api-examples/issue-error-stock-id.json +27 -0
- package/fixtures/invoice-api-examples/issue-stock.json +22 -0
- package/fixtures/invoice-api.schema.json +37 -1
- package/fixtures/invoice-texts.json +1 -1
- package/fixtures/pos-texts.json +1 -1
- package/fixtures/surface.json +48 -4
- 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 +662 -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 +58 -3
- package/fixtures/v3/stored/rechnungen.json +1 -1
- package/fixtures/v3/v3-vokabular.json +249 -16
- package/fixtures/v3/zahlbetrag-faelle.json +1 -1
- package/package.json +1 -1
|
@@ -10,10 +10,12 @@ export declare function regel(eintrag: SchemaEintrag): {
|
|
|
10
10
|
};
|
|
11
11
|
/** Innere Namen einer Schema-Ebene (was der Server innen an dieser Stelle kennt). */
|
|
12
12
|
export declare function innereNamen(schema: SchemaObjekt): Map<string, string>;
|
|
13
|
+
/** Rueckgabe-Wahl innen -> aussen (Katalog RUECKGABE; stored.test.ts vergleicht mit dem Vertrag). */
|
|
14
|
+
export declare const _RUECKGABE_NACH_AUSSEN: Readonly<Record<string, string>>;
|
|
13
15
|
/**
|
|
14
16
|
* Ein Belegdokument, wie Handler und Rand es vor der Uebersetzung sehen:
|
|
15
|
-
* ohne Storno-Marke (storno-core.
|
|
16
|
-
* ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
17
|
+
* ohne Storno-Marke und Lager-Standort (storno-core.ohneInterneBelegFelder,
|
|
18
|
+
* Rand ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
17
19
|
* Beleg selbst (der Server reicht sie so durch). Wirft, wenn es kein
|
|
18
20
|
* Belegdokument ist.
|
|
19
21
|
*/
|
package/dist/esm/stored/draht.js
CHANGED
|
@@ -81,7 +81,7 @@ const aeussereWerte = (name) => new Set(Object.values(KATALOGE[name] ?? {}));
|
|
|
81
81
|
/**
|
|
82
82
|
* Interne Marke der Storno-Reservierung: `stornoMarke` am Storno-Beleg,
|
|
83
83
|
* `marke` im Bezug und in `cancellations[]`. Handler
|
|
84
|
-
* (storno-core.
|
|
84
|
+
* (storno-core.ohneInterneBelegFelder) und Rand (ohneStornoMarke) nehmen sie
|
|
85
85
|
* heraus; der Vertrag nennt die Namen nicht (nur `$function: belegJeKanal`).
|
|
86
86
|
*/
|
|
87
87
|
const STORNO_MARKE = 'stornoMarke';
|
|
@@ -92,6 +92,44 @@ const ohneMarke = (o) => {
|
|
|
92
92
|
const { [MARKE]: _m, ...rest } = o;
|
|
93
93
|
return rest;
|
|
94
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* Interne Dokumentfelder eines Belegs, die keine Antwort traegt (Zwilling von
|
|
97
|
+
* storno-core.INTERNE_BELEG_FELDER): der Lager-Standort der Kasse, den
|
|
98
|
+
* createReceipt fuer die Lagerbuchung an den Beleg kopiert.
|
|
99
|
+
*/
|
|
100
|
+
const INTERNE_BELEG_FELDER = ['lagerStandortId'];
|
|
101
|
+
/** Rueckgabe-Wahl innen -> aussen (Katalog RUECKGABE; stored.test.ts vergleicht mit dem Vertrag). */
|
|
102
|
+
export const _RUECKGABE_NACH_AUSSEN = Object.freeze({ lager: 'restock', defekt: 'defective', entsorgt: 'disposed' });
|
|
103
|
+
/**
|
|
104
|
+
* Zwilling von `rueckgabeUmbenennen` (Rand): `rueckgabe` heisst aussen
|
|
105
|
+
* `returnDisposition`, an Ort und Stelle; ein Wert ausserhalb des Katalogs
|
|
106
|
+
* faellt weg (der Server schreibt dafuer eine Warnzeile).
|
|
107
|
+
*/
|
|
108
|
+
function rueckgabeUmbenennen(o) {
|
|
109
|
+
if (!istObjekt(o) || !hat(o, 'rueckgabe'))
|
|
110
|
+
return o;
|
|
111
|
+
const raus = {};
|
|
112
|
+
for (const [k, w] of Object.entries(o)) {
|
|
113
|
+
if (k !== 'rueckgabe') {
|
|
114
|
+
raus[k] = w;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (typeof w === 'string' && hat(_RUECKGABE_NACH_AUSSEN, w))
|
|
118
|
+
raus.returnDisposition = _RUECKGABE_NACH_AUSSEN[w];
|
|
119
|
+
}
|
|
120
|
+
return raus;
|
|
121
|
+
}
|
|
122
|
+
const zeilenMitRueckgabe = (items) => (Array.isArray(items) ? items.map(rueckgabeUmbenennen) : items);
|
|
123
|
+
/** Zwilling von `belegRueckgabeNachAussen`: Storno-Zeilen und Eintraege in `cancellations[]`. */
|
|
124
|
+
function belegRueckgabeNachAussen(beleg) {
|
|
125
|
+
const raus = { ...beleg };
|
|
126
|
+
if (Array.isArray(beleg.items))
|
|
127
|
+
raus.items = zeilenMitRueckgabe(beleg.items);
|
|
128
|
+
if (Array.isArray(beleg.cancellations)) {
|
|
129
|
+
raus.cancellations = beleg.cancellations.map((c) => (istObjekt(c) && Array.isArray(c.items) ? { ...c, items: zeilenMitRueckgabe(c.items) } : c));
|
|
130
|
+
}
|
|
131
|
+
return raus;
|
|
132
|
+
}
|
|
95
133
|
/**
|
|
96
134
|
* Zwilling von `beleg-pruefangaben.alsIso`: leer (auch 0, '') -> null;
|
|
97
135
|
* Firestore-Zeitstempel, Zahl oder Zeichenkette -> ISO-Zeitpunkt in UTC;
|
|
@@ -109,8 +147,8 @@ function alsIso(ts) {
|
|
|
109
147
|
}
|
|
110
148
|
/**
|
|
111
149
|
* Ein Belegdokument, wie Handler und Rand es vor der Uebersetzung sehen:
|
|
112
|
-
* ohne Storno-Marke (storno-core.
|
|
113
|
-
* ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
150
|
+
* ohne Storno-Marke und Lager-Standort (storno-core.ohneInterneBelegFelder,
|
|
151
|
+
* Rand ohneStornoMarke). Alles andere bleibt woertlich, auch `pruefangaben` im
|
|
114
152
|
* Beleg selbst (der Server reicht sie so durch). Wirft, wenn es kein
|
|
115
153
|
* Belegdokument ist.
|
|
116
154
|
*/
|
|
@@ -119,6 +157,8 @@ export function _storedReceiptInner(doc, functionName) {
|
|
|
119
157
|
throw new KasseneckValidationError(functionName, 'Kein Belegdokument (receiptId fehlt)', 'response');
|
|
120
158
|
}
|
|
121
159
|
const { [STORNO_MARKE]: _s, ...beleg } = doc;
|
|
160
|
+
for (const feld of INTERNE_BELEG_FELDER)
|
|
161
|
+
delete beleg[feld];
|
|
122
162
|
if (hat(beleg, 'cancellationOf'))
|
|
123
163
|
beleg.cancellationOf = ohneMarke(beleg.cancellationOf);
|
|
124
164
|
if (Array.isArray(beleg.cancellations))
|
|
@@ -140,7 +180,8 @@ export function pruefangabenDerHuelle(p) {
|
|
|
140
180
|
*/
|
|
141
181
|
export function _receiptEnvelopeToWire(huelle) {
|
|
142
182
|
const schema = SCHEMAS.getReceipt;
|
|
143
|
-
|
|
183
|
+
const draht = werteNachAussen(schluesselNachAussen(huelle, schema.data), schema.werte);
|
|
184
|
+
return istObjekt(draht.receipt) ? { ...draht, receipt: belegRueckgabeNachAussen(draht.receipt) } : draht;
|
|
144
185
|
}
|
|
145
186
|
/**
|
|
146
187
|
* Ein Belegdokument (`users/{uid}/cashregisters/{id}/receipts/{id}`) in der
|
|
@@ -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 = "b1049e2f65e9261cf8f729481d9ce1e5afda2cf620333f38ae6bf1afb36c8712";
|
|
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 = "b1049e2f65e9261cf8f729481d9ce1e5afda2cf620333f38ae6bf1afb36c8712";
|
|
5
5
|
/** Schema je Endpunkt (aussen -> innen) und Wertverweise auf die Kataloge. */
|
|
6
6
|
export const SCHEMAS = {
|
|
7
7
|
"getReceipt": {
|
|
@@ -219,7 +219,8 @@ export const SCHEMAS = {
|
|
|
219
219
|
"__": "kasse",
|
|
220
220
|
"visible": "sichtbar",
|
|
221
221
|
"sort": "sort"
|
|
222
|
-
}
|
|
222
|
+
},
|
|
223
|
+
"stockLocationIds": "standorte"
|
|
223
224
|
}
|
|
224
225
|
]
|
|
225
226
|
},
|
|
@@ -256,7 +257,8 @@ export const ARTIKEL_FELDER = [
|
|
|
256
257
|
"revenueGroupId",
|
|
257
258
|
"active",
|
|
258
259
|
"groupId",
|
|
259
|
-
"tile"
|
|
260
|
+
"tile",
|
|
261
|
+
"stockLocationIds"
|
|
260
262
|
];
|
|
261
263
|
/** Wertkataloge innen (deutsch) -> aussen (englisch). */
|
|
262
264
|
export const KATALOGE = {
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "cancelInvoice",
|
|
3
|
+
"description": "Unbekannte Rueckgabe-Wahl beim Vollstorno",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-16",
|
|
6
|
+
"invoiceId": "invoice_example",
|
|
7
|
+
"reason": "return",
|
|
8
|
+
"returnDisposition": "lost"
|
|
9
|
+
},
|
|
10
|
+
"expected": {
|
|
11
|
+
"ok": false,
|
|
12
|
+
"code": "validation",
|
|
13
|
+
"fields": [
|
|
14
|
+
"returnDisposition"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "createCreditNote",
|
|
3
|
+
"description": "Unbekannte Rueckgabe-Wahl an der Position",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-15",
|
|
6
|
+
"invoiceId": "invoice_example",
|
|
7
|
+
"reason": "return",
|
|
8
|
+
"items": [
|
|
9
|
+
{
|
|
10
|
+
"description": "Roggenbrot",
|
|
11
|
+
"quantity": 1,
|
|
12
|
+
"unitPriceCents": 450,
|
|
13
|
+
"vatRate": 10,
|
|
14
|
+
"articleId": "rye-bread",
|
|
15
|
+
"returnDisposition": "lost"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"expected": {
|
|
20
|
+
"ok": false,
|
|
21
|
+
"code": "validation",
|
|
22
|
+
"fields": [
|
|
23
|
+
"items[0].returnDisposition"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "createCreditNote",
|
|
3
|
+
"description": "Rueckgabe: Vorgabe zurueck ins Lager, eine Position defekt",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-14",
|
|
6
|
+
"invoiceId": "invoice_example",
|
|
7
|
+
"reason": "return",
|
|
8
|
+
"returnDisposition": "restock",
|
|
9
|
+
"items": [
|
|
10
|
+
{
|
|
11
|
+
"description": "Roggenbrot",
|
|
12
|
+
"quantity": 1,
|
|
13
|
+
"unitPriceCents": 450,
|
|
14
|
+
"vatRate": 10,
|
|
15
|
+
"articleId": "rye-bread",
|
|
16
|
+
"returnDisposition": "defective"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"expected": {
|
|
21
|
+
"ok": true
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "issueInvoice",
|
|
3
|
+
"description": "Die Rueckgabe-Wahl gehoert an die Gutschrift, nicht an die Rechnung",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-17",
|
|
6
|
+
"priceMode": "gross",
|
|
7
|
+
"serviceStart": "2026-10-01",
|
|
8
|
+
"items": [
|
|
9
|
+
{
|
|
10
|
+
"description": "Roggenbrot",
|
|
11
|
+
"quantity": 1,
|
|
12
|
+
"unitPriceCents": 450,
|
|
13
|
+
"vatRate": 10,
|
|
14
|
+
"returnDisposition": "restock"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"expected": {
|
|
19
|
+
"ok": false,
|
|
20
|
+
"code": "validation",
|
|
21
|
+
"fields": [
|
|
22
|
+
"items[0].returnDisposition"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "issueInvoice",
|
|
3
|
+
"description": "Lager-Kennungen ohne Schraegstrich und nicht nur Punkte",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-18",
|
|
6
|
+
"priceMode": "gross",
|
|
7
|
+
"serviceStart": "2026-10-01",
|
|
8
|
+
"stockLocationId": "..",
|
|
9
|
+
"items": [
|
|
10
|
+
{
|
|
11
|
+
"description": "Roggenbrot",
|
|
12
|
+
"quantity": 1,
|
|
13
|
+
"unitPriceCents": 450,
|
|
14
|
+
"vatRate": 10,
|
|
15
|
+
"articleId": "a/b"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"expected": {
|
|
20
|
+
"ok": false,
|
|
21
|
+
"code": "validation",
|
|
22
|
+
"fields": [
|
|
23
|
+
"stockLocationId",
|
|
24
|
+
"items[0].articleId"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"endpoint": "issueInvoice",
|
|
3
|
+
"description": "Bestandsgefuehrter Artikel, abgebucht vom Lieferwagen",
|
|
4
|
+
"request": {
|
|
5
|
+
"idempotencyKey": "ex-13",
|
|
6
|
+
"priceMode": "gross",
|
|
7
|
+
"serviceStart": "2026-10-01",
|
|
8
|
+
"stockLocationId": "van-1",
|
|
9
|
+
"items": [
|
|
10
|
+
{
|
|
11
|
+
"description": "Roggenbrot",
|
|
12
|
+
"quantity": 2,
|
|
13
|
+
"unitPriceCents": 450,
|
|
14
|
+
"vatRate": 10,
|
|
15
|
+
"articleId": "rye-bread"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"expected": {
|
|
20
|
+
"ok": true
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"title": "Kasseneck Rechnungs-API",
|
|
4
4
|
"version": 2,
|
|
5
|
-
"package": "1.
|
|
5
|
+
"package": "1.2.0",
|
|
6
6
|
"endpoints": {
|
|
7
7
|
"createCustomer": {
|
|
8
8
|
"request": {
|
|
@@ -461,6 +461,11 @@
|
|
|
461
461
|
"minimum": 0,
|
|
462
462
|
"maximum": 100,
|
|
463
463
|
"x-decimals": 2
|
|
464
|
+
},
|
|
465
|
+
"articleId": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"minLength": 1,
|
|
468
|
+
"maxLength": 128
|
|
464
469
|
}
|
|
465
470
|
},
|
|
466
471
|
"required": [
|
|
@@ -505,6 +510,11 @@
|
|
|
505
510
|
"minLength": 1,
|
|
506
511
|
"maxLength": 128
|
|
507
512
|
},
|
|
513
|
+
"stockLocationId": {
|
|
514
|
+
"type": "string",
|
|
515
|
+
"minLength": 1,
|
|
516
|
+
"maxLength": 128
|
|
517
|
+
},
|
|
508
518
|
"payment": {
|
|
509
519
|
"type": "object",
|
|
510
520
|
"properties": {
|
|
@@ -579,6 +589,13 @@
|
|
|
579
589
|
"note": {
|
|
580
590
|
"type": "string",
|
|
581
591
|
"maxLength": 2000
|
|
592
|
+
},
|
|
593
|
+
"returnDisposition": {
|
|
594
|
+
"enum": [
|
|
595
|
+
"restock",
|
|
596
|
+
"defective",
|
|
597
|
+
"disposed"
|
|
598
|
+
]
|
|
582
599
|
}
|
|
583
600
|
},
|
|
584
601
|
"required": [
|
|
@@ -720,6 +737,18 @@
|
|
|
720
737
|
"minimum": 0,
|
|
721
738
|
"maximum": 100,
|
|
722
739
|
"x-decimals": 2
|
|
740
|
+
},
|
|
741
|
+
"articleId": {
|
|
742
|
+
"type": "string",
|
|
743
|
+
"minLength": 1,
|
|
744
|
+
"maxLength": 128
|
|
745
|
+
},
|
|
746
|
+
"returnDisposition": {
|
|
747
|
+
"enum": [
|
|
748
|
+
"restock",
|
|
749
|
+
"defective",
|
|
750
|
+
"disposed"
|
|
751
|
+
]
|
|
723
752
|
}
|
|
724
753
|
},
|
|
725
754
|
"required": [
|
|
@@ -741,6 +770,13 @@
|
|
|
741
770
|
],
|
|
742
771
|
"additionalProperties": false
|
|
743
772
|
}
|
|
773
|
+
},
|
|
774
|
+
"returnDisposition": {
|
|
775
|
+
"enum": [
|
|
776
|
+
"restock",
|
|
777
|
+
"defective",
|
|
778
|
+
"disposed"
|
|
779
|
+
]
|
|
744
780
|
}
|
|
745
781
|
},
|
|
746
782
|
"required": [
|
package/fixtures/pos-texts.json
CHANGED
package/fixtures/surface.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.2.0",
|
|
3
3
|
"baseUrls": {
|
|
4
4
|
"public": "https://api.kasseneck.at/v3",
|
|
5
5
|
"pos": "https://kasse.kasseneck.at/api/v3"
|
|
@@ -70,6 +70,8 @@
|
|
|
70
70
|
"listMyCashregisters",
|
|
71
71
|
"listMyPrinters",
|
|
72
72
|
"listMyReceipts",
|
|
73
|
+
"listMyStock",
|
|
74
|
+
"listMyStockLocations",
|
|
73
75
|
"listMyTipRecipients",
|
|
74
76
|
"listRegisterUsersForDevice",
|
|
75
77
|
"listRegisterSessionsForDevice",
|
|
@@ -78,6 +80,7 @@
|
|
|
78
80
|
"registerUserLogin",
|
|
79
81
|
"renewRegisterSession",
|
|
80
82
|
"sendReceiptEmail",
|
|
83
|
+
"setMyCashregisterStockLocation",
|
|
81
84
|
"setMyKasseLogo",
|
|
82
85
|
"setMyKasseSettings",
|
|
83
86
|
"setMyRegisterDeviceSettings",
|
|
@@ -123,6 +126,8 @@
|
|
|
123
126
|
"listCustomerCashregisters",
|
|
124
127
|
"getCustomerCredentials",
|
|
125
128
|
"reportCustomerContract",
|
|
129
|
+
"getPartnerBilling",
|
|
130
|
+
"getPartnerBillingMonth",
|
|
126
131
|
"createCustomer",
|
|
127
132
|
"getCustomer",
|
|
128
133
|
"updateCustomer",
|
|
@@ -136,7 +141,14 @@
|
|
|
136
141
|
"getInvoiceXml",
|
|
137
142
|
"getInvoiceSetupStatus",
|
|
138
143
|
"listBrands",
|
|
139
|
-
"recordInvoicePayment"
|
|
144
|
+
"recordInvoicePayment",
|
|
145
|
+
"createInvoiceItem",
|
|
146
|
+
"updateInvoiceItem",
|
|
147
|
+
"withdrawInvoiceItem",
|
|
148
|
+
"getInvoiceItem",
|
|
149
|
+
"listInvoiceItems",
|
|
150
|
+
"setCustomerMandate",
|
|
151
|
+
"revokeCustomerMandate"
|
|
140
152
|
],
|
|
141
153
|
"pos": [
|
|
142
154
|
"pairRegisterDevice",
|
|
@@ -163,7 +175,10 @@
|
|
|
163
175
|
"listMyPrinters",
|
|
164
176
|
"createPrintJob",
|
|
165
177
|
"getPrintJob",
|
|
166
|
-
"listMyTipRecipients"
|
|
178
|
+
"listMyTipRecipients",
|
|
179
|
+
"listMyStockLocations",
|
|
180
|
+
"listMyStock",
|
|
181
|
+
"setMyCashregisterStockLocation"
|
|
167
182
|
]
|
|
168
183
|
},
|
|
169
184
|
"enums": {
|
|
@@ -334,11 +349,19 @@
|
|
|
334
349
|
"receiptsScope",
|
|
335
350
|
"drawer",
|
|
336
351
|
"discount",
|
|
337
|
-
"tipAssign"
|
|
352
|
+
"tipAssign",
|
|
353
|
+
"stockView",
|
|
354
|
+
"stockCosts",
|
|
355
|
+
"stockMove",
|
|
356
|
+
"stockLoss",
|
|
357
|
+
"stocktakeCount",
|
|
358
|
+
"stocktakeClose",
|
|
359
|
+
"stockLocation"
|
|
338
360
|
],
|
|
339
361
|
"registerErrorCodes": [
|
|
340
362
|
"account_not_found",
|
|
341
363
|
"admin_required",
|
|
364
|
+
"api_not_approved",
|
|
342
365
|
"cashregister_in_use",
|
|
343
366
|
"cashregister_not_assigned",
|
|
344
367
|
"cashregister_not_found",
|
|
@@ -412,6 +435,7 @@
|
|
|
412
435
|
"posErrorCodes": [
|
|
413
436
|
"account_not_found",
|
|
414
437
|
"admin_required",
|
|
438
|
+
"api_not_approved",
|
|
415
439
|
"cashregister_not_assigned",
|
|
416
440
|
"cashregister_not_found",
|
|
417
441
|
"cashregister_token_invalid",
|
|
@@ -420,6 +444,8 @@
|
|
|
420
444
|
"dialect_mismatch",
|
|
421
445
|
"internal_translation_error",
|
|
422
446
|
"live_not_enabled",
|
|
447
|
+
"location_inactive",
|
|
448
|
+
"location_not_found",
|
|
423
449
|
"logo_invalid",
|
|
424
450
|
"logo_invalid_type",
|
|
425
451
|
"logo_too_large",
|
|
@@ -435,6 +461,7 @@
|
|
|
435
461
|
"register_user_not_allowed",
|
|
436
462
|
"register_user_not_found",
|
|
437
463
|
"response_translation_failed",
|
|
464
|
+
"server_error",
|
|
438
465
|
"session_expired",
|
|
439
466
|
"session_other_cashregister",
|
|
440
467
|
"unauthorized",
|
|
@@ -457,6 +484,17 @@
|
|
|
457
484
|
"quantityRules": [
|
|
458
485
|
"piece",
|
|
459
486
|
"decimal"
|
|
487
|
+
],
|
|
488
|
+
"returnDispositions": [
|
|
489
|
+
"restock",
|
|
490
|
+
"defective",
|
|
491
|
+
"disposed"
|
|
492
|
+
],
|
|
493
|
+
"stockLocationTypes": [
|
|
494
|
+
"warehouse",
|
|
495
|
+
"store",
|
|
496
|
+
"vehicle",
|
|
497
|
+
"other"
|
|
460
498
|
]
|
|
461
499
|
},
|
|
462
500
|
"partner": {
|
|
@@ -761,6 +799,7 @@
|
|
|
761
799
|
"invoiceRequestErrorCodes": [
|
|
762
800
|
"account_not_found",
|
|
763
801
|
"admin_required",
|
|
802
|
+
"api_not_approved",
|
|
764
803
|
"cashregister_not_assigned",
|
|
765
804
|
"cashregister_not_found",
|
|
766
805
|
"cashregister_token_invalid",
|
|
@@ -851,6 +890,11 @@
|
|
|
851
890
|
"net",
|
|
852
891
|
"gross"
|
|
853
892
|
],
|
|
893
|
+
"returnDispositions": [
|
|
894
|
+
"restock",
|
|
895
|
+
"defective",
|
|
896
|
+
"disposed"
|
|
897
|
+
],
|
|
854
898
|
"taxSchemes": [
|
|
855
899
|
"normal",
|
|
856
900
|
"smallBusiness",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
|
|
3
3
|
"_quelle": {
|
|
4
4
|
"sha256": "61892b91e6a8a0f273dcfdeb63809d92d98fb837a3c0baa782f03b29dd3b8b7a",
|
|
5
|
-
"inputsSha256": "
|
|
5
|
+
"inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.31.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
|
|
3
3
|
"_quelle": {
|
|
4
4
|
"sha256": "265bcf3e14cdea33ec3c4df399eb487d40c0d7793ee23d2ee12bcf664bcad550",
|
|
5
|
-
"inputsSha256": "
|
|
5
|
+
"inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.31.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
|
|
3
3
|
"_quelle": {
|
|
4
4
|
"sha256": "aad7147db385e4a6d88ba5fb59d24c04e7e1f01195778aa70ccdc68fb90adcd7",
|
|
5
|
-
"inputsSha256": "
|
|
5
|
+
"inputsSha256": "62e0d9891baa5049aa7634f11fcfd9a44d80b2cb8da79da4fee13140ccd96c2a",
|
|
6
6
|
"backendPackage": "@kreiseck/kasseneck-api@0.31.0",
|
|
7
7
|
"inputs": [
|
|
8
8
|
"docs/api/fehlercodes.json",
|