@kreiseck/kasseneck-api 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ Was vor 0.7.0 geschah, steht in der Commit-Historie (`git log`); ab hier wird
4
4
  es hier geführt. Ein Eintrag nennt die Änderung **und ihren Grund** —
5
5
  nur der Grund überlebt den nächsten Umbau.
6
6
 
7
+ ## 0.12.0
8
+
9
+ ### Storno mit Kartendaten der Erstattung
10
+
11
+ **Anlass:** sastre zieht vom alten Storno-Weg (`createCancelReceipt`, ohne
12
+ Bezug) auf `cancelReceipt` um. Bei einer Kartenerstattung haengt sastre heute
13
+ die Terminaldaten der Gutschrift/Aufhebung an den Stornobeleg -- ueber den
14
+ neuen Endpunkt ging das bisher nicht, der Kartenblock fiele vom Storno-Bon.
15
+ Backend: keck#371.
16
+
17
+ - **`cancelReceipt` nimmt `creditCardProvider`, `cardPaymentId` und
18
+ `cardPaymentData` an** -- die Daten der ERSTATTUNG, nie der Originalzahlung.
19
+ Nur bei Rueckzahlweg Karte: ein ausdruecklich anderer `paymentMethod` wird
20
+ schon hier abgewiesen, ohne Angabe entscheidet das Backend an der
21
+ Zahlungsart des Originals. Ein unbekannter Kartenanbieter geht gar nicht erst
22
+ raus.
23
+ - Ohne Kartendaten aendert sich nichts.
24
+ - `package-lock.json` traegt wieder die Paketversion (stand seit 0.11.0 auf
25
+ 0.10.0).
26
+
7
27
  ## 0.11.0
8
28
 
9
29
  ### Die QR-Modulgröße wird gerechnet, nicht gesetzt — samt Notausgang und Modell 1
