Nummernkreise (NumberCircles)
Zweck
NumberCircle definiert pro Modell-Typ (z. B. Customer, Supplier, Manufacturer, SalesDocument, PurchaseDocument) eine automatische Nummerierungs-Regel: Praefix + laufende Nummer + Suffix bei Mindestlaenge. Beim Speichern eines neuen Belegs/Kunden wird der zugehörige NumberCircle abgerufen, der Zaehler number inkrementiert und die formatierte Nummer im neuen Datensatz gespeichert (NumberCircleAssignment).
DATEV-Hinweis: Für modelType Customer/Manufacturer/Supplier zeigt die Form einen Hilfstext aus datev.bookingBatch.7.description — DATEV-Standardstrukturen zur Debitoren-/Kreditorennummerierung sind im Wizard hinterlegt.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_NumberCircle, NumberCircle | Liste/Detail aufrufbar | — |
create/update/delete | NumberCircle | Pflegen | APP_SPEAMCORE_CREATE/UPDATE/DELETE_NUMBER_CIRCLE |
Schritt-für-Schritt-Anleitung
Nummernkreis anlegen
- Nummernkreise (
/number-circles) → + Neu. modelTypewählen (z. B.SalesDocument,Customer).prefixsetzen (z. B.R-für Rechnung).numberals Startwert (z. B.1000).suffixoptional (z. B.-2026).numberLength— Mindestlaenge der laufenden Nummer (mit fuehrenden Nullen aufgefuellt).
Beispiel: prefix = R-, number = 1, numberLength = 5 → erste Nummer R-00001.
DATEV-Standard für Kunden/Lieferanten
Der Setup-Wizard liefert in Schritt 3 oder 4 vorgefertigte NumberCircles, die der DATEV-Empfehlung folgen. Manuelles Anlegen weicht davon ab und kann zu Konflikten beim DATEV-Export fuehren.

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
modelType | ja | String | Sequelize-Modellname (z. B. Customer, SalesDocument, PurchaseDocument). Bestimmt, welche Entitaeten diesen Kreis nutzen. | — |
subModelType | nein | String | Optional Sub-Typ (z. B. RECHNUNG vs. ANGEBOT bei SalesDocument). | — |
name | nein | String | Beschreibender Name (z. B. „Rechnungsnummern 2026"). | — |
prefix | nein | String | Vorangestelltes Zeichen (z. B. R-). | — |
number | ja | Integer | Aktueller Zaehlerstand. Bei Neueintrag inkrementiert das Backend atomar. | — |
numberLength | ja | Integer | Mindestlaenge mit fuehrenden Nullen. | — |
suffix | nein | String | Hinten angestelltes Zeichen (z. B. -2026). | — |
info | — (read-only, abgeleitet) | String | DATEV-Hilfstext bei modelType Customer/Manufacturer/Supplier. | — |
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Verkaufsbelege, Bestellbelege, Kunden, Lieferanten, Hersteller — typische Konsumenten über
NumberCircleAssignment. - Setup-Wizard — Schritt 3 (Mandantendaten) und 4 (Standards laden) legen DATEV-konforme NumberCircles an.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Nummer wird doppelt vergeben | Datenbank-Lock auf NumberCircle defekt — Sequelize-Transaktionen prüfen. |
| Falscher Praefix bei neuen Belegen | Falscher NumberCircle pro modelType — alten deaktivieren oder anpassen. |
| Fuehrende Nullen fehlen | numberLength zu klein gesetzt. |
| DATEV-Export schlaegt fehl | NumberCircle weicht von DATEV-Konvention ab — typischerweise Kunden 10000–69999, Lieferanten 70000–99999. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/number-circles | Liste | view NumberCircle |
POST | /api/number-circles | Anlegen | create NumberCircle |
GET | /api/number-circles/:id | Detail | view NumberCircle |
PATCH | /api/number-circles/:id | Ändern | update NumberCircle |
DELETE | /api/number-circles/:id | Soft-Delete | delete NumberCircle |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.