@kreiseck/kasseneck-api 0.25.0 → 0.27.1

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 (115) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/cjs/kasse/drucker.d.ts +1 -1
  3. package/dist/cjs/printing/escpos.d.ts +30 -1
  4. package/dist/cjs/printing/escpos.js +60 -4
  5. package/dist/cjs/react/index.js +6 -0
  6. package/dist/cjs/receipt/blatt.d.ts +5 -3
  7. package/dist/cjs/receipt/blatt.js +11 -10
  8. package/dist/cjs/receipt/epos.d.ts +2 -2
  9. package/dist/cjs/receipt/epos.js +8 -0
  10. package/dist/cjs/receipt/index.d.ts +3 -1
  11. package/dist/cjs/receipt/index.js +6 -2
  12. package/dist/cjs/receipt/layout-escpos.d.ts +1 -1
  13. package/dist/cjs/receipt/layout-escpos.js +4 -0
  14. package/dist/cjs/receipt/marke-daten.d.ts +14 -0
  15. package/dist/cjs/receipt/marke-daten.js +18 -0
  16. package/dist/cjs/receipt/marke.d.ts +20 -0
  17. package/dist/cjs/receipt/marke.js +46 -0
  18. package/dist/cjs/rechnung/index.d.ts +1 -1
  19. package/dist/cjs/rechnung/index.js +2 -1
  20. package/dist/cjs/rechnung/typen.d.ts +18 -2
  21. package/dist/cjs/rechnung/vertrag.d.ts +23 -1
  22. package/dist/cjs/rechnung/vertrag.js +30 -5
  23. package/dist/esm/kasse/drucker.d.ts +1 -1
  24. package/dist/esm/printing/escpos.d.ts +30 -1
  25. package/dist/esm/printing/escpos.js +59 -4
  26. package/dist/esm/react/index.js +7 -1
  27. package/dist/esm/receipt/blatt.d.ts +5 -3
  28. package/dist/esm/receipt/blatt.js +10 -9
  29. package/dist/esm/receipt/epos.d.ts +2 -2
  30. package/dist/esm/receipt/epos.js +8 -0
  31. package/dist/esm/receipt/index.d.ts +3 -1
  32. package/dist/esm/receipt/index.js +3 -1
  33. package/dist/esm/receipt/layout-escpos.d.ts +1 -1
  34. package/dist/esm/receipt/layout-escpos.js +4 -0
  35. package/dist/esm/receipt/marke-daten.d.ts +14 -0
  36. package/dist/esm/receipt/marke-daten.js +15 -0
  37. package/dist/esm/receipt/marke.d.ts +20 -0
  38. package/dist/esm/receipt/marke.js +42 -0
  39. package/dist/esm/rechnung/index.d.ts +1 -1
  40. package/dist/esm/rechnung/index.js +1 -1
  41. package/dist/esm/rechnung/typen.d.ts +18 -2
  42. package/dist/esm/rechnung/vertrag.d.ts +23 -1
  43. package/dist/esm/rechnung/vertrag.js +29 -4
  44. package/fixtures/erwartet/karte-eigener.blatt32.json +3 -4
  45. package/fixtures/erwartet/karte-eigener.blatt48.json +3 -4
  46. package/fixtures/erwartet/karte-gptom-ios.blatt32.json +3 -4
  47. package/fixtures/erwartet/karte-gptom-ios.blatt48.json +3 -4
  48. package/fixtures/erwartet/karte-gptom.blatt32.json +3 -4
  49. package/fixtures/erwartet/karte-gptom.blatt48.json +3 -4
  50. package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +3 -4
  51. package/fixtures/erwartet/karte-hobex-cloud.blatt48.json +3 -4
  52. package/fixtures/erwartet/karte-hobex-hps.blatt32.json +3 -4
  53. package/fixtures/erwartet/karte-hobex-hps.blatt48.json +3 -4
  54. package/fixtures/erwartet/karte-mypos.blatt32.json +3 -4
  55. package/fixtures/erwartet/karte-mypos.blatt48.json +3 -4
  56. package/fixtures/erwartet/karte-stripe-eps.blatt32.json +3 -4
  57. package/fixtures/erwartet/karte-stripe-eps.blatt48.json +3 -4
  58. package/fixtures/erwartet/karte-stripe.blatt32.json +3 -4
  59. package/fixtures/erwartet/karte-stripe.blatt48.json +3 -4
  60. package/fixtures/erwartet/karte-sumup.blatt32.json +3 -4
  61. package/fixtures/erwartet/karte-sumup.blatt48.json +3 -4
  62. package/fixtures/erwartet/langer-artikelname.blatt32.json +3 -4
  63. package/fixtures/erwartet/langer-artikelname.blatt48.json +3 -4
  64. package/fixtures/erwartet/null-ausfall.blatt32.json +3 -4
  65. package/fixtures/erwartet/null-ausfall.blatt48.json +3 -4
  66. package/fixtures/erwartet/null-jahr.blatt32.json +3 -4
  67. package/fixtures/erwartet/null-jahr.blatt48.json +3 -4
  68. package/fixtures/erwartet/null-monat.blatt32.json +3 -4
  69. package/fixtures/erwartet/null-monat.blatt48.json +3 -4
  70. package/fixtures/erwartet/null-pruef.blatt32.json +3 -4
  71. package/fixtures/erwartet/null-pruef.blatt48.json +3 -4
  72. package/fixtures/erwartet/null-schluss.blatt32.json +3 -4
  73. package/fixtures/erwartet/null-schluss.blatt48.json +3 -4
  74. package/fixtures/erwartet/null-start.blatt32.json +3 -4
  75. package/fixtures/erwartet/null-start.blatt48.json +3 -4
  76. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +3 -4
  77. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt48.json +3 -4
  78. package/fixtures/erwartet/rabatt-einfach.blatt32.json +3 -4
  79. package/fixtures/erwartet/rabatt-einfach.blatt48.json +3 -4
  80. package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +3 -4
  81. package/fixtures/erwartet/rabatt-trinkgeld.blatt48.json +3 -4
  82. package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +3 -4
  83. package/fixtures/erwartet/rabatt-wertgutschein.blatt48.json +3 -4
  84. package/fixtures/erwartet/rabattzeilen.blatt32.json +3 -4
  85. package/fixtures/erwartet/rabattzeilen.blatt48.json +3 -4
  86. package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +3 -4
  87. package/fixtures/erwartet/signaturausfall-verkauf.blatt48.json +3 -4
  88. package/fixtures/erwartet/storno-rabatt.blatt32.json +3 -4
  89. package/fixtures/erwartet/storno-rabatt.blatt48.json +3 -4
  90. package/fixtures/erwartet/storno-teil.blatt32.json +3 -4
  91. package/fixtures/erwartet/storno-teil.blatt48.json +3 -4
  92. package/fixtures/erwartet/storno-voll.blatt32.json +3 -4
  93. package/fixtures/erwartet/storno-voll.blatt48.json +3 -4
  94. package/fixtures/erwartet/testkasse-verkauf.blatt32.json +3 -4
  95. package/fixtures/erwartet/testkasse-verkauf.blatt48.json +3 -4
  96. package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +3 -4
  97. package/fixtures/erwartet/testsignatur-verkauf.blatt48.json +3 -4
  98. package/fixtures/erwartet/training.blatt32.json +3 -4
  99. package/fixtures/erwartet/training.blatt48.json +3 -4
  100. package/fixtures/erwartet/verkauf-bar.blatt32.json +3 -4
  101. package/fixtures/erwartet/verkauf-bar.blatt48.json +3 -4
  102. package/fixtures/erwartet/verkauf-karte.blatt32.json +3 -4
  103. package/fixtures/erwartet/verkauf-karte.blatt48.json +3 -4
  104. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +3 -4
  105. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt48.json +3 -4
  106. package/fixtures/hobex-hps-codes.json +1 -1
  107. package/fixtures/kasse-texte.json +1 -1
  108. package/fixtures/manifest.json +62 -62
  109. package/fixtures/oberflaeche.json +1 -1
  110. package/fixtures/rechnung-api-beispiele/issue-fehler-preis-beide.json +26 -0
  111. package/fixtures/rechnung-api-beispiele/issue-fehler-preis-fehlt.json +24 -0
  112. package/fixtures/rechnung-api-beispiele/issue-mikropreis.json +27 -0
  113. package/fixtures/rechnung-api.schema.json +37 -5
  114. package/fixtures/rechnung-texte.json +1 -1
  115. package/package.json +2 -1
