[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", OnBeforeFinalizePosting, '', false, false)]
local procedure KeepSalesOrdersAfterInvoiced(var EverythingInvoiced: Boolean)
var
SalesSetup: Record "Sales & Receivables Setup";
begin
SalesSetup.FindFirst();
if SalesSetup.AllowStatusStayOpen then begin
EverythingInvoiced := false;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", OnAfterFinalizePosting, '', false, false)]
local procedure SetStatusBackToOpen(var SalesHeader: Record "Sales Header")
var
SalesSetup: Record "Sales & Receivables Setup";
begin
SalesSetup.FindFirst();
if SalesSetup.AllowStatusStayOpen then begin
SalesHeader.Status := SalesHeader.Status::Open;
SalesHeader.Modify();
end;
end;