@kreiseck/kasseneck-api 0.16.0 → 0.17.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 +27 -0
- package/README.md +35 -0
- package/dist/cjs/client/aufrufe.d.ts +1 -1
- package/dist/cjs/client/aufrufe.js +1 -0
- package/dist/cjs/rechnung/api.d.ts +8 -3
- package/dist/cjs/rechnung/api.js +2 -1
- package/dist/cjs/rechnung/endpunkte.d.ts +13 -4
- package/dist/cjs/rechnung/endpunkte.js +19 -3
- package/dist/cjs/rechnung/index.d.ts +4 -3
- package/dist/cjs/rechnung/index.js +8 -1
- package/dist/cjs/rechnung/texte.d.ts +202 -0
- package/dist/cjs/rechnung/texte.js +377 -0
- package/dist/cjs/rechnung/typen.d.ts +23 -2
- package/dist/cjs/rechnung/vertrag.d.ts +25 -2
- package/dist/cjs/rechnung/vertrag.js +139 -2
- package/dist/esm/client/aufrufe.d.ts +1 -1
- package/dist/esm/client/aufrufe.js +1 -0
- package/dist/esm/rechnung/api.d.ts +8 -3
- package/dist/esm/rechnung/api.js +3 -2
- package/dist/esm/rechnung/endpunkte.d.ts +13 -4
- package/dist/esm/rechnung/endpunkte.js +18 -3
- package/dist/esm/rechnung/index.d.ts +4 -3
- package/dist/esm/rechnung/index.js +3 -2
- package/dist/esm/rechnung/texte.d.ts +202 -0
- package/dist/esm/rechnung/texte.js +373 -0
- package/dist/esm/rechnung/typen.d.ts +23 -2
- package/dist/esm/rechnung/vertrag.d.ts +25 -2
- package/dist/esm/rechnung/vertrag.js +138 -1
- package/fixtures/hobex-hps-codes.json +1 -1
- package/fixtures/kasse-texte.json +1 -1
- package/fixtures/oberflaeche.json +62 -3
- package/fixtures/rechnung-api-beispiele/brands-ok.json +8 -0
- package/fixtures/rechnung-api-beispiele/issue-englisch.json +30 -0
- package/fixtures/rechnung-api-beispiele/issue-fehler-einheit.json +26 -0
- package/fixtures/rechnung-api-beispiele/issue-fehler-sprache.json +26 -0
- package/fixtures/rechnung-api-beispiele/issue-netto-20.json +1 -1
- package/fixtures/rechnung-api.schema.json +142 -6
- package/fixtures/rechnung-texte.json +424 -0
- package/package.json +2 -1
|
@@ -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.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = 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 = void 0;
|
|
22
|
+
exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = exports.INVOICE_UNITS = 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 = void 0;
|
|
23
23
|
exports.RECHNUNG_VERTRAG_VERSION = 1;
|
|
24
24
|
exports.RECHNUNG_AUFRUFE = [
|
|
25
25
|
'createCustomer',
|
|
@@ -34,6 +34,7 @@ exports.RECHNUNG_AUFRUFE = [
|
|
|
34
34
|
'getInvoicePdf',
|
|
35
35
|
'getInvoiceXml',
|
|
36
36
|
'getInvoiceSetupStatus',
|
|
37
|
+
'listBrands',
|
|
37
38
|
];
|
|
38
39
|
/**
|
|
39
40
|
* Stabile Fehlercodes. Das Fremdsystem verzweigt am Code, der Text darf sich
|
|
@@ -57,6 +58,8 @@ exports.INVOICE_ERROR_CODES = [
|
|
|
57
58
|
'einvoice_incomplete',
|
|
58
59
|
'invoice_api_not_enabled',
|
|
59
60
|
'invoice_setup_incomplete',
|
|
61
|
+
'language_not_allowed',
|
|
62
|
+
'brand_not_found',
|
|
60
63
|
];
|
|
61
64
|
/** Gruende einer Gutschrift. Der Server druckt den deutschen Anzeigetext. */
|
|
62
65
|
exports.CREDIT_NOTE_REASONS = [
|
|
@@ -73,6 +76,130 @@ exports.CUSTOMER_TYPES = ['private', 'company'];
|
|
|
73
76
|
exports.INVOICE_LIST_STATUS = ['final', 'paid', 'cancelled', 'open', 'overdue'];
|
|
74
77
|
exports.DOC_TYPES = ['RE', 'GU'];
|
|
75
78
|
exports.EINVOICE_FORMATS = ['ubl', 'cii'];
|
|
79
|
+
/**
|
|
80
|
+
* Sprachen einer Rechnung. Die Sprache wird beim Festschreiben eingefroren;
|
|
81
|
+
* fehlt sie an Kunde oder Rechnung, gilt `de`. Behoerden bekommen immer `de`
|
|
82
|
+
* (`language_not_allowed`). Datum und Betraege bleiben in jeder Sprache
|
|
83
|
+
* oesterreichisch formatiert.
|
|
84
|
+
*/
|
|
85
|
+
exports.INVOICE_LANGUAGES = ['de', 'en'];
|
|
86
|
+
/**
|
|
87
|
+
* Einheiten einer Position. Die API nimmt nur diese Schluessel an; gedruckt
|
|
88
|
+
* wird das Kuerzel in der Sprache der Rechnung (`RECHNUNG_TEXTE`,
|
|
89
|
+
* `einheit.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
|
|
90
|
+
* (`RECHNUNG_EINHEITEN_CODES`). Ohne Angabe gilt `piece`.
|
|
91
|
+
*/
|
|
92
|
+
exports.INVOICE_UNITS = [
|
|
93
|
+
'piece',
|
|
94
|
+
'pair',
|
|
95
|
+
'set',
|
|
96
|
+
'dozen',
|
|
97
|
+
'second',
|
|
98
|
+
'minute',
|
|
99
|
+
'hour',
|
|
100
|
+
'day',
|
|
101
|
+
'night',
|
|
102
|
+
'week',
|
|
103
|
+
'month',
|
|
104
|
+
'quarter',
|
|
105
|
+
'half_year',
|
|
106
|
+
'year',
|
|
107
|
+
'milligram',
|
|
108
|
+
'gram',
|
|
109
|
+
'kilogram',
|
|
110
|
+
'tonne',
|
|
111
|
+
'millimetre',
|
|
112
|
+
'centimetre',
|
|
113
|
+
'metre',
|
|
114
|
+
'running_metre',
|
|
115
|
+
'kilometre',
|
|
116
|
+
'square_metre',
|
|
117
|
+
'hectare',
|
|
118
|
+
'millilitre',
|
|
119
|
+
'litre',
|
|
120
|
+
'cubic_metre',
|
|
121
|
+
'kilowatt_hour',
|
|
122
|
+
'megawatt_hour',
|
|
123
|
+
'gigabyte',
|
|
124
|
+
'terabyte',
|
|
125
|
+
'flat_rate',
|
|
126
|
+
'person',
|
|
127
|
+
'licence',
|
|
128
|
+
'user',
|
|
129
|
+
'device',
|
|
130
|
+
'session',
|
|
131
|
+
'trip',
|
|
132
|
+
'page',
|
|
133
|
+
'sheet',
|
|
134
|
+
'package',
|
|
135
|
+
'box',
|
|
136
|
+
'carton',
|
|
137
|
+
'bottle',
|
|
138
|
+
'can',
|
|
139
|
+
'roll',
|
|
140
|
+
'bag',
|
|
141
|
+
'pallet',
|
|
142
|
+
];
|
|
143
|
+
/**
|
|
144
|
+
* UN/ECE-Code je Einheit (Recommendation 20, Verpackungen aus Recommendation 21
|
|
145
|
+
* mit `X`). Mehrere Einheiten duerfen denselben Code tragen (Meter und
|
|
146
|
+
* Laufmeter; Lizenz, Benutzer, Geraet als Stueck). Die Validatoren der
|
|
147
|
+
* E-Rechnung pruefen jeden Code im Backend (Beispiel `api-einheiten`).
|
|
148
|
+
*/
|
|
149
|
+
exports.RECHNUNG_EINHEITEN_CODES = Object.freeze({
|
|
150
|
+
piece: 'C62',
|
|
151
|
+
pair: 'PR',
|
|
152
|
+
set: 'SET',
|
|
153
|
+
dozen: 'DZN',
|
|
154
|
+
second: 'SEC',
|
|
155
|
+
minute: 'MIN',
|
|
156
|
+
hour: 'HUR',
|
|
157
|
+
day: 'DAY',
|
|
158
|
+
night: 'C62',
|
|
159
|
+
week: 'WEE',
|
|
160
|
+
month: 'MON',
|
|
161
|
+
quarter: 'QAN',
|
|
162
|
+
half_year: 'SAN',
|
|
163
|
+
year: 'ANN',
|
|
164
|
+
milligram: 'MGM',
|
|
165
|
+
gram: 'GRM',
|
|
166
|
+
kilogram: 'KGM',
|
|
167
|
+
tonne: 'TNE',
|
|
168
|
+
millimetre: 'MMT',
|
|
169
|
+
centimetre: 'CMT',
|
|
170
|
+
metre: 'MTR',
|
|
171
|
+
running_metre: 'MTR',
|
|
172
|
+
kilometre: 'KMT',
|
|
173
|
+
square_metre: 'MTK',
|
|
174
|
+
// Rec 20 fuehrt fuer Hektar HAR, EN 16931 laesst davon nur H18
|
|
175
|
+
// („square hectometre", Synonym hectare) zu.
|
|
176
|
+
hectare: 'H18',
|
|
177
|
+
millilitre: 'MLT',
|
|
178
|
+
litre: 'LTR',
|
|
179
|
+
cubic_metre: 'MTQ',
|
|
180
|
+
kilowatt_hour: 'KWH',
|
|
181
|
+
megawatt_hour: 'MWH',
|
|
182
|
+
gigabyte: 'E34',
|
|
183
|
+
terabyte: 'E35',
|
|
184
|
+
flat_rate: 'LS',
|
|
185
|
+
person: 'IE',
|
|
186
|
+
licence: 'C62',
|
|
187
|
+
user: 'C62',
|
|
188
|
+
device: 'C62',
|
|
189
|
+
session: 'C62',
|
|
190
|
+
trip: 'C62',
|
|
191
|
+
page: 'ZP',
|
|
192
|
+
// Ebenso: ST („sheet") steht nicht in der Liste von EN 16931, LEF („leaf") schon.
|
|
193
|
+
sheet: 'LEF',
|
|
194
|
+
package: 'XPK',
|
|
195
|
+
box: 'XBX',
|
|
196
|
+
carton: 'XCT',
|
|
197
|
+
bottle: 'XBO',
|
|
198
|
+
can: 'XCA',
|
|
199
|
+
roll: 'XRO',
|
|
200
|
+
bag: 'XSA',
|
|
201
|
+
pallet: 'XPX',
|
|
202
|
+
});
|
|
76
203
|
/**
|
|
77
204
|
* Was erfuellt sein muss, bevor ueber die API ausgestellt werden darf — in
|
|
78
205
|
* dieser Reihenfolge meldet `getInvoiceSetupStatus`, was fehlt, und dieselben
|
|
@@ -120,6 +247,8 @@ exports.KUNDE_FELDER = Object.freeze({
|
|
|
120
247
|
isAuthority: { typ: 'boolean', pflicht: false },
|
|
121
248
|
note: text(1000),
|
|
122
249
|
externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
|
|
250
|
+
/** Sprache der Rechnungen an diesen Kunden; fehlt = `de`. */
|
|
251
|
+
language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
|
|
123
252
|
});
|
|
124
253
|
/** Beim Aendern ist jedes Kundenfeld optional. */
|
|
125
254
|
const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.KUNDE_FELDER).map(([name, feld]) => [name, { ...feld, pflicht: false }])));
|
|
@@ -128,7 +257,8 @@ exports.POSITION_FELDER = Object.freeze({
|
|
|
128
257
|
description: text(300, true),
|
|
129
258
|
subtitle: text(1000),
|
|
130
259
|
quantity: { typ: 'number', pflicht: true, min: 0, exklusivMin: true, max: 1_000_000, nachkomma: 3 },
|
|
131
|
-
|
|
260
|
+
/** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
|
|
261
|
+
unit: { typ: 'enum', pflicht: false, werte: exports.INVOICE_UNITS },
|
|
132
262
|
unitPriceCents: { typ: 'integer', pflicht: true, min: 0, max: 100_000_000 },
|
|
133
263
|
vatRate: { typ: 'enum', pflicht: true, werte: exports.VAT_RATES },
|
|
134
264
|
discountPct: { typ: 'number', pflicht: false, min: 0, max: 100, nachkomma: 2 },
|
|
@@ -171,6 +301,10 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
171
301
|
tracking: { typ: 'boolean', pflicht: false },
|
|
172
302
|
items: positionen,
|
|
173
303
|
metadata: { typ: 'map', pflicht: false, maxSchluessel: 20, schluesselMuster: '^[a-zA-Z0-9_]{1,40}$', wertMax: 500 },
|
|
304
|
+
/** Sprache dieser Rechnung; sonst die des Kunden, sonst `de`. */
|
|
305
|
+
language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
|
|
306
|
+
/** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
|
|
307
|
+
brandId: id,
|
|
174
308
|
},
|
|
175
309
|
cancelInvoice: {
|
|
176
310
|
idempotencyKey: idempotencyKey(true),
|
|
@@ -200,12 +334,15 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
|
|
|
200
334
|
},
|
|
201
335
|
getInvoicePdf: {
|
|
202
336
|
invoiceId: idPflicht,
|
|
337
|
+
/** Andere Sprache als die der Rechnung: gekennzeichnete Uebersetzungskopie, keine eigene Rechnung. */
|
|
338
|
+
language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
|
|
203
339
|
},
|
|
204
340
|
getInvoiceXml: {
|
|
205
341
|
invoiceId: idPflicht,
|
|
206
342
|
format: { typ: 'enum', pflicht: false, werte: exports.EINVOICE_FORMATS },
|
|
207
343
|
},
|
|
208
344
|
getInvoiceSetupStatus: {},
|
|
345
|
+
listBrands: {},
|
|
209
346
|
});
|
|
210
347
|
/** Genau eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
|
|
211
348
|
exports.RECHNUNG_GENAU_EINS = Object.freeze({
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* umhuellt, muss ihn weiterhin absetzen koennen.
|
|
14
14
|
*/
|
|
15
15
|
import type { TransportBodyFields } from './transport.js';
|
|
16
|
-
export declare const AUFRUFE: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "requestCustomerSignature", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook"];
|
|
16
|
+
export declare const AUFRUFE: readonly ["activateCashregister", "cancelInvoice", "cancelReceipt", "createCreditNote", "createCustomer", "createCustomerCashregister", "createPartnerCustomer", "checkPartnerCustomerEmail", "createPartnerWebhook", "createPaymentLinkStripe", "createPrintJob", "createReceipt", "deletePartnerWebhook", "downloadDailyReport", "downloadReport", "endRegisterSession", "financeWebService", "generateFullReceiptId", "getCustomer", "getCustomerCredentials", "getCustomerSignatureStatus", "getFirstReceiptDate", "getInvoice", "getInvoicePdf", "getInvoiceSetupStatus", "getInvoiceXml", "getKasseSettings", "getPartnerCustomer", "getPartnerInfo", "getPrintJob", "getReceipt", "hobexPayApi", "hobexRefundApi", "issueInvoice", "listCustomerCashregisters", "listInvoices", "listBrands", "listMyArticleGroups", "listMyArticles", "listMyCashregisters", "listMyPrinters", "listMyReceipts", "listMyTipRecipients", "listPartnerCustomers", "listPartnerWebhookDeliveries", "listPartnerWebhooks", "listRegisterUsersForDevice", "listRegisterSessionsForDevice", "pairRegisterDevice", "registerPinLogin", "registerUserLogin", "renewRegisterSession", "requestCustomerSignature", "searchCustomers", "sendPartnerCustomerFonLink", "sendPartnerWebhookTest", "sendReceiptEmail", "setMyKasseSettings", "setMyRegisterDeviceSettings", "stripeCaptureIntent", "unpairRegisterDevice", "rotatePartnerWebhookSecret", "updateCustomer", "updatePartnerWebhook"];
|
|
17
17
|
export type Aufruf = typeof AUFRUFE[number];
|
|
18
18
|
/** Wie [KasseneckTransport], nur mit bekanntem Aufrufnamen. Nicht exportiert nach aussen. */
|
|
19
19
|
export type InternerTransport = <T = unknown>(functionName: Aufruf, params?: Record<string, unknown>, extraBodyFields?: TransportBodyFields, secretParams?: readonly string[]) => Promise<T>;
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Funktionen (endpunkte.ts) und bleiben einzeln importierbar.
|
|
6
6
|
*/
|
|
7
7
|
import { type FetchLike } from '../client/transport.js';
|
|
8
|
-
import type { EInvoiceFormat } from './vertrag.js';
|
|
9
|
-
import type { CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, InvoiceDetail, InvoiceListQuery, InvoicePage, InvoiceSetupStatus, IssueInvoiceRequest, IssueResult } from './typen.js';
|
|
8
|
+
import type { EInvoiceFormat, InvoiceLanguage } from './vertrag.js';
|
|
9
|
+
import type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, InvoiceDetail, InvoiceListQuery, InvoicePage, InvoiceSetupStatus, IssueInvoiceRequest, IssueResult } from './typen.js';
|
|
10
10
|
export interface RechnungApiOptions {
|
|
11
11
|
/** `api_key` des Kontos (`kr_live_…` / `kr_test_…`). Gehoert auf einen Server. */
|
|
12
12
|
apiKey: string;
|
|
@@ -37,9 +37,14 @@ export interface RechnungApi {
|
|
|
37
37
|
number: string;
|
|
38
38
|
}): Promise<InvoiceDetail>;
|
|
39
39
|
listInvoices(abfrage?: InvoiceListQuery): Promise<InvoicePage>;
|
|
40
|
-
|
|
40
|
+
/** Mit `language` ungleich der Rechnungssprache: gekennzeichnete Uebersetzungskopie. */
|
|
41
|
+
getInvoicePdf(invoiceId: string, optionen?: {
|
|
42
|
+
language?: InvoiceLanguage;
|
|
43
|
+
}): Promise<Uint8Array>;
|
|
41
44
|
getInvoiceXml(invoiceId: string, format?: EInvoiceFormat): Promise<string>;
|
|
42
45
|
/** Darf dieses Konto ausstellen, und was fehlt noch? Laeuft auch ohne Freigabe. */
|
|
43
46
|
getInvoiceSetupStatus(): Promise<InvoiceSetupStatus>;
|
|
47
|
+
/** Die Marken des Kontos; `id` geht als `brandId` in `issueInvoice`. */
|
|
48
|
+
listBrands(): Promise<Brand[]>;
|
|
44
49
|
}
|
|
45
50
|
export declare function createRechnungApi(optionen: RechnungApiOptions): RechnungApi;
|
package/dist/esm/rechnung/api.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createBinaryTransport, createTransport } from '../client/transport.js';
|
|
8
8
|
import { rechnungKeyAuth } from './auth.js';
|
|
9
|
-
import { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listInvoices, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
9
|
+
import { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
10
10
|
export function createRechnungApi(optionen) {
|
|
11
11
|
const transportOptionen = {
|
|
12
12
|
auth: rechnungKeyAuth({ apiKey: optionen.apiKey }),
|
|
@@ -26,8 +26,9 @@ export function createRechnungApi(optionen) {
|
|
|
26
26
|
createCreditNote: (anfrage) => createCreditNote(rufen, anfrage),
|
|
27
27
|
getInvoice: (kennung) => getInvoice(rufen, kennung),
|
|
28
28
|
listInvoices: (abfrage) => listInvoices(rufen, abfrage),
|
|
29
|
-
getInvoicePdf: (id) => getInvoicePdf(rufenBinaer, id),
|
|
29
|
+
getInvoicePdf: (id, o) => getInvoicePdf(rufenBinaer, id, o),
|
|
30
30
|
getInvoiceXml: (id, format) => getInvoiceXml(rufen, id, format),
|
|
31
31
|
getInvoiceSetupStatus: () => getInvoiceSetupStatus(rufen),
|
|
32
|
+
listBrands: () => listBrands(rufen),
|
|
32
33
|
};
|
|
33
34
|
}
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* der Aufruf `KasseneckValidationError` mit `scope:'response'`.
|
|
18
18
|
*/
|
|
19
19
|
import type { InternerBinaerTransport, InternerTransport } from '../client/aufrufe.js';
|
|
20
|
-
import type { EInvoiceFormat } from './vertrag.js';
|
|
21
|
-
import type { CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, InvoiceDetail, InvoiceListQuery, InvoicePage, InvoiceSetupStatus, IssueInvoiceRequest, IssueResult } from './typen.js';
|
|
20
|
+
import type { EInvoiceFormat, InvoiceLanguage } from './vertrag.js';
|
|
21
|
+
import type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, InvoiceDetail, InvoiceListQuery, InvoicePage, InvoiceSetupStatus, IssueInvoiceRequest, IssueResult } from './typen.js';
|
|
22
22
|
export declare function createCustomer(rufen: InternerTransport, customer: CustomerInput, optionen?: {
|
|
23
23
|
idempotencyKey?: string;
|
|
24
24
|
}): Promise<Customer>;
|
|
@@ -44,8 +44,17 @@ export declare function listInvoices(rufen: InternerTransport, abfrage?: Invoice
|
|
|
44
44
|
* Antwort. Vor dem ersten `issueInvoice` aufrufen und `missing` anzeigen.
|
|
45
45
|
*/
|
|
46
46
|
export declare function getInvoiceSetupStatus(rufen: InternerTransport): Promise<InvoiceSetupStatus>;
|
|
47
|
-
/**
|
|
48
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Das PDF der Rechnung (bei Gutschriften: der Gutschrift), mit eingebetteter
|
|
49
|
+
* Factur-X-Datei. Mit `language` in der anderen Sprache als der Rechnung kommt
|
|
50
|
+
* eine **Uebersetzungskopie**: dieselbe Nummer, auf jeder Seite als Uebersetzung
|
|
51
|
+
* gekennzeichnet, ohne eingebettete E-Rechnung — keine eigene Rechnung.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getInvoicePdf(rufenBinaer: InternerBinaerTransport, invoiceId: string, optionen?: {
|
|
54
|
+
language?: InvoiceLanguage;
|
|
55
|
+
}): Promise<Uint8Array>;
|
|
56
|
+
/** Die Marken des Kontos — die Kennung geht als `brandId` in `issueInvoice`. */
|
|
57
|
+
export declare function listBrands(rufen: InternerTransport): Promise<Brand[]>;
|
|
49
58
|
/**
|
|
50
59
|
* Die E-Rechnung als XML-Text. Sie kommt im gewohnten Umschlag (`data.xml`)
|
|
51
60
|
* und nicht als rohe Datei: so bleibt ein fachlicher Fehler
|
|
@@ -114,9 +114,24 @@ export async function getInvoiceSetupStatus(rufen) {
|
|
|
114
114
|
};
|
|
115
115
|
}
|
|
116
116
|
// ---- Dateien ----------------------------------------------------------------
|
|
117
|
-
/**
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Das PDF der Rechnung (bei Gutschriften: der Gutschrift), mit eingebetteter
|
|
119
|
+
* Factur-X-Datei. Mit `language` in der anderen Sprache als der Rechnung kommt
|
|
120
|
+
* eine **Uebersetzungskopie**: dieselbe Nummer, auf jeder Seite als Uebersetzung
|
|
121
|
+
* gekennzeichnet, ohne eingebettete E-Rechnung — keine eigene Rechnung.
|
|
122
|
+
*/
|
|
123
|
+
export function getInvoicePdf(rufenBinaer, invoiceId, optionen = {}) {
|
|
124
|
+
const params = { invoiceId };
|
|
125
|
+
if (optionen.language)
|
|
126
|
+
params['language'] = optionen.language;
|
|
127
|
+
return rufenBinaer('getInvoicePdf', params);
|
|
128
|
+
}
|
|
129
|
+
/** Die Marken des Kontos — die Kennung geht als `brandId` in `issueInvoice`. */
|
|
130
|
+
export async function listBrands(rufen) {
|
|
131
|
+
const brands = objekt(await rufen('listBrands', {}))['brands'];
|
|
132
|
+
if (!Array.isArray(brands))
|
|
133
|
+
throw new KasseneckValidationError('listBrands', 'Antwort ohne brands', 'response');
|
|
134
|
+
return brands;
|
|
120
135
|
}
|
|
121
136
|
/**
|
|
122
137
|
* Die E-Rechnung als XML-Text. Sie kommt im gewohnten Umschlag (`data.xml`)
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
export { createRechnungApi, type RechnungApi, type RechnungApiOptions } from './api.js';
|
|
14
14
|
export { rechnungKeyAuth, type RechnungKeyAuthOptions } from './auth.js';
|
|
15
15
|
export { istRechnungFehler, rechnungFehlerCode, rechnungFeldFehler, type RechnungFeldFehler, } from './fehler.js';
|
|
16
|
-
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listInvoices, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
-
export type { CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, EInvoiceStatus, Invoice, InvoiceDetail, InvoiceItem, InvoiceItemInput, InvoiceListQuery, InvoicePage, InvoiceRecipient, InvoiceSetupGap, InvoiceSetupStatus, InvoiceTotals, IssueInvoiceRequest, IssueResult, } from './typen.js';
|
|
18
|
-
export {
|
|
16
|
+
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, 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, IssueInvoiceRequest, IssueResult, } from './typen.js';
|
|
18
|
+
export { RECHNUNG_TEXTE, rechnungText, type RechnungTextSchluessel } from './texte.js';
|
|
19
|
+
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_UNITS, RECHNUNG_EINHEITEN_CODES, INVOICE_SETUP_REQUIREMENTS, KUNDE_FELDER, POSITION_FELDER, 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 InvoiceUnit, type InvoiceSetupRequirement, type Format, type Feld, } from './vertrag.js';
|
|
@@ -13,5 +13,6 @@
|
|
|
13
13
|
export { createRechnungApi } from './api.js';
|
|
14
14
|
export { rechnungKeyAuth } from './auth.js';
|
|
15
15
|
export { istRechnungFehler, rechnungFehlerCode, rechnungFeldFehler, } from './fehler.js';
|
|
16
|
-
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listInvoices, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
-
export {
|
|
16
|
+
export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, searchCustomers, updateCustomer, } from './endpunkte.js';
|
|
17
|
+
export { RECHNUNG_TEXTE, rechnungText } from './texte.js';
|
|
18
|
+
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_UNITS, RECHNUNG_EINHEITEN_CODES, INVOICE_SETUP_REQUIREMENTS, KUNDE_FELDER, POSITION_FELDER, RECHNUNG_ANFRAGEN, RECHNUNG_GENAU_EINS, RECHNUNG_MINDESTENS_EINS, } from './vertrag.js';
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Texte von Rechnung und Gutschrift in jeder Sprache der Rechnungs-API — eine
|
|
3
|
+
* Quelle fuer das Backend (PDF, E-Rechnung, Mail) und das Web (Statusseite).
|
|
4
|
+
* Das Backend liest sie aus `fixtures/rechnung-texte.json` (`npm run
|
|
5
|
+
* fixtures:rechnungstexte`).
|
|
6
|
+
*
|
|
7
|
+
* Datum und Betraege stehen NICHT hier: sie bleiben in jeder Sprache
|
|
8
|
+
* oesterreichisch formatiert (15.09.2026, € 1.234,56) und werden vom Aufrufer
|
|
9
|
+
* eingesetzt. Platzhalter in {geschweiften} Klammern; jede Sprache hat dieselben
|
|
10
|
+
* Schluessel und je Schluessel dieselben Platzhalter (test/rechnung-texte.test.ts).
|
|
11
|
+
*
|
|
12
|
+
* Steuerhinweise nennen in jeder Sprache die Gesetzesstelle — § 11 UStG verlangt
|
|
13
|
+
* einen Hinweis, keinen Wortlaut; die Fundstelle macht ihn eindeutig.
|
|
14
|
+
*/
|
|
15
|
+
import type { InvoiceLanguage } from './vertrag.js';
|
|
16
|
+
declare const DE: {
|
|
17
|
+
readonly 'pdf.titel.rechnung': "RECHNUNG";
|
|
18
|
+
readonly 'pdf.titel.gutschrift': "GUTSCHRIFT";
|
|
19
|
+
readonly 'pdf.pille.bezahlt': "BEZAHLT";
|
|
20
|
+
readonly 'pdf.pille.lastschrift': "SEPA-LASTSCHRIFT";
|
|
21
|
+
readonly 'pdf.meta.nummer.rechnung': "Rechnungsnr.";
|
|
22
|
+
readonly 'pdf.meta.nummer.gutschrift': "Gutschriftsnr.";
|
|
23
|
+
readonly 'pdf.meta.datum.rechnung': "Rechnungsdatum";
|
|
24
|
+
readonly 'pdf.meta.datum.gutschrift': "Gutschriftsdatum";
|
|
25
|
+
readonly 'pdf.meta.leistungszeitraum': "Leistungszeitraum";
|
|
26
|
+
readonly 'pdf.meta.faelligkeit': "Fälligkeit";
|
|
27
|
+
readonly 'pdf.bezug.gutschrift': "Gutschrift zu Rechnung {nummer}";
|
|
28
|
+
readonly 'pdf.bezug.vom': " vom {datum}";
|
|
29
|
+
readonly 'pdf.bezeichnung.rechnung': "Rechnung {nummer}";
|
|
30
|
+
readonly 'pdf.bezeichnung.gutschrift': "Gutschrift {nummer}";
|
|
31
|
+
readonly 'pdf.uid': "UID: {uid}";
|
|
32
|
+
readonly 'pdf.tabelle.pos': "POS";
|
|
33
|
+
readonly 'pdf.tabelle.beschreibung': "BESCHREIBUNG";
|
|
34
|
+
readonly 'pdf.tabelle.menge': "MENGE";
|
|
35
|
+
readonly 'pdf.tabelle.ust': "UST";
|
|
36
|
+
readonly 'pdf.tabelle.einzelNetto': "EINZEL NETTO";
|
|
37
|
+
readonly 'pdf.tabelle.betragNetto': "BETRAG NETTO";
|
|
38
|
+
readonly 'pdf.summe.zwischensumme': "Zwischensumme netto";
|
|
39
|
+
readonly 'pdf.summe.umsatzsteuer': "Umsatzsteuer {satz}%";
|
|
40
|
+
readonly 'pdf.summe.gesamt.rechnung': "Gesamtbetrag";
|
|
41
|
+
readonly 'pdf.summe.gesamt.gutschrift': "Gutschriftsbetrag";
|
|
42
|
+
readonly 'steuer.kleinunternehmer': "Gemäß § 6 Abs. 1 Z 27 UStG wird keine Umsatzsteuer verrechnet (Kleinunternehmer).";
|
|
43
|
+
readonly 'steuer.igLieferung': "Steuerfreie innergemeinschaftliche Lieferung (Art. 6 Abs. 1 UStG).";
|
|
44
|
+
readonly 'steuer.ausfuhr': "Steuerfreie Ausfuhrlieferung (§ 6 Abs. 1 Z 1 UStG).";
|
|
45
|
+
readonly 'steuer.reverseCharge.titel': "Steuerfreie Leistung – Reverse Charge. ";
|
|
46
|
+
readonly 'steuer.reverseCharge.text': "Übergang der Steuerschuldnerschaft auf den Leistungsempfänger gem. Art. 196 MwSt-RL 2006/112/EG (innergemeinschaftliche Leistung). Die Umsatzsteuer ist vom Leistungsempfänger im Bestimmungsland abzuführen.";
|
|
47
|
+
readonly 'steuer.reverseCharge.uid': "UID Leistungserbringer: {verkaeufer} · UID Leistungsempfänger: {kaeufer}";
|
|
48
|
+
readonly 'pdf.zahlung.titel': "ZAHLUNGSINFORMATIONEN";
|
|
49
|
+
readonly 'pdf.zahlung.empfaenger': "Empfänger";
|
|
50
|
+
readonly 'pdf.zahlung.iban': "IBAN";
|
|
51
|
+
readonly 'pdf.zahlung.bic': "BIC";
|
|
52
|
+
readonly 'pdf.zahlung.verwendungszweck': "Verwendungszweck";
|
|
53
|
+
readonly 'pdf.zahlung.hinweisBis': "Zahlbar ohne Abzug bis {datum}. Vielen Dank für Ihren Auftrag.";
|
|
54
|
+
readonly 'pdf.zahlung.hinweis': "Zahlbar ohne Abzug. Vielen Dank für Ihren Auftrag.";
|
|
55
|
+
readonly 'pdf.zahlung.qr': "Mit Banking-App scannen & zahlen";
|
|
56
|
+
readonly 'pdf.bezahlt.text': "Diese Rechnung ist beglichen. Es ist nichts weiter zu tun.";
|
|
57
|
+
readonly 'pdf.bezahlt.am': "Bezahlt am";
|
|
58
|
+
readonly 'pdf.bezahlt.zahlungsart': "Zahlungsart";
|
|
59
|
+
readonly 'zahlungsart.cash': "Bar";
|
|
60
|
+
readonly 'zahlungsart.transfer': "Überweisung";
|
|
61
|
+
readonly 'zahlungsart.card': "Karte";
|
|
62
|
+
readonly 'zahlungsart.online': "Online";
|
|
63
|
+
readonly 'pdf.lastschrift.text': "Der Betrag wird per SEPA-Lastschrift eingezogen. Sie müssen nichts veranlassen.";
|
|
64
|
+
readonly 'pdf.lastschrift.einzugAm': "Einzug am";
|
|
65
|
+
readonly 'pdf.lastschrift.konto': "Konto";
|
|
66
|
+
readonly 'pdf.lastschrift.mandatsreferenz': "Mandatsreferenz";
|
|
67
|
+
readonly 'pdf.lastschrift.mandatVom': "Mandat vom";
|
|
68
|
+
readonly 'pdf.lastschrift.warnung': "Bitte für Deckung sorgen — die Kosten einer Rücklastschrift werden weiterverrechnet.";
|
|
69
|
+
readonly 'pdf.erstattung.text': "Der Betrag wird auf dem ursprünglichen Zahlungsweg erstattet. Sie müssen nichts veranlassen.";
|
|
70
|
+
readonly 'pdf.erstattung.bezug': "Bezug";
|
|
71
|
+
readonly 'pdf.erstattung.betrag': "Erstattungsbetrag";
|
|
72
|
+
readonly 'pdf.status.titel': "Zahlungsstatus online verfolgen";
|
|
73
|
+
readonly 'pdf.status.text': "Zahlung bzw. Einzug prüfen und Benachrichtigungen aktivieren.";
|
|
74
|
+
readonly 'pdf.status.link': "Link";
|
|
75
|
+
readonly 'pdf.status.passwort': "Passwort";
|
|
76
|
+
readonly 'pdf.fuss.kontakt': "Kontakt";
|
|
77
|
+
readonly 'pdf.fuss.register': "Register & Steuer";
|
|
78
|
+
readonly 'pdf.fuss.sitz': "Sitz: {ort}";
|
|
79
|
+
readonly 'pdf.fuss.hinweis': "Erstellt mit Kasseneck — ein Produkt der Kreiseck";
|
|
80
|
+
readonly 'pdf.seite': "Seite {nummer} / {gesamt}";
|
|
81
|
+
readonly 'land.AT': "Österreich";
|
|
82
|
+
readonly 'land.DE': "Deutschland";
|
|
83
|
+
readonly 'land.CH': "Schweiz";
|
|
84
|
+
readonly 'land.IT': "Italien";
|
|
85
|
+
readonly 'land.LI': "Liechtenstein";
|
|
86
|
+
readonly 'kopie.rechnung': "Übersetzung – keine eigene Rechnung · Original: Rechnung Nr. {nummer} vom {datum}";
|
|
87
|
+
readonly 'kopie.gutschrift': "Übersetzung – keine eigene Gutschrift · Original: Gutschrift Nr. {nummer} vom {datum}";
|
|
88
|
+
readonly 'gutschrift.einleitung': "Grund: {grund}";
|
|
89
|
+
readonly 'gutschrift.grund.cancellation': "Stornierung";
|
|
90
|
+
readonly 'gutschrift.grund.price_reduction': "Preisnachlass";
|
|
91
|
+
readonly 'gutschrift.grund.return': "Rücksendung";
|
|
92
|
+
readonly 'gutschrift.grund.incorrect_invoice': "Fehlerhafte Rechnung";
|
|
93
|
+
readonly 'gutschrift.grund.other': "Sonstiges";
|
|
94
|
+
readonly 'einvoice.befreiung.reverseCharge': "Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)";
|
|
95
|
+
readonly 'einvoice.befreiung.kleinunternehmer': "Steuerbefreit — Kleinunternehmer gemäß §6 Abs. 1 Z 27 UStG";
|
|
96
|
+
readonly 'einvoice.befreiung.igLieferung': "Steuerfreie innergemeinschaftliche Lieferung gemäß Art. 6 Abs. 1 UStG";
|
|
97
|
+
readonly 'einvoice.befreiung.ausfuhr': "Steuerfreie Ausfuhrlieferung gemäß §6 Abs. 1 Z 1 UStG";
|
|
98
|
+
readonly 'einvoice.zahlbarBis': "Zahlbar bis {datum}";
|
|
99
|
+
readonly 'einheit.piece': "Stk";
|
|
100
|
+
readonly 'einheit.pair': "Paar";
|
|
101
|
+
readonly 'einheit.set': "Set";
|
|
102
|
+
readonly 'einheit.dozen': "Dtzd.";
|
|
103
|
+
readonly 'einheit.second': "Sek.";
|
|
104
|
+
readonly 'einheit.minute': "Min.";
|
|
105
|
+
readonly 'einheit.hour': "Std";
|
|
106
|
+
readonly 'einheit.day': "Tag";
|
|
107
|
+
readonly 'einheit.night': "Nacht";
|
|
108
|
+
readonly 'einheit.week': "Woche";
|
|
109
|
+
readonly 'einheit.month': "Monat";
|
|
110
|
+
readonly 'einheit.quarter': "Quartal";
|
|
111
|
+
readonly 'einheit.half_year': "Halbjahr";
|
|
112
|
+
readonly 'einheit.year': "Jahr";
|
|
113
|
+
readonly 'einheit.milligram': "mg";
|
|
114
|
+
readonly 'einheit.gram': "g";
|
|
115
|
+
readonly 'einheit.kilogram': "kg";
|
|
116
|
+
readonly 'einheit.tonne': "t";
|
|
117
|
+
readonly 'einheit.millimetre': "mm";
|
|
118
|
+
readonly 'einheit.centimetre': "cm";
|
|
119
|
+
readonly 'einheit.metre': "m";
|
|
120
|
+
readonly 'einheit.running_metre': "lfm";
|
|
121
|
+
readonly 'einheit.kilometre': "km";
|
|
122
|
+
readonly 'einheit.square_metre': "m²";
|
|
123
|
+
readonly 'einheit.hectare': "ha";
|
|
124
|
+
readonly 'einheit.millilitre': "ml";
|
|
125
|
+
readonly 'einheit.litre': "l";
|
|
126
|
+
readonly 'einheit.cubic_metre': "m³";
|
|
127
|
+
readonly 'einheit.kilowatt_hour': "kWh";
|
|
128
|
+
readonly 'einheit.megawatt_hour': "MWh";
|
|
129
|
+
readonly 'einheit.gigabyte': "GB";
|
|
130
|
+
readonly 'einheit.terabyte': "TB";
|
|
131
|
+
readonly 'einheit.flat_rate': "Pauschal";
|
|
132
|
+
readonly 'einheit.person': "Pers.";
|
|
133
|
+
readonly 'einheit.licence': "Lizenz";
|
|
134
|
+
readonly 'einheit.user': "Benutzer";
|
|
135
|
+
readonly 'einheit.device': "Gerät";
|
|
136
|
+
readonly 'einheit.session': "Sitzung";
|
|
137
|
+
readonly 'einheit.trip': "Fahrt";
|
|
138
|
+
readonly 'einheit.page': "Seite";
|
|
139
|
+
readonly 'einheit.sheet': "Blatt";
|
|
140
|
+
readonly 'einheit.package': "Pkg.";
|
|
141
|
+
readonly 'einheit.box': "Box";
|
|
142
|
+
readonly 'einheit.carton': "Karton";
|
|
143
|
+
readonly 'einheit.bottle': "Fl.";
|
|
144
|
+
readonly 'einheit.can': "Dose";
|
|
145
|
+
readonly 'einheit.roll': "Rolle";
|
|
146
|
+
readonly 'einheit.bag': "Sack";
|
|
147
|
+
readonly 'einheit.pallet': "Palette";
|
|
148
|
+
readonly 'einheitName.piece': "Stück";
|
|
149
|
+
readonly 'einheitName.pair': "Paar";
|
|
150
|
+
readonly 'einheitName.set': "Set";
|
|
151
|
+
readonly 'einheitName.dozen': "Dutzend";
|
|
152
|
+
readonly 'einheitName.second': "Sekunde";
|
|
153
|
+
readonly 'einheitName.minute': "Minute";
|
|
154
|
+
readonly 'einheitName.hour': "Stunde";
|
|
155
|
+
readonly 'einheitName.day': "Tag";
|
|
156
|
+
readonly 'einheitName.night': "Nacht";
|
|
157
|
+
readonly 'einheitName.week': "Woche";
|
|
158
|
+
readonly 'einheitName.month': "Monat";
|
|
159
|
+
readonly 'einheitName.quarter': "Quartal";
|
|
160
|
+
readonly 'einheitName.half_year': "Halbjahr";
|
|
161
|
+
readonly 'einheitName.year': "Jahr";
|
|
162
|
+
readonly 'einheitName.milligram': "Milligramm";
|
|
163
|
+
readonly 'einheitName.gram': "Gramm";
|
|
164
|
+
readonly 'einheitName.kilogram': "Kilogramm";
|
|
165
|
+
readonly 'einheitName.tonne': "Tonne";
|
|
166
|
+
readonly 'einheitName.millimetre': "Millimeter";
|
|
167
|
+
readonly 'einheitName.centimetre': "Zentimeter";
|
|
168
|
+
readonly 'einheitName.metre': "Meter";
|
|
169
|
+
readonly 'einheitName.running_metre': "Laufmeter";
|
|
170
|
+
readonly 'einheitName.kilometre': "Kilometer";
|
|
171
|
+
readonly 'einheitName.square_metre': "Quadratmeter";
|
|
172
|
+
readonly 'einheitName.hectare': "Hektar";
|
|
173
|
+
readonly 'einheitName.millilitre': "Milliliter";
|
|
174
|
+
readonly 'einheitName.litre': "Liter";
|
|
175
|
+
readonly 'einheitName.cubic_metre': "Kubikmeter";
|
|
176
|
+
readonly 'einheitName.kilowatt_hour': "Kilowattstunde";
|
|
177
|
+
readonly 'einheitName.megawatt_hour': "Megawattstunde";
|
|
178
|
+
readonly 'einheitName.gigabyte': "Gigabyte";
|
|
179
|
+
readonly 'einheitName.terabyte': "Terabyte";
|
|
180
|
+
readonly 'einheitName.flat_rate': "Pauschale";
|
|
181
|
+
readonly 'einheitName.person': "Person";
|
|
182
|
+
readonly 'einheitName.licence': "Lizenz";
|
|
183
|
+
readonly 'einheitName.user': "Benutzer";
|
|
184
|
+
readonly 'einheitName.device': "Gerät";
|
|
185
|
+
readonly 'einheitName.session': "Sitzung";
|
|
186
|
+
readonly 'einheitName.trip': "Fahrt";
|
|
187
|
+
readonly 'einheitName.page': "Seite";
|
|
188
|
+
readonly 'einheitName.sheet': "Blatt";
|
|
189
|
+
readonly 'einheitName.package': "Packung";
|
|
190
|
+
readonly 'einheitName.box': "Box";
|
|
191
|
+
readonly 'einheitName.carton': "Karton";
|
|
192
|
+
readonly 'einheitName.bottle': "Flasche";
|
|
193
|
+
readonly 'einheitName.can': "Dose";
|
|
194
|
+
readonly 'einheitName.roll': "Rolle";
|
|
195
|
+
readonly 'einheitName.bag': "Sack";
|
|
196
|
+
readonly 'einheitName.pallet': "Palette";
|
|
197
|
+
};
|
|
198
|
+
export type RechnungTextSchluessel = keyof typeof DE;
|
|
199
|
+
export declare const RECHNUNG_TEXTE: Readonly<Record<InvoiceLanguage, Readonly<Record<RechnungTextSchluessel, string>>>>;
|
|
200
|
+
/** Ein Text der gewaehlten Sprache mit eingesetzten Werten; ein fehlender Wert ist ein Programmierfehler. */
|
|
201
|
+
export declare function rechnungText(sprache: InvoiceLanguage, schluessel: RechnungTextSchluessel, werte?: Readonly<Record<string, string | number>>): string;
|
|
202
|
+
export {};
|