@@ -18,4 +18,4 @@ export type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, Cred
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, 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, 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';
@@ -17,4 +17,4 @@ export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoic
17
17
  export { RECHNUNG_TEXTE, rechnungText } from './texte.js';
18
18
  export { rechnungSummen, STEUERFREIE_FAELLE } from './summen.js';
19
19
  export { anteiligerPreis, BETRAG_GRENZE_CENTS, positionAusEuro, preisText, RechenFehler, rechnungRechnen, rund, satzSchluessel, satzText, } from './rechnen.js';
20
- 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, RECHNUNG_ANFRAGEN, RECHNUNG_GENAU_EINS, RECHNUNG_MINDESTENS_EINS, } from './vertrag.js';
20
+ 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, } from './vertrag.js';
@@ -73,8 +73,16 @@ export interface InvoiceItemInput {
73
73
  unit?: InvoiceUnit;
74
74
  /** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
75
75
  kind?: ItemKind;
76
- /** Einzelpreis in ganzen Cent, im `priceMode` der Rechnung (netto oder brutto). */
77
- unitPriceCents: number;
76
+ /**
77
+ * Einzelpreis in ganzen Cent, im `priceMode` der Rechnung (netto oder
78
+ * brutto). Genau eines von `unitPriceCents` und `unitPriceMicros`.
79
+ */
80
+ unitPriceCents?: number;
81
+ /**
82
+ * Einzelpreis in Mikro-Euro (10⁻⁶ €), fuer Preise unterhalb eines Cents.
83
+ * Genau eines von `unitPriceCents` und `unitPriceMicros`.
84
+ */
85
+ unitPriceMicros?: number;
78
86
  vatRate: VatRatePercent;
79
87
  /** Zeilenrabatt in Prozent, hoechstens zwei Nachkommastellen. */
80
88
  discountPct?: number;
@@ -246,7 +254,15 @@ export interface InvoiceItem {
246
254
  unit: string;
247
255
  /** Ware oder Leistung — Altbestand ohne Angabe zaehlt als `goods`. */
248
256
  kind: ItemKind;
257
+ /**
258
+ * Einzelpreis in ganzen Cent — eine ANZEIGEHILFE: kaufmaennisch aus
259
+ * `unitPriceMicros` gerundet, und damit 0, sobald der Preis unter einem
260
+ * halben Cent liegt. Verbindlich sind `unitPriceMicros` und die Betraege je
261
+ * Position (§ 9.3).
262
+ */
249
263
  unitPriceCents: number;
264
+ /** Einzelpreis in Mikro-Euro (10⁻⁶ €) — der verbindliche Preis. */
265
+ unitPriceMicros?: number;
250
266
  vatRate: number;
251
267
  discountPct: number;
252
268
  }
@@ -204,6 +204,17 @@ export type Feld = {
204
204
  typ: 'object';
205
205
  pflicht: boolean;
206
206
  felder: Readonly<Record<string, Feld>>;
207
+ /**
208
+ * Feldgruppen, von denen GENAU EINE gesetzt sein muss (§ 9.1). Jede Gruppe
209
+ * ist eine Liste von Feldnamen; im JSON Schema wird daraus
210
+ * `oneOf: [{ required: [...] }, ...]`.
211
+ *
212
+ * Gebraucht fuer den Preis einer Position: `unitPriceCents` ODER
213
+ * `unitPriceMicros`, nie beides und nie keines. Als zwei Pflichtfelder
214
+ * liesse sich das nicht ausdruecken, und als zwei optionale waere eine
215
+ * Position ohne Preis gueltig.
216
+ */
217
+ genauEins?: readonly (readonly string[])[];
207
218
  } | {
208
219
  typ: 'list';
209
220
  pflicht: boolean;
@@ -219,8 +230,19 @@ export type Feld = {
219
230
  };
220
231
  /** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
221
232
  export declare const KUNDE_FELDER: Readonly<Record<string, Feld>>;
222
- /** Eine Rechnungs- oder Gutschriftsposition. Preise in ganzen Cent. */
233
+ /**
234
+ * Eine Rechnungs- oder Gutschriftsposition.
235
+ *
236
+ * Der Preis steht in ganzen Cent (`unitPriceCents`) ODER in Mikro-Euro
237
+ * (`unitPriceMicros`, 10⁻⁶ €) — genau eines von beiden (§ 9.1). Der Mikropreis
238
+ * loest denselben Bereich feiner auf: 10¹² Mikro-Euro sind dieselben
239
+ * 10.000.000,00 €, die 10⁸ Cent ausdruecken. Er ist noetig fuer Preise
240
+ * unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
241
+ * die bisher gerundet eingereicht werden mussten.
242
+ */
223
243
  export declare const POSITION_FELDER: Readonly<Record<string, Feld>>;
244
+ /** Genau einer der beiden Preise je Position (§ 9.1). */
245
+ export declare const POSITION_PREIS_GENAU_EINS: readonly (readonly string[])[];
224
246
  /**
225
247
  * Eine Zahlung zu einer Rechnung. Ohne `amountCents` gilt der volle
226
248
  * Bruttobetrag, ohne `paidAt` der heutige Wiener Tag. `reference` ist die
@@ -332,20 +332,45 @@ export const KUNDE_FELDER = Object.freeze({
332
332
  });
333
333
  /** Beim Aendern ist jedes Kundenfeld optional. */
334
334
  const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(KUNDE_FELDER).map(([name, feld]) => [name, { ...feld, pflicht: false }])));
