KI-AGENT: Niederlassungslager für Verkaufsbelege festlegen

This commit is contained in:
2026-09-07 20:59:56 +02:00
parent ca4cf119c0
commit 23d2dc0ca8

View File

@@ -53,7 +53,6 @@ Die Mengenfelder von Inventar und Kundeninventar werden nicht zur Bestandsführu
| `allowNegativeStock` | negativer Bestand erlaubt; für den festgelegten Verkaufsprozess standardmäßig `true` |
| `minimumStock` | mandantenweiter Mindestbestand, optional |
| `reorderPoint` | Meldebestand, optional |
| `defaultWarehouse` | bevorzugtes Lager, optional |
| `valuationMethod` | zunächst fest `moving_average`, für spätere Erweiterung vorbereitet |
Die bestehende `unit` ist die Bestandsbasiseinheit. Mengen sollten als `numeric`, nicht als `bigint`, gespeichert werden, da Einheiten wie Meter, Stunden oder Kilogramm Dezimalmengen benötigen. Die erlaubte Genauigkeit kann aus `units.step` abgeleitet werden.
@@ -76,6 +75,8 @@ Die bestehenden `spaces` können als hierarchische Lagerstruktur weiterverwendet
Jedes Lager gehört zu einer vorhandenen FEDEO-Niederlassung (`branches`). Untergeordnete Lagerplätze übernehmen diese Niederlassung; zur schnellen Filterung wird `branchId` auch auf ihnen gespeichert und beim Verschieben im Baum konsistent aktualisiert. Umlagerungen zwischen Niederlassungen sind normale, atomare Umlagerungsbuchungen und können gesondert ausgewertet werden. Für Mandanten ohne bisherige Niederlassung wird bei der Migration eine Standardniederlassung benötigt.
Jede Niederlassung erhält optional `defaultReceiptSpaceId` und `defaultIssueSpaceId`. Diese Standardplätze müssen zur jeweiligen Niederlassung gehören und Bestand erlauben. So besitzt nicht der Artikel ein einziges mandantenweites Standardlager, sondern jede Niederlassung kann denselben Artikel aus ihrem eigenen Lager beziehen.
Ein typischer Baum lautet beispielsweise `Niederlassung München > Hauptlager > Halle A > Regal 03 > Fach 02`. Nur ausdrücklich aktivierte Knoten dürfen Bestand tragen. Die Kombination aus `tenant` und `space_number` sowie ein gesetzter Barcode müssen eindeutig sein. Ein Lagerplatz darf nicht sich selbst oder einen seiner Nachfolger als übergeordneten Lagerplatz erhalten. Typ, übergeordneter Platz und Niederlassung müssen stets demselben Mandanten angehören.
### Lagerbeleg und Buchungszeilen
@@ -126,6 +127,8 @@ Damit Rechnung und Lieferschein nicht dieselbe Menge doppelt ausbuchen, wird zus
Jede artikelbezogene Belegposition benötigt eine stabile `sourceLineId`. Beim Ableiten eines Lieferscheins oder einer Rechnung wird diese Herkunfts-ID in die neue Position übernommen. So kann das Backend auch Teilmengen durch die gesamte Belegkette verfolgen.
Rechnungen und Lieferscheine erhalten eine verpflichtende `branchId` sowie einen vorbelegten `issueSpaceId`. Der Ausgabeplatz stammt standardmäßig aus `branches.defaultIssueSpaceId`, kann aber vor dem endgültigen Bestätigen geändert werden. Für Sonderfälle kann eine Position einen abweichenden Ausgabeplatz tragen. Beleg, Niederlassung und alle gewählten Ausgabeplätze müssen zum aktiven Mandanten gehören; bei abweichenden Niederlassungen verlangt FEDEO eine bewusste Bestätigung.
Bei der Bestätigung eines Verkaufsbelegs wird je Position berechnet:
```text