Table of Contents

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.