Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[event publisher insert] in event "Copy Document Mgt." (Codeunit 6620) proc "CopySalesInvLinesToDoc" #27458

Open
hobali opened this issue Oct 17, 2024 · 0 comments

Comments

@hobali
Copy link

hobali commented Oct 17, 2024

Dear Support,

Could you please create a new publisher in "Copy Document Mgt." (Codeunit 6620) and a bit the following code at procedure "CopySalesInvLinesToDoc"? The publishers name could be: "OnBeforeNextLineNoOnAfterFindSetSalesInvLines" and "OnAfterInsertOldSalesCombDocNoLine".

<<<<< Original Code >>>>>

if TempSalesLineBuf.FindSet() then begin
            NextLineNo := GetLastToSalesLineNo(ToSalesHeader);
            repeat
                ToLineCounter := ToLineCounter + 1;
                if IsTimeForUpdate() then
                    UpdateWindow(2, ToLineCounter);
                ShouldInsertOldSalesDocNoLine := TempSalesLineBuf."Shipment No." <> OldInvDocNo;
                OnCopySalesInvLinesToDocOnAfterCalcShouldInsertOldSalesDocNoLine(TempSalesLineBuf, ToSalesHeader, ShouldInsertOldSalesDocNoLine);
                if ShouldInsertOldSalesDocNoLine then begin
                    OldInvDocNo := TempSalesLineBuf."Shipment No.";
                    OldShptDocNo := '';
                    FirstLineShipped := true;
                    OnCopySalesInvLinesToDocOnBeforeInsertOldSalesDocNoLine(ToSalesHeader, SkipCopyFromDescription);
                    InsertOldSalesDocNoLine(ToSalesHeader, OldInvDocNo, 2, NextLineNo);
                    OnCopySalesInvLinesToDocOnAfterInsertOldSalesDocNoLine(ToSalesHeader, SkipCopyFromDescription);
                end;
                CheckFirstLineShipped(TempSalesLineBuf."Document No.", TempSalesLineBuf."Shipment Line No.", SalesCombDocLineNo, NextLineNo, FirstLineShipped);
                OnCopySalesInvLinesToDocOnAfterCheckFirstLineShipped(ToSalesHeader, 2, TempSalesLineBuf."Document No.", OldShptDocNo);
                if (TempSalesLineBuf."Document No." <> OldShptDocNo) and (TempSalesLineBuf."Shipment Line No." > 0) then begin
                    if FirstLineShipped then
                        SalesCombDocLineNo := NextLineNo;
                    OldShptDocNo := TempSalesLineBuf."Document No.";
                    InsertOldSalesCombDocNoLine(ToSalesHeader, OldInvDocNo, OldShptDocNo, SalesCombDocLineNo, true);
                    NextLineNo := NextLineNo + 10000;
                    FirstLineShipped := true;
                end;

<<<<< Modified >>>>>

[IntegrationEvent(false, false)]
    local procedure OnBeforeNextLineNoOnAfterFindSetSalesInvLines(ToSalesHeader: Record "Sales Header"; var IsHandled: Boolean; var NextLineNo: Integer; TempSalesLineBuf: Record "Sales Line" temporary)
    begin
    end;

[IntegrationEvent(false, false)]
    local procedure OnAfterInsertOldSalesCombDocNoLine(ToSalesHeader: Record "Sales Header"; var IsHandled: Boolean; var NextLineNo: Integer; TempSalesLineBuf: Record "Sales Line" temporary)
    begin
    end;

Add "IsHandled" To local var selection

if TempSalesLineBuf.FindSet() then begin
            NextLineNo := GetLastToSalesLineNo(ToSalesHeader);
            repeat
                IsHandled := false;
                OnBeforeNextLineNoOnAfterFindSetSalesInvLines(ToSalesHeader, IsHandled, NextLineNo, TempSalesLineBuf);
                if not IsHandledt then
                    ToLineCounter := ToLineCounter + 1;
                if IsTimeForUpdate() then
                    UpdateWindow(2, ToLineCounter);
                ShouldInsertOldSalesDocNoLine := TempSalesLineBuf."Shipment No." <> OldInvDocNo;
                OnCopySalesInvLinesToDocOnAfterCalcShouldInsertOldSalesDocNoLine(TempSalesLineBuf, ToSalesHeader, ShouldInsertOldSalesDocNoLine);
                if ShouldInsertOldSalesDocNoLine then begin
                    OldInvDocNo := TempSalesLineBuf."Shipment No.";
                    OldShptDocNo := '';
                    FirstLineShipped := true;
                    OnCopySalesInvLinesToDocOnBeforeInsertOldSalesDocNoLine(ToSalesHeader, SkipCopyFromDescription);
                    InsertOldSalesDocNoLine(ToSalesHeader, OldInvDocNo, 2, NextLineNo);
                    OnCopySalesInvLinesToDocOnAfterInsertOldSalesDocNoLine(ToSalesHeader, SkipCopyFromDescription);
                end;
                CheckFirstLineShipped(TempSalesLineBuf."Document No.", TempSalesLineBuf."Shipment Line No.", SalesCombDocLineNo, NextLineNo, FirstLineShipped);
                OnCopySalesInvLinesToDocOnAfterCheckFirstLineShipped(ToSalesHeader, 2, TempSalesLineBuf."Document No.", OldShptDocNo);
                if (TempSalesLineBuf."Document No." <> OldShptDocNo) and (TempSalesLineBuf."Shipment Line No." > 0) then begin
                    if FirstLineShipped then
                        SalesCombDocLineNo := NextLineNo;
                    OldShptDocNo := TempSalesLineBuf."Document No.";
                    InsertOldSalesCombDocNoLine(ToSalesHeader, OldInvDocNo, OldShptDocNo, SalesCombDocLineNo, true);
                    IsHandled := false;
                    OnAfterInsertOldSalesCombDocNoLine(ToSalesHeader, IsHandled, NextLineNo, TempSalesLineBuf);
                    if not isHandled then
                        NextLineNo := NextLineNo + 10000;
                    FirstLineShipped := true;
                end;

Additional context
We need to skip the Release part of the code for several times due to a customer condition.

Thank you in advance.

@hobali hobali changed the title [event publisher insert] in event "Copy Document Mgt." (Codeunit 6620) [event publisher insert] in event "Copy Document Mgt." (Codeunit 6620) proc "CopySalesInvLinesToDoc" Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant