Codeunit 8363 DimPerspectiveAccSchMgtHandler, source in 29
Source29
src/Layers/W1/BaseApp/Finance/FinancialReports/DimPerspectiveAccSchMgtHandler.Codeunit.al119 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.FinancialReports;
using Microsoft.CashFlow.Forecast;
using Microsoft.Finance.Analysis;
using Microsoft.Finance.GeneralLedger.Budget;
using Microsoft.Finance.GeneralLedger.Ledger;
codeunit 8363 DimPerspectiveAccSchMgtHandler
{
EventSubscriberInstance = Manual;
var
DimPerspectiveName: Record "Dimension Perspective Name";
DimPerspectiveLine: Record "Dimension Perspective Line";
procedure SetDimPerspectiveName(DimPerspectiveName: Record "Dimension Perspective Name")
begin
this.DimPerspectiveName := DimPerspectiveName;
end;
procedure SetDimPerspectiveLine(DimPerspectiveLine: Record "Dimension Perspective Line")
begin
this.DimPerspectiveLine := DimPerspectiveLine;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnAfterSetGLAccGLEntryFilters, '', false, false)]
local procedure OnAfterSetGLAccGLEntryFilters(var GLEntry: Record "G/L Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := GLEntry.FilterGroup();
GLEntry.FilterGroup(9);
IDimPerspective.FilterGLEntryByPerspectiveTotaling(DimPerspectiveLine, GLEntry);
GLEntry.FilterGroup(LastFilterGroup);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnAfterSetGLAccGLBudgetEntryFilters, '', false, false)]
local procedure OnAfterSetGLAccGLBudgetEntryFilters(var GLBudgetEntry: Record "G/L Budget Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := GLBudgetEntry.FilterGroup();
GLBudgetEntry.FilterGroup(9);
IDimPerspective.FilterGLBudgetEntryByPerspectiveTotaling(DimPerspectiveLine, GLBudgetEntry);
GLBudgetEntry.FilterGroup(LastFilterGroup);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnSetCFEntryFiltersOnAfterAccShedLineCopyFilter, '', false, false)]
local procedure OnSetCFEntryFiltersOnAfterAccShedLineCopyFilter(var CFForecastEntry: Record "Cash Flow Forecast Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := CFForecastEntry.FilterGroup();
CFForecastEntry.FilterGroup(9);
IDimPerspective.FilterCFEntryByPerspectiveTotaling(DimPerspectiveLine, CFForecastEntry);
CFForecastEntry.FilterGroup(LastFilterGroup);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnAfterSetGLAccAnalysisViewEntryFilters, '', false, false)]
local procedure OnAfterSetGLAccAnalysisViewEntryFilters(var AnalysisViewEntry: Record "Analysis View Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := AnalysisViewEntry.FilterGroup();
AnalysisViewEntry.FilterGroup(9);
IDimPerspective.FilterAnalysisViewEntryByPerspectiveTotaling(DimPerspectiveLine, AnalysisViewEntry);
AnalysisViewEntry.FilterGroup(LastFilterGroup);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnAfterSetCFAnalysisViewEntryFilters, '', false, false)]
local procedure OnAfterSetCFAnalysisViewEntryFilters(var AnalysisViewEntry: Record "Analysis View Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := AnalysisViewEntry.FilterGroup();
AnalysisViewEntry.FilterGroup(9);
IDimPerspective.FilterAnalysisViewEntryByPerspectiveTotaling(DimPerspectiveLine, AnalysisViewEntry);
AnalysisViewEntry.FilterGroup(LastFilterGroup);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::AccSchedManagement, OnAfterSetGLAccAnalysisViewBudgetEntries, '', false, false)]
local procedure OnAfterSetGLAccAnalysisViewBudgetEntries(var AnalysisViewBudgetEntry: Record "Analysis View Budget Entry")
var
IDimPerspective: Interface IDimensionPerspective;
LastFilterGroup: Integer;
begin
IDimPerspective := DimPerspectiveName."Perspective Type";
LastFilterGroup := AnalysisViewBudgetEntry.FilterGroup();
AnalysisViewBudgetEntry.FilterGroup(9);
IDimPerspective.FilterAnalysisViewBudgetEntryByPerspectiveTotaling(DimPerspectiveLine, AnalysisViewBudgetEntry);
AnalysisViewBudgetEntry.FilterGroup(LastFilterGroup);
end;
procedure FilterGLEntryByDimensions(var AccSchedLine: Record "Acc. Schedule Line"; var GLEntry: Record "G/L Entry")
begin
GLEntry.SetFilter("Global Dimension 1 Code", AccSchedLine.GetFilter("Dimension 1 Filter"));
GLEntry.SetFilter("Global Dimension 2 Code", AccSchedLine.GetFilter("Dimension 2 Filter"));
GLEntry.SetFilter("Shortcut Dimension 3 Code", AccSchedLine.GetFilter("Dimension 3 Filter"));
GLEntry.SetFilter("Shortcut Dimension 4 Code", AccSchedLine.GetFilter("Dimension 4 Filter"));
GLEntry.SetFilter("Shortcut Dimension 5 Code", AccSchedLine.GetFilter("Dimension 5 Filter"));
GLEntry.SetFilter("Shortcut Dimension 6 Code", AccSchedLine.GetFilter("Dimension 6 Filter"));
GLEntry.SetFilter("Shortcut Dimension 7 Code", AccSchedLine.GetFilter("Dimension 7 Filter"));
GLEntry.SetFilter("Shortcut Dimension 8 Code", AccSchedLine.GetFilter("Dimension 8 Filter"));
end;
}