@kreiseck/kasseneck-api 0.29.0 → 0.31.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.
Files changed (119) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/dist/cjs/client/api.d.ts +3 -3
  3. package/dist/cjs/client/index.d.ts +1 -1
  4. package/dist/cjs/client/receipts.d.ts +32 -3
  5. package/dist/cjs/client/receipts.js +121 -6
  6. package/dist/cjs/enums/keck-payment-method.d.ts +10 -0
  7. package/dist/cjs/enums/keck-payment-method.js +6 -0
  8. package/dist/cjs/index.d.ts +2 -2
  9. package/dist/cjs/index.js +6 -2
  10. package/dist/cjs/kasse/index.d.ts +1 -1
  11. package/dist/cjs/kasse/index.js +5 -1
  12. package/dist/cjs/kasse/settings.d.ts +4 -2
  13. package/dist/cjs/kasse/settings.js +5 -2
  14. package/dist/cjs/kasse/texte.d.ts +444 -34
  15. package/dist/cjs/kasse/texte.js +265 -35
  16. package/dist/cjs/models/cancellation.d.ts +25 -2
  17. package/dist/cjs/models/cancellation.js +20 -1
  18. package/dist/cjs/models/index.d.ts +2 -0
  19. package/dist/cjs/models/index.js +7 -1
  20. package/dist/cjs/models/payment-errors.d.ts +22 -0
  21. package/dist/cjs/models/payment-errors.js +46 -0
  22. package/dist/cjs/models/receipt-payment.d.ts +86 -0
  23. package/dist/cjs/models/receipt-payment.js +40 -0
  24. package/dist/cjs/models/receipt-summary.d.ts +9 -0
  25. package/dist/cjs/models/receipt-summary.js +2 -0
  26. package/dist/cjs/models/receipt.d.ts +9 -0
  27. package/dist/cjs/models/receipt.js +19 -0
  28. package/dist/cjs/payments/hobex-hps/transaction-response.js +28 -28
  29. package/dist/cjs/receipt/layout.js +112 -10
  30. package/dist/esm/client/api.d.ts +3 -3
  31. package/dist/esm/client/index.d.ts +1 -1
  32. package/dist/esm/client/receipts.d.ts +32 -3
  33. package/dist/esm/client/receipts.js +121 -6
  34. package/dist/esm/enums/keck-payment-method.d.ts +10 -0
  35. package/dist/esm/enums/keck-payment-method.js +6 -0
  36. package/dist/esm/index.d.ts +2 -2
  37. package/dist/esm/index.js +1 -1
  38. package/dist/esm/kasse/index.d.ts +1 -1
  39. package/dist/esm/kasse/index.js +1 -1
  40. package/dist/esm/kasse/settings.d.ts +4 -2
  41. package/dist/esm/kasse/settings.js +5 -2
  42. package/dist/esm/kasse/texte.d.ts +444 -34
  43. package/dist/esm/kasse/texte.js +262 -34
  44. package/dist/esm/models/cancellation.d.ts +25 -2
  45. package/dist/esm/models/cancellation.js +20 -1
  46. package/dist/esm/models/index.d.ts +2 -0
  47. package/dist/esm/models/index.js +2 -0
  48. package/dist/esm/models/payment-errors.d.ts +22 -0
  49. package/dist/esm/models/payment-errors.js +42 -0
  50. package/dist/esm/models/receipt-payment.d.ts +86 -0
  51. package/dist/esm/models/receipt-payment.js +36 -0
  52. package/dist/esm/models/receipt-summary.d.ts +9 -0
  53. package/dist/esm/models/receipt-summary.js +2 -0
  54. package/dist/esm/models/receipt.d.ts +9 -0
  55. package/dist/esm/models/receipt.js +19 -0
  56. package/dist/esm/payments/hobex-hps/transaction-response.js +28 -28
  57. package/dist/esm/receipt/layout.js +112 -10
  58. package/fixtures/belege/split-bar-rueckgeld.json +58 -0
  59. package/fixtures/belege/split-eine-karte-trinkgeld.json +75 -0
  60. package/fixtures/belege/split-karte-karte-bar.json +102 -0
  61. package/fixtures/belege/split-langer-betrag.json +74 -0
  62. package/fixtures/belege/split-tischrunde-trinkgeld.json +152 -0
  63. package/fixtures/belege/split-trinkgeld-karte.json +82 -0
  64. package/fixtures/belege/split-zwei-karten-gleicher-anbieter.json +89 -0
  65. package/fixtures/belege/storno-split-teil.json +71 -0
  66. package/fixtures/belege/storno-split-voll.json +100 -0
  67. package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +194 -0
  68. package/fixtures/erwartet/split-bar-rueckgeld.blatt48.json +182 -0
  69. package/fixtures/erwartet/split-bar-rueckgeld.grid32.txt +28 -0
  70. package/fixtures/erwartet/split-bar-rueckgeld.grid48.txt +26 -0
  71. package/fixtures/erwartet/split-bar-rueckgeld.lines.json +286 -0
  72. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +242 -0
  73. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt48.json +224 -0
  74. package/fixtures/erwartet/split-eine-karte-trinkgeld.grid32.txt +36 -0
  75. package/fixtures/erwartet/split-eine-karte-trinkgeld.grid48.txt +33 -0
  76. package/fixtures/erwartet/split-eine-karte-trinkgeld.lines.json +371 -0
  77. package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +356 -0
  78. package/fixtures/erwartet/split-karte-karte-bar.blatt48.json +338 -0
  79. package/fixtures/erwartet/split-karte-karte-bar.grid32.txt +55 -0
  80. package/fixtures/erwartet/split-karte-karte-bar.grid48.txt +52 -0
  81. package/fixtures/erwartet/split-karte-karte-bar.lines.json +519 -0
  82. package/fixtures/erwartet/split-langer-betrag.blatt32.json +266 -0
  83. package/fixtures/erwartet/split-langer-betrag.blatt48.json +260 -0
  84. package/fixtures/erwartet/split-langer-betrag.grid32.txt +40 -0
  85. package/fixtures/erwartet/split-langer-betrag.grid48.txt +39 -0
  86. package/fixtures/erwartet/split-langer-betrag.lines.json +343 -0
  87. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +470 -0
  88. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt48.json +434 -0
  89. package/fixtures/erwartet/split-tischrunde-trinkgeld.grid32.txt +74 -0
  90. package/fixtures/erwartet/split-tischrunde-trinkgeld.grid48.txt +68 -0
  91. package/fixtures/erwartet/split-tischrunde-trinkgeld.lines.json +740 -0
  92. package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +272 -0
  93. package/fixtures/erwartet/split-trinkgeld-karte.blatt48.json +254 -0
  94. package/fixtures/erwartet/split-trinkgeld-karte.grid32.txt +41 -0
  95. package/fixtures/erwartet/split-trinkgeld-karte.grid48.txt +38 -0
  96. package/fixtures/erwartet/split-trinkgeld-karte.lines.json +428 -0
  97. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +326 -0
  98. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json +296 -0
  99. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt +50 -0
  100. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt +45 -0
  101. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.lines.json +504 -0
  102. package/fixtures/erwartet/storno-split-teil.blatt32.json +230 -0
  103. package/fixtures/erwartet/storno-split-teil.blatt48.json +224 -0
  104. package/fixtures/erwartet/storno-split-teil.grid32.txt +34 -0
  105. package/fixtures/erwartet/storno-split-teil.grid48.txt +33 -0
  106. package/fixtures/erwartet/storno-split-teil.lines.json +304 -0
  107. package/fixtures/erwartet/storno-split-voll.blatt32.json +320 -0
  108. package/fixtures/erwartet/storno-split-voll.blatt48.json +314 -0
  109. package/fixtures/erwartet/storno-split-voll.grid32.txt +49 -0
  110. package/fixtures/erwartet/storno-split-voll.grid48.txt +48 -0
  111. package/fixtures/erwartet/storno-split-voll.lines.json +410 -0
  112. package/fixtures/hobex-hps-codes.json +29 -29
  113. package/fixtures/kasse-settings-standard.json +4 -2
  114. package/fixtures/kasse-texte.json +479 -35
  115. package/fixtures/manifest.json +72 -0
  116. package/fixtures/oberflaeche.json +3 -2
  117. package/fixtures/rechnung-api.schema.json +1 -1
  118. package/fixtures/rechnung-texte.json +1 -1
  119. package/package.json +1 -1
