Zum Hauptinhalt springen

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

- Berechtigung `view:NumberCircle` und `create:NumberCircle`. - Für jeden modelType, der nummeriert werden soll, ist genau ein aktiver NumberCircle pro Mandant erforderlich.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_NumberCircle, NumberCircleListe/Detail aufrufbar
create/update/deleteNumberCirclePflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_NUMBER_CIRCLE

Schritt-für-Schritt-Anleitung

Nummernkreis anlegen

  1. Nummernkreise (/number-circles) → + Neu.
  2. modelType wählen (z. B. SalesDocument, Customer).
  3. prefix setzen (z. B. R- für Rechnung).
  4. number als Startwert (z. B. 1000).
  5. suffix optional (z. B. -2026).
  6. 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.

Listenansicht — number-circles

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
modelTypejaStringSequelize-Modellname (z. B. Customer, SalesDocument, PurchaseDocument). Bestimmt, welche Entitaeten diesen Kreis nutzen.
subModelTypeneinStringOptional Sub-Typ (z. B. RECHNUNG vs. ANGEBOT bei SalesDocument).
nameneinStringBeschreibender Name (z. B. „Rechnungsnummern 2026").
prefixneinStringVorangestelltes Zeichen (z. B. R-).
numberjaIntegerAktueller Zaehlerstand. Bei Neueintrag inkrementiert das Backend atomar.
numberLengthjaIntegerMindestlaenge mit fuehrenden Nullen.
suffixneinStringHinten angestelltes Zeichen (z. B. -2026).
info— (read-only, abgeleitet)StringDATEV-Hilfstext bei modelType Customer/Manufacturer/Supplier.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

Häufige Fehler und Lösungen

FehlerLösung
Nummer wird doppelt vergebenDatenbank-Lock auf NumberCircle defekt — Sequelize-Transaktionen prüfen.
Falscher Praefix bei neuen BelegenFalscher NumberCircle pro modelType — alten deaktivieren oder anpassen.
Fuehrende Nullen fehlennumberLength zu klein gesetzt.
DATEV-Export schlaegt fehlNumberCircle weicht von DATEV-Konvention ab — typischerweise Kunden 10000–69999, Lieferanten 70000–99999.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/number-circlesListeview NumberCircle
POST/api/number-circlesAnlegencreate NumberCircle
GET/api/number-circles/:idDetailview NumberCircle
PATCH/api/number-circles/:idÄndernupdate NumberCircle
DELETE/api/number-circles/:idSoft-Deletedelete NumberCircle

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.