@kreiseck/kasseneck-api 0.30.0 → 0.32.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 +146 -0
- package/dist/cjs/kasse/index.d.ts +1 -1
- package/dist/cjs/kasse/index.js +5 -1
- package/dist/cjs/kasse/settings.d.ts +4 -2
- package/dist/cjs/kasse/settings.js +5 -2
- package/dist/cjs/kasse/texte.d.ts +444 -34
- package/dist/cjs/kasse/texte.js +265 -35
- package/dist/cjs/models/cancellation.d.ts +18 -5
- package/dist/cjs/models/cancellation.js +9 -4
- package/dist/cjs/models/payment-errors.js +1 -1
- package/dist/cjs/models/receipt-payment.d.ts +2 -1
- package/dist/cjs/models/receipt.js +16 -0
- package/dist/cjs/payments/hobex-hps/transaction-response.js +28 -28
- package/dist/cjs/rechnung/index.d.ts +2 -2
- package/dist/cjs/rechnung/index.js +3 -1
- package/dist/cjs/rechnung/typen.d.ts +13 -2
- package/dist/cjs/rechnung/vertrag.d.ts +5 -0
- package/dist/cjs/rechnung/vertrag.js +27 -2
- package/dist/esm/kasse/index.d.ts +1 -1
- package/dist/esm/kasse/index.js +1 -1
- package/dist/esm/kasse/settings.d.ts +4 -2
- package/dist/esm/kasse/settings.js +5 -2
- package/dist/esm/kasse/texte.d.ts +444 -34
- package/dist/esm/kasse/texte.js +262 -34
- package/dist/esm/models/cancellation.d.ts +18 -5
- package/dist/esm/models/cancellation.js +9 -4
- package/dist/esm/models/payment-errors.js +1 -1
- package/dist/esm/models/receipt-payment.d.ts +2 -1
- package/dist/esm/models/receipt.js +16 -0
- package/dist/esm/payments/hobex-hps/transaction-response.js +28 -28
- package/dist/esm/rechnung/index.d.ts +2 -2
- package/dist/esm/rechnung/index.js +1 -1
- package/dist/esm/rechnung/typen.d.ts +13 -2
- package/dist/esm/rechnung/vertrag.d.ts +5 -0
- package/dist/esm/rechnung/vertrag.js +26 -1
- package/fixtures/hobex-hps-codes.json +29 -29
- package/fixtures/kasse-settings-standard.json +4 -2
- package/fixtures/kasse-texte.json +479 -35
- package/fixtures/oberflaeche.json +8 -2
- package/fixtures/rechnung-api-beispiele/credit-fehler-rueckgabe.json +26 -0
- package/fixtures/rechnung-api-beispiele/credit-rueckgabe.json +23 -0
- package/fixtures/rechnung-api-beispiele/issue-fehler-lagerkennung.json +27 -0
- package/fixtures/rechnung-api-beispiele/issue-fehler-rueckgabe.json +25 -0
- package/fixtures/rechnung-api-beispiele/issue-lager.json +22 -0
- package/fixtures/rechnung-api-beispiele/storno-fehler-rueckgabe.json +17 -0
- package/fixtures/rechnung-api.schema.json +37 -1
- package/fixtures/rechnung-texte.json +1 -1
- package/package.json +1 -1
|
@@ -59,40 +59,40 @@ const tecs_codes_js_1 = require("./tecs-codes.js");
|
|
|
59
59
|
/** Der Satz fuer den Bediener je Grund, deutsch. */
|
|
60
60
|
exports.HPS_REASON_HINTS = {
|
|
61
61
|
approved: 'Vom Terminal genehmigt.',
|
|
62
|
-
approvedWithCondition: 'Das Terminal meldet eine Genehmigung mit Vorbehalt (etwa nur über einen Teilbetrag). Ob und in welcher Höhe belastet wurde, bitte am Terminalbeleg prüfen
|
|
62
|
+
approvedWithCondition: 'Das Terminal meldet eine Genehmigung mit Vorbehalt (etwa nur über einen Teilbetrag). Ob und in welcher Höhe belastet wurde, bitte am Terminalbeleg prüfen – nicht erneut kassieren, bevor es geklärt ist.',
|
|
63
63
|
aborted: 'Der Vorgang wurde abgebrochen. Es wurde kein Geld bewegt.',
|
|
64
|
-
noCard: 'Es wurde keine Karte vorgehalten. Es wurde kein Geld bewegt
|
|
65
|
-
cardReadFailed: 'Die Karte konnte nicht gelesen werden. Es wurde kein Geld bewegt
|
|
66
|
-
cardDeclined: 'Die Karte wurde vom Terminal abgelehnt. Es wurde kein Geld bewegt
|
|
67
|
-
issuerDeclined: 'Die Zahlung wurde von der Bank abgelehnt. Es wurde kein Geld bewegt
|
|
68
|
-
cardBlocked: 'Die Karte ist gesperrt. Es wurde kein Geld bewegt
|
|
69
|
-
cardExpired: 'Die Karte ist abgelaufen. Es wurde kein Geld bewegt
|
|
70
|
-
insufficientFunds: 'Das Konto ist nicht gedeckt oder das Kartenlimit ist erreicht. Es wurde kein Geld bewegt
|
|
71
|
-
wrongPin: 'Die PIN war falsch. Es wurde kein Geld bewegt
|
|
72
|
-
pinTriesExceeded: 'Die PIN wurde zu oft falsch eingegeben. Es wurde kein Geld bewegt
|
|
73
|
-
pinRequired: 'Die Bank verlangt die PIN. Es wurde kein Geld bewegt
|
|
64
|
+
noCard: 'Es wurde keine Karte vorgehalten. Es wurde kein Geld bewegt – bitte erneut versuchen.',
|
|
65
|
+
cardReadFailed: 'Die Karte konnte nicht gelesen werden. Es wurde kein Geld bewegt – bitte erneut versuchen, notfalls die Karte stecken statt auflegen.',
|
|
66
|
+
cardDeclined: 'Die Karte wurde vom Terminal abgelehnt. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
67
|
+
issuerDeclined: 'Die Zahlung wurde von der Bank abgelehnt. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
68
|
+
cardBlocked: 'Die Karte ist gesperrt. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
69
|
+
cardExpired: 'Die Karte ist abgelaufen. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
70
|
+
insufficientFunds: 'Das Konto ist nicht gedeckt oder das Kartenlimit ist erreicht. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
71
|
+
wrongPin: 'Die PIN war falsch. Es wurde kein Geld bewegt – bitte erneut versuchen.',
|
|
72
|
+
pinTriesExceeded: 'Die PIN wurde zu oft falsch eingegeben. Es wurde kein Geld bewegt – bitte eine andere Karte oder Zahlungsart verwenden.',
|
|
73
|
+
pinRequired: 'Die Bank verlangt die PIN. Es wurde kein Geld bewegt – bitte erneut versuchen, die Karte stecken und die PIN eingeben.',
|
|
74
74
|
amountInvalid: 'Das Terminal nimmt diesen Betrag nicht an. Es wurde kein Geld bewegt.',
|
|
75
|
-
tipNotSelected: 'Das Trinkgeld wurde nicht rechtzeitig gewählt. Es wurde kein Geld bewegt
|
|
76
|
-
terminalBusy: 'Das Terminal ist noch mit einem anderen Vorgang beschäftigt. Es wurde kein Geld bewegt
|
|
77
|
-
terminalBlocked: 'Das Terminal ist gesperrt. Es wurde kein Geld bewegt
|
|
78
|
-
terminalSetup: 'Das Terminal ist nicht richtig eingerichtet. Es wurde kein Geld bewegt
|
|
79
|
-
acquirerSetup: 'hobex nimmt dieses Terminal oder diesen Händler so nicht an. Es wurde kein Geld bewegt
|
|
80
|
-
terminalFault: 'Das Terminal meldet eine Störung. Es wurde kein Geld bewegt
|
|
81
|
-
requestRejected: 'Das Terminal hat die Anfrage abgewiesen. Es wurde kein Geld bewegt
|
|
82
|
-
hostRejected: 'hobex hat die Zahlung abgewiesen. Es wurde kein Geld bewegt
|
|
83
|
-
hostUnavailable: 'Die Bank oder hobex ist gerade nicht erreichbar. Es wurde kein Geld bewegt
|
|
75
|
+
tipNotSelected: 'Das Trinkgeld wurde nicht rechtzeitig gewählt. Es wurde kein Geld bewegt – bitte erneut versuchen.',
|
|
76
|
+
terminalBusy: 'Das Terminal ist noch mit einem anderen Vorgang beschäftigt. Es wurde kein Geld bewegt – kurz warten und erneut versuchen.',
|
|
77
|
+
terminalBlocked: 'Das Terminal ist gesperrt. Es wurde kein Geld bewegt – bitte hobex kontaktieren.',
|
|
78
|
+
terminalSetup: 'Das Terminal ist nicht richtig eingerichtet. Es wurde kein Geld bewegt – bitte die Terminal-ID in den Einstellungen prüfen, sonst hobex kontaktieren.',
|
|
79
|
+
acquirerSetup: 'hobex nimmt dieses Terminal oder diesen Händler so nicht an. Es wurde kein Geld bewegt – bitte hobex kontaktieren.',
|
|
80
|
+
terminalFault: 'Das Terminal meldet eine Störung. Es wurde kein Geld bewegt – bitte das Terminal neu starten und erneut versuchen.',
|
|
81
|
+
requestRejected: 'Das Terminal hat die Anfrage abgewiesen. Es wurde kein Geld bewegt – tritt das wieder auf, bitte den Support kontaktieren.',
|
|
82
|
+
hostRejected: 'hobex hat die Zahlung abgewiesen. Es wurde kein Geld bewegt – bitte erneut versuchen; tritt das wieder auf, hobex kontaktieren.',
|
|
83
|
+
hostUnavailable: 'Die Bank oder hobex ist gerade nicht erreichbar. Es wurde kein Geld bewegt – bitte später erneut versuchen oder eine andere Zahlungsart verwenden.',
|
|
84
84
|
invalidTransaction: 'Das Terminal kennt die ursprüngliche Zahlung nicht. Es wurde kein Geld bewegt.',
|
|
85
85
|
refundPassword: 'Das Passwort für die Gutschrift war falsch oder wurde nicht eingegeben. Es wurde nichts ausgezahlt.',
|
|
86
|
-
refundDisabled: 'Gutschriften sind an diesem Terminal abgeschaltet. Es wurde nichts ausgezahlt
|
|
86
|
+
refundDisabled: 'Gutschriften sind an diesem Terminal abgeschaltet. Es wurde nichts ausgezahlt – bitte hobex kontaktieren.',
|
|
87
87
|
refundRejected: 'Die Gutschrift wurde abgewiesen (Betrag zu hoch, bereits erstattet oder zu viele Versuche). Es wurde nichts ausgezahlt.',
|
|
88
|
-
hostTimeoutReversed: 'hobex hat nicht rechtzeitig geantwortet, das Terminal hat den Vorgang selbst storniert. Es wird kein Geld bewegt
|
|
89
|
-
reversedByHost: 'Die Zahlung wurde wegen einer Störung automatisch storniert. Es wurde kein Geld bewegt
|
|
90
|
-
voidedAfterHostFault: 'hobex hat nicht sauber geantwortet, die Zahlung wurde deshalb sicherheitshalber storniert. Es wurde kein Geld bewegt
|
|
91
|
-
hostFault: 'Die Verbindung zwischen Terminal und hobex ist gestört. Ob die Karte belastet wurde, weiß das Terminal nicht
|
|
92
|
-
hostTimeout: 'hobex hat nicht rechtzeitig geantwortet. Ob die Karte belastet wurde, weiß das Terminal nicht
|
|
93
|
-
internalError: 'Das Terminal meldet einen internen Fehler. Ob die Karte belastet wurde, ist unklar
|
|
88
|
+
hostTimeoutReversed: 'hobex hat nicht rechtzeitig geantwortet, das Terminal hat den Vorgang selbst storniert. Es wird kein Geld bewegt – bitte erneut versuchen.',
|
|
89
|
+
reversedByHost: 'Die Zahlung wurde wegen einer Störung automatisch storniert. Es wurde kein Geld bewegt – bitte erneut versuchen.',
|
|
90
|
+
voidedAfterHostFault: 'hobex hat nicht sauber geantwortet, die Zahlung wurde deshalb sicherheitshalber storniert. Es wurde kein Geld bewegt – bitte erneut versuchen.',
|
|
91
|
+
hostFault: 'Die Verbindung zwischen Terminal und hobex ist gestört. Ob die Karte belastet wurde, weiß das Terminal nicht – bitte nicht erneut kassieren, bevor es geklärt ist.',
|
|
92
|
+
hostTimeout: 'hobex hat nicht rechtzeitig geantwortet. Ob die Karte belastet wurde, weiß das Terminal nicht – bitte nicht erneut kassieren, bevor es geklärt ist.',
|
|
93
|
+
internalError: 'Das Terminal meldet einen internen Fehler. Ob die Karte belastet wurde, ist unklar – bitte nicht erneut kassieren, bevor es geklärt ist.',
|
|
94
94
|
canceled: 'Die Zahlung ist aufgehoben.',
|
|
95
|
-
cancelDenied: 'Die Zahlung lässt sich nicht mehr aufheben und bleibt belastet
|
|
95
|
+
cancelDenied: 'Die Zahlung lässt sich nicht mehr aufheben und bleibt belastet – bitte stattdessen eine Gutschrift ausführen.',
|
|
96
96
|
originalDeclined: 'Die ursprüngliche Zahlung war abgelehnt; es gibt nichts aufzuheben.',
|
|
97
97
|
notAbortable: 'Der Vorgang ist bereits abgeschlossen und lässt sich nicht mehr abbrechen.',
|
|
98
98
|
noStatement: 'Das Terminal hat zu diesem Vorgang keine Auskunft.',
|
|
@@ -14,8 +14,8 @@ export { createRechnungApi, type RechnungApi, type RechnungApiOptions } from './
|
|
|
14
14
|
export { rechnungKeyAuth, type RechnungKeyAuthOptions } from './auth.js';
|
|
15
15
|
export { istRechnungFehler, rechnungFehlerCode, rechnungFeldFehler, type RechnungFeldFehler, } from './fehler.js';
|
|
16
16
|
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, previewInvoice, recordInvoicePayment, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
-
export type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, EInvoiceStatus, Invoice, InvoiceDetail, InvoiceItem, InvoiceItemInput, InvoiceListQuery, InvoicePage, InvoiceRecipient, InvoiceSetupGap, InvoiceSetupStatus, InvoiceTotals, InvoiceNotice, InvoicePayment, InvoicePreview, InvoiceRateTotals, IssueInvoiceRequest, IssueResult, PaymentInput, PreviewResult, RecordPaymentRequest, RecordPaymentResult, } from './typen.js';
|
|
17
|
+
export type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteItemInput, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, EInvoiceStatus, Invoice, InvoiceDetail, InvoiceItem, InvoiceItemInput, InvoiceListQuery, InvoicePage, InvoiceRecipient, InvoiceSetupGap, InvoiceSetupStatus, InvoiceTotals, InvoiceNotice, InvoicePayment, InvoicePreview, InvoiceRateTotals, IssueInvoiceRequest, IssueResult, PaymentInput, PreviewResult, RecordPaymentRequest, RecordPaymentResult, } from './typen.js';
|
|
18
18
|
export { RECHNUNG_TEXTE, rechnungText, type RechnungTextSchluessel } from './texte.js';
|
|
19
19
|
export { rechnungSummen, STEUERFREIE_FAELLE, type SummenPosition } from './summen.js';
|
|
20
20
|
export { anteiligerPreis, BETRAG_GRENZE_CENTS, positionAusEuro, preisText, RechenFehler, rechnungRechnen, rund, satzSchluessel, satzText, type RechenErgebnis, type RechenFehlerCode, type RechenOptionen, type RechenPosition, type SatzSumme, type Umwandlung, type UmwandlungsGrund, type ZeilenBetrag, } from './rechnen.js';
|
|
21
|
-
export { RECHNUNG_VERTRAG_VERSION, RECHNUNG_AUFRUFE, INVOICE_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, RECHNUNG_EINHEITEN_CODES, INVOICE_SETUP_REQUIREMENTS, KUNDE_FELDER, POSITION_FELDER, POSITION_PREIS_GENAU_EINS, RECHNUNG_ANFRAGEN, RECHNUNG_GENAU_EINS, RECHNUNG_MINDESTENS_EINS, type RechnungAufruf, type InvoiceErrorCode, type CreditNoteReason, type TaxScheme, type PriceMode, type VatRatePercent, type CustomerType, type InvoiceListStatus, type DocType, type EInvoiceFormat, type InvoiceLanguage, type InvoicePaymentMethod, type ItemKind, type ReverseChargeReason, type InvoiceNoticeCode, type InvoiceUnit, type InvoiceSetupRequirement, type Format, type Feld, } from './vertrag.js';
|
|
21
|
+
export { RECHNUNG_VERTRAG_VERSION, RECHNUNG_AUFRUFE, INVOICE_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, RECHNUNG_EINHEITEN_CODES, INVOICE_SETUP_REQUIREMENTS, KUNDE_FELDER, POSITION_FELDER, GUTSCHRIFT_POSITION_FELDER, RETURN_DISPOSITIONS, POSITION_PREIS_GENAU_EINS, RECHNUNG_ANFRAGEN, RECHNUNG_GENAU_EINS, RECHNUNG_MINDESTENS_EINS, type RechnungAufruf, type InvoiceErrorCode, type CreditNoteReason, type TaxScheme, type PriceMode, type VatRatePercent, type CustomerType, type InvoiceListStatus, type DocType, type EInvoiceFormat, type InvoiceLanguage, type InvoicePaymentMethod, type ItemKind, type ReverseChargeReason, type InvoiceNoticeCode, type InvoiceUnit, type ReturnDisposition, type InvoiceSetupRequirement, type Format, type Feld, } from './vertrag.js';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.REVERSE_CHARGE_REASONS = exports.ITEM_KINDS = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_ERROR_CODES = exports.RECHNUNG_AUFRUFE = exports.RECHNUNG_VERTRAG_VERSION = exports.satzText = exports.satzSchluessel = exports.rund = exports.rechnungRechnen = exports.RechenFehler = exports.preisText = exports.positionAusEuro = exports.BETRAG_GRENZE_CENTS = exports.anteiligerPreis = exports.STEUERFREIE_FAELLE = exports.rechnungSummen = exports.rechnungText = exports.RECHNUNG_TEXTE = exports.updateCustomer = exports.searchCustomers = exports.recordInvoicePayment = exports.previewInvoice = exports.listInvoices = exports.listBrands = exports.issueInvoice = exports.getInvoiceXml = exports.getInvoiceSetupStatus = exports.getInvoicePdf = exports.getInvoice = exports.getCustomer = exports.createCustomer = exports.createCreditNote = exports.cancelInvoice = exports.rechnungFeldFehler = exports.rechnungFehlerCode = exports.istRechnungFehler = exports.rechnungKeyAuth = exports.createRechnungApi = void 0;
|
|
16
|
-
exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.POSITION_PREIS_GENAU_EINS = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = void 0;
|
|
16
|
+
exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.POSITION_PREIS_GENAU_EINS = exports.RETURN_DISPOSITIONS = exports.GUTSCHRIFT_POSITION_FELDER = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = void 0;
|
|
17
17
|
var api_js_1 = require("./api.js");
|
|
18
18
|
Object.defineProperty(exports, "createRechnungApi", { enumerable: true, get: function () { return api_js_1.createRechnungApi; } });
|
|
19
19
|
var auth_js_1 = require("./auth.js");
|
|
@@ -76,6 +76,8 @@ Object.defineProperty(exports, "RECHNUNG_EINHEITEN_CODES", { enumerable: true, g
|
|
|
76
76
|
Object.defineProperty(exports, "INVOICE_SETUP_REQUIREMENTS", { enumerable: true, get: function () { return vertrag_js_1.INVOICE_SETUP_REQUIREMENTS; } });
|
|
77
77
|
Object.defineProperty(exports, "KUNDE_FELDER", { enumerable: true, get: function () { return vertrag_js_1.KUNDE_FELDER; } });
|
|
78
78
|
Object.defineProperty(exports, "POSITION_FELDER", { enumerable: true, get: function () { return vertrag_js_1.POSITION_FELDER; } });
|
|
79
|
+
Object.defineProperty(exports, "GUTSCHRIFT_POSITION_FELDER", { enumerable: true, get: function () { return vertrag_js_1.GUTSCHRIFT_POSITION_FELDER; } });
|
|
80
|
+
Object.defineProperty(exports, "RETURN_DISPOSITIONS", { enumerable: true, get: function () { return vertrag_js_1.RETURN_DISPOSITIONS; } });
|
|
79
81
|
Object.defineProperty(exports, "POSITION_PREIS_GENAU_EINS", { enumerable: true, get: function () { return vertrag_js_1.POSITION_PREIS_GENAU_EINS; } });
|
|
80
82
|
Object.defineProperty(exports, "RECHNUNG_ANFRAGEN", { enumerable: true, get: function () { return vertrag_js_1.RECHNUNG_ANFRAGEN; } });
|
|
81
83
|
Object.defineProperty(exports, "RECHNUNG_GENAU_EINS", { enumerable: true, get: function () { return vertrag_js_1.RECHNUNG_GENAU_EINS; } });
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Betraege sind ueberall ganze Cent. Datumsangaben sind `YYYY-MM-DD` nach
|
|
6
6
|
* Wiener Kalender.
|
|
7
7
|
*/
|
|
8
|
-
import type { CreditNoteReason, CustomerType, DocType, InvoiceLanguage, InvoiceNoticeCode, ItemKind, ReverseChargeReason, InvoicePaymentMethod, InvoiceUnit, InvoiceSetupRequirement, InvoiceListStatus, PriceMode, TaxScheme, VatRatePercent } from './vertrag.js';
|
|
8
|
+
import type { CreditNoteReason, CustomerType, DocType, InvoiceLanguage, InvoiceNoticeCode, ItemKind, ReverseChargeReason, InvoicePaymentMethod, InvoiceUnit, ReturnDisposition, InvoiceSetupRequirement, InvoiceListStatus, PriceMode, TaxScheme, VatRatePercent } from './vertrag.js';
|
|
9
9
|
export interface CustomerInput {
|
|
10
10
|
type: CustomerType;
|
|
11
11
|
name: string;
|
|
@@ -86,6 +86,13 @@ export interface InvoiceItemInput {
|
|
|
86
86
|
vatRate: VatRatePercent;
|
|
87
87
|
/** Zeilenrabatt in Prozent, hoechstens zwei Nachkommastellen. */
|
|
88
88
|
discountPct?: number;
|
|
89
|
+
/** Artikel aus dem Artikelstamm; bestandsgefuehrt bucht das Ausstellen ihn vom Lager ab. */
|
|
90
|
+
articleId?: string;
|
|
91
|
+
}
|
|
92
|
+
/** Eine Gutschriftsposition: wie eine Rechnungsposition, dazu die Rueckgabe-Wahl. */
|
|
93
|
+
export interface CreditNoteItemInput extends InvoiceItemInput {
|
|
94
|
+
/** Wohin die Ware dieser Position geht; fehlt = Vorgabe des Aufrufs bzw. `restock`. */
|
|
95
|
+
returnDisposition?: ReturnDisposition;
|
|
89
96
|
}
|
|
90
97
|
export interface IssueInvoiceRequest {
|
|
91
98
|
/** Pflicht: dieselbe Anfrage mit demselben Schluessel erzeugt nie eine zweite Rechnung. */
|
|
@@ -115,6 +122,8 @@ export interface IssueInvoiceRequest {
|
|
|
115
122
|
language?: InvoiceLanguage;
|
|
116
123
|
/** Marke (Kennung aus `listBrands`); sonst die Standardmarke. Unbekannt = `brand_not_found`. */
|
|
117
124
|
brandId?: string;
|
|
125
|
+
/** Lager-Standort fuer bestandsgefuehrte Positionen; sonst der Standard-Standort. */
|
|
126
|
+
stockLocationId?: string;
|
|
118
127
|
/**
|
|
119
128
|
* Schon bezahlt (Shop kassiert online, Rechnung folgt). Die Zahlung entsteht
|
|
120
129
|
* in derselben Transaktion wie das Festschreiben: das PDF traegt dann keine
|
|
@@ -175,9 +184,11 @@ export interface CancelInvoiceRequest {
|
|
|
175
184
|
invoiceId: string;
|
|
176
185
|
reason: CreditNoteReason;
|
|
177
186
|
note?: string;
|
|
187
|
+
/** Wohin die Ware bestandsgefuehrter Positionen geht; fehlt = `restock`. */
|
|
188
|
+
returnDisposition?: ReturnDisposition;
|
|
178
189
|
}
|
|
179
190
|
export interface CreditNoteRequest extends CancelInvoiceRequest {
|
|
180
|
-
items:
|
|
191
|
+
items: CreditNoteItemInput[];
|
|
181
192
|
}
|
|
182
193
|
/**
|
|
183
194
|
* Summen einer Rechnung in Cent, **immer positiv** — auch bei einer Gutschrift
|
|
@@ -228,6 +228,9 @@ export type Feld = {
|
|
|
228
228
|
schluesselMuster: string;
|
|
229
229
|
wertMax: number;
|
|
230
230
|
};
|
|
231
|
+
/** Rueckgabe-Wahl einer Gutschrift (Lager-Kern Stufe 2), wie im Backend RUECKGABE_API. */
|
|
232
|
+
export declare const RETURN_DISPOSITIONS: readonly ["restock", "defective", "disposed"];
|
|
233
|
+
export type ReturnDisposition = (typeof RETURN_DISPOSITIONS)[number];
|
|
231
234
|
/** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
|
|
232
235
|
export declare const KUNDE_FELDER: Readonly<Record<string, Feld>>;
|
|
233
236
|
/**
|
|
@@ -243,6 +246,8 @@ export declare const KUNDE_FELDER: Readonly<Record<string, Feld>>;
|
|
|
243
246
|
export declare const POSITION_FELDER: Readonly<Record<string, Feld>>;
|
|
244
247
|
/** Genau einer der beiden Preise je Position (§ 9.1). */
|
|
245
248
|
export declare const POSITION_PREIS_GENAU_EINS: readonly (readonly string[])[];
|
|
249
|
+
/** Gutschriftsposition: Rechnungsposition plus Rueckgabe-Wahl (an der Rechnung weist der Server sie ab). */
|
|
250
|
+
export declare const GUTSCHRIFT_POSITION_FELDER: Readonly<Record<string, Feld>>;
|
|
246
251
|
/**
|
|
247
252
|
* Eine Zahlung zu einer Rechnung. Ohne `amountCents` gilt der volle
|
|
248
253
|
* Bruttobetrag, ohne `paidAt` der heutige Wiener Tag. `reference` ist die
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* Nummer, Summen — ist bewusst **nicht** setzbar.
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.PAYMENT_FELDER = exports.POSITION_PREIS_GENAU_EINS = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.ITEM_KINDS = exports.REVERSE_CHARGE_REASONS = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_ERROR_CODES = exports.RECHNUNG_AUFRUFE = exports.RECHNUNG_VERTRAG_VERSION = void 0;
|
|
22
|
+
exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.PAYMENT_FELDER = exports.GUTSCHRIFT_POSITION_FELDER = exports.POSITION_PREIS_GENAU_EINS = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.RETURN_DISPOSITIONS = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.ITEM_KINDS = exports.REVERSE_CHARGE_REASONS = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_ERROR_CODES = exports.RECHNUNG_AUFRUFE = exports.RECHNUNG_VERTRAG_VERSION = void 0;
|
|
23
23
|
exports.RECHNUNG_VERTRAG_VERSION = 1;
|
|
24
24
|
exports.RECHNUNG_AUFRUFE = [
|
|
25
25
|
'createCustomer',
|
|
@@ -309,6 +309,9 @@ exports.INVOICE_SETUP_REQUIREMENTS = [
|
|
|
309
309
|
const text = (max, pflicht = false, extra = {}) => ({ typ: 'string', pflicht, max, ...(pflicht && extra.min === undefined ? { min: 1 } : {}), ...extra });
|
|
310
310
|
const idempotencyKey = (pflicht) => ({ typ: 'string', pflicht, min: 1, max: 120 });
|
|
311
311
|
const id = { typ: 'string', pflicht: false, min: 1, max: 128 };
|
|
312
|
+
/** Rueckgabe-Wahl einer Gutschrift (Lager-Kern Stufe 2), wie im Backend RUECKGABE_API. */
|
|
313
|
+
exports.RETURN_DISPOSITIONS = ['restock', 'defective', 'disposed'];
|
|
314
|
+
const rueckgabe = { typ: 'enum', pflicht: false, werte: exports.RETURN_DISPOSITIONS };
|
|
312
315
|
const idPflicht = { typ: 'string', pflicht: true, min: 1, max: 128 };
|
|
313
316
|
const datum = (pflicht = false) => ({ typ: 'string', pflicht, min: 10, max: 10, format: 'date' });
|
|
314
317
|
const limit = { typ: 'integer', pflicht: false, min: 1, max: 100 };
|
|
@@ -359,6 +362,13 @@ exports.POSITION_FELDER = Object.freeze({
|
|
|
359
362
|
unitPriceMicros: { typ: 'integer', pflicht: false, min: 0, max: 1_000_000_000_000 },
|
|
360
363
|
vatRate: { typ: 'enum', pflicht: true, werte: exports.VAT_RATES },
|
|
361
364
|
discountPct: { typ: 'number', pflicht: false, min: 0, max: 100, nachkomma: 2 },
|
|
365
|
+
/**
|
|
366
|
+
* Artikel aus dem Artikelstamm (Lager-Kern Stufe 2): ist er bestandsgefuehrt
|
|
367
|
+
* und das Modul Lager aktiv, bucht das Ausstellen ihn ab -- danach, die
|
|
368
|
+
* Rechnung scheitert nie am Lager. Kein „/“, nicht „.“, „..“ oder „__…__“
|
|
369
|
+
* (prueft der Server, `validation`).
|
|
370
|
+
*/
|
|
371
|
+
articleId: id,
|
|
362
372
|
});
|
|
363
373
|
/** Genau einer der beiden Preise je Position (§ 9.1). */
|
|
364
374
|
exports.POSITION_PREIS_GENAU_EINS = Object.freeze([
|
|
@@ -374,6 +384,17 @@ const positionen = {
|
|
|
374
384
|
typ: 'object', pflicht: true, felder: exports.POSITION_FELDER, genauEins: exports.POSITION_PREIS_GENAU_EINS,
|
|
375
385
|
},
|
|
376
386
|
};
|
|
387
|
+
/** Gutschriftsposition: Rechnungsposition plus Rueckgabe-Wahl (an der Rechnung weist der Server sie ab). */
|
|
388
|
+
exports.GUTSCHRIFT_POSITION_FELDER = Object.freeze({ ...exports.POSITION_FELDER, returnDisposition: rueckgabe });
|
|
389
|
+
const gutschriftPositionen = {
|
|
390
|
+
typ: 'list',
|
|
391
|
+
pflicht: true,
|
|
392
|
+
min: 1,
|
|
393
|
+
max: 500,
|
|
394
|
+
eintrag: {
|
|
395
|
+
typ: 'object', pflicht: true, felder: exports.GUTSCHRIFT_POSITION_FELDER, genauEins: exports.POSITION_PREIS_GENAU_EINS,
|
|
396
|
+
},
|
|
397
|
+
};
|
|
377
398
|
/**
|
|
378
399
|
* Eine Zahlung zu einer Rechnung. Ohne `amountCents` gilt der volle
|
|
379
400
|
* Bruttobetrag, ohne `paidAt` der heutige Wiener Tag. `reference` ist die
|
|
@@ -441,6 +462,8 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
441
462
|
language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
|
|
442
463
|
/** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
|
|
443
464
|
brandId: id,
|
|
465
|
+
/** Lagerstandort (Kennung), von dem bestandsgefuehrte Positionen abbuchen. */
|
|
466
|
+
stockLocationId: id,
|
|
444
467
|
/**
|
|
445
468
|
* Schon bezahlt: die Zahlung entsteht in **derselben** Transaktion wie das
|
|
446
469
|
* Festschreiben. Sonst gaebe es einen Moment, in dem die Rechnung offen ist
|
|
@@ -459,13 +482,15 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
459
482
|
invoiceId: idPflicht,
|
|
460
483
|
reason: { typ: 'enum', pflicht: true, werte: exports.CREDIT_NOTE_REASONS },
|
|
461
484
|
note: text(2000),
|
|
485
|
+
returnDisposition: rueckgabe,
|
|
462
486
|
},
|
|
463
487
|
createCreditNote: {
|
|
464
488
|
idempotencyKey: idempotencyKey(true),
|
|
465
489
|
invoiceId: idPflicht,
|
|
466
490
|
reason: { typ: 'enum', pflicht: true, werte: exports.CREDIT_NOTE_REASONS },
|
|
467
491
|
note: text(2000),
|
|
468
|
-
|
|
492
|
+
returnDisposition: rueckgabe,
|
|
493
|
+
items: gutschriftPositionen,
|
|
469
494
|
},
|
|
470
495
|
getInvoice: {
|
|
471
496
|
invoiceId: id,
|
|
@@ -10,4 +10,4 @@ export { verteileRabatt } from '../receipt/discount.js';
|
|
|
10
10
|
export { cancelScopeOf, receiptsScopeOf, type RegisterScope, type RegisterUserPerms } from '../register/pairing.js';
|
|
11
11
|
export { type NetzDrucker, type DruckJob, type DruckJobStatus, type CreatePrintJobOptions, listMyPrinters, createPrintJob, getPrintJob } from './drucker.js';
|
|
12
12
|
export { listMyTipRecipients } from './trinkgeld.js';
|
|
13
|
-
export { MELDUNGEN, FEHLERREGELN, meldung, meldungGiltFuer, BELEG_MAIL_FEHLER, belegMailFehler, type Meldung, type MeldungsSchluessel, type Fehlerart, type Seite, type BelegMailFehlercode, } from './texte.js';
|
|
13
|
+
export { MELDUNGEN, FEHLERREGELN, meldung, meldungGiltFuer, BELEG_MAIL_FEHLER, belegMailFehler, STORNO_ZAHLUNG_FEHLER, stornoZahlungFehler, BESCHRIFTUNGEN, beschriftung, type Meldung, type MeldungsSchluessel, type Fehlerart, type Seite, type BelegMailFehlercode, type StornoZahlungFehlercode, type BeschriftungsSchluessel, } from './texte.js';
|
package/dist/esm/kasse/index.js
CHANGED
|
@@ -15,4 +15,4 @@ export { cancelScopeOf, receiptsScopeOf } from '../register/pairing.js';
|
|
|
15
15
|
export { listMyPrinters, createPrintJob, getPrintJob } from './drucker.js';
|
|
16
16
|
export { listMyTipRecipients } from './trinkgeld.js';
|
|
17
17
|
// Was die Kasse selbst sagt — ein Katalog fuer Browser-Kasse und App.
|
|
18
|
-
export { MELDUNGEN, FEHLERREGELN, meldung, meldungGiltFuer, BELEG_MAIL_FEHLER, belegMailFehler, } from './texte.js';
|
|
18
|
+
export { MELDUNGEN, FEHLERREGELN, meldung, meldungGiltFuer, BELEG_MAIL_FEHLER, belegMailFehler, STORNO_ZAHLUNG_FEHLER, stornoZahlungFehler, BESCHRIFTUNGEN, beschriftung, } from './texte.js';
|
|
@@ -156,6 +156,8 @@ export interface KasseSettingsBetrieb {
|
|
|
156
156
|
rueckgeld: boolean;
|
|
157
157
|
schnellbar: boolean;
|
|
158
158
|
kassierenModus: KasseKassierenModus;
|
|
159
|
+
/** Getrennt zahlen: dritter Knopf neben Bar und Karte, ein Beleg mit mehreren Zahlungen. */
|
|
160
|
+
zahlGetrennt: boolean;
|
|
159
161
|
/** Trinkgeld-Chips in Prozent (eine Nachkommastelle, max 5, eindeutig, Reihenfolge des Chefs). */
|
|
160
162
|
tgChips: number[];
|
|
161
163
|
/** Rabatt-Chips in Prozent — dieselben Regeln wie tgChips, vom Chef einstellbar. */
|
|
@@ -168,10 +170,10 @@ export interface KasseSettingsBetrieb {
|
|
|
168
170
|
hinweise: boolean;
|
|
169
171
|
}
|
|
170
172
|
/** Aktionen der Kasse, die eine Taste bekommen koennen. */
|
|
171
|
-
export declare const KASSE_TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren"];
|
|
173
|
+
export declare const KASSE_TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren", "getrennt"];
|
|
172
174
|
export type KasseTastenAktion = typeof KASSE_TASTEN_AKTIONEN[number];
|
|
173
175
|
/** Kurzer Name, damit alle Enum-Listen gleich heissen; der alte bleibt gueltig. */
|
|
174
|
-
export declare const TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren"];
|
|
176
|
+
export declare const TASTEN_AKTIONEN: readonly ["kassieren", "abschliessen", "abbrechen", "frei", "bar", "karte", "passend", "belege", "letzteZurueck", "einstellungen", "abmelden", "trinkgeld", "vollbild", "gegebenLeeren", "korbLeeren", "getrennt"];
|
|
175
177
|
/** Tastenkarte: Aktion -> Tasten (`Mod+F`, `Enter`, `Escape`, `F5` ...; `Mod` = ⌘ auf dem Mac, Strg sonst). */
|
|
176
178
|
export type KasseTastenkarte = Record<KasseTastenAktion, string[]>;
|
|
177
179
|
export declare const KASSE_TASTEN_STANDARD: Readonly<KasseTastenkarte>;
|
|
@@ -88,7 +88,7 @@ export const WZ_SKALA = ['S', 'M', 'L', 'XL'];
|
|
|
88
88
|
/** Wie lange die Fertig-Seite stehen bleibt, in Sekunden; 0 = bis zum Tippen. */
|
|
89
89
|
export const FERTIG_SEKUNDEN = [0, 3, 5, 10, 15, 30, 60];
|
|
90
90
|
/** Aktionen der Kasse, die eine Taste bekommen koennen. */
|
|
91
|
-
export const KASSE_TASTEN_AKTIONEN = ['kassieren', 'abschliessen', 'abbrechen', 'frei', 'bar', 'karte', 'passend', 'belege', 'letzteZurueck', 'einstellungen', 'abmelden', 'trinkgeld', 'vollbild', 'gegebenLeeren', 'korbLeeren'];
|
|
91
|
+
export const KASSE_TASTEN_AKTIONEN = ['kassieren', 'abschliessen', 'abbrechen', 'frei', 'bar', 'karte', 'passend', 'belege', 'letzteZurueck', 'einstellungen', 'abmelden', 'trinkgeld', 'vollbild', 'gegebenLeeren', 'korbLeeren', 'getrennt'];
|
|
92
92
|
/** Kurzer Name, damit alle Enum-Listen gleich heissen; der alte bleibt gueltig. */
|
|
93
93
|
export const TASTEN_AKTIONEN = KASSE_TASTEN_AKTIONEN;
|
|
94
94
|
export const KASSE_TASTEN_STANDARD = Object.freeze({
|
|
@@ -110,6 +110,9 @@ export const KASSE_TASTEN_STANDARD = Object.freeze({
|
|
|
110
110
|
// verschiedenen Momenten (Korb vor dem Kassieren, Gegeben-Feld darin) —
|
|
111
111
|
// der Verteiler laesst die nicht zustaendige Aktion durchfallen.
|
|
112
112
|
korbLeeren: ['Mod+C'],
|
|
113
|
+
// Bewusst ohne Vorgabe: jede freie Mod-Taste ist in irgendeinem Browser
|
|
114
|
+
// belegt oder am Geraet unerprobt. Der Chef vergibt sie, wenn er sie braucht.
|
|
115
|
+
getrennt: [],
|
|
113
116
|
});
|
|
114
117
|
export const KASSE_BETRIEB_STANDARD = Object.freeze({
|
|
115
118
|
// Das Petrol der Marke: die Aktionsfarbe des Design-Systems (Rolle `brand`).
|
|
@@ -124,7 +127,7 @@ export const KASSE_BETRIEB_STANDARD = Object.freeze({
|
|
|
124
127
|
menge: 'x', notiz: false, suche: false, rabatt: 'aus',
|
|
125
128
|
zahlBar: true, zahlKarte: false, kartenanbieter: 'keiner', trinkgeld: false, tgModus: 'beides',
|
|
126
129
|
tgStufen: { 5: true, 10: true, 15: false, 20: false }, tgChips: [5, 10], tgSplit: true, rueckgeld: true,
|
|
127
|
-
schnellbar: false, kassierenModus: '
|
|
130
|
+
schnellbar: false, kassierenModus: 'panel', zahlGetrennt: false,
|
|
128
131
|
// 'fragen' = Fertig-Seite bietet QR und Bon an — sicherster Standard.
|
|
129
132
|
logoBild: '', wzSeite: 'mitte', wzPos: 50, wzPosV: 50, wzStaerke: 6, logoSkala: 'M', wzSkala: 'M',
|
|
130
133
|
glas: true, hinweise: true,
|