@@ -43,7 +43,7 @@ declare const MELDUNGEN_ROH: {
43
43
  readonly text: "Die Kopplung ist unvollständig zurückgekommen. Bitte im Panel einen neuen Code erzeugen und noch einmal versuchen.";
44
44
  };
45
45
  readonly 'geraet.browser_speicher': {
46
- readonly text: "Dieses Gerät konnte nicht gespeichert werden — der Browser-Speicher steht nicht zur Verfügung. Bitte den privaten Modus verlassen.";
46
+ readonly text: "Dieses Gerät konnte nicht gespeichert werden – der Browser-Speicher steht nicht zur Verfügung. Bitte den privaten Modus verlassen.";
47
47
  readonly nur: readonly ["web"];
48
48
  };
49
49
  readonly 'anmeldung.pin_fehlt': {
@@ -56,19 +56,26 @@ declare const MELDUNGEN_ROH: {
56
56
  readonly text: "Die Anmeldung konnte nicht abgeschlossen werden. Bitte erneut versuchen.";
57
57
  };
58
58
  readonly 'anmeldung.wird_abgeschlossen': {
59
- readonly text: "Anmeldung wird gerade abgeschlossen — bitte gleich noch einmal drücken.";
59
+ readonly text: "Anmeldung wird gerade abgeschlossen – bitte gleich noch einmal drücken.";
60
60
  };
61
61
  readonly 'sitzung.abgelaufen': {
62
62
  readonly text: "Die Sitzung ist abgelaufen. Bitte erneut anmelden.";
63
63
  };
64
64
  readonly 'sitzung.abgelaufen_ohne_netz': {
65
- readonly text: "Keine Verbindung zum Server — die Sitzung ist abgelaufen. Bitte erneut anmelden.";
65
+ readonly text: "Keine Verbindung zum Server – die Sitzung ist abgelaufen. Bitte erneut anmelden.";
66
66
  };
67
67
  readonly 'sitzung.keine': {
68
68
  readonly text: "Keine Sitzung.";
69
69
  };
70
+ readonly 'sitzung.meldet_ab': {
71
+ readonly text: "Kasse meldet in {sekunden} s ab – Bildschirm berühren, um weiterzuarbeiten.";
72
+ readonly platzhalter: readonly ["sekunden"];
73
+ };
74
+ readonly 'abmelden.noch_einmal': {
75
+ readonly text: "Noch einmal drücken beendet die Schicht an dieser Kasse.";
76
+ };
70
77
  readonly 'rechte.nicht_aenderbar': {
71
- readonly text: "Das darfst du nicht ändern — das Recht dafür vergibt der Inhaber im Panel.";
78
+ readonly text: "Das darfst du nicht ändern – das Recht dafür vergibt der Inhaber im Panel.";
72
79
  };
73
80
  readonly 'kasse.laden_fehlgeschlagen': {
74
81
  readonly text: "Die Kasse konnte nicht geladen werden.";
@@ -90,16 +97,32 @@ declare const MELDUNGEN_ROH: {
90
97
  readonly text: "Bitte einen Betrag eingeben.";
91
98
  };
92
99
  readonly 'position.bezeichnung_fehlt': {
93
- readonly text: "Bitte eine Bezeichnung eingeben — sie steht am Beleg.";
100
+ readonly text: "Bitte eine Bezeichnung eingeben – sie steht am Beleg.";
94
101
  };
95
102
  readonly 'rabatt.prozent_ungueltig': {
96
103
  readonly text: "Bitte einen Prozentwert zwischen 0,1 und 100 eingeben.";
97
104
  };
105
+ readonly 'kassieren.nichts_erfasst': {
106
+ readonly text: "Noch nichts erfasst – bitte zuerst eine Position aufnehmen.";
107
+ };
108
+ readonly 'kassieren.gegeben_fehlt': {
109
+ readonly text: "Erst eintippen, was der Gast gibt – der Rückgeld-Rechner ist an.";
110
+ };
111
+ readonly 'kassieren.gegeben_zu_wenig': {
112
+ readonly text: "Gegeben ist weniger als der Betrag.";
113
+ };
114
+ readonly 'kassieren.gesperrt': {
115
+ readonly text: "Kassieren gesperrt: {grund}";
116
+ readonly platzhalter: readonly ["grund"];
117
+ };
118
+ readonly 'trinkgeld.ueber_haelfte': {
119
+ readonly text: "Über 50 % Trinkgeld – wirklich? Steuerfrei ist nur ortsübliches Trinkgeld.";
120
+ };
98
121
  readonly 'abschluss.fehlgeschlagen': {
99
122
  readonly text: "Der Abschluss ist fehlgeschlagen.";
100
123
  };
101
124
  readonly 'abschluss.unklar': {
102
- readonly text: "Unklar, ob der Beleg entstanden ist — die Antwort kam nicht an. Bitte nicht noch einmal abschließen: der Beleg kann bereits erstellt und signiert sein. Im Panel unter „Belege“ nachsehen; nur wenn er dort fehlt, den Verkauf erneut abschließen.";
125
+ readonly text: "Unklar, ob der Beleg entstanden ist – die Antwort kam nicht an. Bitte nicht noch einmal abschließen: der Beleg kann bereits erstellt und signiert sein. Im Panel unter „Belege“ nachsehen; nur wenn er dort fehlt, den Verkauf erneut abschließen.";
103
126
  };
104
127
  readonly 'abschluss.nullbeleg_fehlgeschlagen': {
105
128
  readonly text: "Der Nullbeleg konnte nicht erstellt werden.";
@@ -107,6 +130,10 @@ declare const MELDUNGEN_ROH: {
107
130
  readonly 'abschluss.signatur_ausgefallen': {
108
131
  readonly text: "Die Signatureinheit hat nicht geantwortet. Der Beleg ist gültig und trägt den Vermerk „Sicherheitseinrichtung ausgefallen“.";
109
132
  };
133
+ readonly 'abschluss.erledigen_frage': {
134
+ readonly text: "Nur erledigen, wenn der Beleg in der Belegliste steht – sonst bleiben {betrag} ohne Beleg. Bitte zuerst unter „Belege“ nachsehen.";
135
+ readonly platzhalter: readonly ["betrag"];
136
+ };
110
137
  readonly 'kartenzahlung.nicht_moeglich': {
111
138
  readonly text: "Kartenzahlung nicht möglich.";
112
139
  };
@@ -118,17 +145,20 @@ declare const MELDUNGEN_ROH: {
118
145
  readonly platzhalter: readonly ["grund"];
119
146
  };
120
147
  readonly 'kartenzahlung.unklar': {
121
- readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist — die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein.";
148
+ readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist – die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein.";
122
149
  };
123
150
  readonly 'kartenzahlung.unklar_mit_kennung': {
124
- readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist — die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein. Kennung der Zahlung: {kennung}.";
151
+ readonly text: "Unklar, ob die Kartenzahlung durchgegangen ist – die Verbindung zum Terminal riss ab. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird: die Karte kann belastet sein. Kennung der Zahlung: {kennung}.";
125
152
  readonly platzhalter: readonly ["kennung"];
126
153
  };
127
154
  readonly 'kartenzahlung.wartet_auf_terminal': {
128
155
  readonly text: "Bitte am Terminal fortfahren …";
129
156
  };
157
+ readonly 'kartenzahlung.terminal_bricht_ab': {
158
+ readonly text: "Das Terminal bricht gleich von selbst ab …";
159
+ };
130
160
  readonly 'kartenzahlung.karte_gebucht_beleg_offen': {
131
- readonly text: "Die Karte ist bereits mit {betrag} belastet (Kennung {kennung}) — der Beleg dazu fehlt noch. Bitte jetzt den Beleg erstellen und nicht erneut kassieren.";
161
+ readonly text: "Die Karte ist bereits mit {betrag} belastet (Kennung {kennung}) – der Beleg dazu fehlt noch. Bitte jetzt den Beleg erstellen und nicht erneut kassieren.";
132
162
  readonly platzhalter: readonly ["betrag", "kennung"];
133
163
  };
134
164
  readonly 'kartenzahlung.karte_gebucht_korb_geaendert': {
@@ -136,15 +166,21 @@ declare const MELDUNGEN_ROH: {
136
166
  readonly platzhalter: readonly ["betrag", "kennung"];
137
167
  };
138
168
  readonly 'kartenzahlung.connect_nicht_verbunden': {
139
- readonly text: "Kartenzahlung nicht möglich: Kasseneck Connect ist nicht verbunden — Einstellungen → Kasseneck Connect.";
169
+ readonly text: "Kartenzahlung nicht möglich: Kasseneck Connect ist nicht verbunden – Einstellungen → Kasseneck Connect.";
140
170
  readonly nur: readonly ["web"];
141
171
  };
172
+ readonly 'kartenzahlung.korb_gesperrt_karte_belastet': {
173
+ readonly text: "Die Karte ist bereits belastet – Warenkorb, Rabatt und Trinkgeld bleiben gesperrt, bis der Beleg entsteht oder die Karte zurückerstattet ist.";
174
+ };
175
+ readonly 'kartenzahlung.entkoppeln_karte_belastet': {
176
+ readonly text: "Auf diesem Gerät liegt noch eine gebuchte Kartenzahlung ohne Beleg – sie muss von Hand am Terminal zurückerstattet werden (Betrag siehe unten).";
177
+ };
142
178
  readonly 'terminal.keines_gefunden': {
143
- readonly text: "Kein Hobex-Terminal gefunden — ist es eingeschaltet und im selben Netz wie dieser Rechner?";
179
+ readonly text: "Kein Hobex-Terminal gefunden – ist es eingeschaltet und im selben Netz wie dieser Rechner?";
144
180
  readonly nur: readonly ["web"];
145
181
  };
146
182
  readonly 'terminal.nicht_bereit': {
147
- readonly text: "Terminal antwortet, ist aber nicht betriebsbereit: {antwort} — TID prüfen.";
183
+ readonly text: "Terminal antwortet, ist aber nicht betriebsbereit: {antwort} – TID prüfen.";
148
184
  readonly platzhalter: readonly ["antwort"];
149
185
  readonly nur: readonly ["web"];
150
186
  };
@@ -182,20 +218,20 @@ declare const MELDUNGEN_ROH: {
182
218
  readonly nur: readonly ["app"];
183
219
  };
184
220
  readonly 'gptom.nicht_geoeffnet': {
185
- readonly text: "GP Tom ließ sich nicht öffnen — bitte die GP-Tom-App prüfen und erneut versuchen.";
221
+ readonly text: "GP Tom ließ sich nicht öffnen – bitte die GP-Tom-App prüfen und erneut versuchen.";
186
222
  readonly nur: readonly ["app"];
187
223
  };
188
224
  readonly 'gptom.zeit_abgelaufen': {
189
- readonly text: "Das Terminal hat in der Frist nicht geantwortet — die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird.";
225
+ readonly text: "Das Terminal hat in der Frist nicht geantwortet – die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird.";
190
226
  readonly nur: readonly ["app"];
191
227
  };
192
228
  readonly 'gptom.zeit_abgelaufen_mit_kennung': {
193
- readonly text: "Das Terminal hat in der Frist nicht geantwortet — die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird. Kennung der Zahlung: {kennung}.";
229
+ readonly text: "Das Terminal hat in der Frist nicht geantwortet – die Karte kann belastet sein. Bitte am Terminal-Beleg nachsehen, BEVOR neu kassiert wird. Kennung der Zahlung: {kennung}.";
194
230
  readonly platzhalter: readonly ["kennung"];
195
231
  readonly nur: readonly ["app"];
196
232
  };
197
233
  readonly 'protokoll.leer': {
198
- readonly text: "Noch keine Einträge — das Protokoll füllt sich mit der ersten Kartenzahlung.";
234
+ readonly text: "Noch keine Einträge – das Protokoll füllt sich mit der ersten Kartenzahlung.";
199
235
  };
200
236
  readonly 'protokoll.kopiert': {
201
237
  readonly text: "Das Protokoll liegt in der Zwischenablage.";
@@ -221,6 +257,112 @@ declare const MELDUNGEN_ROH: {
221
257
  readonly 'storno.position_fehlt': {
222
258
  readonly text: "Bitte mindestens eine Position wählen.";
223
259
  };
260
+ readonly 'storno.zahlungen_fehlen': {
261
+ readonly text: "Dieser Beleg wurde in mehreren Zahlungen bezahlt – bitte angeben, wie zurückgegeben wird.";
262
+ };
263
+ readonly 'storno.rueckgabe_zu_hoch': {
264
+ readonly text: "Eine Rückgabe ist höher als der Rest ihrer Zahlung – bitte die Beträge prüfen.";
265
+ };
266
+ readonly 'storno.rueckgabe_ohne_bezug': {
267
+ readonly text: "Eine Rückgabe nennt keine Zahlung des Belegs – bitte das Storno neu beginnen.";
268
+ };
269
+ readonly 'storno.rueckgabe_bezug_unbekannt': {
270
+ readonly text: "Eine Rückgabe nennt eine Zahlung, die es am Beleg nicht gibt – bitte das Storno neu beginnen.";
271
+ };
272
+ readonly 'storno.ergebnis_unklar': {
273
+ readonly text: "Unklar, ob das Storno entstanden ist – es kann bereits signiert sein. Bitte nicht erneut stornieren, sondern die Belegliste in ein paar Minuten neu laden.";
274
+ };
275
+ readonly 'storno.summe_passt_nicht': {
276
+ readonly text: "Die Rückgaben ergeben nicht den Betrag des Stornos – bitte die Beträge prüfen.";
277
+ };
278
+ readonly 'storno.karten_gutschreiben': {
279
+ readonly text: "Das Storno ist gebucht – bitte jede Karte unten am Terminal gutschreiben und abhaken.";
280
+ };
281
+ readonly 'storno.ergebnis_unklar_karten': {
282
+ readonly text: "Unklar, ob das Storno entstanden ist – es kann bereits signiert sein. Bitte nicht erneut stornieren und noch keine Karte gutschreiben, sondern die Belegliste in ein paar Minuten neu laden. Steht das Storno dort, die Karten laut Storno-Beleg am Terminal gutschreiben.";
283
+ };
284
+ readonly 'storno.karten_nicht_abgehakt': {
285
+ readonly text: "Noch ist nicht jede Karte abgehakt – bitte jede am Terminal gutschreiben. Ist das schon geschehen, zum Schließen noch einmal drücken.";
286
+ };
287
+ readonly 'getrennt.einstellung_hinweis': {
288
+ readonly text: "Ein Tisch zahlt in Teilen: jede Zahlung bar oder mit Karte, mit eigenem Trinkgeld – am Ende ein Beleg für alles.";
289
+ };
290
+ readonly 'getrennt.betrag_ueber_offen': {
291
+ readonly text: "Der Betrag ist höher als offen – höchstens {betrag}.";
292
+ readonly platzhalter: readonly ["betrag"];
293
+ };
294
+ readonly 'getrennt.trinkgeld_ueber_betrag': {
295
+ readonly text: "Das Trinkgeld ist höher als der Betrag dieser Zahlung.";
296
+ };
297
+ readonly 'getrennt.gegeben_zu_wenig': {
298
+ readonly text: "Gegeben ist weniger als der Betrag dieser Zahlung.";
299
+ };
300
+ readonly 'getrennt.noch_offen': {
301
+ readonly text: "Es sind noch {betrag} offen – abschließen geht erst, wenn alles kassiert ist.";
302
+ readonly platzhalter: readonly ["betrag"];
303
+ };
304
+ readonly 'getrennt.summe_passt_nicht': {
305
+ readonly text: "Die Zahlungen ergeben nicht den Betrag des Belegs – bitte die Liste prüfen.";
306
+ };
307
+ readonly 'getrennt.korb_gesperrt': {
308
+ readonly text: "Der Warenkorb ist gesperrt, solange Zahlungen kassiert sind – erst abschließen oder die Zahlungen entfernen.";
309
+ };
310
+ readonly 'getrennt.wechsel_gesperrt': {
311
+ readonly text: "Zurück zu Bar oder Karte geht erst, wenn keine Zahlung mehr kassiert ist.";
312
+ };
313
+ readonly 'getrennt.bar_zurueckgeben': {
314
+ readonly text: "Bitte {betrag} Bargeld an den Gast zurückgeben.";
315
+ readonly platzhalter: readonly ["betrag"];
316
+ };
317
+ readonly 'getrennt.karte_zurueckbuchen_laeuft': {
318
+ readonly text: "Die Kartenzahlung über {betrag} wird am Terminal zurückgebucht …";
319
+ readonly platzhalter: readonly ["betrag"];
320
+ };
321
+ readonly 'getrennt.karte_zurueckgebucht': {
322
+ readonly text: "Die Kartenzahlung über {betrag} ist am Terminal zurückgebucht.";
323
+ readonly platzhalter: readonly ["betrag"];
324
+ };
325
+ readonly 'getrennt.karte_zurueckbuchen_fehlgeschlagen': {
326
+ readonly text: "Die Kartenzahlung über {betrag} (Kennung {kennung}) ließ sich nicht zurückbuchen – sie bleibt in der Liste. Bitte am Terminal-Beleg nachsehen und erneut versuchen.";
327
+ readonly platzhalter: readonly ["betrag", "kennung"];
328
+ };
329
+ readonly 'getrennt.karte_zurueckbuchen_unklar': {
330
+ readonly text: "Unklar, ob die Rückbuchung über {betrag} (Kennung {kennung}) durchgegangen ist – die Zahlung bleibt in der Liste. Bitte am Terminal-Beleg nachsehen, BEVOR erneut zurückgebucht wird.";
331
+ readonly platzhalter: readonly ["betrag", "kennung"];
332
+ };
333
+ readonly 'getrennt.karte_bereits_zurueckgebucht': {
334
+ readonly text: "Das Terminal meldet, dass die Kartenzahlung über {betrag} bereits gutgeschrieben wurde (Kennung {kennung}) – bitte am Terminal-Beleg prüfen und nicht erneut zurückbuchen.";
335
+ readonly platzhalter: readonly ["betrag", "kennung"];
336
+ };
337
+ readonly 'getrennt.extern_zurueckbuchen': {
338
+ readonly text: "Diese Karte ist nicht an die Kasse angebunden. Bitte {betrag} jetzt am Terminal zurückbuchen und danach bestätigen.";
339
+ readonly platzhalter: readonly ["betrag"];
340
+ };
341
+ readonly 'getrennt.sitzung_offen': {
342
+ readonly text: "Eine getrennte Zahlung ist nicht abgeschlossen, {betrag} sind schon kassiert. Bitte weiter kassieren oder alles zurückbuchen.";
343
+ readonly platzhalter: readonly ["betrag"];
344
+ };
345
+ readonly 'getrennt.sitzung_unlesbar': {
346
+ readonly text: "Eine gespeicherte getrennte Zahlung auf diesem Gerät ließ sich nicht lesen – bitte prüfen, ob schon Karten belastet wurden (Kasseneck-Panel oder Terminal), und offene Beträge von Hand ausgleichen.";
347
+ };
348
+ readonly 'getrennt.ablage_fehlgeschlagen': {
349
+ readonly text: "Die getrennte Zahlung ließ sich auf diesem Gerät nicht speichern – bitte die Kasse bis zum Abschluss dieses Belegs nicht neu laden, sonst stehen belastete Karten womöglich nicht mehr in der Liste.";
350
+ };
351
+ readonly 'getrennt.zu_viele_zahlungen': {
352
+ readonly text: "Ein Beleg lässt höchstens 20 Zahlungen zu.";
353
+ };
354
+ readonly 'getrennt.entkoppeln_offene_karten': {
355
+ readonly text: "Auf diesem Gerät ist noch eine getrennte Zahlung mit belasteten Karten offen – sie müssen von Hand am Terminal zurückgebucht werden (Beträge siehe unten).";
356
+ };
357
+ readonly 'getrennt.positionen_gesperrt': {
358
+ readonly text: "Nach Positionen geht nicht mehr – eine Zahlung ist schon als Betrag kassiert.";
359
+ };
360
+ readonly 'getrennt.positionen_waehlen': {
361
+ readonly text: "Bitte zuerst antippen, was dieser Gast zahlt.";
362
+ };
363
+ readonly 'getrennt.gegeben_fehlt': {
364
+ readonly text: "Erst eintippen, was der Gast für diese Zahlung gibt – der Rückgeld-Rechner ist an.";
365
+ };
224
366
  readonly 'beleg.link_kopiert': {
225
367
  readonly text: "Der Link zum Beleg liegt in der Zwischenablage.";
226
368
  };
@@ -229,10 +371,10 @@ declare const MELDUNGEN_ROH: {
229
371
  readonly platzhalter: readonly ["betrieb", "nummer", "betrag", "link"];
230
372
  };
231
373
  readonly 'beleg.nicht_teilbar': {
232
- readonly text: "Für diesen Beleg gibt es keinen Link — er stammt aus einer älteren Kasse.";
374
+ readonly text: "Für diesen Beleg gibt es keinen Link – er stammt aus einer älteren Kasse.";
233
375
  };
234
376
  readonly 'beleg.test_hinweis_teilen': {
235
- readonly text: "Test-Umgebung — der Beleg ist steuerlich nicht gültig.";
377
+ readonly text: "Test-Umgebung – der Beleg ist steuerlich nicht gültig.";
236
378
  };
237
379
  readonly 'beleg.mail_gesendet': {
238
380
  readonly text: "Der Beleg wurde an {an} gesendet.";
@@ -242,13 +384,13 @@ declare const MELDUNGEN_ROH: {
242
384
  readonly text: "Diese E-Mail-Adresse ist nicht gültig.";
243
385
  };
244
386
  readonly 'beleg.mail_zu_oft': {
245
- readonly text: "Dieser Beleg wurde schon oft gesendet — bitte später noch einmal.";
387
+ readonly text: "Dieser Beleg wurde schon oft gesendet – bitte später noch einmal.";
246
388
  };
247
389
  readonly 'beleg.mail_fehlgeschlagen': {
248
390
  readonly text: "Der Beleg konnte nicht gesendet werden. Bitte noch einmal versuchen.";
249
391
  };
250
392
  readonly 'beleg.mail_nicht_gefunden': {
251
- readonly text: "Dieser Beleg wurde nicht gefunden — er konnte nicht gesendet werden.";
393
+ readonly text: "Dieser Beleg wurde nicht gefunden – er konnte nicht gesendet werden.";
252
394
  };
253
395
  readonly 'druck.fehlgeschlagen': {
254
396
  readonly text: "Der Ausdruck ist fehlgeschlagen.";
@@ -265,7 +407,7 @@ declare const MELDUNGEN_ROH: {
265
407
  readonly platzhalter: readonly ["grund"];
266
408
  };
267
409
  readonly 'druck.kein_drucker': {
268
- readonly text: "Kein Bondrucker eingerichtet — in den Einstellungen unter Drucker & Lade.";
410
+ readonly text: "Kein Bondrucker eingerichtet – in den Einstellungen unter Drucker & Lade.";
269
411
  };
270
412
  readonly 'druck.drucker_nicht_erreichbar': {
271
413
  readonly text: "Drucker nicht erreichbar.";
@@ -275,16 +417,16 @@ declare const MELDUNGEN_ROH: {
275
417
  readonly nur: readonly ["web"];
276
418
  };
277
419
  readonly 'druck.kein_drucker_gefunden': {
278
- readonly text: "Kein Drucker gefunden — ist er eingeschaltet und im selben Netz wie dieser Rechner?";
420
+ readonly text: "Kein Drucker gefunden – ist er eingeschaltet und im selben Netz wie dieser Rechner?";
279
421
  readonly nur: readonly ["web"];
280
422
  };
281
423
  readonly 'druck.nur_chrome': {
282
- readonly text: "{weg}-Druck geht nur in Chrome oder Edge (Windows, Mac, Android) — nicht in Safari und nicht am iPad.";
424
+ readonly text: "{weg}-Druck geht nur in Chrome oder Edge (Windows, Mac, Android) – nicht in Safari und nicht am iPad.";
283
425
  readonly platzhalter: readonly ["weg"];
284
426
  readonly nur: readonly ["web"];
285
427
  };
286
428
  readonly 'druck.kein_weg_drucker': {
287
- readonly text: "Kein {weg}-Drucker verbunden — „{weg}-Drucker verbinden“ und den Drucker im Dialog wählen.";
429
+ readonly text: "Kein {weg}-Drucker verbunden – „{weg}-Drucker verbinden“ und den Drucker im Dialog wählen.";
288
430
  readonly platzhalter: readonly ["weg"];
289
431
  readonly nur: readonly ["web"];
290
432
  };
@@ -299,7 +441,7 @@ declare const MELDUNGEN_ROH: {
299
441
  readonly text: "Welcher QR-Code ist sauber gedruckt?";
300
442
  };
301
443
  readonly 'druck.wizard_qr_keiner_hinweis': {
302
- readonly text: "Kein QR-Code kam sauber — der Beleg zeigt den QR-Code dann am Bildschirm.";
444
+ readonly text: "Kein QR-Code kam sauber – der Beleg zeigt den QR-Code dann am Bildschirm.";
303
445
  };
304
446
  readonly 'druck.wizard_nichts_gekommen': {
305
447
  readonly text: "Nichts gekommen? Drucker an, Papier drin, richtiges Gerät gewählt?";
@@ -325,27 +467,27 @@ declare const MELDUNGEN_ROH: {
325
467
  readonly nur: readonly ["app"];
326
468
  };
327
469
  readonly 'connect.antwortet_nicht': {
328
- readonly text: "Kasseneck Connect antwortet nicht — läuft das Programm auf diesem Rechner?";
470
+ readonly text: "Kasseneck Connect antwortet nicht – läuft das Programm auf diesem Rechner?";
329
471
  readonly nur: readonly ["web"];
330
472
  };
331
473
  readonly 'connect.code_abgelaufen': {
332
- readonly text: "Der Kopplungs-Code ist abgelaufen — im Agent einen neuen erzeugen („kasseneck-connect pair“).";
474
+ readonly text: "Der Kopplungs-Code ist abgelaufen – im Agent einen neuen erzeugen („kasseneck-connect pair“).";
333
475
  readonly nur: readonly ["web"];
334
476
  };
335
477
  readonly 'connect.zu_viele_versuche': {
336
- readonly text: "Zu viele Fehlversuche — eine Minute warten und noch einmal versuchen.";
478
+ readonly text: "Zu viele Fehlversuche – eine Minute warten und noch einmal versuchen.";
337
479
  readonly nur: readonly ["web"];
338
480
  };
339
481
  readonly 'connect.drucker_antwortet_nicht': {
340
- readonly text: "Der Drucker antwortet nicht — Strom, Netzwerk und IP prüfen.";
482
+ readonly text: "Der Drucker antwortet nicht – Strom, Netzwerk und IP prüfen.";
341
483
  readonly nur: readonly ["web"];
342
484
  };
343
485
  readonly 'connect.nicht_gekoppelt': {
344
- readonly text: "Diese Kasse ist mit Kasseneck Connect nicht gekoppelt — in den Einstellungen „Koppeln“ drücken.";
486
+ readonly text: "Diese Kasse ist mit Kasseneck Connect nicht gekoppelt – in den Einstellungen „Koppeln“ drücken.";
345
487
  readonly nur: readonly ["web"];
346
488
  };
347
489
  readonly 'connect.drucker_unbekannt': {
348
- readonly text: "Diesen Drucker kennt Kasseneck Connect nicht (mehr) — bitte neu suchen.";
490
+ readonly text: "Diesen Drucker kennt Kasseneck Connect nicht (mehr) – bitte neu suchen.";
349
491
  readonly nur: readonly ["web"];
350
492
  };
351
493
  readonly 'connect.ursprung_nicht_freigegeben': {
@@ -353,7 +495,11 @@ declare const MELDUNGEN_ROH: {
353
495
  readonly nur: readonly ["web"];
354
496
  };
355
497
  readonly 'connect.nicht_installiert': {
356
- readonly text: "Kasseneck Connect nicht gefunden — bitte installieren.";
498
+ readonly text: "Kasseneck Connect nicht gefunden – bitte installieren.";
499
+ readonly nur: readonly ["web"];
500
+ };
501
+ readonly 'connect.entkoppeln_frage': {
502
+ readonly text: "Diesen Browser wirklich von Connect trennen? Der Bondruck geht dann nicht mehr.";
357
503
  readonly nur: readonly ["web"];
358
504
  };
359
505
  readonly 'einstellungen.laden_fehlgeschlagen': {
@@ -363,7 +509,7 @@ declare const MELDUNGEN_ROH: {
363
509
  readonly text: "Die Einstellung konnte nicht gespeichert werden.";
364
510
  };
365
511
  readonly 'einstellungen.noch_nicht_geladen': {
366
- readonly text: "Noch nicht geladen — bitte kurz warten oder neu anmelden.";
512
+ readonly text: "Noch nicht geladen – bitte kurz warten oder neu anmelden.";
367
513
  };
368
514
  readonly 'einstellungen.ip_ungueltig': {
369
515
  readonly text: "Keine gültige IP-Adresse (z. B. 192.168.1.50).";
@@ -378,7 +524,7 @@ declare const MELDUNGEN_ROH: {
378
524
  readonly text: "Entfernen fehlgeschlagen.";
379
525
  };
380
526
  readonly 'app.nicht_im_browser': {
381
- readonly text: "Die Kassen-App läuft nicht im Browser — dafür gibt es kasse.kasseneck.at.";
527
+ readonly text: "Die Kassen-App läuft nicht im Browser – dafür gibt es kasse.kasseneck.at.";
382
528
  readonly nur: readonly ["app"];
383
529
  };
384
530
  readonly 'app.im_browser_oeffnen': {
@@ -451,6 +597,270 @@ export type BelegMailFehlercode = keyof typeof BELEG_MAIL_FEHLER;
451
597
  * allgemeiner Satz.
452
598
  */
453
599
  export declare function belegMailFehler(code: string | undefined | null): MeldungsSchluessel;
600
+ /**
601
+ * Storno eines Belegs mit mehreren Zahlungen, dazu der offene Ausgang
602
+ * (`STORNO_OUTCOME_UNKNOWN`, gilt fuer jedes Storno): welcher `code` des
603
+ * Backends welchen Satz bekommt. Dieselbe Idee wie BELEG_MAIL_FEHLER – beide Kassen
604
+ * entscheiden am Code, nie am Satz des Backends. Ein Code, der hier fehlt,
605
+ * geht den allgemeinen Weg der Storno-Fehler (`storno.fehlgeschlagen`).
606
+ */
607
+ export declare const STORNO_ZAHLUNG_FEHLER: {
608
+ readonly STORNO_PAYMENTS_REQUIRED: "storno.zahlungen_fehlen";
609
+ readonly STORNO_REFUND_EXCEEDS_PAYMENT: "storno.rueckgabe_zu_hoch";
610
+ readonly STORNO_REFUND_REFERENCE_REQUIRED: "storno.rueckgabe_ohne_bezug";
611
+ readonly STORNO_REFUND_REFERENCE_UNKNOWN: "storno.rueckgabe_bezug_unbekannt";
612
+ readonly PAYMENTS_SUM_MISMATCH: "storno.summe_passt_nicht";
613
+ readonly STORNO_OUTCOME_UNKNOWN: "storno.ergebnis_unklar";
614
+ };
615
+ export type StornoZahlungFehlercode = keyof typeof STORNO_ZAHLUNG_FEHLER;
616
+ /**
617
+ * Der Satz zu einem `code` des Backends beim Storno mit mehreren Zahlungen.
618
+ * Einen Code, den dieses Paket noch nicht kennt, faengt der allgemeine Satz
619
+ * `storno.fehlgeschlagen` auf – wie bei `belegMailFehler`.
620
+ */
621
+ export declare function stornoZahlungFehler(code: string | undefined | null): MeldungsSchluessel;
622
+ /**
623
+ * Beschriftungen: Knoepfe, Ueberschriften, Zeilennamen – was kein Satz ist.
624
+ *
625
+ * Getrennt von MELDUNGEN, weil dort jeder Eintrag ein Satz ist (gross am
626
+ * Anfang, Satzzeichen am Schluss) und die Waechter beider Kassen daran
627
+ * Saetze erkennen. „Rest" oder „÷ {n}" sind keine Saetze, muessen aber in
628
+ * beiden Kassen gleich heissen. Dieselben Regeln sonst: Schluessel
629
+ * `bereich.name`, nie umgedeutet, Platzhalter exakt die im Text, `nur` nennt
630
+ * die Seite.
631
+ *
632
+ * Die Woerter der Zahlarten folgen dem Bon („Kartenzahlung", „Barzahlung",
633
+ * „Zahlung {n}", „davon Trinkgeld").
634
+ */
635
+ declare const BESCHRIFTUNGEN_ROH: {
636
+ readonly 'allgemein.abbrechen': {
637
+ readonly text: "Abbrechen";
638
+ };
639
+ readonly 'meldung.ausblenden': {
640
+ readonly text: "Meldung ausblenden: {meldung}";
641
+ readonly platzhalter: readonly ["meldung"];
642
+ };
643
+ readonly 'meldung.warnung_ausblenden': {
644
+ readonly text: "Verstanden – Warnung ausblenden: {meldung}";
645
+ readonly platzhalter: readonly ["meldung"];
646
+ };
647
+ readonly 'kopplung.neu_koppeln': {
648
+ readonly text: "Neu koppeln";
649
+ };
650
+ readonly 'abmelden.frage': {
651
+ readonly text: "Wirklich abmelden?";
652
+ };
653
+ readonly 'abmelden.weiter_arbeiten': {
654
+ readonly text: "Weiter arbeiten";
655
+ };
656
+ readonly 'geraet.entkoppeln': {
657
+ readonly text: "Gerät entkoppeln";
658
+ };
659
+ readonly 'connect.entkoppeln_bestaetigen': {
660
+ readonly text: "Entkoppeln bestätigen";
661
+ readonly nur: readonly ["web"];
662
+ };
663
+ readonly 'kassieren.trinkgeld': {
664
+ readonly text: "Trinkgeld";
665
+ };
666
+ readonly 'kassieren.kein': {
667
+ readonly text: "kein";
668
+ };
669
+ readonly 'kassieren.eigener_betrag': {
670
+ readonly text: "Eigener Betrag";
671
+ };
672
+ readonly 'kassieren.passend': {
673
+ readonly text: "passend";
674
+ };
675
+ readonly 'kassieren.gegeben_loeschen': {
676
+ readonly text: "Gegeben löschen";
677
+ };
678
+ readonly 'kassieren.es_fehlen_noch': {
679
+ readonly text: "Es fehlen noch";
680
+ };
681
+ readonly 'kassieren.rueckgeld': {
682
+ readonly text: "Rückgeld";
683
+ };
684
+ readonly 'kartenzahlung.betrag_am_terminal': {
685
+ readonly text: "Betrag steht am Terminal";
686
+ };
687
+ readonly 'kartenzahlung.karte_vorhalten': {
688
+ readonly text: "Karte vorhalten oder stecken · noch {zeit}";
689
+ readonly platzhalter: readonly ["zeit"];
690
+ };
691
+ readonly 'abschluss.beleg_vorhanden': {
692
+ readonly text: "Beleg ist vorhanden – erledigen";
693
+ };
694
+ readonly 'abschluss.erledigen': {
695
+ readonly text: "Erledigen";
696
+ };
697
+ readonly 'getrennt.knopf': {
698
+ readonly text: "Getrennt";
699
+ };
700
+ readonly 'getrennt.einstellung': {
701
+ readonly text: "Getrennt zahlen";
702
+ };
703
+ readonly 'getrennt.zu_zahlen': {
704
+ readonly text: "Zu zahlen";
705
+ };
706
+ readonly 'getrennt.offen': {
707
+ readonly text: "Offen";
708
+ };
709
+ readonly 'getrennt.zahlung': {
710
+ readonly text: "Zahlung {n}";
711
+ readonly platzhalter: readonly ["n"];
712
+ };
713
+ readonly 'getrennt.betrag': {
714
+ readonly text: "Betrag";
715
+ };
716
+ readonly 'getrennt.rest': {
717
+ readonly text: "Rest";
718
+ };
719
+ readonly 'getrennt.teilen': {
720
+ readonly text: "÷ {n}";
721
+ readonly platzhalter: readonly ["n"];
722
+ };
723
+ readonly 'getrennt.trinkgeld_bezug': {
724
+ readonly text: "% von diesem Betrag";
725
+ };
726
+ readonly 'getrennt.davon_trinkgeld': {
727
+ readonly text: "davon Trinkgeld {betrag}";
728
+ readonly platzhalter: readonly ["betrag"];
729
+ };
730
+ readonly 'getrennt.entfernen': {
731
+ readonly text: "Entfernen";
732
+ };
733
+ readonly 'getrennt.alles_abbrechen': {
734
+ readonly text: "Alles abbrechen";
735
+ };
736
+ readonly 'getrennt.weiter_kassieren': {
737
+ readonly text: "Weiter kassieren";
738
+ };
739
+ readonly 'getrennt.alles_zurueckbuchen': {
740
+ readonly text: "Alles zurückbuchen";
741
+ };
742
+ readonly 'getrennt.am_terminal_zurueckgebucht': {
743
+ readonly text: "Am Terminal zurückgebucht";
744
+ };
745
+ readonly 'getrennt.karte_zurueckbuchen': {
746
+ readonly text: "Karte zurückbuchen";
747
+ };
748
+ readonly 'getrennt.trotzdem_neu_koppeln': {
749
+ readonly text: "Trotzdem neu koppeln";
750
+ };
751
+ readonly 'getrennt.zahlung_behalten': {
752
+ readonly text: "Zahlung behalten";
753
+ };
754
+ readonly 'getrennt.klaeren': {
755
+ readonly text: "Klären";
756
+ };
757
+ readonly 'getrennt.erneut_zurueckbuchen': {
758
+ readonly text: "Erneut zurückbuchen";
759
+ };
760
+ readonly 'getrennt.wurde_belastet': {
761
+ readonly text: "Wurde belastet – übernehmen";
762
+ };
763
+ readonly 'getrennt.nicht_belastet': {
764
+ readonly text: "Nicht belastet – verwerfen";
765
+ };
766
+ readonly 'getrennt.weiter': {
767
+ readonly text: "Weiter · {betrag} getrennt";
768
+ readonly platzhalter: readonly ["betrag"];
769
+ };
770
+ readonly 'getrennt.aufteilung': {
771
+ readonly text: "Aufteilung";
772
+ };
773
+ readonly 'getrennt.zurueck_zahlart': {
774
+ readonly text: "Zurück zur Zahlart";
775
+ };
776
+ readonly 'getrennt.tab_positionen': {
777
+ readonly text: "Nach Positionen";
778
+ };
779
+ readonly 'getrennt.tab_betrag': {
780
+ readonly text: "Betrag";
781
+ };
782
+ readonly 'getrennt.stueck_weniger': {
783
+ readonly text: "{name}: ein Stück weniger";
784
+ readonly platzhalter: readonly ["name"];
785
+ };
786
+ readonly 'getrennt.stueck_mehr': {
787
+ readonly text: "{name}: ein Stück mehr";
788
+ readonly platzhalter: readonly ["name"];
789
+ };
790
+ readonly 'getrennt.gegeben': {
791
+ readonly text: "Gegeben (bar)";
792
+ };
793
+ readonly 'getrennt.gegeben_rueckgeld': {
794
+ readonly text: "Gegeben {gegeben} · Rückgeld {rueckgeld}";
795
+ readonly platzhalter: readonly ["gegeben", "rueckgeld"];
796
+ };
797
+ readonly 'getrennt.zahlart': {
798
+ readonly text: "Zahlart";
799
+ };
800
+ readonly 'getrennt.art_bar': {
801
+ readonly text: "Bar";
802
+ };
803
+ readonly 'getrennt.art_karte': {
804
+ readonly text: "Karte";
805
+ };
806
+ readonly 'getrennt.zahlung_hinzufuegen': {
807
+ readonly text: "Zahlung hinzufügen · {betrag}";
808
+ readonly platzhalter: readonly ["betrag"];
809
+ };
810
+ readonly 'getrennt.offene_positionen': {
811
+ readonly text: "Offene Positionen";
812
+ };
813
+ readonly 'getrennt.stueck_offen': {
814
+ readonly text: "{n} offen";
815
+ readonly platzhalter: readonly ["n"];
816
+ };
817
+ readonly 'getrennt.stueck_gewaehlt': {
818
+ readonly text: "{n} von {offen}";
819
+ readonly platzhalter: readonly ["n", "offen"];
820
+ };
821
+ readonly 'getrennt.nichts_gewaehlt': {
822
+ readonly text: "Noch nichts angetippt";
823
+ };
824
+ readonly 'getrennt.alles_bezahlt': {
825
+ readonly text: "Alles bezahlt";
826
+ };
827
+ readonly 'zahlart.kartenzahlung': {
828
+ readonly text: "Kartenzahlung";
829
+ };
830
+ readonly 'zahlart.barzahlung': {
831
+ readonly text: "Barzahlung";
832
+ };
833
+ readonly 'zahlart.mehrere': {
834
+ readonly text: "Mehrere";
835
+ };
836
+ readonly 'storno.titel': {
837
+ readonly text: "Storno zu {beleg}";
838
+ readonly platzhalter: readonly ["beleg"];
839
+ };
840
+ readonly 'storno.wie_zurueckgeben': {
841
+ readonly text: "Wie zurückgeben?";
842
+ };
843
+ readonly 'storno.wie_bezahlt': {
844
+ readonly text: "wie bezahlt";
845
+ };
846
+ readonly 'storno.bar': {
847
+ readonly text: "bar";
848
+ };
849
+ readonly 'storno.alles_bar': {
850
+ readonly text: "Alles bar";
851
+ };
852
+ readonly 'storno.rest_der_zahlung': {
853
+ readonly text: "Rest {betrag}";
854
+ readonly platzhalter: readonly ["betrag"];
855
+ };
856
+ readonly 'storno.differenz': {
857
+ readonly text: "Differenz";
858
+ };
859
+ };
860
+ export type BeschriftungsSchluessel = keyof typeof BESCHRIFTUNGEN_ROH;
861
+ export declare const BESCHRIFTUNGEN: Record<BeschriftungsSchluessel, Meldung>;
862
+ /** Die Beschriftung zum Schluessel, Platzhalter ersetzt; fehlt ein Wert, wirft es wie `meldung`. */
863
+ export declare function beschriftung(schluessel: BeschriftungsSchluessel, werte?: Record<string, string | number>): string;
454
864
  /** Der Satz zum Schluessel, Platzhalter ersetzt. Fehlt ein Wert, wirft es — ein `{status}` am Tresen waere schlimmer. */
455
865
  export declare function meldung(schluessel: MeldungsSchluessel, werte?: Record<string, string | number>): string;
456
866
  /** Gilt der Satz auf dieser Seite? */