@kreiseck/kasseneck-api 0.6.44 → 0.6.45
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/README.md +17 -0
- package/dist/cjs/client/aufrufe.d.ts +21 -0
- package/dist/cjs/client/aufrufe.js +34 -0
- package/dist/cjs/client/cashregisters.d.ts +2 -2
- package/dist/cjs/client/index.d.ts +1 -0
- package/dist/cjs/client/index.js +3 -1
- package/dist/cjs/client/receipts.d.ts +12 -12
- package/dist/cjs/client/reports.d.ts +3 -3
- package/dist/cjs/client/status.d.ts +3 -3
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/kasse/artikel.d.ts +3 -3
- package/dist/cjs/kasse/client.d.ts +4 -4
- package/dist/cjs/kasse/drucker.d.ts +4 -4
- package/dist/cjs/kasse/index.d.ts +1 -1
- package/dist/cjs/kasse/index.js +30 -1
- package/dist/cjs/kasse/settings.d.ts +82 -31
- package/dist/cjs/kasse/settings.js +65 -5
- package/dist/cjs/payments/hobex.d.ts +3 -3
- package/dist/cjs/payments/stripe.d.ts +3 -3
- package/dist/cjs/register/index.d.ts +1 -1
- package/dist/cjs/register/index.js +2 -1
- package/dist/cjs/register/pairing.d.ts +2 -0
- package/dist/cjs/register/pairing.js +6 -0
- package/dist/cjs/register/session.d.ts +3 -3
- package/dist/esm/client/aufrufe.d.ts +21 -0
- package/dist/esm/client/aufrufe.js +31 -0
- package/dist/esm/client/cashregisters.d.ts +2 -2
- package/dist/esm/client/index.d.ts +1 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/client/receipts.d.ts +12 -12
- package/dist/esm/client/reports.d.ts +3 -3
- package/dist/esm/client/status.d.ts +3 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/kasse/artikel.d.ts +3 -3
- package/dist/esm/kasse/client.d.ts +4 -4
- package/dist/esm/kasse/drucker.d.ts +4 -4
- package/dist/esm/kasse/index.d.ts +1 -1
- package/dist/esm/kasse/index.js +3 -1
- package/dist/esm/kasse/settings.d.ts +82 -31
- package/dist/esm/kasse/settings.js +64 -4
- package/dist/esm/payments/hobex.d.ts +3 -3
- package/dist/esm/payments/stripe.d.ts +3 -3
- package/dist/esm/register/index.d.ts +1 -1
- package/dist/esm/register/index.js +1 -1
- package/dist/esm/register/pairing.d.ts +2 -0
- package/dist/esm/register/pairing.js +5 -0
- package/dist/esm/register/session.d.ts +3 -3
- package/fixtures/kasse-settings-standard.json +10 -9
- package/fixtures/oberflaeche.json +216 -0
- package/package.json +3 -2
|
@@ -7,48 +7,95 @@
|
|
|
7
7
|
* Backend; ein Test in beiden Repos haelt sie deckungsgleich. Trinkgeld ist
|
|
8
8
|
* bewusst AUS, bis die Buchung geklaert ist (Spec kachel-kasse § 9).
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
11
|
-
export type
|
|
12
|
-
export
|
|
13
|
-
export type
|
|
14
|
-
export
|
|
15
|
-
export type
|
|
10
|
+
export declare const STIL: readonly ["klar", "warm", "nacht", "kontrast"];
|
|
11
|
+
export type KasseStil = typeof STIL[number];
|
|
12
|
+
export declare const SCHRIFT: readonly ["S", "M", "L", "XL"];
|
|
13
|
+
export type KasseSchrift = typeof SCHRIFT[number];
|
|
14
|
+
export declare const WASSERZEICHEN: readonly ["aus", "anmeldung", "ueberall"];
|
|
15
|
+
export type KasseWasserzeichen = typeof WASSERZEICHEN[number];
|
|
16
|
+
export declare const MENGE: readonly ["aus", "x", "kg"];
|
|
17
|
+
export type KasseMenge = typeof MENGE[number];
|
|
18
|
+
export declare const TG_MODUS: readonly ["betrag", "gesamt", "beides"];
|
|
19
|
+
export type KasseTgModus = typeof TG_MODUS[number];
|
|
20
|
+
export declare const KASSIEREN_MODUS: readonly ["seite", "panel"];
|
|
21
|
+
export type KasseKassierenModus = typeof KASSIEREN_MODUS[number];
|
|
16
22
|
/** Kartenanbieter: Karte gibt es erst mit eingerichtetem Anbieter; 'extern' = eigenes Terminal ohne Anbindung. */
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export type
|
|
21
|
-
export
|
|
22
|
-
export type
|
|
23
|
+
export declare const KARTENANBIETER: readonly ["keiner", "extern", "gptom", "hobex", "mypos", "stripe"];
|
|
24
|
+
export type KasseKartenanbieter = typeof KARTENANBIETER[number];
|
|
25
|
+
export declare const BELEG_AUSGABE: readonly ["qr", "druck", "mail", "sms", "fragen"];
|
|
26
|
+
export type KasseBelegAusgabe = typeof BELEG_AUSGABE[number];
|
|
27
|
+
export declare const LAYOUT: readonly ["rechts", "links", "vollbild"];
|
|
28
|
+
export type KasseLayout = typeof LAYOUT[number];
|
|
29
|
+
export declare const KATPOS: readonly ["oben", "links"];
|
|
30
|
+
export type KasseKatpos = typeof KATPOS[number];
|
|
31
|
+
export declare const HOEHE: readonly ["S", "M", "L"];
|
|
32
|
+
export type KasseHoehe = typeof HOEHE[number];
|
|
23
33
|
/**
|
|
24
34
|
* `sdp` = Netzwerk ueber Epson Server Direct Print (der Drucker holt Jobs vom Backend, jeder Browser druckt).
|
|
25
35
|
* `connect` = Kasseneck Connect (lokaler Agent auf dem Kassen-Rechner druckt fuer die Browser-Kasse).
|
|
26
36
|
*/
|
|
27
|
-
export
|
|
37
|
+
export declare const DRUCKER_ART: readonly ["sdp", "netz", "bt", "usb", "connect"];
|
|
38
|
+
export type KasseDruckerArt = typeof DRUCKER_ART[number];
|
|
28
39
|
/** Terminal-Ansprache: direkt per IP (wie bisher) oder ueber Kasseneck Connect (Agent leitet weiter). */
|
|
29
|
-
export
|
|
40
|
+
export declare const TERMINAL_VIA: readonly ["direkt", "connect"];
|
|
41
|
+
export type KasseTerminalVia = typeof TERMINAL_VIA[number];
|
|
30
42
|
/** Art des Kartenterminals an dieser Kasse: keines oder Hobex HPS (JSON-REST am Geraet). */
|
|
31
|
-
export
|
|
32
|
-
export type
|
|
33
|
-
export
|
|
34
|
-
export type
|
|
35
|
-
export
|
|
43
|
+
export declare const TERMINAL_ART: readonly ["keins", "hps"];
|
|
44
|
+
export type KasseTerminalArt = typeof TERMINAL_ART[number];
|
|
45
|
+
export declare const PAPIER: readonly ["mm58", "mm80"];
|
|
46
|
+
export type KassePapier = typeof PAPIER[number];
|
|
47
|
+
export declare const ZEICHENSATZ: readonly ["CP1252", "CP437"];
|
|
48
|
+
export type KasseZeichensatz = typeof ZEICHENSATZ[number];
|
|
49
|
+
export declare const SCHNITT: readonly ["partial", "full", "none"];
|
|
50
|
+
export type KasseSchnitt = typeof SCHNITT[number];
|
|
51
|
+
export declare const LADE_AUTO: readonly ["bar", "immer", "nie"];
|
|
52
|
+
export type KasseLadeAuto = typeof LADE_AUTO[number];
|
|
53
|
+
/** Groesse des Kuerzel-Logos in der Kopfzeile der Kasse. */
|
|
54
|
+
export declare const LOGO_GROESSE: readonly ["S", "M", "L"];
|
|
55
|
+
export type KasseLogoGroesse = typeof LOGO_GROESSE[number];
|
|
56
|
+
/** Schriftgroesse in den Chef-Einstellungen — getrennt von der Schrift der Kasse. */
|
|
57
|
+
export declare const SCHRIFT_EINST: readonly ["S", "M", "L"];
|
|
58
|
+
export type KasseSchriftEinst = typeof SCHRIFT_EINST[number];
|
|
59
|
+
/** Kachel-Optik: farbiger Streifen am Rand oder ganz gefuellte Kachel. */
|
|
60
|
+
export declare const KACHELSTIL: readonly ["streifen", "voll"];
|
|
61
|
+
export type KasseKachelstil = typeof KACHELSTIL[number];
|
|
62
|
+
/** Automatisches Abmelden nach Minuten Ruhe; 0 = nie. */
|
|
63
|
+
export declare const AUTO_AB_MIN: readonly [0, 1, 5, 15, 30];
|
|
64
|
+
export type KasseAutoAbMin = typeof AUTO_AB_MIN[number];
|
|
65
|
+
/** Rabatt am Beleg erlaubt. */
|
|
66
|
+
export declare const RABATT: readonly ["aus", "an"];
|
|
67
|
+
export type KasseRabatt = typeof RABATT[number];
|
|
68
|
+
/** Seite des Wasserzeichens — ALT, abgeloest von wzPos. */
|
|
69
|
+
export declare const WZ_SEITE: readonly ["links", "mitte", "rechts"];
|
|
70
|
+
export type KasseWzSeite = typeof WZ_SEITE[number];
|
|
71
|
+
/** Deckkraft des Wasserzeichens in Prozent — bewusst Stufen, kein Schieberegler. */
|
|
72
|
+
export declare const WZ_STAERKE: readonly [3, 6, 10, 16];
|
|
73
|
+
export type KasseWzStaerke = typeof WZ_STAERKE[number];
|
|
74
|
+
/** Groesse des Bild-Logos am Beleg. */
|
|
75
|
+
export declare const LOGO_SKALA: readonly ["S", "M", "L", "XL"];
|
|
76
|
+
export type KasseLogoSkala = typeof LOGO_SKALA[number];
|
|
77
|
+
/** Groesse des Wasserzeichens — getrennt vom Beleg-Logo. */
|
|
78
|
+
export declare const WZ_SKALA: readonly ["S", "M", "L", "XL"];
|
|
79
|
+
export type KasseWzSkala = typeof WZ_SKALA[number];
|
|
80
|
+
/** Wie lange die Fertig-Seite stehen bleibt, in Sekunden; 0 = bis zum Tippen. */
|
|
81
|
+
export declare const FERTIG_SEKUNDEN: readonly [0, 3, 5, 10, 15, 30, 60];
|
|
82
|
+
export type KasseFertigSekunden = typeof FERTIG_SEKUNDEN[number];
|
|
36
83
|
/** Schalter-Landkarte: Steuersaetze / Trinkgeldstufen (Schluessel = Wert als Text). */
|
|
37
84
|
export type Schalterkarte = Record<string, boolean>;
|
|
38
85
|
export interface KasseSettingsBetrieb {
|
|
39
86
|
logoText: string;
|
|
40
87
|
logoAn: boolean;
|
|
41
|
-
logoGroesse:
|
|
88
|
+
logoGroesse: KasseLogoGroesse;
|
|
42
89
|
wasserzeichen: KasseWasserzeichen;
|
|
43
90
|
farbe: string;
|
|
44
91
|
stil: KasseStil;
|
|
45
92
|
schrift: KasseSchrift;
|
|
46
|
-
schriftEinst:
|
|
47
|
-
kachelstil:
|
|
93
|
+
schriftEinst: KasseSchriftEinst;
|
|
94
|
+
kachelstil: KasseKachelstil;
|
|
48
95
|
uhr: boolean;
|
|
49
96
|
sperrbild: boolean;
|
|
50
97
|
foto: boolean;
|
|
51
|
-
autoAbMin:
|
|
98
|
+
autoAbMin: KasseAutoAbMin;
|
|
52
99
|
abNachVerkauf: boolean;
|
|
53
100
|
/** Schnelles Entsperren mit gemerkter PIN (lokal, Server-Login laeuft nach); aus = streng, jeder Login wartet. */
|
|
54
101
|
schnellLogin: boolean;
|
|
@@ -61,21 +108,21 @@ export interface KasseSettingsBetrieb {
|
|
|
61
108
|
menge: KasseMenge;
|
|
62
109
|
notiz: boolean;
|
|
63
110
|
suche: boolean;
|
|
64
|
-
rabatt:
|
|
111
|
+
rabatt: KasseRabatt;
|
|
65
112
|
/** Bild-Logo (Download-URL aus dem Kasse-Upload); '' = Kuerzel verwenden. */
|
|
66
113
|
logoBild: string;
|
|
67
114
|
/** Seite des Wasserzeichens — ALT: abgeloest von wzPos, bleibt fuers Mischen alter Staende. */
|
|
68
|
-
wzSeite:
|
|
115
|
+
wzSeite: KasseWzSeite;
|
|
69
116
|
/** Horizontale Lage der Wasserzeichen-MITTE in Prozent (-25 bis 125 — darf ueber den Rand hinaus). */
|
|
70
117
|
wzPos: number;
|
|
71
118
|
/** Vertikale Lage der Wasserzeichen-Mitte in Prozent (-25 bis 125). */
|
|
72
119
|
wzPosV: number;
|
|
73
120
|
/** Deckkraft des Wasserzeichens in Prozent — bewusst Stufen, kein Schieberegler. */
|
|
74
|
-
wzStaerke:
|
|
121
|
+
wzStaerke: KasseWzStaerke;
|
|
75
122
|
/** Groesse des Bild-Logos am BELEG (Ansicht, PDF, Kopfzeile). */
|
|
76
|
-
logoSkala:
|
|
123
|
+
logoSkala: KasseLogoSkala;
|
|
77
124
|
/** Groesse des Wasserzeichens — getrennt vom Beleg-Logo. */
|
|
78
|
-
wzSkala:
|
|
125
|
+
wzSkala: KasseWzSkala;
|
|
79
126
|
zahlBar: boolean;
|
|
80
127
|
zahlKarte: boolean;
|
|
81
128
|
kartenanbieter: KasseKartenanbieter;
|
|
@@ -91,15 +138,17 @@ export interface KasseSettingsBetrieb {
|
|
|
91
138
|
/** Rabatt-Chips in Prozent — dieselben Regeln wie tgChips, vom Chef einstellbar. */
|
|
92
139
|
rabattChips: number[];
|
|
93
140
|
belegAusgabe: KasseBelegAusgabe;
|
|
94
|
-
fertigSekunden:
|
|
141
|
+
fertigSekunden: KasseFertigSekunden;
|
|
95
142
|
/** Glas-Optik: Kacheln und Korb leicht durchscheinend (Wasserzeichen schimmert). */
|
|
96
143
|
glas: boolean;
|
|
97
144
|
/** Hilfetexte in den Chef-Einstellungen anzeigen. */
|
|
98
145
|
hinweise: boolean;
|
|
99
146
|
}
|
|
100
147
|
/** Aktionen der Kasse, die eine Taste bekommen koennen. */
|
|
101
|
-
export
|
|
102
|
-
export
|
|
148
|
+
export declare const KASSE_TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren"];
|
|
149
|
+
export type KasseTastenAktion = typeof KASSE_TASTEN_AKTIONEN[number];
|
|
150
|
+
/** Kurzer Name, damit alle Enum-Listen gleich heissen; der alte bleibt gueltig. */
|
|
151
|
+
export declare const TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren"];
|
|
103
152
|
/** Tastenkarte: Aktion -> Tasten (`Mod+F`, `Enter`, `Escape`, `F5` ...; `Mod` = ⌘ auf dem Mac, Strg sonst). */
|
|
104
153
|
export type KasseTastenkarte = Record<KasseTastenAktion, string[]>;
|
|
105
154
|
export declare const KASSE_TASTEN_STANDARD: Readonly<KasseTastenkarte>;
|
|
@@ -116,6 +165,8 @@ export interface KasseSettingsGeraet {
|
|
|
116
165
|
druckerIp: string;
|
|
117
166
|
druckerPort: number;
|
|
118
167
|
druckerBt: string;
|
|
168
|
+
/** Klartextname des gemerkten Druckers; sonst stuende dort eine nackte Bluetooth-Adresse. */
|
|
169
|
+
druckerName: string;
|
|
119
170
|
/** Kennung des Netzwerk-Druckers (Server Direct Print) aus `listMyPrinters`; '' = keiner gewaehlt. */
|
|
120
171
|
druckerId: string;
|
|
121
172
|
/** ePOS Device-ID bei `druckerArt 'netz'` (Epson direkt per IP), Vorgabe `local_printer`. */
|
|
@@ -7,8 +7,68 @@
|
|
|
7
7
|
* Backend; ein Test in beiden Repos haelt sie deckungsgleich. Trinkgeld ist
|
|
8
8
|
* bewusst AUS, bis die Buchung geklaert ist (Spec kachel-kasse § 9).
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
/*
|
|
11
|
+
* Jedes Enum steht als Liste zur Laufzeit da, der Typ leitet sich daraus ab
|
|
12
|
+
* (`typeof LISTE[number]`). So gibt es die Werte nur einmal, und die Zwillinge
|
|
13
|
+
* (Backend-Validator, Flutter-Paket) koennen gegen dieselben Listen pruefen,
|
|
14
|
+
* statt sie abzuschreiben.
|
|
15
|
+
*/
|
|
16
|
+
export const STIL = ['klar', 'warm', 'nacht', 'kontrast'];
|
|
17
|
+
export const SCHRIFT = ['S', 'M', 'L', 'XL'];
|
|
18
|
+
export const WASSERZEICHEN = ['aus', 'anmeldung', 'ueberall'];
|
|
19
|
+
export const MENGE = ['aus', 'x', 'kg'];
|
|
20
|
+
export const TG_MODUS = ['betrag', 'gesamt', 'beides'];
|
|
21
|
+
export const KASSIEREN_MODUS = ['seite', 'panel'];
|
|
22
|
+
/** Kartenanbieter: Karte gibt es erst mit eingerichtetem Anbieter; 'extern' = eigenes Terminal ohne Anbindung. */
|
|
23
|
+
export const KARTENANBIETER = ['keiner', 'extern', 'gptom', 'hobex', 'mypos', 'stripe'];
|
|
24
|
+
export const BELEG_AUSGABE = ['qr', 'druck', 'mail', 'sms', 'fragen'];
|
|
25
|
+
export const LAYOUT = ['rechts', 'links', 'vollbild'];
|
|
26
|
+
export const KATPOS = ['oben', 'links'];
|
|
27
|
+
export const HOEHE = ['S', 'M', 'L'];
|
|
28
|
+
/**
|
|
29
|
+
* `sdp` = Netzwerk ueber Epson Server Direct Print (der Drucker holt Jobs vom Backend, jeder Browser druckt).
|
|
30
|
+
* `connect` = Kasseneck Connect (lokaler Agent auf dem Kassen-Rechner druckt fuer die Browser-Kasse).
|
|
31
|
+
*/
|
|
32
|
+
export const DRUCKER_ART = ['sdp', 'netz', 'bt', 'usb', 'connect'];
|
|
33
|
+
/** Terminal-Ansprache: direkt per IP (wie bisher) oder ueber Kasseneck Connect (Agent leitet weiter). */
|
|
34
|
+
export const TERMINAL_VIA = ['direkt', 'connect'];
|
|
35
|
+
/** Art des Kartenterminals an dieser Kasse: keines oder Hobex HPS (JSON-REST am Geraet). */
|
|
36
|
+
export const TERMINAL_ART = ['keins', 'hps'];
|
|
37
|
+
export const PAPIER = ['mm58', 'mm80'];
|
|
38
|
+
export const ZEICHENSATZ = ['CP1252', 'CP437'];
|
|
39
|
+
export const SCHNITT = ['partial', 'full', 'none'];
|
|
40
|
+
export const LADE_AUTO = ['bar', 'immer', 'nie'];
|
|
41
|
+
/*
|
|
42
|
+
* Auch die uebrigen Wertemengen der Einstellungen stehen jetzt als Liste da —
|
|
43
|
+
* vorher waren sie nur als Union am Feld ausgeschrieben. Ein Zwilling konnte
|
|
44
|
+
* dadurch einen Wert (etwa `kachelstil: 'voll'`) gar nicht kennen, ohne dass es
|
|
45
|
+
* auffiel: der Vertrag fuehrte die Menge nicht, und die Standardwerte-Datei
|
|
46
|
+
* pinnt je Feld nur einen einzigen Wert.
|
|
47
|
+
*/
|
|
48
|
+
/** Groesse des Kuerzel-Logos in der Kopfzeile der Kasse. */
|
|
49
|
+
export const LOGO_GROESSE = ['S', 'M', 'L'];
|
|
50
|
+
/** Schriftgroesse in den Chef-Einstellungen — getrennt von der Schrift der Kasse. */
|
|
51
|
+
export const SCHRIFT_EINST = ['S', 'M', 'L'];
|
|
52
|
+
/** Kachel-Optik: farbiger Streifen am Rand oder ganz gefuellte Kachel. */
|
|
53
|
+
export const KACHELSTIL = ['streifen', 'voll'];
|
|
54
|
+
/** Automatisches Abmelden nach Minuten Ruhe; 0 = nie. */
|
|
55
|
+
export const AUTO_AB_MIN = [0, 1, 5, 15, 30];
|
|
56
|
+
/** Rabatt am Beleg erlaubt. */
|
|
57
|
+
export const RABATT = ['aus', 'an'];
|
|
58
|
+
/** Seite des Wasserzeichens — ALT, abgeloest von wzPos. */
|
|
59
|
+
export const WZ_SEITE = ['links', 'mitte', 'rechts'];
|
|
60
|
+
/** Deckkraft des Wasserzeichens in Prozent — bewusst Stufen, kein Schieberegler. */
|
|
61
|
+
export const WZ_STAERKE = [3, 6, 10, 16];
|
|
62
|
+
/** Groesse des Bild-Logos am Beleg. */
|
|
63
|
+
export const LOGO_SKALA = ['S', 'M', 'L', 'XL'];
|
|
64
|
+
/** Groesse des Wasserzeichens — getrennt vom Beleg-Logo. */
|
|
65
|
+
export const WZ_SKALA = ['S', 'M', 'L', 'XL'];
|
|
66
|
+
/** Wie lange die Fertig-Seite stehen bleibt, in Sekunden; 0 = bis zum Tippen. */
|
|
67
|
+
export const FERTIG_SEKUNDEN = [0, 3, 5, 10, 15, 30, 60];
|
|
68
|
+
/** Aktionen der Kasse, die eine Taste bekommen koennen. */
|
|
11
69
|
export const KASSE_TASTEN_AKTIONEN = ['kassieren', 'abschliessen', 'abbrechen', 'frei', 'bar', 'karte', 'passend', 'belege', 'letzteZurueck', 'einstellungen', 'abmelden', 'trinkgeld', 'vollbild', 'gegebenLeeren', 'korbLeeren'];
|
|
70
|
+
/** Kurzer Name, damit alle Enum-Listen gleich heissen; der alte bleibt gueltig. */
|
|
71
|
+
export const TASTEN_AKTIONEN = KASSE_TASTEN_AKTIONEN;
|
|
12
72
|
export const KASSE_TASTEN_STANDARD = Object.freeze({
|
|
13
73
|
kassieren: ['Enter'], abschliessen: ['Enter'], abbrechen: ['Escape'],
|
|
14
74
|
// Mod+F gehoert dem Vollbild; Betrag frei liegt auf D. Bar bleibt auf B,
|
|
@@ -30,8 +90,8 @@ export const KASSE_TASTEN_STANDARD = Object.freeze({
|
|
|
30
90
|
korbLeeren: ['Mod+C'],
|
|
31
91
|
});
|
|
32
92
|
export const KASSE_BETRIEB_STANDARD = Object.freeze({
|
|
33
|
-
//
|
|
34
|
-
logoText: 'K', logoAn: true, logoGroesse: 'M', wasserzeichen: 'anmeldung', farbe: '#
|
|
93
|
+
// Petrol aus der Markenpalette ("Ecke, Aktion") — nicht das alte Blau.
|
|
94
|
+
logoText: 'K', logoAn: true, logoGroesse: 'M', wasserzeichen: 'anmeldung', farbe: '#116B6B',
|
|
35
95
|
stil: 'klar', schrift: 'M', schriftEinst: 'S', kachelstil: 'streifen', uhr: true,
|
|
36
96
|
sperrbild: true, foto: true, autoAbMin: 0, abNachVerkauf: false, schnellLogin: true,
|
|
37
97
|
preisAnzeigen: true, ustAnzeigen: false, emoji: true, katFarben: true, freiErlaubt: true,
|
|
@@ -49,7 +109,7 @@ export const KASSE_BETRIEB_STANDARD = Object.freeze({
|
|
|
49
109
|
export const KASSE_GERAET_STANDARD = Object.freeze({
|
|
50
110
|
layout: 'rechts', katpos: 'oben', spaltenExtra: 0, hoehe: 'M', touch: false,
|
|
51
111
|
tasten: { ...KASSE_TASTEN_STANDARD },
|
|
52
|
-
druckerAn: false, druckerArt: 'sdp', druckerIp: '', druckerPort: 9100, druckerBt: '', druckerId: '', druckerDevid: 'local_printer',
|
|
112
|
+
druckerAn: false, druckerArt: 'sdp', druckerIp: '', druckerPort: 9100, druckerBt: '', druckerName: '', druckerId: '', druckerDevid: 'local_printer',
|
|
53
113
|
connectDruckerId: '',
|
|
54
114
|
papier: 'mm80', zeichensatz: 'CP1252', schnitt: 'partial',
|
|
55
115
|
ladeAn: false, ladeAuto: 'bar',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type HobexReceipt } from '../models/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { InternerTransport } from '../client/aufrufe.js';
|
|
3
3
|
/**
|
|
4
4
|
* Cent -> Euro. **Die einzige Umrechnungsstelle dieses Moduls.** Betraege
|
|
5
5
|
* werden im ganzen Paket in Cent gefuehrt (exakte Ganzzahl-Arithmetik); die
|
|
@@ -46,7 +46,7 @@ export interface HobexTransactionIdOptions {
|
|
|
46
46
|
* **Der Endpunkt heisst `hobexPayApi`** — mit Suffix; ohne ihn gibt es ihn
|
|
47
47
|
* nicht.
|
|
48
48
|
*/
|
|
49
|
-
export declare function hobexPay(rufen:
|
|
49
|
+
export declare function hobexPay(rufen: InternerTransport, options: HobexPayOptions): Promise<HobexReceipt>;
|
|
50
50
|
/**
|
|
51
51
|
* Erstattet eine zuvor ueber die Hobex-Cloud getaetigte Zahlung. Das Backend
|
|
52
52
|
* storniert zuerst (Void, solange der Tagesabschluss aussteht) und erstattet
|
|
@@ -61,7 +61,7 @@ export declare function hobexPay(rufen: KasseneckTransport, options: HobexPayOpt
|
|
|
61
61
|
*
|
|
62
62
|
* **Der Endpunkt heisst `hobexRefundApi`** — mit Suffix.
|
|
63
63
|
*/
|
|
64
|
-
export declare function hobexRefund(rufen:
|
|
64
|
+
export declare function hobexRefund(rufen: InternerTransport, options: HobexRefundOptions): Promise<void>;
|
|
65
65
|
/**
|
|
66
66
|
* Erzeugt eine neue Hobex-Transaktionskennung: 19 Ziffern aus Zeitanteil und
|
|
67
67
|
* Zufall (Zwilling von `newHobexTransactionId` im Vorbild, Zeile 522).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StripeLinkMode, type StripeLinkModeKey } from '../enums/index.js';
|
|
2
2
|
import { type ReceiptItem, type StripeUrlSession } from '../models/index.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { InternerTransport } from '../client/aufrufe.js';
|
|
4
4
|
export interface CreateStripeLinkOptions {
|
|
5
5
|
/** Positionen des Zahlungslinks; mindestens eine, alle gueltig. */
|
|
6
6
|
items: ReceiptItem[];
|
|
@@ -50,7 +50,7 @@ export interface StripeCaptureResult {
|
|
|
50
50
|
* Methodenname und Endpunktname fallen wie schon beim Monatsbericht
|
|
51
51
|
* auseinander (siehe client/reports.ts).
|
|
52
52
|
*/
|
|
53
|
-
export declare function createStripeLink(rufen:
|
|
53
|
+
export declare function createStripeLink(rufen: InternerTransport, options: CreateStripeLinkOptions): Promise<StripeUrlSession>;
|
|
54
54
|
/**
|
|
55
55
|
* Zieht die zuvor nur reservierte Zahlung einer `authorization`-Sitzung ein.
|
|
56
56
|
*
|
|
@@ -58,4 +58,4 @@ export declare function createStripeLink(rufen: KasseneckTransport, options: Cre
|
|
|
58
58
|
* das Vorbild und so das Backend. Der naheliegende Singular waere ein fehlender
|
|
59
59
|
* Pflichtparameter.
|
|
60
60
|
*/
|
|
61
|
-
export declare function stripeCaptureIntent(rufen:
|
|
61
|
+
export declare function stripeCaptureIntent(rufen: InternerTransport, stripeSessionId: string): Promise<StripeCaptureResult>;
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
* daraus entstehende ID-Token und `sitzung.sessionId` ergeben zusammen
|
|
48
48
|
* `registerUserAuth` — ab da laeuft alles Weitere ueber den ueblichen Weg.
|
|
49
49
|
*/
|
|
50
|
-
export { type RegisterDeviceConnection, type RegisterDeviceCredentials, type PairRegisterDeviceOptions, type PairedRegisterDevice, type RegisterUserKind, type RegisterUserSummary, type RegisterUserPerms, type RegisterScope, type RegisterUser, type RegisterUserSession, type ListRegisterUsersForDeviceOptions, type RegisterUserLoginOptions, type RegisterPinLoginOptions, type RegisterPinPolicy, type RegisterLoginMode, type RegisterDeviceUsers, type RegisterClientInfo, type RegisterGeo, type RegisterGeraeteAngaben, pairRegisterDevice, listRegisterUsersForDevice, unpairRegisterDevice, registerUserLogin, registerPinLogin, } from './pairing.js';
|
|
50
|
+
export { type RegisterDeviceConnection, type RegisterDeviceCredentials, type PairRegisterDeviceOptions, type PairedRegisterDevice, type RegisterUserKind, type RegisterUserSummary, type RegisterUserPerms, REGISTER_PERMS, type RegisterScope, type RegisterUser, type RegisterUserSession, type ListRegisterUsersForDeviceOptions, type RegisterUserLoginOptions, type RegisterPinLoginOptions, type RegisterPinPolicy, type RegisterLoginMode, type RegisterDeviceUsers, type RegisterClientInfo, type RegisterGeo, type RegisterGeraeteAngaben, pairRegisterDevice, listRegisterUsersForDevice, unpairRegisterDevice, registerUserLogin, registerPinLogin, } from './pairing.js';
|
|
51
51
|
export { renewRegisterSession, endRegisterSession } from './session.js';
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
* daraus entstehende ID-Token und `sitzung.sessionId` ergeben zusammen
|
|
48
48
|
* `registerUserAuth` — ab da laeuft alles Weitere ueber den ueblichen Weg.
|
|
49
49
|
*/
|
|
50
|
-
export { pairRegisterDevice, listRegisterUsersForDevice, unpairRegisterDevice, registerUserLogin, registerPinLogin, } from './pairing.js';
|
|
50
|
+
export { REGISTER_PERMS, pairRegisterDevice, listRegisterUsersForDevice, unpairRegisterDevice, registerUserLogin, registerPinLogin, } from './pairing.js';
|
|
51
51
|
export { renewRegisterSession, endRegisterSession } from './session.js';
|
|
@@ -159,6 +159,8 @@ export interface RegisterUserPerms {
|
|
|
159
159
|
tipAssign?: boolean;
|
|
160
160
|
[weiteresRecht: string]: boolean | RegisterScope | undefined;
|
|
161
161
|
}
|
|
162
|
+
/** Alle Rechte-Schluessel, die dieses Paket kennt — die Zwillinge pruefen dagegen. */
|
|
163
|
+
export declare const REGISTER_PERMS: readonly ["sell", "cancel", "articles", "layout", "reports", "takeover", "cancelScope", "receiptsScope", "drawer", "discount", "tipAssign"];
|
|
162
164
|
/** Reichweite lesen, mit der Migration des Backends (register-auth.js). */
|
|
163
165
|
export declare function cancelScopeOf(perms: RegisterUserPerms | null | undefined): RegisterScope;
|
|
164
166
|
export declare function receiptsScopeOf(perms: RegisterUserPerms | null | undefined): RegisterScope;
|
|
@@ -38,6 +38,11 @@ import { KASSE_BETRIEB_STANDARD, KASSE_GERAET_STANDARD, mergeKasseSettings, } fr
|
|
|
38
38
|
* es auch halten.
|
|
39
39
|
*/
|
|
40
40
|
const ohneAnmeldung = () => ({ headers: {}, params: {} });
|
|
41
|
+
/** Alle Rechte-Schluessel, die dieses Paket kennt — die Zwillinge pruefen dagegen. */
|
|
42
|
+
export const REGISTER_PERMS = [
|
|
43
|
+
'sell', 'cancel', 'articles', 'layout', 'reports', 'takeover',
|
|
44
|
+
'cancelScope', 'receiptsScope', 'drawer', 'discount', 'tipAssign',
|
|
45
|
+
];
|
|
41
46
|
/** Reichweite lesen, mit der Migration des Backends (register-auth.js). */
|
|
42
47
|
export function cancelScopeOf(perms) {
|
|
43
48
|
if (!perms)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InternerTransport } from '../client/aufrufe.js';
|
|
2
2
|
/**
|
|
3
3
|
* Die beiden Aufrufe der **laufenden** Kassen-Sitzung. Anders als die drei in
|
|
4
4
|
* pairing.ts haben sie eine Identitaet: sie laufen ueber `registerUserAuth`
|
|
@@ -23,7 +23,7 @@ import type { KasseneckTransport } from '../client/transport.js';
|
|
|
23
23
|
* beendet — bitte neu anmelden.") — dann hilft nur eine neue Anmeldung ueber
|
|
24
24
|
* `registerUserLogin`.
|
|
25
25
|
*/
|
|
26
|
-
export declare function renewRegisterSession(rufen:
|
|
26
|
+
export declare function renewRegisterSession(rufen: InternerTransport): Promise<number>;
|
|
27
27
|
/**
|
|
28
28
|
* Sitzung beenden und den Lizenzplatz sofort freigeben — der regulaere Weg des
|
|
29
29
|
* Abmeldens.
|
|
@@ -34,4 +34,4 @@ export declare function renewRegisterSession(rufen: KasseneckTransport): Promise
|
|
|
34
34
|
* einer harmlosen Vertragsaenderung — ausgerechnet beim Abmelden, dem Aufruf,
|
|
35
35
|
* der auch dann durchgehen soll, wenn sonst nichts mehr geht.
|
|
36
36
|
*/
|
|
37
|
-
export declare function endRegisterSession(rufen:
|
|
37
|
+
export declare function endRegisterSession(rufen: InternerTransport): Promise<void>;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"logoAn": true,
|
|
5
5
|
"logoGroesse": "M",
|
|
6
6
|
"wasserzeichen": "anmeldung",
|
|
7
|
-
"farbe": "#
|
|
7
|
+
"farbe": "#116B6B",
|
|
8
8
|
"stil": "klar",
|
|
9
9
|
"schrift": "M",
|
|
10
10
|
"schriftEinst": "S",
|
|
@@ -51,23 +51,23 @@
|
|
|
51
51
|
"rueckgeld": true,
|
|
52
52
|
"schnellbar": false,
|
|
53
53
|
"kassierenModus": "seite",
|
|
54
|
-
"belegAusgabe": "fragen",
|
|
55
|
-
"fertigSekunden": 0,
|
|
56
54
|
"logoBild": "",
|
|
57
55
|
"wzSeite": "mitte",
|
|
56
|
+
"wzPos": 50,
|
|
57
|
+
"wzPosV": 50,
|
|
58
58
|
"wzStaerke": 6,
|
|
59
|
+
"logoSkala": "M",
|
|
60
|
+
"wzSkala": "M",
|
|
61
|
+
"glas": true,
|
|
62
|
+
"hinweise": true,
|
|
59
63
|
"rabattChips": [
|
|
60
64
|
5,
|
|
61
65
|
10,
|
|
62
66
|
15,
|
|
63
67
|
20
|
|
64
68
|
],
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"wzPosV": 50,
|
|
68
|
-
"wzSkala": "M",
|
|
69
|
-
"glas": true,
|
|
70
|
-
"hinweise": true
|
|
69
|
+
"belegAusgabe": "fragen",
|
|
70
|
+
"fertigSekunden": 0
|
|
71
71
|
},
|
|
72
72
|
"geraet": {
|
|
73
73
|
"layout": "rechts",
|
|
@@ -127,6 +127,7 @@
|
|
|
127
127
|
"druckerIp": "",
|
|
128
128
|
"druckerPort": 9100,
|
|
129
129
|
"druckerBt": "",
|
|
130
|
+
"druckerName": "",
|
|
130
131
|
"druckerId": "",
|
|
131
132
|
"druckerDevid": "local_printer",
|
|
132
133
|
"connectDruckerId": "",
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.6.45",
|
|
3
|
+
"aufrufe": [
|
|
4
|
+
"cancelReceipt",
|
|
5
|
+
"createPaymentLinkStripe",
|
|
6
|
+
"createPrintJob",
|
|
7
|
+
"createReceipt",
|
|
8
|
+
"downloadDailyReport",
|
|
9
|
+
"downloadReport",
|
|
10
|
+
"endRegisterSession",
|
|
11
|
+
"financeWebService",
|
|
12
|
+
"generateFullReceiptId",
|
|
13
|
+
"getFirstReceiptDate",
|
|
14
|
+
"getKasseSettings",
|
|
15
|
+
"getPrintJob",
|
|
16
|
+
"getReceipt",
|
|
17
|
+
"hobexPayApi",
|
|
18
|
+
"hobexRefundApi",
|
|
19
|
+
"listMyArticleGroups",
|
|
20
|
+
"listMyArticles",
|
|
21
|
+
"listMyCashregisters",
|
|
22
|
+
"listMyPrinters",
|
|
23
|
+
"listMyReceipts",
|
|
24
|
+
"listRegisterUsersForDevice",
|
|
25
|
+
"pairRegisterDevice",
|
|
26
|
+
"registerPinLogin",
|
|
27
|
+
"registerUserLogin",
|
|
28
|
+
"renewRegisterSession",
|
|
29
|
+
"setMyKasseSettings",
|
|
30
|
+
"setMyRegisterDeviceSettings",
|
|
31
|
+
"stripeCaptureIntent",
|
|
32
|
+
"unpairRegisterDevice"
|
|
33
|
+
],
|
|
34
|
+
"enums": {
|
|
35
|
+
"autoAbMin": [
|
|
36
|
+
0,
|
|
37
|
+
1,
|
|
38
|
+
5,
|
|
39
|
+
15,
|
|
40
|
+
30
|
|
41
|
+
],
|
|
42
|
+
"belegAusgabe": [
|
|
43
|
+
"qr",
|
|
44
|
+
"druck",
|
|
45
|
+
"mail",
|
|
46
|
+
"sms",
|
|
47
|
+
"fragen"
|
|
48
|
+
],
|
|
49
|
+
"druckerArt": [
|
|
50
|
+
"sdp",
|
|
51
|
+
"netz",
|
|
52
|
+
"bt",
|
|
53
|
+
"usb",
|
|
54
|
+
"connect"
|
|
55
|
+
],
|
|
56
|
+
"fertigSekunden": [
|
|
57
|
+
0,
|
|
58
|
+
3,
|
|
59
|
+
5,
|
|
60
|
+
10,
|
|
61
|
+
15,
|
|
62
|
+
30,
|
|
63
|
+
60
|
|
64
|
+
],
|
|
65
|
+
"hoehe": [
|
|
66
|
+
"S",
|
|
67
|
+
"M",
|
|
68
|
+
"L"
|
|
69
|
+
],
|
|
70
|
+
"kachelstil": [
|
|
71
|
+
"streifen",
|
|
72
|
+
"voll"
|
|
73
|
+
],
|
|
74
|
+
"kartenanbieter": [
|
|
75
|
+
"keiner",
|
|
76
|
+
"extern",
|
|
77
|
+
"gptom",
|
|
78
|
+
"hobex",
|
|
79
|
+
"mypos",
|
|
80
|
+
"stripe"
|
|
81
|
+
],
|
|
82
|
+
"kassierenModus": [
|
|
83
|
+
"seite",
|
|
84
|
+
"panel"
|
|
85
|
+
],
|
|
86
|
+
"katpos": [
|
|
87
|
+
"oben",
|
|
88
|
+
"links"
|
|
89
|
+
],
|
|
90
|
+
"ladeAuto": [
|
|
91
|
+
"bar",
|
|
92
|
+
"immer",
|
|
93
|
+
"nie"
|
|
94
|
+
],
|
|
95
|
+
"layout": [
|
|
96
|
+
"rechts",
|
|
97
|
+
"links",
|
|
98
|
+
"vollbild"
|
|
99
|
+
],
|
|
100
|
+
"logoGroesse": [
|
|
101
|
+
"S",
|
|
102
|
+
"M",
|
|
103
|
+
"L"
|
|
104
|
+
],
|
|
105
|
+
"logoSkala": [
|
|
106
|
+
"S",
|
|
107
|
+
"M",
|
|
108
|
+
"L",
|
|
109
|
+
"XL"
|
|
110
|
+
],
|
|
111
|
+
"menge": [
|
|
112
|
+
"aus",
|
|
113
|
+
"x",
|
|
114
|
+
"kg"
|
|
115
|
+
],
|
|
116
|
+
"papier": [
|
|
117
|
+
"mm58",
|
|
118
|
+
"mm80"
|
|
119
|
+
],
|
|
120
|
+
"rabatt": [
|
|
121
|
+
"aus",
|
|
122
|
+
"an"
|
|
123
|
+
],
|
|
124
|
+
"schnitt": [
|
|
125
|
+
"partial",
|
|
126
|
+
"full",
|
|
127
|
+
"none"
|
|
128
|
+
],
|
|
129
|
+
"schrift": [
|
|
130
|
+
"S",
|
|
131
|
+
"M",
|
|
132
|
+
"L",
|
|
133
|
+
"XL"
|
|
134
|
+
],
|
|
135
|
+
"schriftEinst": [
|
|
136
|
+
"S",
|
|
137
|
+
"M",
|
|
138
|
+
"L"
|
|
139
|
+
],
|
|
140
|
+
"stil": [
|
|
141
|
+
"klar",
|
|
142
|
+
"warm",
|
|
143
|
+
"nacht",
|
|
144
|
+
"kontrast"
|
|
145
|
+
],
|
|
146
|
+
"terminalArt": [
|
|
147
|
+
"keins",
|
|
148
|
+
"hps"
|
|
149
|
+
],
|
|
150
|
+
"terminalVia": [
|
|
151
|
+
"direkt",
|
|
152
|
+
"connect"
|
|
153
|
+
],
|
|
154
|
+
"tgModus": [
|
|
155
|
+
"betrag",
|
|
156
|
+
"gesamt",
|
|
157
|
+
"beides"
|
|
158
|
+
],
|
|
159
|
+
"wasserzeichen": [
|
|
160
|
+
"aus",
|
|
161
|
+
"anmeldung",
|
|
162
|
+
"ueberall"
|
|
163
|
+
],
|
|
164
|
+
"wzSeite": [
|
|
165
|
+
"links",
|
|
166
|
+
"mitte",
|
|
167
|
+
"rechts"
|
|
168
|
+
],
|
|
169
|
+
"wzSkala": [
|
|
170
|
+
"S",
|
|
171
|
+
"M",
|
|
172
|
+
"L",
|
|
173
|
+
"XL"
|
|
174
|
+
],
|
|
175
|
+
"wzStaerke": [
|
|
176
|
+
3,
|
|
177
|
+
6,
|
|
178
|
+
10,
|
|
179
|
+
16
|
|
180
|
+
],
|
|
181
|
+
"zeichensatz": [
|
|
182
|
+
"CP1252",
|
|
183
|
+
"CP437"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"rechte": [
|
|
187
|
+
"sell",
|
|
188
|
+
"cancel",
|
|
189
|
+
"articles",
|
|
190
|
+
"layout",
|
|
191
|
+
"reports",
|
|
192
|
+
"takeover",
|
|
193
|
+
"cancelScope",
|
|
194
|
+
"receiptsScope",
|
|
195
|
+
"drawer",
|
|
196
|
+
"discount",
|
|
197
|
+
"tipAssign"
|
|
198
|
+
],
|
|
199
|
+
"tastenAktionen": [
|
|
200
|
+
"kassieren",
|
|
201
|
+
"abschliessen",
|
|
202
|
+
"abbrechen",
|
|
203
|
+
"frei",
|
|
204
|
+
"bar",
|
|
205
|
+
"karte",
|
|
206
|
+
"passend",
|
|
207
|
+
"belege",
|
|
208
|
+
"letzteZurueck",
|
|
209
|
+
"einstellungen",
|
|
210
|
+
"abmelden",
|
|
211
|
+
"trinkgeld",
|
|
212
|
+
"vollbild",
|
|
213
|
+
"gegebenLeeren",
|
|
214
|
+
"korbLeeren"
|
|
215
|
+
]
|
|
216
|
+
}
|