Codeunit 338 VAT Entry - Edit, source in 29
Source29
src/Layers/W1/BaseApp/Finance/VAT/Ledger/VATEntryEdit.Codeunit.al92 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;
/// <summary>
/// Provides controlled editing capabilities for VAT entries with validation and event integration.
/// Handles G/L account number updates and ensures data consistency during VAT entry modifications.
/// </summary>
/// <remarks>
/// Specialized codeunit for VAT entry editing operations with comprehensive validation and event support.
/// Integrates with VAT posting validation and provides extensibility through modification events.
/// </remarks>
codeunit 338 "VAT Entry - Edit"
{
Permissions = TableData "VAT Entry" = m;
TableNo = "VAT Entry";
trigger OnRun()
begin
VATEntry := Rec;
VATEntry.LockTable();
VATEntry.Find();
VATEntry.Validate(Type);
VATEntry."VAT Reporting Date" := Rec."VAT Reporting Date";
VATEntry."Bill-to/Pay-to No." := Rec."Bill-to/Pay-to No.";
VATEntry."Ship-to/Order Address Code" := Rec."Ship-to/Order Address Code";
VATEntry."EU 3-Party Trade" := Rec."EU 3-Party Trade";
VATEntry."Country/Region Code" := Rec."Country/Region Code";
VATEntry."VAT Registration No." := Rec."VAT Registration No.";
OnBeforeVATEntryModify(VATEntry, Rec);
VATEntry.TestField("Entry No.", Rec."Entry No.");
VATEntry.TestField("Posting Date", Rec."Posting Date");
VATEntry.TestField(Amount, Rec.Amount);
VATEntry.TestField(Base, Rec.Base);
VATEntry.Modify();
OnRunOnAfterVATEntryModify(VATEntry, Rec);
Rec := VATEntry;
end;
var
VATEntry: Record "VAT Entry";
/// <summary>
/// Updates the G/L account number on a VAT entry record and saves the changes.
/// Ensures proper linking between VAT entries and their corresponding G/L accounts.
/// </summary>
/// <param name="VATEntryModify">VAT entry record to modify</param>
/// <param name="GLAccountNo">G/L account number to assign</param>
procedure SetGLAccountNo(var VATEntryModify: Record "VAT Entry"; GLAccountNo: Code[20])
begin
VATEntryModify."G/L Acc. No." := GLAccountNo;
VATEntryModify.Modify();
end;
/// <summary>
/// Updates the G/L account number for a specific VAT entry identified by entry number.
/// Performs bulk modification without triggering individual record events.
/// </summary>
/// <param name="VATEntryNo">VAT entry number to update</param>
/// <param name="GLAccountNo">G/L account number to assign</param>
procedure SetGLAccountNo(VATEntryNo: Integer; GLAccountNo: Code[20])
begin
VATEntry.SetRange("Entry No.", VATEntryNo);
VATEntry.ModifyAll("G/L Acc. No.", GLAccountNo, false);
end;
/// <summary>
/// Integration event raised before modifying a VAT entry during the edit process.
/// Allows custom validation or additional field updates before the VAT entry is saved.
/// </summary>
/// <param name="VATEntry">VAT entry record being modified</param>
/// <param name="FromVATEntry">Original VAT entry record with new values</param>
[IntegrationEvent(false, false)]
local procedure OnBeforeVATEntryModify(var VATEntry: Record "VAT Entry"; FromVATEntry: Record "VAT Entry")
begin
end;
/// <summary>
/// Integration event raised after successfully modifying a VAT entry during the edit process.
/// Enables custom processing or notifications after the VAT entry has been updated and saved.
/// </summary>
/// <param name="VATEntry">VAT entry record that was modified</param>
/// <param name="FromVATEntry">Original VAT entry record that provided the new values</param>
[IntegrationEvent(false, false)]
local procedure OnRunOnAfterVATEntryModify(var VATEntry: Record "VAT Entry"; FromVATEntry: Record "VAT Entry")
begin
end;
}