335
- /** Eine Rechnungs- oder Gutschriftsposition. Preise in ganzen Cent. */
335
+ /**
336
+ * Eine Rechnungs- oder Gutschriftsposition.
337
+ *
338
+ * Der Preis steht in ganzen Cent (`unitPriceCents`) ODER in Mikro-Euro
339
+ * (`unitPriceMicros`, 10⁻⁶ €) — genau eines von beiden (§ 9.1). Der Mikropreis
340
+ * loest denselben Bereich feiner auf: 10¹² Mikro-Euro sind dieselben
341
+ * 10.000.000,00 €, die 10⁸ Cent ausdruecken. Er ist noetig fuer Preise
342
+ * unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
343
+ * die bisher gerundet eingereicht werden mussten.
344
+ */
336
345
  export const POSITION_FELDER = Object.freeze({
337
346
  description: text(300, true),
338
347
  subtitle: text(1000),
339
- quantity: { typ: 'number', pflicht: true, min: 0, exklusivMin: true, max: 1_000_000, nachkomma: 3 },
348
+ quantity: { typ: 'number', pflicht: true, min: 0, exklusivMin: true, max: 1_000_000_000, nachkomma: 3 },
340
349
  /** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
341
350
  unit: { typ: 'enum', pflicht: false, werte: INVOICE_UNITS },
342
351
  /** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
343
352
  kind: { typ: 'enum', pflicht: false, werte: ITEM_KINDS },
344
- unitPriceCents: { typ: 'integer', pflicht: true, min: 0, max: 100_000_000 },
353
+ /** Einzelpreis in ganzen Cent. Alternative zu `unitPriceMicros`. */
354
+ unitPriceCents: { typ: 'integer', pflicht: false, min: 0, max: 100_000_000 },
355
+ /** Einzelpreis in Mikro-Euro (10⁻⁶ €). Alternative zu `unitPriceCents`. */
356
+ unitPriceMicros: { typ: 'integer', pflicht: false, min: 0, max: 1_000_000_000_000 },
345
357
  vatRate: { typ: 'enum', pflicht: true, werte: VAT_RATES },
346
358
  discountPct: { typ: 'number', pflicht: false, min: 0, max: 100, nachkomma: 2 },
347
359
  });
