30. April 2024 17:20
elf hat geschrieben:fiddi hat geschrieben:was ist der Hintergrund? Evtl. gibt eine andere Lösung.
Das soll nach Möglichkiet so laufen:
-> Erfassung rudimentärer der Kopf- und Positionsdaten -> Buchen und Drucken - fertig
Klingt alles sehr gruselig ^^
Wie schon gesagt wurde...
VK anlegen und dann bei "Buchen" -> liefern UND fakturieren.
Der Auftrag ist dann schon korrekt verbucht. Jetzt zum letzten Problem, dass deine VKs ohne Preis raus gehen sollen, was bei bei Liefern und Fakturieren der Fall wäre.
Wenn sie das nicht händisch löschen wollen, weil es ihnen bei mehreren Artikel zu viel Arbeit ist, dann gibt es dafür eine relativ einfache Lösung.
Du "klaust" dir die Routine, die hinter "Liefern und Fakturieren" beim Buchen steht.
Für diese erstellst du eine neue Action.
In die Action steckst du vorher eine weitere kleine Routine, die per Repeat einfach alle VK-Preise auf 0 stellt.
Nenne die Action "Liefern ohne Preise" und gut ist.
Für eine "Umlagerung" kannst du auch Umlagerungsaufträge nutzen. Aber mal ehrlich, ein wenig Sorgfalt muss bei all dem dabei sein und kann nicht an "Faulheit" scheitern. ^^
Hier die Routine:
Wenn du die in die in eine Codeunit schmeißt, dann den SalesHeader mit übergeben, sonst wenn du die Procedure lokal machst, kannst du die Übergabe auch weglassen. Dann halt überall "SalesHeader" weglöschen.
procedure PostWithoutPrices(var SalesHeader: Record "Sales Header")
var
SalesLine: Record "Sales Line";
begin
Clear(SalesLine);
SalesLine.SetRange("Document Type", SalesHeader."Document Type"::Order);
SalesLine.SetRange("Document No.", SalesHeader."No.");
if SalesLine.FindSet(true, false) then begin
repeat
SalesLine."Unit Price" := 0;
SalesLine.Modify();
until SalesLine.Next() = 0;
end;
hier die Standard Action Starten oder nenn den ActionButton "VKs Nullen" und dann sollen sie halt 1x auf den Button und auf "Buchen" drücken
end;
Der Code ist ohne testen einfach nur kurz hier rein getippert, sollte aber fürs VK Nullen reichen.