@@ -117,6 +117,14 @@ export type CancelReceiptOptions = {
117
117
  note?: string;
118
118
  /** Rueckzahlweg; ohne Angabe die Zahlungsart des stornierten Belegs. */
119
119
  paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
120
+ /**
121
+ * Kartendaten der ERSTATTUNG (Gutschrift oder Aufhebung am Terminal) fuer
122
+ * den Kartenblock am Storno-Bon -- nur bei Rueckzahlweg Karte. Beschreiben
123
+ * nie die Originalzahlung; das Backend uebernimmt sie nicht vom Original.
124
+ */
125
+ creditCardProvider?: CreditCardProvider;
126
+ cardPaymentId?: string;
127
+ cardPaymentData?: Record<string, unknown>;
120
128
  } & ({
121
129
  receipt: Receipt;
122
130
  cashregisterId?: string;
@@ -154,6 +154,24 @@ async function cancelReceipt(rufen, options) {
154
154
  params.note = options.note;
155
155
  if (options.paymentMethod != null)
156
156
  params.paymentMethod = gepruefteZahlungsart(options.paymentMethod);
157
+ const karte = options.creditCardProvider != null || options.cardPaymentId != null || options.cardPaymentData != null;
158
+ if (karte) {
159
+ // Ohne paymentMethod entscheidet das Backend an der Zahlungsart des
160
+ // Originals; ein ausdruecklich anderer Rueckzahlweg ist hier schon falsch.
161
+ if (params.paymentMethod != null && params.paymentMethod !== index_js_1.KeckPaymentMethod.creditCard.value) {
162
+ throw new errors_js_1.KasseneckValidationError('cancelReceipt', 'Kartendaten gibt es nur bei paymentMethod creditCard', 'request');
163
+ }
164
+ if (options.creditCardProvider != null) {
165
+ if (!Object.prototype.hasOwnProperty.call(index_js_1.CreditCardProvider, options.creditCardProvider)) {
166
+ throw new errors_js_1.KasseneckValidationError('cancelReceipt', `Kartenanbieter: unbekannter Schluessel "${options.creditCardProvider}"`, 'request');
167
+ }
168
+ params.creditCardProvider = options.creditCardProvider;
169
+ }
170
+ if (options.cardPaymentId != null && options.cardPaymentId !== '')
171
+ params.cardPaymentId = options.cardPaymentId;
172
+ if (options.cardPaymentData != null)
173
+ params.cardPaymentData = options.cardPaymentData;
174
+ }
157
175
  const daten = await rufen('cancelReceipt', params);
158
176
  const receipt = belegAusHuelle(daten, 'cancelReceipt');
159
177
  const huelle = daten;
@@ -117,6 +117,14 @@ export type CancelReceiptOptions = {
117
117
  note?: string;
118
118
  /** Rueckzahlweg; ohne Angabe die Zahlungsart des stornierten Belegs. */
119
119
  paymentMethod?: KeckPaymentMethod | KeckPaymentMethodKey;
120
+ /**
121
+ * Kartendaten der ERSTATTUNG (Gutschrift oder Aufhebung am Terminal) fuer
122
+ * den Kartenblock am Storno-Bon -- nur bei Rueckzahlweg Karte. Beschreiben
123
+ * nie die Originalzahlung; das Backend uebernimmt sie nicht vom Original.
124
+ */
125
+ creditCardProvider?: CreditCardProvider;
126
+ cardPaymentId?: string;
127
+ cardPaymentData?: Record<string, unknown>;
120
128
  } & ({
121
129
  receipt: Receipt;
122
130
  cashregisterId?: string;
@@ -140,6 +140,24 @@ export async function cancelReceipt(rufen, options) {
140
140
  params.note = options.note;
141
141
  if (options.paymentMethod != null)
142
142
  params.paymentMethod = gepruefteZahlungsart(options.paymentMethod);
143
+ const karte = options.creditCardProvider != null || options.cardPaymentId != null || options.cardPaymentData != null;
144
+ if (karte) {
145
+ // Ohne paymentMethod entscheidet das Backend an der Zahlungsart des
146
+ // Originals; ein ausdruecklich anderer Rueckzahlweg ist hier schon falsch.
147
+ if (params.paymentMethod != null && params.paymentMethod !== KeckPaymentMethod.creditCard.value) {
148
+ throw new KasseneckValidationError('cancelReceipt', 'Kartendaten gibt es nur bei paymentMethod creditCard', 'request');
149
+ }
150
+ if (options.creditCardProvider != null) {
151
+ if (!Object.prototype.hasOwnProperty.call(CreditCardProvider, options.creditCardProvider)) {
152
+ throw new KasseneckValidationError('cancelReceipt', `Kartenanbieter: unbekannter Schluessel "${options.creditCardProvider}"`, 'request');
153
+ }
154
+ params.creditCardProvider = options.creditCardProvider;
155
+ }
156
+ if (options.cardPaymentId != null && options.cardPaymentId !== '')
157
+ params.cardPaymentId = options.cardPaymentId;
158
+ if (options.cardPaymentData != null)
159
+ params.cardPaymentData = options.cardPaymentData;
160
+ }
143
161
  const daten = await rufen('cancelReceipt', params);
144
162
  const receipt = belegAusHuelle(daten, 'cancelReceipt');
145
163
  const huelle = daten;
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.11.0",
2
+ "version": "0.12.0",
3
3
  "gemessenAn": {
4
4
  "tid": "3600335",
5
5
  "hpsVersion": "1.10.0",
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.11.0",
2
+ "version": "0.12.0",
3
3
  "meldungen": {
4
4
  "netz.keine_verbindung": {
5
5
  "text": "Keine Verbindung zum Server. Bitte die Internetverbindung prüfen und erneut versuchen."
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.11.0",
2
+ "version": "0.12.0",
3
3
  "aufrufe": [
4
4
  "activateCashregister",
5
5
  "cancelReceipt",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kreiseck/kasseneck-api",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "JavaScript-Zwilling von kasseneck_api (Flutter) fuer das Kasseneck-Backend",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Kreiseck",