Page 188 Posted Docs. With No Inc. Doc.

App
Base Application
Namespace
Microsoft.EServices.EDocument
Versions
17-28
Source table
134

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/eServices/EDocument/PostedDocsWithNoIncDoc.Page.al287 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.EServices.EDocument;

using Microsoft.Foundation.Navigate;
using Microsoft.Foundation.Period;

page 188 "Posted Docs. With No Inc. Doc."
{
    Caption = 'Posted Documents without Incoming Document';
    DataCaptionFields = "Document No.", "Posting Date", "First Posting Description";
    DeleteAllowed = false;
    InsertAllowed = false;
    LinksAllowed = false;
    ModifyAllowed = false;
    PageType = List;
    ShowFilter = false;
    SourceTable = "Posted Docs. With No Inc. Buf.";
    SourceTableTemporary = true;

    layout
    {
        area(content)
        {
            group(Filters)
            {
                Caption = 'Filters';
                field(DateFilter; DateFilter)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Date Filter';
                    Importance = Promoted;
                    ToolTip = 'Specifies a filter for the posting date of the posted purchase and sales documents without incoming document records that are shown. By default, the filter is the first day of the current accounting period until the work date.';

                    trigger OnValidate()
                    begin
                        SearchForDocNos();
                    end;
                }
                field(DocNoFilter; DocNoFilter)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Document No. Filter';
                    Importance = Promoted;
                    ToolTip = 'Specifies a filter for the document number on the posted purchase and sales documents without incoming document records that are shown.';

                    trigger OnValidate()
                    begin
                        SearchForDocNos();
                    end;
                }
                field(GLAccFilter; GLAccFilter)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'G/L Account No. Filter';
                    Importance = Promoted;
                    ToolTip = 'Specifies a filter for the G/L account whose posted purchase and sales documents without incoming document records are shown. By default, the G/L account for which you opened the Posted Documents without Incoming Document window is inserted.';

                    trigger OnValidate()
                    begin
                        SearchForDocNos();
                    end;
                }
                field(ExternalDocNoFilter; ExternalDocNoFilter)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'External Doc. No. Filter';
                    Importance = Promoted;
                    ToolTip = 'Specifies a filter for the external document number on the posted purchase and sales documents without incoming document records that are shown.';

                    trigger OnValidate()
                    begin
                        SearchForDocNos();
                    end;
                }
            }
            repeater(Group)
            {
                Caption = 'Documents';
                Editable = false;
                field("Document No."; Rec."Document No.")
                {
                    ApplicationArea = Basic, Suite;
                    Editable = false;
                }
                field("Posting Date"; Rec."Posting Date")
                {
                    ApplicationArea = Basic, Suite;
                    Editable = false;
                }
                field("External Document No."; Rec."External Document No.")
                {
                    ApplicationArea = Basic, Suite;
                    Editable = false;
                }
                field("First Posting Description"; Rec."First Posting Description")
                {
                    ApplicationArea = Basic, Suite;
                    Editable = false;
                }
                field("Debit Amount"; Rec."Debit Amount")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Credit Amount"; Rec."Credit Amount")
                {
                    ApplicationArea = Basic, Suite;
                }
            }
        }
        area(factboxes)
        {
            part(IncomingDocAttachFactBox; "Incoming Doc. Attach. FactBox")
            {
                ApplicationArea = Basic, Suite;
            }
        }
    }

    actions
    {
        area(processing)
        {
            group(IncomingDocument)
            {
                Caption = 'Incoming Document';
                Image = Documents;
                action(IncomingDocCard)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'View Incoming Document';
                    Enabled = HasIncomingDocument;
                    Image = ViewOrder;
                    ToolTip = 'View any incoming document records and file attachments that exist for the entry or document.';

                    trigger OnAction()
                    var
                        IncomingDocument: Record "Incoming Document";
                    begin
                        IncomingDocument.ShowCard(Rec."Document No.", Rec."Posting Date");
                    end;
                }
                action(SelectIncomingDoc)
                {
                    AccessByPermission = TableData "Incoming Document" = R;
                    ApplicationArea = Basic, Suite;
                    Caption = 'Select Incoming Document';
                    Image = SelectLineToApply;
                    ToolTip = 'Select an incoming document record and file attachment that you want to link to the entry or document.';

                    trigger OnAction()
                    begin
                        Rec.UpdateIncomingDocuments();
                    end;
                }
                action(IncomingDocAttachFile)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Create Incoming Document from File';
                    Ellipsis = true;
                    Enabled = not HasIncomingDocument;
                    Image = Attach;
                    ToolTip = 'Create an incoming document record by selecting a file to attach, and then link the incoming document record to the entry or document.';

                    trigger OnAction()
                    var
                        IncomingDocumentAttachment: Record "Incoming Document Attachment";
                    begin
                        IncomingDocumentAttachment.SetRange("Document No.", Rec."Document No.");
                        IncomingDocumentAttachment.SetRange("Posting Date", Rec."Posting Date");
                        IncomingDocumentAttachment.NewAttachment();
                    end;
                }
            }
            action(Navigate)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Find entries...';
                Image = Navigate;
                ShortCutKey = 'Ctrl+Alt+Q';
                ToolTip = 'Find entries and documents that exist for the document number and posting date on the selected document. (Formerly this action was named Navigate.)';

                trigger OnAction()
                var
                    Navigate: Page Navigate;
                begin
                    Navigate.SetDoc(Rec."Posting Date", Rec."Document No.");
                    Navigate.Run();
                end;
            }
        }
        area(Promoted)
        {
            group(Category_New)
            {
                Caption = 'New', Comment = 'Generated from the PromotedActionCategories property index 0.';

                actionref(IncomingDocAttachFile_Promoted; IncomingDocAttachFile)
                {
                }
            }
            group(Category_Process)
            {
                Caption = 'Incoming Document', Comment = 'Generated from the PromotedActionCategories property index 1.';

                actionref(IncomingDocCard_Promoted; IncomingDocCard)
                {
                }
                actionref(SelectIncomingDoc_Promoted; SelectIncomingDoc)
                {
                }
                actionref(Navigate_Promoted; Navigate)
                {
                }
            }
            group(Category_Report)
            {
                Caption = 'Report', Comment = 'Generated from the PromotedActionCategories property index 2.';
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    begin
        CurrPage.IncomingDocAttachFactBox.PAGE.LoadDataFromRecord(Rec);
    end;

    trigger OnAfterGetRecord()
    begin
        HasIncomingDocument := IncomingDocumentExists();
    end;

    trigger OnOpenPage()
    var
        AccountingPeriod: Record "Accounting Period";
        FiscalStartDate: Date;
        FilterGroupNo: Integer;
    begin
        if DateFilter = '' then begin
            FiscalStartDate := AccountingPeriod.GetFiscalYearStartDate(WorkDate());
            if FiscalStartDate <> 0D then
                Rec.SetRange("Posting Date", FiscalStartDate, WorkDate())
            else
                Rec.SetRange("Posting Date", CalcDate('<CY>', WorkDate()), WorkDate());
            DateFilter := CopyStr(Rec.GetFilter("Posting Date"), 1, MaxStrLen(DateFilter));
            Rec.SetRange("Posting Date");
        end;
        FilterGroupNo := 0;
        while (FilterGroupNo <= 4) and (GLAccFilter = '') do begin
            GLAccFilter := CopyStr(Rec.GetFilter("G/L Account No. Filter"), 1, MaxStrLen(GLAccFilter));
            FilterGroupNo += 2;
        end;
        SearchForDocNos();
    end;

    var
        DateFilter: Text;
        DocNoFilter: Code[250];
        GLAccFilter: Code[250];
        ExternalDocNoFilter: Code[250];
        HasIncomingDocument: Boolean;

    local procedure SearchForDocNos()
    var
        PostedDocsWithNoIncBuf: Record "Posted Docs. With No Inc. Buf.";
    begin
        PostedDocsWithNoIncBuf := Rec;
        Rec.GetDocNosWithoutIncomingDoc(Rec, DateFilter, DocNoFilter, GLAccFilter, ExternalDocNoFilter);
        Rec := PostedDocsWithNoIncBuf;
        if Rec.Find('=<>') then;
        CurrPage.Update(false);
    end;

    local procedure IncomingDocumentExists(): Boolean
    var
        IncomingDocument: Record "Incoming Document";
    begin
        IncomingDocument.SetRange(Posted, true);
        IncomingDocument.SetRange("Document No.", Rec."Document No.");
        IncomingDocument.SetRange("Posting Date", Rec."Posting Date");
        exit(not IncomingDocument.IsEmpty);
    end;
}