Paul@GEKKO
Mitglied
Hallo Zusammen,
ich möchte gerne ein Lagerbuchungstool bauen, welches auch Entnahmestorno (ES) oder auch Zugangstorno (ZS) korrekt durchführt!
mit diesem (Test-)Code konnte ich eine ES zu einem Job und zu einer BuchungsID durchführen...
...jedoch fiel mir auf, dass in der stornierten ZM-Buchung das Flag "Intern" nicht auf 4 (=Storniert) gesetzt wird, daher geh ich davon aus, dass ich entweder die Buchung (zu Stornierende) nochmals speichern muss und ggf. Intern = 4 setze, oder es gibt eine Methode oder Eigenschaft bei der Stornobuchung selbst, an der ich rütteln müsste?!?
Und wenn ich beide Buchungen speichern müsste, dann in welcher Reihenfolge, bzw. was muss ich bei der stornierten Buchung alles setzen?
Mfg
Paul@GEKKO
ich möchte gerne ein Lagerbuchungstool bauen, welches auch Entnahmestorno (ES) oder auch Zugangstorno (ZS) korrekt durchführt!
mit diesem (Test-)Code konnte ich eine ES zu einem Job und zu einer BuchungsID durchführen...
C#:
List<int[]> IDs = new List<int[]>();
//Test JobID , BuchungsID
IDs.Add(new int[] { 980246, 11610531 });
IDs.Add(new int[] { 980247, 11610532 });
foreach (int[] jobbuch in IDs)
{
nJobID = jobbuch[0];
BuchungsId = jobbuch[1];
LagerJob oLagerJob = new LagerJob(_mandant, DateTime.Today, (short)DateTime.Today.Year);
oLagerJob.JobHandle = nJobID;
LagerplatzBuchung oLagerplatzbuchung = new LagerplatzBuchung(_mandant, DateTime.Today, (short)DateTime.Today.Year);
LagerplatzBuchung oLagerplatzbuchungZuStorno = new LagerplatzBuchung(_mandant, DateTime.Today, (short)DateTime.Today.Year);
oLagerplatzbuchungZuStorno.Load(BuchungsId);
Lagerplatz oHerkunftslagerplatz = new Lagerplatz(_mandant, DateTime.Today);
Lagerplatz oZielLagerplatz = new Lagerplatz(_mandant, DateTime.Today);
SeriennummernEintragCollection colSerienNr = new SeriennummernEintragCollection();
oLagerplatzbuchung.Bewegungsart = "ES";
oLagerplatzbuchung.SerienNummernPflichtigkeit = oLagerplatzbuchungZuStorno.SerienNummernPflichtigkeit;
oLagerplatzbuchung.Bewegungsdatum = oLagerplatzbuchungZuStorno.Bewegungsdatum;
oLagerplatzbuchung.Artikelnummer = oLagerplatzbuchungZuStorno.Artikelnummer;
oLagerplatzbuchung.MengeBasis = oLagerplatzbuchungZuStorno.MengeBasis;
oLagerplatzbuchung.MengeLager = oLagerplatzbuchungZuStorno.MengeLager;
oLagerplatzbuchung.SerienNummernCollection = oLagerplatzbuchungZuStorno.SerienNummernCollection;
oZielLagerplatz.PlatzHandle = oLagerplatzbuchungZuStorno.DataServiceLagerplatzbuchungTransfer.LagerplatzHerkunftHandle;
oHerkunftslagerplatz.PlatzHandle = oLagerplatzbuchungZuStorno.DataServiceLagerplatzbuchungTransfer.LagerplatzZielHandle;
if (oLagerplatzbuchung.PruefeBuchung(ref oHerkunftslagerplatz, ref oZielLagerplatz, false, false))
{
oLagerplatzbuchung.Intern = 2;
if (!oLagerplatzbuchung.Save(ref oHerkunftslagerplatz, ref oZielLagerplatz, oLagerJob))
{
Console.WriteLine($"/!\\ - BUCHUNG GESCHEITERT: <ES> JobID: {nJobID} mit BuchungsID: {BuchungsId} nicht möglich!" + "\n### MELDUNG ###\n" + oLagerplatzbuchung.Errors.GetDescriptionSummary());
}
}
else
{
Console.WriteLine($"/!\\ - PRÜFUNG GESCHEITERT: <ES> JobID: {nJobID} mit BuchungsID: {BuchungsId} nicht möglich!" + "\n### MELDUNG ###\n" + oLagerplatzbuchung.Errors.GetDescriptionSummary());
}
}
...jedoch fiel mir auf, dass in der stornierten ZM-Buchung das Flag "Intern" nicht auf 4 (=Storniert) gesetzt wird, daher geh ich davon aus, dass ich entweder die Buchung (zu Stornierende) nochmals speichern muss und ggf. Intern = 4 setze, oder es gibt eine Methode oder Eigenschaft bei der Stornobuchung selbst, an der ich rütteln müsste?!?
Und wenn ich beide Buchungen speichern müsste, dann in welcher Reihenfolge, bzw. was muss ich bei der stornierten Buchung alles setzen?
Mfg
Paul@GEKKO