348
- const positionen = { typ: 'list', pflicht: true, min: 1, max: 500, eintrag: { typ: 'object', pflicht: true, felder: POSITION_FELDER } };
360
+ /** Genau einer der beiden Preise je Position (§ 9.1). */
361
+ export const POSITION_PREIS_GENAU_EINS = Object.freeze([
362
+ Object.freeze(['unitPriceCents']),
363
+ Object.freeze(['unitPriceMicros']),
364
+ ]);
365
+ const positionen = {
366
+ typ: 'list',
367
+ pflicht: true,
368
+ min: 1,
369
+ max: 500,
370
+ eintrag: {
371
+ typ: 'object', pflicht: true, felder: POSITION_FELDER, genauEins: POSITION_PREIS_GENAU_EINS,
372
+ },
373
+ };
349
374
  /**
350
375
  * Eine Zahlung zu einer Rechnung. Ohne `amountCents` gilt der volle
351
376
  * Bruttobetrag, ohne `paidAt` der heutige Wiener Tag. `reference` ist die
@@ -150,10 +150,9 @@
150
150
  "leer": true
151
151
  },
152
152
  {
153
- "art": "zeile",
154
- "text": " erstellt mit Kasseneck ",
155
- "fett": false,
156
- "leer": false
153
+ "art": "marke",
154
+ "breite": 234,
155
+ "hoehe": 34
157
156
  }
158
157
  ]
159
158
  }
@@ -150,10 +150,9 @@
150
150
  "leer": true
151
151
  },
152
152
  {
153
- "art": "zeile",
154
- "text": " erstellt mit Kasseneck ",
155
- "fett": false,
156
- "leer": false
153
+ "art": "marke",
154
+ "breite": 352,
155
+ "hoehe": 51
157
156
  }
158
157
  ]
159
158
  }
@@ -222,10 +222,9 @@
222
222
  "leer": true
223
223
  },
224
224
  {
225
- "art": "zeile",
226
- "text": " erstellt mit Kasseneck ",
227
- "fett": false,
228
- "leer": false
225
+ "art": "marke",
226
+ "breite": 234,
227
+ "hoehe": 34
229
228
  }
230
229
  ]
231
230
  }
@@ -222,10 +222,9 @@
222
222
  "leer": true
223
223
  },
224
224
  {
225
- "art": "zeile",
226
- "text": " erstellt mit Kasseneck ",
227
- "fett": false,
228
- "leer": false
225
+ "art": "marke",
226
+ "breite": 352,
227
+ "hoehe": 51
229
228
  }
230
229
  ]
231
230
  }
@@ -222,10 +222,9 @@
222
222
  "leer": true
223
223
  },
224
224
  {
225
- "art": "zeile",
226
- "text": " erstellt mit Kasseneck ",
227
- "fett": false,
228
- "leer": false
225
+ "art": "marke",
226
+ "breite": 234,
227
+ "hoehe": 34
229
228
  }
230
229
  ]
231
230
  }
@@ -222,10 +222,9 @@
222
222
  "leer": true
223
223
  },
224
224
  {
225
- "art": "zeile",
226
- "text": " erstellt mit Kasseneck ",
227
- "fett": false,
228
- "leer": false
225
+ "art": "marke",
226
+ "breite": 352,
227
+ "hoehe": 51
229
228
  }
230
229
  ]
231
230
  }
@@ -192,10 +192,9 @@
192
192
  "leer": true
193
193
  },
194
194
  {
195
- "art": "zeile",
196
- "text": " erstellt mit Kasseneck ",
197
- "fett": false,
198
- "leer": false
195
+ "art": "marke",
196
+ "breite": 234,
197
+ "hoehe": 34
199
198
  }
200
199
  ]
201
200
  }
@@ -192,10 +192,9 @@
192
192
  "leer": true
193
193
  },
194
194
  {
195
- "art": "zeile",
196
- "text": " erstellt mit Kasseneck ",
197
- "fett": false,
198
- "leer": false
195
+ "art": "marke",
196
+ "breite": 352,
197
+ "hoehe": 51
199
198
  }
200
199
  ]
201
200
  }
@@ -216,10 +216,9 @@
216
216
  "leer": true
217
217
  },
218
218
  {
219
- "art": "zeile",
220
- "text": " erstellt mit Kasseneck ",
221
- "fett": false,
222
- "leer": false
219
+ "art": "marke",
220
+ "breite": 234,
221
+ "hoehe": 34
223
222
  }
224
223
  ]
225
224
  }
@@ -216,10 +216,9 @@
216
216
  "leer": true
217
217
  },
218
218
  {
219
- "art": "zeile",
220
- "text": " erstellt mit Kasseneck ",
221
- "fett": false,
222
- "leer": false
219
+ "art": "marke",
220
+ "breite": 352,
221
+ "hoehe": 51
223
222
  }
224
223
  ]
225
224
  }
@@ -246,10 +246,9 @@
246
246
  "leer": true
247
247
  },
248
248
  {
249
- "art": "zeile",
250
- "text": " erstellt mit Kasseneck ",
251
- "fett": false,
252
- "leer": false
249
+ "art": "marke",
250
+ "breite": 234,
251
+ "hoehe": 34
253
252
  }
254
253
  ]
255
254
  }
@@ -234,10 +234,9 @@
234
234
  "leer": true
235
235
  },
236
236
  {
237
- "art": "zeile",
238
- "text": " erstellt mit Kasseneck ",
239
- "fett": false,
240
- "leer": false
237
+ "art": "marke",
238
+ "breite": 352,
239
+ "hoehe": 51
241
240
  }
242
241
  ]
243
242
  }
@@ -186,10 +186,9 @@
186
186
  "leer": true
187
187
  },
188
188
  {
189
- "art": "zeile",
190
- "text": " erstellt mit Kasseneck ",
191
- "fett": false,
192
- "leer": false
189
+ "art": "marke",
190
+ "breite": 234,
191
+ "hoehe": 34
193
192
  }
194
193
  ]
195
194
  }
@@ -186,10 +186,9 @@
186
186
  "leer": true
187
187
  },
188
188
  {
189
- "art": "zeile",
190
- "text": " erstellt mit Kasseneck ",
191
- "fett": false,
192
- "leer": false
189
+ "art": "marke",
190
+ "breite": 352,
191
+ "hoehe": 51
193
192
  }
194
193
  ]
195
194
  }
@@ -204,10 +204,9 @@
204
204
  "leer": true
205
205
  },
206
206
  {
207
- "art": "zeile",
208
- "text": " erstellt mit Kasseneck ",
209
- "fett": false,
210
- "leer": false
207
+ "art": "marke",
208
+ "breite": 234,
209
+ "hoehe": 34
211
210
  }
212
211
  ]
213
212
  }
@@ -204,10 +204,9 @@
204
204
  "leer": true
205
205
  },
206
206
  {
207
- "art": "zeile",
208
- "text": " erstellt mit Kasseneck ",
209
- "fett": false,
210
- "leer": false
207
+ "art": "marke",
208
+ "breite": 352,
209
+ "hoehe": 51
211
210
  }
212
211
  ]
213
212
  }
@@ -210,10 +210,9 @@
210
210
  "leer": true
211
211
  },
212
212
  {
213
- "art": "zeile",
214
- "text": " erstellt mit Kasseneck ",
215
- "fett": false,
216
- "leer": false
213
+ "art": "marke",
214
+ "breite": 234,
215
+ "hoehe": 34
217
216
  }
218
217
  ]
219
218
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 352,
203
+ "hoehe": 51
205
204
  }
206
205
  ]
207
206
  }
@@ -168,10 +168,9 @@
168
168
  "leer": true
169
169
  },
170
170
  {
171
- "art": "zeile",
172
- "text": " erstellt mit Kasseneck ",
173
- "fett": false,
174
- "leer": false
171
+ "art": "marke",
172
+ "breite": 234,
173
+ "hoehe": 34
175
174
  }
176
175
  ]
177
176
  }
@@ -162,10 +162,9 @@
162
162
  "leer": true
163
163
  },
164
164
  {
165
- "art": "zeile",
166
- "text": " erstellt mit Kasseneck ",
167
- "fett": false,
168
- "leer": false
165
+ "art": "marke",
166
+ "breite": 352,
167
+ "hoehe": 51
169
168
  }
170
169
  ]
171
170
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 234,
203
+ "hoehe": 34
205
204
  }
206
205
  ]
207
206
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -204,10 +204,9 @@
204
204
  "leer": true
205
205
  },
206
206
  {
207
- "art": "zeile",
208
- "text": " erstellt mit Kasseneck ",
209
- "fett": false,
210
- "leer": false
207
+ "art": "marke",
208
+ "breite": 234,
209
+ "hoehe": 34
211
210
  }
212
211
  ]
213
212
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 234,
203
+ "hoehe": 34
205
204
  }
206
205
  ]
207
206
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 234,
203
+ "hoehe": 34
205
204
  }
206
205
  ]
207
206
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 234,
203
+ "hoehe": 34
205
204
  }
206
205
  ]
207
206
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -198,10 +198,9 @@
198
198
  "leer": true
199
199
  },
200
200
  {
201
- "art": "zeile",
202
- "text": " erstellt mit Kasseneck ",
203
- "fett": false,
204
- "leer": false
201
+ "art": "marke",
202
+ "breite": 234,
203
+ "hoehe": 34
205
204
  }
206
205
  ]
207
206
  }
@@ -180,10 +180,9 @@
180
180
  "leer": true
181
181
  },
182
182
  {
183
- "art": "zeile",
184
- "text": " erstellt mit Kasseneck ",
185
- "fett": false,
186
- "leer": false
183
+ "art": "marke",
184
+ "breite": 352,
185
+ "hoehe": 51
187
186
  }
188
187
  ]
189
188
  }
@@ -204,10 +204,9 @@
204
204
  "leer": true
205
205
  },
206
206
  {
207
- "art": "zeile",
208
- "text": " erstellt mit Kasseneck ",
209
- "fett": false,
210
- "leer": false
207
+ "art": "marke",
208
+ "breite": 234,
209
+ "hoehe": 34
211
210
  }
212
211
  ]
213
212
  }