Lagerbuchungen
BpNexT.NET bietet eine typsichere API für Lagerbuchungen über den
LagerContext.
Buchungen ändern den Lagerbestand. Verwenden Sie für Tests einen geeigneten Testmandanten.
Lagerkontext
using var lager = bpApp.ArtikelLager("ARTIKEL-001");
ArtikelLager öffnet den Kontext für einen Artikel.
Der LagerContext ist IDisposable und sollte immer mit using verwendet werden.
Die Buchung selbst führt Execute aus.
Einbuchen
Mit LagerEinbuchungBuilder kann Warenbestand eingebucht werden:
using var lager = bpApp.ArtikelLager("ARTIKEL-001");
var einbuchung = new LagerEinbuchungBuilder("HAUPTLAGER", menge: 3)
.MitLieferantenNummer("DELL-DE")
.MitEinkaufspreis(899.00)
.MitSeriennummern("SN-001", "SN-002", "SN-003")
.Build();
lager.Execute(einbuchung);
Umbuchen
Mit LagerUmbuchungBuilder kann Bestand zwischen Lagern umgebucht werden:
using var lager = bpApp.ArtikelLager("ARTIKEL-001");
var umbuchung = new LagerUmbuchungBuilder(
vonLager: "LAGER-01",
nachLager: "LAGER-02",
menge: 25)
.Build();
lager.Execute(umbuchung);
Ausbuchen
Mit LagerAbgangBuilder kann Bestand entnommen werden:
using var lager = bpApp.ArtikelLager("ARTIKEL-001");
var abgang = new LagerAbgangBuilder("LAGER-01", menge: 2)
.MitSeriennummern("SN-001", "SN-002")
.Build();
lager.Execute(abgang);
Seriennummern
Seriennummern können direkt im Builder angegeben werden oder über den SeriennummernManager:
// Bereichssyntax: "SN100..10" erzeugt SN100 bis SN109
lager.Seriennummern.Add("SN100..10");
// Oder einzeln
lager.Seriennummern.AddRange(new[] { "SN-001", "SN-002" });
Wichtig: Die Anzahl der Seriennummern muss exakt mit der gebuchten Menge übereinstimmen.