Lagerplatzzuordnung an EKBelegPosition anpassen/neu setzen

Arne Drews

Mitglied
Moin, er hat mal wieder ne Frage :)

Ich entwickle gerade eine Oberfläche ( .NET ), in der es dem Benutzer u.a. möglich sein soll, die Lagerplatzzuordnungen an den Positionen verändern zu können.
Hängen tue ich gerade beim zurückschreiben an die Position.

Der Einfachheit halber sage ich mal als Beispiel, eine Position wurde auf zwei Lagerplätze aufgeteilt:

Bestellte Menge = 500
Platz 1 mit Menge = 250
Platz 2 mit Menge = 250

Nun wäre es einfach, wenn ich nur auf den bereits gebundenen Plätzen die Mengen anpassen will.
Aber es geht darum, dass auch weitere Lagerplätze dazu kommen können.

Etwas wie folgt würde natürlich gehen:
C#:
LagerPosition lager = new LagerPosition();
lager.PlatzHandle = meine_id;
lager.Menge = meine_menge;

position.Lagerplatz.Add(lager);

aber dann fehlen natürlich noch sämtliche weitere Informationen an der LagerplatzPosition und ich finde auch keine Methode, die diese Zuordnung konform berechnet. Gibt es da ein Möglichkeit oder muss ich wirklich jeden Parameter selber setzen?

Im Prinzip der gleiche Vorgang, wie es in der Sage im Standard auch möglich ist ( daher gehe ich davon aus, dass es irgendetwas geben muss? ), aber es wäre hilfreich für unsere Mitarbeiter, wenn sie dafür dann nicht extra in die Sage switchen müssen.

Ich hoffe, ich konnte das verständlich rüberbringen und bin dankbar für Infos?
;)
 
Als Alternative habe ich mir mal die Tabellen angesehen. Es ist zwar dann nur ein dirty workaround, aber scheinbar gibt es keine einfache Lösung dafür.

Da es sich in dem Fall ausschließlich um Dokumente handelt, bei denen keine Statistikwirkung aus Lagersicht greift, wäre mein dirty Ansatz, die Tabelle KHKEKBelegePositionenLager anzupassen.

Dazu vielleicht irgendwelche Hinweise/Warnungen?
:)
 
Der Vollständigkeit halber, falls jemand das auch mal benötigt: Es geht auch über das Sage-Objekt:
C#:
// Avis := EK-Bestellbeleg
// index := Index der Position, an der die Lager neu verteilt werden sollen
foreach (LocationPlaceAssignmentModel lager in StaticContextHelper.CurrentModifyingPositionModel.Locations)
{
    LagerPosition lp = new LagerPosition();
    
    lp.PlatzHandle = lager.PlaceId;
    lp.Kurzbezeichnung = lager.Label;
    lp.Menge = lager.Quantity;
    lp.MengeBasis = lager.Quantity;

    Avis.Positionen[index].Lagerplatz.Add(lp);
}
Die vier Angaben reichen scheinbar aus.
 
Zurück
Oben