@kreiseck/kasseneck-api 0.6.7
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/LICENSE +201 -0
- package/NOTICE +2 -0
- package/README.md +206 -0
- package/dist/cjs/client/api.d.ts +75 -0
- package/dist/cjs/client/api.js +40 -0
- package/dist/cjs/client/auth.d.ts +52 -0
- package/dist/cjs/client/auth.js +72 -0
- package/dist/cjs/client/cashregisters.d.ts +21 -0
- package/dist/cjs/client/cashregisters.js +36 -0
- package/dist/cjs/client/errors.d.ts +159 -0
- package/dist/cjs/client/errors.js +226 -0
- package/dist/cjs/client/index.d.ts +8 -0
- package/dist/cjs/client/index.js +44 -0
- package/dist/cjs/client/receipts.d.ts +245 -0
- package/dist/cjs/client/receipts.js +452 -0
- package/dist/cjs/client/reports.d.ts +43 -0
- package/dist/cjs/client/reports.js +73 -0
- package/dist/cjs/client/status.d.ts +43 -0
- package/dist/cjs/client/status.js +47 -0
- package/dist/cjs/client/transport.d.ts +117 -0
- package/dist/cjs/client/transport.js +312 -0
- package/dist/cjs/enums/credit-card-provider.d.ts +22 -0
- package/dist/cjs/enums/credit-card-provider.js +23 -0
- package/dist/cjs/enums/define-enum.d.ts +15 -0
- package/dist/cjs/enums/define-enum.js +16 -0
- package/dist/cjs/enums/index.d.ts +7 -0
- package/dist/cjs/enums/index.js +17 -0
- package/dist/cjs/enums/keck-payment-method.d.ts +57 -0
- package/dist/cjs/enums/keck-payment-method.js +23 -0
- package/dist/cjs/enums/receipt-type.d.ts +41 -0
- package/dist/cjs/enums/receipt-type.js +18 -0
- package/dist/cjs/enums/stripe-link-mode.d.ts +17 -0
- package/dist/cjs/enums/stripe-link-mode.js +18 -0
- package/dist/cjs/enums/vat-rate.d.ts +40 -0
- package/dist/cjs/enums/vat-rate.js +19 -0
- package/dist/cjs/enums/voucher-action.d.ts +10 -0
- package/dist/cjs/enums/voucher-action.js +11 -0
- package/dist/cjs/enums/voucher-type.d.ts +9 -0
- package/dist/cjs/enums/voucher-type.js +10 -0
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.js +97 -0
- package/dist/cjs/kasse/artikel.d.ts +83 -0
- package/dist/cjs/kasse/artikel.js +79 -0
- package/dist/cjs/kasse/client.d.ts +10 -0
- package/dist/cjs/kasse/client.js +38 -0
- package/dist/cjs/kasse/drucker.d.ts +54 -0
- package/dist/cjs/kasse/drucker.js +41 -0
- package/dist/cjs/kasse/index.d.ts +11 -0
- package/dist/cjs/kasse/index.js +38 -0
- package/dist/cjs/kasse/settings.d.ts +115 -0
- package/dist/cjs/kasse/settings.js +62 -0
- package/dist/cjs/models/cancellation.d.ts +51 -0
- package/dist/cjs/models/cancellation.js +45 -0
- package/dist/cjs/models/cashregister.d.ts +77 -0
- package/dist/cjs/models/cashregister.js +53 -0
- package/dist/cjs/models/enum-payload.d.ts +26 -0
- package/dist/cjs/models/enum-payload.js +50 -0
- package/dist/cjs/models/hobex-receipt.d.ts +63 -0
- package/dist/cjs/models/hobex-receipt.js +86 -0
- package/dist/cjs/models/index.d.ts +10 -0
- package/dist/cjs/models/index.js +46 -0
- package/dist/cjs/models/receipt-company.d.ts +71 -0
- package/dist/cjs/models/receipt-company.js +52 -0
- package/dist/cjs/models/receipt-item.d.ts +100 -0
- package/dist/cjs/models/receipt-item.js +108 -0
- package/dist/cjs/models/receipt-summary.d.ts +92 -0
- package/dist/cjs/models/receipt-summary.js +54 -0
- package/dist/cjs/models/receipt.d.ts +108 -0
- package/dist/cjs/models/receipt.js +119 -0
- package/dist/cjs/models/report-month.d.ts +32 -0
- package/dist/cjs/models/report-month.js +65 -0
- package/dist/cjs/models/stripe-url-session.d.ts +18 -0
- package/dist/cjs/models/stripe-url-session.js +20 -0
- package/dist/cjs/models/voucher.d.ts +41 -0
- package/dist/cjs/models/voucher.js +56 -0
- package/dist/cjs/money.d.ts +23 -0
- package/dist/cjs/money.js +35 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/payments/hobex.d.ts +87 -0
- package/dist/cjs/payments/hobex.js +167 -0
- package/dist/cjs/payments/index.d.ts +33 -0
- package/dist/cjs/payments/index.js +42 -0
- package/dist/cjs/payments/stripe.d.ts +61 -0
- package/dist/cjs/payments/stripe.js +157 -0
- package/dist/cjs/printing/escpos.d.ts +219 -0
- package/dist/cjs/printing/escpos.js +636 -0
- package/dist/cjs/printing/index.d.ts +3 -0
- package/dist/cjs/printing/index.js +33 -0
- package/dist/cjs/printing/printable.d.ts +27 -0
- package/dist/cjs/printing/printable.js +90 -0
- package/dist/cjs/printing/webusb.d.ts +89 -0
- package/dist/cjs/printing/webusb.js +110 -0
- package/dist/cjs/react/index.d.ts +46 -0
- package/dist/cjs/react/index.js +51 -0
- package/dist/cjs/receipt/discount.d.ts +12 -0
- package/dist/cjs/receipt/discount.js +54 -0
- package/dist/cjs/receipt/epos.d.ts +53 -0
- package/dist/cjs/receipt/epos.js +95 -0
- package/dist/cjs/receipt/grid.d.ts +47 -0
- package/dist/cjs/receipt/grid.js +122 -0
- package/dist/cjs/receipt/index.d.ts +4 -0
- package/dist/cjs/receipt/index.js +29 -0
- package/dist/cjs/receipt/layout-escpos.d.ts +35 -0
- package/dist/cjs/receipt/layout-escpos.js +67 -0
- package/dist/cjs/receipt/layout.d.ts +180 -0
- package/dist/cjs/receipt/layout.js +594 -0
- package/dist/cjs/register/index.d.ts +51 -0
- package/dist/cjs/register/index.js +61 -0
- package/dist/cjs/register/pairing.d.ts +248 -0
- package/dist/cjs/register/pairing.js +279 -0
- package/dist/cjs/register/session.d.ts +37 -0
- package/dist/cjs/register/session.js +52 -0
- package/dist/cjs/vienna-time.d.ts +23 -0
- package/dist/cjs/vienna-time.js +114 -0
- package/dist/esm/client/api.d.ts +75 -0
- package/dist/esm/client/api.js +37 -0
- package/dist/esm/client/auth.d.ts +52 -0
- package/dist/esm/client/auth.js +68 -0
- package/dist/esm/client/cashregisters.d.ts +21 -0
- package/dist/esm/client/cashregisters.js +33 -0
- package/dist/esm/client/errors.d.ts +159 -0
- package/dist/esm/client/errors.js +212 -0
- package/dist/esm/client/index.d.ts +8 -0
- package/dist/esm/client/index.js +8 -0
- package/dist/esm/client/receipts.d.ts +245 -0
- package/dist/esm/client/receipts.js +438 -0
- package/dist/esm/client/reports.d.ts +43 -0
- package/dist/esm/client/reports.js +69 -0
- package/dist/esm/client/status.d.ts +43 -0
- package/dist/esm/client/status.js +43 -0
- package/dist/esm/client/transport.d.ts +117 -0
- package/dist/esm/client/transport.js +307 -0
- package/dist/esm/enums/credit-card-provider.d.ts +22 -0
- package/dist/esm/enums/credit-card-provider.js +20 -0
- package/dist/esm/enums/define-enum.d.ts +15 -0
- package/dist/esm/enums/define-enum.js +13 -0
- package/dist/esm/enums/index.d.ts +7 -0
- package/dist/esm/enums/index.js +7 -0
- package/dist/esm/enums/keck-payment-method.d.ts +57 -0
- package/dist/esm/enums/keck-payment-method.js +20 -0
- package/dist/esm/enums/receipt-type.d.ts +41 -0
- package/dist/esm/enums/receipt-type.js +15 -0
- package/dist/esm/enums/stripe-link-mode.d.ts +17 -0
- package/dist/esm/enums/stripe-link-mode.js +15 -0
- package/dist/esm/enums/vat-rate.d.ts +40 -0
- package/dist/esm/enums/vat-rate.js +16 -0
- package/dist/esm/enums/voucher-action.d.ts +10 -0
- package/dist/esm/enums/voucher-action.js +8 -0
- package/dist/esm/enums/voucher-type.d.ts +9 -0
- package/dist/esm/enums/voucher-type.js +7 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/kasse/artikel.d.ts +83 -0
- package/dist/esm/kasse/artikel.js +70 -0
- package/dist/esm/kasse/client.d.ts +10 -0
- package/dist/esm/kasse/client.js +33 -0
- package/dist/esm/kasse/drucker.d.ts +54 -0
- package/dist/esm/kasse/drucker.js +36 -0
- package/dist/esm/kasse/index.d.ts +11 -0
- package/dist/esm/kasse/index.js +13 -0
- package/dist/esm/kasse/settings.d.ts +115 -0
- package/dist/esm/kasse/settings.js +58 -0
- package/dist/esm/models/cancellation.d.ts +51 -0
- package/dist/esm/models/cancellation.js +40 -0
- package/dist/esm/models/cashregister.d.ts +77 -0
- package/dist/esm/models/cashregister.js +50 -0
- package/dist/esm/models/enum-payload.d.ts +26 -0
- package/dist/esm/models/enum-payload.js +44 -0
- package/dist/esm/models/hobex-receipt.d.ts +63 -0
- package/dist/esm/models/hobex-receipt.js +80 -0
- package/dist/esm/models/index.d.ts +10 -0
- package/dist/esm/models/index.js +10 -0
- package/dist/esm/models/receipt-company.d.ts +71 -0
- package/dist/esm/models/receipt-company.js +48 -0
- package/dist/esm/models/receipt-item.d.ts +100 -0
- package/dist/esm/models/receipt-item.js +101 -0
- package/dist/esm/models/receipt-summary.d.ts +92 -0
- package/dist/esm/models/receipt-summary.js +49 -0
- package/dist/esm/models/receipt.d.ts +108 -0
- package/dist/esm/models/receipt.js +113 -0
- package/dist/esm/models/report-month.d.ts +32 -0
- package/dist/esm/models/report-month.js +58 -0
- package/dist/esm/models/stripe-url-session.d.ts +18 -0
- package/dist/esm/models/stripe-url-session.js +16 -0
- package/dist/esm/models/voucher.d.ts +41 -0
- package/dist/esm/models/voucher.js +51 -0
- package/dist/esm/money.d.ts +23 -0
- package/dist/esm/money.js +31 -0
- package/dist/esm/payments/hobex.d.ts +87 -0
- package/dist/esm/payments/hobex.js +162 -0
- package/dist/esm/payments/index.d.ts +33 -0
- package/dist/esm/payments/index.js +33 -0
- package/dist/esm/payments/stripe.d.ts +61 -0
- package/dist/esm/payments/stripe.js +153 -0
- package/dist/esm/printing/escpos.d.ts +219 -0
- package/dist/esm/printing/escpos.js +616 -0
- package/dist/esm/printing/index.d.ts +3 -0
- package/dist/esm/printing/index.js +3 -0
- package/dist/esm/printing/printable.d.ts +27 -0
- package/dist/esm/printing/printable.js +87 -0
- package/dist/esm/printing/webusb.d.ts +89 -0
- package/dist/esm/printing/webusb.js +101 -0
- package/dist/esm/react/index.d.ts +46 -0
- package/dist/esm/react/index.js +47 -0
- package/dist/esm/receipt/discount.d.ts +12 -0
- package/dist/esm/receipt/discount.js +51 -0
- package/dist/esm/receipt/epos.d.ts +53 -0
- package/dist/esm/receipt/epos.js +86 -0
- package/dist/esm/receipt/grid.d.ts +47 -0
- package/dist/esm/receipt/grid.js +116 -0
- package/dist/esm/receipt/index.d.ts +4 -0
- package/dist/esm/receipt/index.js +4 -0
- package/dist/esm/receipt/layout-escpos.d.ts +35 -0
- package/dist/esm/receipt/layout-escpos.js +64 -0
- package/dist/esm/receipt/layout.d.ts +180 -0
- package/dist/esm/receipt/layout.js +583 -0
- package/dist/esm/register/index.d.ts +51 -0
- package/dist/esm/register/index.js +51 -0
- package/dist/esm/register/pairing.d.ts +248 -0
- package/dist/esm/register/pairing.js +270 -0
- package/dist/esm/register/session.d.ts +37 -0
- package/dist/esm/register/session.js +48 -0
- package/dist/esm/vienna-time.d.ts +23 -0
- package/dist/esm/vienna-time.js +110 -0
- package/fixtures/belege/langer-artikelname.json +43 -0
- package/fixtures/belege/null-ausfall.json +41 -0
- package/fixtures/belege/null-jahr.json +41 -0
- package/fixtures/belege/null-monat.json +41 -0
- package/fixtures/belege/null-pruef.json +41 -0
- package/fixtures/belege/null-schluss.json +41 -0
- package/fixtures/belege/null-start.json +40 -0
- package/fixtures/belege/rabattzeilen.json +61 -0
- package/fixtures/belege/signaturausfall-verkauf.json +49 -0
- package/fixtures/belege/storno-teil.json +48 -0
- package/fixtures/belege/storno-voll.json +54 -0
- package/fixtures/belege/testkasse-verkauf.json +50 -0
- package/fixtures/belege/testsignatur-verkauf.json +50 -0
- package/fixtures/belege/training.json +49 -0
- package/fixtures/belege/verkauf-bar.json +49 -0
- package/fixtures/belege/verkauf-karte.json +49 -0
- package/fixtures/belege/verkauf-kleinunternehmer.json +42 -0
- package/fixtures/erwartet/langer-artikelname.grid32.txt +25 -0
- package/fixtures/erwartet/langer-artikelname.grid48.txt +24 -0
- package/fixtures/erwartet/langer-artikelname.lines.json +216 -0
- package/fixtures/erwartet/null-ausfall.grid32.txt +28 -0
- package/fixtures/erwartet/null-ausfall.grid48.txt +25 -0
- package/fixtures/erwartet/null-ausfall.lines.json +220 -0
- package/fixtures/erwartet/null-jahr.grid32.txt +29 -0
- package/fixtures/erwartet/null-jahr.grid48.txt +25 -0
- package/fixtures/erwartet/null-jahr.lines.json +220 -0
- package/fixtures/erwartet/null-monat.grid32.txt +28 -0
- package/fixtures/erwartet/null-monat.grid48.txt +25 -0
- package/fixtures/erwartet/null-monat.lines.json +220 -0
- package/fixtures/erwartet/null-pruef.grid32.txt +28 -0
- package/fixtures/erwartet/null-pruef.grid48.txt +25 -0
- package/fixtures/erwartet/null-pruef.lines.json +220 -0
- package/fixtures/erwartet/null-schluss.grid32.txt +28 -0
- package/fixtures/erwartet/null-schluss.grid48.txt +25 -0
- package/fixtures/erwartet/null-schluss.lines.json +220 -0
- package/fixtures/erwartet/null-start.grid32.txt +28 -0
- package/fixtures/erwartet/null-start.grid48.txt +25 -0
- package/fixtures/erwartet/null-start.lines.json +220 -0
- package/fixtures/erwartet/rabattzeilen.grid32.txt +27 -0
- package/fixtures/erwartet/rabattzeilen.grid48.txt +26 -0
- package/fixtures/erwartet/rabattzeilen.lines.json +286 -0
- package/fixtures/erwartet/signaturausfall-verkauf.grid32.txt +28 -0
- package/fixtures/erwartet/signaturausfall-verkauf.grid48.txt +26 -0
- package/fixtures/erwartet/signaturausfall-verkauf.lines.json +266 -0
- package/fixtures/erwartet/storno-teil.grid32.txt +27 -0
- package/fixtures/erwartet/storno-teil.grid48.txt +26 -0
- package/fixtures/erwartet/storno-teil.lines.json +237 -0
- package/fixtures/erwartet/storno-voll.grid32.txt +29 -0
- package/fixtures/erwartet/storno-voll.grid48.txt +28 -0
- package/fixtures/erwartet/storno-voll.lines.json +277 -0
- package/fixtures/erwartet/testkasse-verkauf.grid32.txt +28 -0
- package/fixtures/erwartet/testkasse-verkauf.grid48.txt +27 -0
- package/fixtures/erwartet/testkasse-verkauf.lines.json +270 -0
- package/fixtures/erwartet/testsignatur-verkauf.grid32.txt +30 -0
- package/fixtures/erwartet/testsignatur-verkauf.grid48.txt +27 -0
- package/fixtures/erwartet/testsignatur-verkauf.lines.json +270 -0
- package/fixtures/erwartet/training.grid32.txt +33 -0
- package/fixtures/erwartet/training.grid48.txt +30 -0
- package/fixtures/erwartet/training.lines.json +277 -0
- package/fixtures/erwartet/verkauf-bar.grid32.txt +25 -0
- package/fixtures/erwartet/verkauf-bar.grid48.txt +24 -0
- package/fixtures/erwartet/verkauf-bar.lines.json +256 -0
- package/fixtures/erwartet/verkauf-karte.grid32.txt +25 -0
- package/fixtures/erwartet/verkauf-karte.grid48.txt +24 -0
- package/fixtures/erwartet/verkauf-karte.lines.json +256 -0
- package/fixtures/erwartet/verkauf-kleinunternehmer.grid32.txt +26 -0
- package/fixtures/erwartet/verkauf-kleinunternehmer.grid48.txt +25 -0
- package/fixtures/erwartet/verkauf-kleinunternehmer.lines.json +226 -0
- package/fixtures/manifest.json +107 -0
- package/package.json +135 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { ReceiptType, type ReceiptTypeKey, KeckPaymentMethod, type KeckPaymentMethodKey, CreditCardProvider } from '../enums/index.js';
|
|
2
|
+
import { type Receipt, type ReceiptCompany, type ReceiptItem, type Voucher, type ReceiptSummary, type ReportMonth, type CancellationItem, type CancellationOf, type CancellationReason } from '../models/index.js';
|
|
3
|
+
import type { KasseneckTransport } from './transport.js';
|
|
4
|
+
import type { Pruefangaben, ReceiptLayout } from '../receipt/layout.js';
|
|
5
|
+
/**
|
|
6
|
+
* Beleg-Endpunkte — Zwilling der Beleg-Aufrufe in
|
|
7
|
+
* kasseneck_api/lib/kasseneck_api.dart.
|
|
8
|
+
*
|
|
9
|
+
* **Verkauf, freier Storno und Nullbeleg laufen ueber einen einzigen
|
|
10
|
+
* Backend-Endpunkt `createReceipt`.** `sellReceipt`, `createCancelReceipt` und
|
|
11
|
+
* `zeroReceipt` sind — wie im Flutter-Vorbild — benannte Bequemlichkeits-
|
|
12
|
+
* schichten ueber [createReceipt]; sie legen den Belegtyp fest und reichen den
|
|
13
|
+
* Rest durch. **[cancelReceipt] geht an den eigenen Endpunkt `cancelReceipt`**:
|
|
14
|
+
* der Server negiert die Positionen des Originals, prueft Restmengen und
|
|
15
|
+
* Rechte und verkettet beide Belege (Storno-API).
|
|
16
|
+
*
|
|
17
|
+
* **Kein Wiederholen fehlgeschlagener Aufrufe** (siehe transport.ts): ein
|
|
18
|
+
* Beleg ist nicht folgenlos wiederholbar.
|
|
19
|
+
*
|
|
20
|
+
* **Kassen-Benutzer-Weg (`registerUserAuth`, Browser-Kasse):** Von den
|
|
21
|
+
* Endpunkten dieser Datei setzen [listMyReceipts], [getReceipt],
|
|
22
|
+
* [createReceipt] und [generateFullReceiptId] ein `allowRegisterUser` — der
|
|
23
|
+
* Browser-Kasse steht hier also alles offen ausser [getFirstReceiptDate];
|
|
24
|
+
* siehe den Hinweis dort. Dieses Paket bildet das **nicht** nach — wer darf,
|
|
25
|
+
* entscheidet allein das Backend. Der Hinweis steht hier, damit ein Leser
|
|
26
|
+
* nicht raten muss.
|
|
27
|
+
*/
|
|
28
|
+
/** Gemeinsame Zusatzangaben aller Belegarten (Nutzlast von `createReceipt`). */
|
|
29
|
+
export interface ReceiptCommonOptions {
|
|
30
|
+
/** Kundendaten fuer den Belegkopf; gehen als `\n`-verbundene Zeichenkette raus. */
|
|
31
|
+
customerDetails?: string[];
|
|
32
|
+
/** Rechtshinweise (z. B. Reverse Charge); gehen als `\n`-verbundene Zeichenkette raus. */
|
|
33
|
+
legalMessage?: string[];
|
|
34
|
+
/** Kartenanbieter; ohne Angabe gilt `custom`. */
|
|
35
|
+
creditCardProvider?: CreditCardProvider;
|
|
36
|
+
/** Transaktionsbezeichner der Kartenzahlung. */
|
|
37
|
+
cardPaymentId?: string;
|
|
38
|
+
/** Freier Bezeichner des Aufrufers (Projekt, Auftrag, Schicht). */
|
|
39
|
+
customProjectId?: string;
|
|
40
|
+
/** Rohdaten der Kartenzahlung (Terminal-/Anbieterantwort). */
|
|
41
|
+
cardPaymentData?: Record<string, unknown>;
|
|
42
|
+
}
|
|
43
|
+
/** Belegtyp und Inhalt — die vollstaendige Eingabe von [createReceipt]. */
|
|
44
|
+
export interface CreateReceiptOptions extends ReceiptCommonOptions {
|
|
45
|
+
receiptType: ReceiptType | ReceiptTypeKey;
|
|
46
|
+
/** Zahlungsart des Aufrufers — wird vor dem Senden geprueft. */
|
|
47
|
+
paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
|
|
48
|
+
/**
|
|
49
|
+
* Zahlungsart, die aus einer **Serverantwort** stammt (Storno eines
|
|
50
|
+
* gelesenen Belegs). Geht ungeprueft hinaus: der
|
|
51
|
+
* Server hat den Wert selbst vergeben und weist unbekannte selbst ab —
|
|
52
|
+
* ergaenzt er eine Zahlungsart vor dem naechsten Paket-Update, waeren sonst
|
|
53
|
+
* alle Belege damit unstornierbar. Nur fuer diesen einen Weg gedacht; eine
|
|
54
|
+
* ausdruecklich uebergebene `paymentMethod` sticht.
|
|
55
|
+
*/
|
|
56
|
+
paymentMethodFromServer?: string;
|
|
57
|
+
items?: ReceiptItem[];
|
|
58
|
+
vouchers?: Voucher[];
|
|
59
|
+
}
|
|
60
|
+
export interface SellReceiptOptions extends ReceiptCommonOptions {
|
|
61
|
+
paymentMethod: KeckPaymentMethod | KeckPaymentMethodKey;
|
|
62
|
+
items?: ReceiptItem[];
|
|
63
|
+
vouchers?: Voucher[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* `customerDetails` fehlt hier absichtlich (wie im Flutter-Vorbild): die
|
|
67
|
+
* Kundendaten des Stornos sind die des stornierten Belegs, sonst stimmten
|
|
68
|
+
* Beleg und Storno nicht mehr ueberein.
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Storno ueber den Endpunkt `cancelReceipt` (Backend: storno-endpoints.js).
|
|
72
|
+
* Der Server negiert die Positionen, prueft Restmengen und Rechte, verkettet
|
|
73
|
+
* Original und Storno-Beleg. Bezug entweder als Beleg-Objekt (`receipt`) oder
|
|
74
|
+
* als Kasse + Beleg-ID.
|
|
75
|
+
*/
|
|
76
|
+
export type CancelReceiptOptions = {
|
|
77
|
+
/** Grund aus dem Katalog — Pflicht, nur der Anzeigetext landet am Bon. */
|
|
78
|
+
reason: CancellationReason;
|
|
79
|
+
/** Teilstorno: Positionen (Index im Original) und Mengen. Fehlt = Vollstorno der Restmengen. */
|
|
80
|
+
items?: CancellationItem[];
|
|
81
|
+
/** Interne Anmerkung (≤ 200 Zeichen), wird gespeichert, nie gedruckt. */
|
|
82
|
+
note?: string;
|
|
83
|
+
/** Rueckzahlweg; ohne Angabe die Zahlungsart des stornierten Belegs. */
|
|
84
|
+
paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
|
|
85
|
+
} & ({
|
|
86
|
+
receipt: Receipt;
|
|
87
|
+
cashregisterId?: string;
|
|
88
|
+
originalReceiptId?: string;
|
|
89
|
+
} | {
|
|
90
|
+
receipt?: undefined;
|
|
91
|
+
cashregisterId: string;
|
|
92
|
+
originalReceiptId: string;
|
|
93
|
+
});
|
|
94
|
+
/** Antwort von [cancelReceipt]: Storno-Beleg, Bezug, Restmengen des Originals danach. */
|
|
95
|
+
export interface CancelReceiptResult {
|
|
96
|
+
receipt: Receipt;
|
|
97
|
+
cancellationOf: CancellationOf;
|
|
98
|
+
remaining: number[];
|
|
99
|
+
}
|
|
100
|
+
export interface CreateCancelReceiptOptions extends ReceiptCommonOptions {
|
|
101
|
+
paymentMethod: KeckPaymentMethod | KeckPaymentMethodKey;
|
|
102
|
+
/** Positionen, wie sie auf dem Storno stehen sollen — **nicht** negiert. */
|
|
103
|
+
items: ReceiptItem[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Beleg **und** die Firmen-/Druckdaten derselben Antwort — das Ergebnis der
|
|
107
|
+
* `…WithCompany`-Varianten. Das Backend liefert beides in einem Aufruf
|
|
108
|
+
* (functions/index.js); wer den Beleg drucken oder anzeigen will, braucht
|
|
109
|
+
* beides und soll dafuer keinen zweiten Aufruf machen muessen.
|
|
110
|
+
*/
|
|
111
|
+
export interface ReceiptWithCompany {
|
|
112
|
+
receipt: Receipt;
|
|
113
|
+
/** Kopf/Fuss, wie sie fuer DIESEN Beleg gelten (eingefrorene Version des Backends). */
|
|
114
|
+
company: ReceiptCompany;
|
|
115
|
+
/** Beleg einer Testumgebung (Aufdruck TESTKASSE). */
|
|
116
|
+
testKasse: boolean;
|
|
117
|
+
/** Produktionskonto mit Test-Signatureinheit (Aufdruck TESTSIGNATUR). */
|
|
118
|
+
testSignatur: boolean;
|
|
119
|
+
/** Kennung der Kopf-Version; null bei altem Backend/Altbeleg ohne Zuordnung. */
|
|
120
|
+
kopfId: string | null;
|
|
121
|
+
/** Vom Backend gebautes Zeilenmodell (Regelwerk des Belegs); null, wenn nicht mitgeliefert. */
|
|
122
|
+
layout: ReceiptLayout | null;
|
|
123
|
+
/**
|
|
124
|
+
* Registrierdaten fuer den Block „Prüfangaben“ (Nullbelege, Regelwerk 2) --
|
|
125
|
+
* fuer Clients, die das Layout selbst bauen; null bei altem Backend.
|
|
126
|
+
*/
|
|
127
|
+
pruefangaben: Pruefangaben | null;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Gemeinsame Umsetzung aller Belegarten (Zwilling von `_createReceipt`).
|
|
131
|
+
* Bewusst **nicht** Teil der Paketoberflaeche: der Belegtyp gehoert nicht in
|
|
132
|
+
* die Hand des Aufrufers, sondern zu einem der benannten Aufrufe darunter.
|
|
133
|
+
*/
|
|
134
|
+
export declare function createReceipt(rufen: KasseneckTransport, options: CreateReceiptOptions): Promise<Receipt>;
|
|
135
|
+
/** Normalbeleg (Verkauf) nach RKSV. */
|
|
136
|
+
export declare function sellReceipt(rufen: KasseneckTransport, options: SellReceiptOptions): Promise<Receipt>;
|
|
137
|
+
/**
|
|
138
|
+
* Normalbeleg wie [sellReceipt], liefert zusaetzlich die Firmen-/Druckdaten
|
|
139
|
+
* aus derselben Antwort — alles, was ein Belegdruck braucht, in einem Aufruf.
|
|
140
|
+
*/
|
|
141
|
+
export declare function sellReceiptWithCompany(rufen: KasseneckTransport, options: SellReceiptOptions): Promise<ReceiptWithCompany>;
|
|
142
|
+
/**
|
|
143
|
+
* Storno-Beleg zu einem bestehenden Beleg — voll oder in Teilen. Prueft die
|
|
144
|
+
* Eingabe, bevor etwas hinausgeht; der Server haelt die Restmengen und die
|
|
145
|
+
* Reichweite des Rechts (eigene/alle) und antwortet mit dem fertigen,
|
|
146
|
+
* signierten Storno-Beleg. Gutscheine des Originals wandern nicht mit.
|
|
147
|
+
*/
|
|
148
|
+
export declare function cancelReceipt(rufen: KasseneckTransport, options: CancelReceiptOptions): Promise<CancelReceiptResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Stornobeleg aus frei uebergebenen Positionen — fuer den Fall, dass der
|
|
151
|
+
* Originalbeleg nicht als Objekt vorliegt. Die Positionen gehen **unveraendert**
|
|
152
|
+
* hinaus; das Vorzeichen setzt der Aufrufer.
|
|
153
|
+
*/
|
|
154
|
+
export declare function createCancelReceipt(rufen: KasseneckTransport, options: CreateCancelReceiptOptions): Promise<Receipt>;
|
|
155
|
+
/** Nullbeleg (RKSV-Pruefbeleg) — ohne Positionen und ohne Zahlungsart. */
|
|
156
|
+
export declare function zeroReceipt(rufen: KasseneckTransport): Promise<Receipt>;
|
|
157
|
+
/** Belegliste einer Kasse samt der Kennzahlen, die dieselbe Antwort mitliefert. */
|
|
158
|
+
export interface ReceiptList {
|
|
159
|
+
/** Letzte Belege, neueste zuerst (Backend: nach `counter` absteigend). */
|
|
160
|
+
receipts: ReceiptSummary[];
|
|
161
|
+
stats: ReceiptListStats;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Kennzahlen zur Kasse, die `listMyReceipts` neben der Liste liefert. Sie
|
|
165
|
+
* kommen aus den Tages-Aggregaten des Backends, nicht aus den gelisteten
|
|
166
|
+
* Belegen — die Reihe umfasst sieben Tage, die Liste nur die letzten `limit`
|
|
167
|
+
* Belege.
|
|
168
|
+
*/
|
|
169
|
+
export interface ReceiptListStats {
|
|
170
|
+
/** Heutiger Umsatz in Cent und Belegzahl (Wiener Kalendertag). */
|
|
171
|
+
today: {
|
|
172
|
+
revenueCents: number;
|
|
173
|
+
count: number;
|
|
174
|
+
};
|
|
175
|
+
/** Veraenderung gegenueber gestern in Prozent; `null`, wenn gestern 0 war. */
|
|
176
|
+
trendPercent: number | null;
|
|
177
|
+
/** Sieben Tage, aeltester zuerst; `date` als `YYYY-MM-DD` (Wiener Kalender). */
|
|
178
|
+
days: Array<{
|
|
179
|
+
date: string;
|
|
180
|
+
revenueCents: number;
|
|
181
|
+
}>;
|
|
182
|
+
}
|
|
183
|
+
export interface ListMyReceiptsOptions {
|
|
184
|
+
/**
|
|
185
|
+
* Kasse, deren Belege gelistet werden. Geht als Parameter **`cashregisterid`**
|
|
186
|
+
* hinaus — klein geschrieben, anders als das `cashregisterId` der Anmeldung:
|
|
187
|
+
* so heisst der Pflichtparameter dieses Endpunkts im Backend, und ein
|
|
188
|
+
* Tippfehler faellt sonst erst im Betrieb auf.
|
|
189
|
+
*/
|
|
190
|
+
cashregisterId: string;
|
|
191
|
+
/**
|
|
192
|
+
* Anzahl Belege; ohne Angabe nimmt das Backend 50. Es begrenzt den Wert
|
|
193
|
+
* selbst auf 1 bis 200 — ein groesserer Wunsch wird still gekappt.
|
|
194
|
+
*/
|
|
195
|
+
limit?: number;
|
|
196
|
+
/** Zeitfenster (Wiener Wanduhr, `YYYY-MM-DD` oder voller Zeitstempel); der Server deckelt auf 90 Tage. */
|
|
197
|
+
from?: string;
|
|
198
|
+
to?: string;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Belege einer Kasse auflisten — die Grundlage jeder Belegliste in der
|
|
202
|
+
* Browser-Kasse (Nachdruck, Storno, Tagesuebersicht).
|
|
203
|
+
*
|
|
204
|
+
* Die Eintraege sind **Zusammenfassungen**, keine vollstaendigen Belege (siehe
|
|
205
|
+
* [ReceiptSummary]); fuer Nachdruck oder Storno gehoert der Beleg ueber
|
|
206
|
+
* [getReceipt] bzw. [getReceiptWithCompany] einzeln geholt.
|
|
207
|
+
*
|
|
208
|
+
* **Anmeldeweg:** Der Endpunkt laeuft im Backend unter
|
|
209
|
+
* `checkRequest(req, 'customer', …, {allowRegisterUser: true})`, der Bearer
|
|
210
|
+
* muss also ein Firebase-ID-Token sein — mit `apiKeyAuth` ist er nicht
|
|
211
|
+
* erreichbar. Ausserdem prueft das Backend die Kassenzuweisung hier im Rumpf
|
|
212
|
+
* (der Endpunkt laeuft mit `checkCashRegister: false`), ein Kassen-Benutzer
|
|
213
|
+
* bekommt also nur die ihm zugewiesenen Kassen.
|
|
214
|
+
*/
|
|
215
|
+
export declare function listMyReceipts(rufen: KasseneckTransport, options: ListMyReceiptsOptions): Promise<ReceiptList>;
|
|
216
|
+
/** Einzelnen Beleg der angemeldeten Kasse holen. */
|
|
217
|
+
export declare function getReceipt(rufen: KasseneckTransport, receiptId: string): Promise<Receipt>;
|
|
218
|
+
/**
|
|
219
|
+
* Wie [getReceipt], liefert zusaetzlich die Firmen-/Druckdaten aus derselben
|
|
220
|
+
* Antwort (Firma, Anschrift, Steuernummer, UID, Fusszeilen, Logo-Adresse,
|
|
221
|
+
* Kleinunternehmer-Kennzeichen) — die Angaben, die ein Beleg im Kopf und Fuss
|
|
222
|
+
* traegt (siehe models/receipt-company.ts).
|
|
223
|
+
*/
|
|
224
|
+
export declare function getReceiptWithCompany(rufen: KasseneckTransport, receiptId: string): Promise<ReceiptWithCompany>;
|
|
225
|
+
/**
|
|
226
|
+
* Verschluesselte Volltext-Belegnummer erzeugen — der Bezeichner, unter dem der
|
|
227
|
+
* Beleg oeffentlich abrufbar ist (Beleg-Download, Pruefportal).
|
|
228
|
+
*/
|
|
229
|
+
export declare function generateFullReceiptId(rufen: KasseneckTransport, receiptId: string): Promise<string>;
|
|
230
|
+
/**
|
|
231
|
+
* Berichtsmonat des allerersten Belegs dieser Kasse — die untere Grenze aller
|
|
232
|
+
* Monatsberichte.
|
|
233
|
+
*
|
|
234
|
+
* **Nicht fuer den Kassen-Benutzer-Weg (`registerUserAuth`):** dieser Endpunkt
|
|
235
|
+
* fuehrt kein `allowRegisterUser`, das Backend weist die Browser-Kasse hier ab
|
|
236
|
+
* (siehe Modulkommentar oben). Mit `apiKeyAuth` ist er offen.
|
|
237
|
+
*/
|
|
238
|
+
export declare function getFirstReceiptDate(rufen: KasseneckTransport): Promise<ReportMonth>;
|
|
239
|
+
/**
|
|
240
|
+
* Prueft die Gutschein-Kombination eines Belegs und liefert den ersten
|
|
241
|
+
* Regelverstoss als Text (oder `null`) — Zwilling von
|
|
242
|
+
* `checkVoucherCombinationError`. Bewusst als Rueckgabewert statt als Fehler:
|
|
243
|
+
* eine Kassenoberflaeche will das pruefen, **bevor** sie den Beleg abschickt.
|
|
244
|
+
*/
|
|
245
|
+
export declare function checkVoucherCombinationError(vouchers: Voucher[], items: ReceiptItem[]): string | null;
|