Skip to main content

Notifications

Announcements

No record found.

Small and medium business | Business Central, N...
Answered

Want to get copy Notes of sales order in new sales order from existing order

(0) ShareShare
ReportReport
Posted on by 200

Hi,I am able to copy notes of same table, but I have two table one local table and one business Central table, so when I add note to my local table, my note is not getting updated in new sales order, so please any idea for that?

So how can notes be copied between different tables like notes on local table copy to update sales order table need Al code functionality for that:

Local table card, added notes here and went to exchange action and

enira.png

After when I click on create exchange action I get the updated sales return order where I need to copy my notes,but not copied.

create.png

2376.blamk-screen-shot.png

Here is the code that I tried, is there anything can be updated please help.

page 50435 EnquiriesProcess
{
    ApplicationArea = All;
    Caption = 'Enquiries Process';
    DataCaptionExpression = 'Enquiries Process';
    PageType = List;
    SourceTable = Enquiries;
    UsageCategory = Administration;

    layout
    {
        area(content)
        {
            repeater(General)
            {
                field(CollectionCharge; Rec.CollectionCharge)
                {
                    ApplicationArea = All;
                }
            }
        }
    }
    actions
    {
        area(Processing)
        {

            action(CreateExchange)
            {
                Caption = 'Create Exchange';
                Image = Process;
                ApplicationArea = All;
                trigger OnAction()
                var
                    cu_EnquiriesAndReturns: Codeunit EnquiriesAndReturns;
                    cu_commonhelper: Codeunit CommonHelper;
                    recEnquiriesLine: Record "Enquiries Line";
                    recEnquiries: Record Enquiries;

                    cu_CopyDocumentMgt: Codeunit "Copy Document Mgt.";
                    ToSalesHeader, ToSalesOrder : Record "Sales Header";
                    rec_SalesLines, rec_SalesLineRetuurned : Record "Sales Line";
                    enum_DocumentType: Enum "Sales Document Type";
                    rec_EnquiriesLine: Record "Enquiries Line";
                    total: Decimal;
                    item, exitvalue, itemexitvalue : Decimal;
                    rec_Item: Record Item;
                    lineno: Integer;
                    SourceRecordLink: Record "Record Link";
                    SourceRecordLinkA: Record "Record Link";
                    id: RecordId;
                    LastLinkID: Integer;

                begin
                    if Rec.CollectionCharge = Rec.CollectionCharge::Carrier then begin

                        ToSalesHeader.Init();
                        ToSalesHeader.InitRecord;
                        ToSalesHeader."Document Type" := enum_DocumentType::"Return Order";
                        ToSalesHeader.Insert(true);

                        ToSalesHeader.SetRange("Document Type", enum_DocumentType::"Return Order");
                        ToSalesHeader.SetRange("No.", ToSalesHeader."No.");
                        if ToSalesHeader.FindFirst() then begin
                            if not rec.isArchive then begin
                                cu_CopyDocumentMgt.SetProperties(true, false, false, false, false, false, false);
                                cu_CopyDocumentMgt.CopySalesDoc("Sales Document Type From"::Order, rec.No, ToSalesHeader);

                                rec_EnquiriesLine.SetRange("Document No.", Rec.No);
                                if rec_EnquiriesLine.FindSet() then begin
                                    SourceRecordLink.SetRange("Record ID", Rec.RecordId);//copy note part
                                    if SourceRecordLink.FindSet() then begin
                                        //     LastLinkID := 0;
                                        //     GetLastLinkID();
                                        //     LastLinkID += 1;
                                        SourceRecordLinkA.Init();
                                        SourceRecordLinkA.Copy(SourceRecordLink);
                                        SourceRecordLinkA."Record ID" := ToSalesHeader.RecordId;
                                        SourceRecordLinkA.Insert();
                                        //     Message('%1', Rec.RecordId);
                                        // end
                                        // else begin
                                        //     Message('%1', 'Not Found');
                                        // end;
                                        PAGE.Run(PAGE::"Sales Return Order", ToSalesHeader);
                                    end;
                                end
                                else begin
                                    cu_CopyDocumentMgt.SetProperties(true, false, false, false, false, false, false);
                                    cu_CopyDocumentMgt.SetArchDocVal(rec.ArchieveOccurrence, rec.ArchieveVersionNo);
                                    cu_CopyDocumentMgt.CopySalesDoc("Sales Document Type From"::"Arch. Order", rec.No, ToSalesHeader);
                                    rec_EnquiriesLine.SetRange("Document No.", Rec.No);
                                    if rec_EnquiriesLine.FindSet() then begin
                                        SourceRecordLink.SetRange("Record ID", Rec.RecordId);//copy note part 
                                        if SourceRecordLink.FindSet() then begin
                                            //     LastLinkID := 0;
                                            //     GetLastLinkID();
                                            //     LastLinkID += 1;
                                            SourceRecordLinkA.Init();
                                            SourceRecordLinkA.Copy(SourceRecordLink);
                                            SourceRecordLinkA."Record ID" := ToSalesHeader.RecordId;
                                            SourceRecordLinkA.Insert();
                                            //     Message('%1', Rec.RecordId);
                                            // end
                                            // else begin
                                            //     Message('%1', 'Not Found');
                                            // end;
                                            PAGE.Run(PAGE::"Sales Return Order", ToSalesHeader);

                                        end;
                                    end;


                                end;

                                rec_EnquiriesLine.SetRange("Document No.", Rec.No);
                                if rec_EnquiriesLine.FindSet() then begin
                                    repeat

                                        rec_SalesLines.SetRange("Document No.", ToSalesHeader."No.");
                                        rec_SalesLines.SetRange("Document Type", enum_DocumentType::"Return Order");
                                        rec_SalesLines.SetRange("Line No.", rec_EnquiriesLine."Line No.");

                                        if rec_SalesLines.FindFirst() then begin
                                            if rec_EnquiriesLine."Return/Replace" > 0 then begin
                                                rec_SalesLines.Quantity := rec_EnquiriesLine."Return/Replace";
                                                rec_SalesLines.Validate(Quantity);
                                                rec_SalesLines."Return Qty. to Receive" := rec_EnquiriesLine."Return/Replace";
                                                rec_SalesLines."Return Reason Code" := rec_EnquiriesLine."Return Reason Code";
                                                rec_SalesLines.Validate("Return Qty. to Receive");
                                                //exitvalue := rec_SalesLines."Total Returned";
                                                total := rec_EnquiriesLine."Return/Replace";
                                                rec_SalesLines.Modify(true);

                                                rec_SalesLineRetuurned.SetRange("Document No.", rec.No);
                                                rec_SalesLineRetuurned.SetRange("Document Type", enum_DocumentType::Order);
                                                rec_SalesLineRetuurned.SetRange("Line No.", rec_EnquiriesLine."Line No.");

                                                if rec_SalesLineRetuurned.FindFirst() then begin
                                                    //  exitvalue := rec_SalesLineRetuurned."Total Returned";
                                                    // rec_SalesLineRetuurned."Total Returned" := exitvalue + total;
                                                    rec_SalesLineRetuurned.Modify(true);
                                                end;

                                                rec_Item.SetRange("No.", rec_SalesLineRetuurned."No.");
                                                if rec_Item.FindFirst() then begin
                                                    //itemexitvalue := rec_Item.TotalReturn;
                                                    // rec_Item.TotalReturn := itemexitvalue + exitvalue + total;
                                                    rec_Item.Modify(true);
                                                end


                                            end
                                            else begin
                                                // rec_SalesLines.Delete();
                                            end;

                                        end;
                                    until rec_EnquiriesLine.next() = 0;



                                end;

                                rec_SalesLines.Reset();
                                rec_SalesLines.SetRange("Document No.", ToSalesHeader."No.");
                                rec_SalesLines.SetRange("Document Type", enum_DocumentType::"Return Order");
                                rec_SalesLines.SetRange("No.", 'CARRIAGE');
                                if rec_SalesLines.FindFirst() then begin
                                    repeat
                                        rec_SalesLines.Delete();
                                    until rec_SalesLines.Next() = 0;
                                end;

                                //  lineno := cu_commonhelper.GetLastLineNo(ToSalesHeader."No.");
                                rec_SalesLines.Reset();
                                rec_SalesLines.Init();
                                rec_SalesLines."Document No." := ToSalesHeader."No.";
                                rec_SalesLines."Document Type" := enum_DocumentType::"Return Order";
                                rec_SalesLines.Type := "Sales Line Type"::Item;
                                rec_SalesLines."Line No." := lineno;
                                rec_SalesLines."No." := 'RETURNCHARGE';
                                rec_SalesLines.Validate("No.");

                                rec_SalesLines.Insert(true);


                                // cu_EnquiriesAndReturns.ItemJournalPost(rec_SalesLines."No.", rec_SalesLines."Document No.", rec_SalesLines.Quantity, rec_SalesLines.Amount, rec_SalesLines.Description);

                            end;
                            if Rec.CollectionCharge = Rec.CollectionCharge::CollectPlus then begin
                                Message('CollectPlus');
                            end;
                            if Rec.CollectionCharge = Rec.CollectionCharge::Waiver then begin
                                Message('Waiver');
                            end;

                        end;
                    end;
                end;
            }

        }
    }
    // local procedure GetLastLinkID()
    // var
    //     RecordLink: Record "Record Link";
    //     LastLinkID: Integer;
    // begin
    //     RecordLink.Reset();
    //     if RecordLink.FindLast() then
    //         LastLinkID := RecordLink."Link ID"
    //     else
    //         LastLinkID := 0;
    // end;

    trigger OnOpenPage()
    var
        recEnquiries: Record Enquiries;
        recItemJournal: Record "Item Journal Line";
    begin
        recEnquiries.SetRange(No, Rec.No);
        if recEnquiries.FindSet() then
            CurrPage.SetTableView(recEnquiries);
    end;

}
  • Dividutt Profile Picture
    Dividutt 200 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    Do we need to change onopenpage trigger?

    Or how it can be done?

  • Dividutt Profile Picture
    Dividutt 200 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    Here it is:

    if rec_SalesHeader.FindSet() then begin

               repeat

                   recEnquiries.SetRange(No, rec_SalesHeader."No.");

                   if not recEnquiries.FindFirst() then begin

                       recEnquiries.Init();

                       recEnquiries.Id := CreateGuid();

                       recEnquiries.No := rec_SalesHeader."No.";

                       recEnquiries."Sell-to Customer Name" := rec_SalesHeader."Ship-to Name";

                       recEnquiries.Contact := rec_SalesHeader."Ship-to Contact";

                       recEnquiries.Address := rec_SalesHeader."Ship-to Address";

                       recEnquiries.County := rec_SalesHeader."Ship-to County";

                       recEnquiries.Postcode := rec_SalesHeader."Ship-to Post Code";

                       recEnquiries.Country := rec_SalesHeader."Ship-to Country/Region Code";

                       recEnquiries.Email := rec_SalesHeader."Sell-to E-Mail";

                       recEnquiries.Phone := rec_SalesHeader."Ship-to Contact";

                       recEnquiries."Sell-to City" := rec_SalesHeader."Ship-to City";

                       recEnquiries."Ship-to-Contact" := rec_SalesHeader."Ship-to Contact";

                       recEnquiries."Ship-to City" := rec_SalesHeader."Ship-to City";

                       recEnquiries."Ship-to County" := rec_SalesHeader."Ship-to County";

                       recEnquiries."Ship-to Post Code" := rec_SalesHeader."Ship-to Post Code";

                       recEnquiries."Ship-to Country" := rec_SalesHeader."Ship-to Country/Region Code";

                       recEnquiries."Ship-to Address" := rec_SalesHeader."Ship-to Address";

                       rec_SalesHeader.CalcFields("Amount Including VAT");

                       recEnquiries."Total Value" := rec_SalesHeader."Amount Including VAT";

                       recEnquiries.History := GetSalesHistory(rec_SalesHeader."No.");

                       recEnquiries.Reference := rec_SalesHeader."Your Reference";

                       recEnquiries.Description := rec_SalesHeader."External Document No.";

                       //  recEnquiries."Internal Notes" := rec_SalesHeader.customDeliveryNotes;

                       recEnquiries.isArchive := false;

                       recEnquiries.DateCreated := DT2DATE(rec_SalesHeader.SystemCreatedAt);

                       recEnquiries."Sell-to Customer No." := rec_SalesHeader."Sell-to Customer No.";

                       recEnquiries."Location Code" := rec_SalesHeader."Location Code";

                       recEnquiries.Status := rec_SalesHeader.Status;

                       if rec_SalesHeader.HasLinks then

                           recEnquiries.CopyLinks(rec_SalesHeader);

                       recEnquiries.Insert(true);

                       InsertSalesLine(recEnquiries.No);

                   end;

               until rec_SalesHeader.Next() = 0;

           end;

    /calling

    Trigger onopenpage()

    Var

    Cu_entry: Codeunit Enquiry

    Begin

    Cu_entry.InsertEnquiriesHeader();

    End;

  • Suggested answer
    Mohana Yadav Profile Picture
    Mohana Yadav 59,194 Super User 2024 Season 2 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    where did you write this code?

    Please share your full code.

  • Dividutt Profile Picture
    Dividutt 200 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    notes-goes-on-incrawing.png

    When I am revisiting the page the notes count is increasing why? 

              recEnquiries."Sell-to Customer No." := rec_SalesHeader."Sell-to Customer No.";
                        recEnquiries."Location Code" := rec_SalesHeader."Location Code";
                        recEnquiries.Status := rec_SalesHeader.Status;
                        if rec_SalesHeader.HasLinks then
                            recEnquiries.CopyLinks(rec_SalesHeader);
                        recEnquiries.Insert(true);
                        InsertSalesLine(recEnquiries.No);
                    end;
                until rec_SalesHeader.Next() = 0;
            end;

    I used copylinks before insert is it right?

    Please help

  • Dividutt Profile Picture
    Dividutt 200 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    Yes,tried, this one is working thankyou

  • Verified answer
    Mohana Yadav Profile Picture
    Mohana Yadav 59,194 Super User 2024 Season 2 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    Try this code to copy the notes

    if Rec.HasLinks then

      ToSalesHeader.CopyLinks(Rec);

  • Dividutt Profile Picture
    Dividutt 200 on at
    RE: Want to get copy Notes of sales order in new sales order from existing order

    I have updated my code somthing like this still my notes is not getting copied to my new update sales order.

    if ToSalesHeader.FindFirst() then begin

                               if not rec.isArchive then begin

                                   cu_CopyDocumentMgt.SetProperties(true, false, false, false, false, false, false);

                                   cu_CopyDocumentMgt.CopySalesDoc("Sales Document Type From"::Order, rec.No, ToSalesHeader);

                                   rec_EnquiriesLine.SetRange("Document No.", Rec.No);

                                   if rec_EnquiriesLine.FindSet() then begin

                                       SourceRecordLink.SetRange("Record ID", Rec.RecordId);

                                       if SourceRecordLink.FindSet() then begin

                                           LastLinkID := 0;

                                           LastLinkID += 1;

                                       SourceRecordLinkA.Init();

                                       SourceRecordLinkA.Copy(SourceRecordLink);

                                       SourceRecordLinkA."Record ID" := ToSalesHeader.RecordId;

                                       SourceRecordLinkA.Insert();

                                           Message('%1', Rec.RecordId);

                                       end;

                                       PAGE.Run(PAGE::"Sales Return Order", ToSalesHeader);

                                       end;

                                   end;

    This is code please anything missing that can be done.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Verified Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,391 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,445 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans