Page 1572 VAT Entries Preview Subform
- App
- Base Application
- Namespace
- Microsoft.Finance.VAT.Ledger
- Versions
- 19-28
- Source table
- 1571
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/VAT/Ledger/VATEntriesPreviewSubform.Page.al271 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.Finance.VAT.Ledger;
using Microsoft.Finance.GeneralLedger.Preview;
using Microsoft.Finance.VAT.Setup;
/// <summary>
/// Subform page for displaying VAT entries in a hierarchical tree view during posting preview.
/// Organizes VAT entries by VAT posting setup groups with individual entries as child nodes.
/// </summary>
/// <remarks>
/// Used within posting preview infrastructure to show VAT entry details in a structured format.
/// Groups entries by VAT Business and Product Posting Group combinations with collapsible tree structure.
/// Provides comprehensive field visibility for VAT entry analysis including posting groups and amounts.
/// </remarks>
page 1572 "VAT Entries Preview Subform"
{
PageType = ListPart;
SourceTable = "VAT Entry Posting Preview";
SourceTableTemporary = true;
Editable = false;
Caption = 'VAT Entries';
layout
{
area(Content)
{
repeater(GroupName)
{
ShowAsTree = true;
IndentationColumn = Rec.Indentation;
ShowCaption = false;
TreeInitialState = CollapseAll;
field("Gen. Bus. Posting Group"; Rec."Gen. Bus. Posting Group")
{
ApplicationArea = Suite;
Visible = false;
}
field("Gen. Prod. Posting Group"; Rec."Gen. Prod. Posting Group")
{
ApplicationArea = Suite;
Visible = false;
}
field("VAT Bus. Posting Group"; Rec."VAT Bus. Posting Group")
{
ApplicationArea = Basic, Suite;
StyleExpr = Emphasize;
Style = Strong;
}
field("VAT Prod. Posting Group"; Rec."VAT Prod. Posting Group")
{
ApplicationArea = Basic, Suite;
StyleExpr = Emphasize;
Style = Strong;
}
field("Posting Date"; Rec."Posting Date")
{
ApplicationArea = Basic, Suite;
}
field("Document Date"; Rec."Document Date")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Document No."; Rec."Document No.")
{
ApplicationArea = Basic, Suite;
}
field("Document Type"; Rec."Document Type")
{
ApplicationArea = Basic, Suite;
}
field(Type; Rec.Type)
{
ApplicationArea = Basic, Suite;
}
field(Base; Rec.Base)
{
ApplicationArea = Basic, Suite;
StyleExpr = Emphasize;
Style = Strong;
}
field(Amount; Rec.Amount)
{
ApplicationArea = Basic, Suite;
StyleExpr = Emphasize;
Style = Strong;
}
field("VAT Difference"; Rec."VAT Difference")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Additional-Currency Base"; Rec."Additional-Currency Base")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Additional-Currency Amount"; Rec."Additional-Currency Amount")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Add.-Curr. VAT Difference"; Rec."Add.-Curr. VAT Difference")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("VAT Calculation Type"; Rec."VAT Calculation Type")
{
ApplicationArea = Basic, Suite;
}
field("Bill-to/Pay-to No."; Rec."Bill-to/Pay-to No.")
{
ApplicationArea = Basic, Suite;
}
field("VAT Registration No."; Rec."VAT Registration No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Ship-to/Order Address Code"; Rec."Ship-to/Order Address Code")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Country/Region Code"; Rec."Country/Region Code")
{
ApplicationArea = Basic, Suite;
}
field("EU 3-Party Trade"; Rec."EU 3-Party Trade")
{
ApplicationArea = Suite;
}
field(Closed; Rec.Closed)
{
ApplicationArea = Basic, Suite;
}
field("Closed by Entry No."; Rec."Closed by Entry No.")
{
ApplicationArea = Basic, Suite;
}
field("Internal Ref. No."; Rec."Internal Ref. No.")
{
ApplicationArea = Basic, Suite;
}
field(Reversed; Rec.Reversed)
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Reversed by Entry No."; Rec."Reversed by Entry No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Reversed Entry No."; Rec."Reversed Entry No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("EU Service"; Rec."EU Service")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
}
}
}
trigger OnAfterGetRecord()
begin
Emphasize := Rec.Indentation = 0;
end;
protected var
Emphasize: Boolean;
/// <summary>
/// Populates the subform with VAT entries from posting preview event handler.
/// </summary>
/// <param name="PostingPreviewEventHandler">Event handler containing VAT entry preview data</param>
procedure Set(PostingPreviewEventHandler: Codeunit "Posting Preview Event Handler")
var
TempVATEntryPostingPreview: Record "VAT Entry Posting Preview" temporary;
RecRef: RecordRef;
begin
Rec.Reset();
Rec.DeleteAll();
TempVATEntryPostingPreview.Reset();
TempVATEntryPostingPreview.DeleteAll();
PostingPreviewEventHandler.GetEntries(Database::"VAT Entry", RecRef);
LoadBufferAsHierarchicalView(RecRef, TempVATEntryPostingPreview);
Rec.Copy(TempVATEntryPostingPreview, true);
end;
local procedure LoadBufferAsHierarchicalView(var RecRef: RecordRef; var TempVATEntryPostingPreview: Record "VAT Entry Posting Preview" temporary)
var
TempVATPostingSetup: Record "VAT Posting Setup" temporary;
TempVATEntry: Record "VAT Entry" temporary;
EntryNo: Integer;
begin
if RecRef.FindSet() then
repeat
RecRef.SetTable(TempVATEntry);
TempVATEntry.Insert();
if not TempVATPostingSetup.Get(TempVATEntry."VAT Bus. Posting Group", TempVATEntry."VAT Prod. Posting Group") then begin
TempVATPostingSetup."VAT Bus. Posting Group" := TempVATEntry."VAT Bus. Posting Group";
TempVATPostingSetup."VAT Prod. Posting Group" := TempVATEntry."VAT Prod. Posting Group";
TempVATPostingSetup.Insert();
end;
until RecRef.Next() = 0;
EntryNo := 1;
if TempVATPostingSetup.FindSet() then
repeat
TempVATEntry.SetRange("VAT Bus. Posting Group", TempVATPostingSetup."VAT Bus. Posting Group");
TempVATEntry.SetRange("VAT Prod. Posting Group", TempVATPostingSetup."VAT Prod. Posting Group");
TempVATEntry.CalcSums(Base, Amount);
TempVATEntryPostingPreview.Init();
TempVATEntryPostingPreview."Entry No." := EntryNo;
TempVATEntryPostingPreview."VAT Bus. Posting Group" := TempVATPostingSetup."VAT Bus. Posting Group";
TempVATEntryPostingPreview."VAT Prod. Posting Group" := TempVATPostingSetup."VAT Prod. Posting Group";
TempVATEntryPostingPreview.Base := TempVATEntry.Base;
TempVATEntryPostingPreview.Amount := TempVATEntry.Amount;
TempVATEntryPostingPreview.Indentation := 0;
OnLoadBufferAsHierarchicalViewOnBeforeInsertGroupEntry(TempVATEntryPostingPreview, TempVATEntry);
TempVATEntryPostingPreview.Insert();
EntryNo += 1;
if TempVATEntry.FindSet() then
repeat
TempVATEntryPostingPreview.Init();
TempVATEntryPostingPreview.TransferFields(TempVATEntry);
TempVATEntryPostingPreview."VAT Entry No." := TempVATEntry."Entry No.";
TempVATEntryPostingPreview."Entry No." := EntryNo;
TempVATEntryPostingPreview.Indentation := 1;
OnLoadBufferAsHierarchicalViewOnBeforeInsertEntry(TempVATEntryPostingPreview, TempVATEntry);
TempVATEntryPostingPreview.Insert();
EntryNo += 1;
until TempVATEntry.Next() = 0;
until TempVATPostingSetup.Next() = 0;
end;
/// <summary>
/// Integration event raised before inserting VAT posting group summary entry in hierarchical view.
/// </summary>
/// <param name="TempVATEntryPostingPreview">VAT entry posting preview record being created</param>
/// <param name="TempVATEntry">Source VAT entry records for the posting group</param>
[IntegrationEvent(false, false)]
local procedure OnLoadBufferAsHierarchicalViewOnBeforeInsertGroupEntry(var TempVATEntryPostingPreview: Record "VAT Entry Posting Preview" temporary; var TempVATEntry: Record "VAT Entry" temporary)
begin
end;
/// <summary>
/// Integration event raised before inserting individual VAT entry in hierarchical view.
/// </summary>
/// <param name="TempVATEntryPostingPreview">VAT entry posting preview record being created</param>
/// <param name="TempVATEntry">Source VAT entry record</param>
[IntegrationEvent(false, false)]
local procedure OnLoadBufferAsHierarchicalViewOnBeforeInsertEntry(var TempVATEntryPostingPreview: Record "VAT Entry Posting Preview" temporary; var TempVATEntry: Record "VAT Entry" temporary)
begin
end;
}