Report 1130 Delete Cost Entries, source in 29
Source29
src/Layers/W1/BaseApp/CostAccounting/Ledger/DeleteCostEntries.Report.al161 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.CostAccounting.Ledger;
using Microsoft.CostAccounting.Setup;
using Microsoft.Finance.GeneralLedger.Ledger;
report 1130 "Delete Cost Entries"
{
Caption = 'Delete Cost Entries';
ToolTip = 'Delete posted cost entries and reverses allocations, for example to simulate allocations by using different allocation ratios, to reverse cost allocations to include late entries in a combined entry as part of the same posting process, or to cancel cost entries from the cost register.';
Permissions = TableData "G/L Entry" = rm;
ProcessingOnly = true;
dataset
{
dataitem("Cost Register"; "Cost Register")
{
DataItemTableView = sorting("No.") order(descending);
trigger OnAfterGetRecord()
var
CostEntry: Record "Cost Entry";
begin
Window.Update(1, "No.");
if Closed then
Error(Text007, "No.");
if Source = Source::Allocation then begin
CostEntry.SetCurrentKey("Allocated with Journal No.");
CostEntry.SetRange("Allocated with Journal No.", "No.");
CostEntry.ModifyAll(Allocated, false);
CostEntry.ModifyAll("Allocated with Journal No.", 0);
end;
CostEntry.Reset();
CostEntry.SetRange("Entry No.", "From Cost Entry No.", "To Cost Entry No.");
CostEntry.DeleteAll();
end;
trigger OnPostDataItem()
var
CostEntry: Record "Cost Entry";
begin
DeleteAll();
Reset();
SetRange(Source, Source::Allocation);
if FindLast() then begin
CostEntry.Get("To Cost Entry No.");
CostAccSetup.Get();
CostAccSetup."Last Allocation Doc. No." := CostEntry."Document No.";
CostAccSetup.Modify();
end;
end;
trigger OnPreDataItem()
begin
SetRange("No.", CostRegister2."No.", CostRegister3."No.");
end;
}
}
requestpage
{
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(FromRegisterNo; CostRegister2."No.")
{
ApplicationArea = CostAccounting;
Caption = 'From Register No.';
Lookup = true;
TableRelation = "Cost Register" where(Closed = const(false));
ToolTip = 'Specifies the starting posted register number to determine the starting point for the deletion of register numbers.';
}
field(ToRegisterNo; CostRegister3."No.")
{
ApplicationArea = CostAccounting;
Caption = 'To Register No.';
Editable = false;
TableRelation = "Cost Register" where(Closed = const(false));
ToolTip = 'Specifies that the last posted register number is filled in automatically. You cannot change the contents of this field.';
}
}
}
}
actions
{
}
trigger OnOpenPage()
begin
CostRegister2.FindLast();
CostRegister3.FindLast();
end;
}
labels
{
}
trigger OnPreReport()
var
CostRegister: Record "Cost Register";
begin
if CostRegister2."No." > CostRegister3."No." then
Error(Text000);
if not Confirm(Text001, false, CostRegister2."No.", CostRegister3."No.") then
Error('');
if not Confirm(Text004) then
Error('');
CostRegister.FindLast();
if CostRegister."No." > CostRegister3."No." then
Error(CostRegisterHasBeenModifiedErr, CostRegister."No.");
Window.Open(Text005 +
Text006);
end;
var
CostRegister2: Record "Cost Register";
CostRegister3: Record "Cost Register";
CostAccSetup: Record "Cost Accounting Setup";
Window: Dialog;
#pragma warning disable AA0074
Text000: Label 'From Register No. must not be higher than To Register No..';
#pragma warning disable AA0470
Text001: Label 'All corresponding cost entries and register entries will be deleted. Do you want to delete cost register %1 to %2?';
#pragma warning restore AA0470
Text004: Label 'Are you sure?';
Text005: Label 'Delete cost register\';
#pragma warning disable AA0470
Text006: Label 'Register no. #1######';
Text007: Label 'Register %1 can no longer be deleted because it is marked as closed.';
#pragma warning restore AA0470
#pragma warning restore AA0074
#pragma warning disable AA0470
CostRegisterHasBeenModifiedErr: Label 'Another user has modified the cost register. The To Register No. field must be equal to %1.\Run the Delete Cost Entries batch job again.';
#pragma warning restore AA0470
procedure InitializeRequest(NewFromRegisterNo: Integer; NewToRegisterNo: Integer)
begin
CostRegister2."No." := NewFromRegisterNo;
CostRegister3."No." := NewToRegisterNo;
end;
}