-
Notifications
You must be signed in to change notification settings - Fork 688
Closed
Labels
SCMGitHub request for SCM areaGitHub request for SCM areaevent-requestRequest for adding an eventRequest for adding an eventships-in-future-updateFix ships in a future updateFix ships in a future update
Description
Describe the request
Please add an Event OnBeforeUpdateAnalysisViewEntry in the procedure UpdateAnalysisViewEntry in Codeunit 7150 "Update Item Analysis View"
local procedure UpdateAnalysisViewEntry(DimValue1: Code[20]; DimValue2: Code[20]; DimValue3: Code[20]; EntryType: Enum "Item Ledger Entry Type")
var
PostingDate: Date;
EntryNo: Integer;
IsHandled: Boolean;
begin
OnBeforeUpdateAnalysisViewEntry(DimValue1, DimValue2, DimValue3, EntryType, IsHandled); // <--------- New Event
if IsHandled then
exit;
PostingDate := ItemAnalysisViewSource.PostingDate;
if PostingDate < ItemAnalysisView."Starting Date" then begin
PostingDate := ItemAnalysisView."Starting Date" - 1;
EntryNo := 0;
end else begin
PostingDate := CalculatePeriodStart(PostingDate, ItemAnalysisView."Date Compression");
if PostingDate < ItemAnalysisView."Starting Date" then
PostingDate := ItemAnalysisView."Starting Date";
if ItemAnalysisView."Date Compression" <> ItemAnalysisView."Date Compression"::None then
EntryNo := 0;
end;
TempItemAnalysisViewEntry.Init();
TempItemAnalysisViewEntry."Analysis Area" := ItemAnalysisView."Analysis Area";
TempItemAnalysisViewEntry."Analysis View Code" := ItemAnalysisView.Code;
TempItemAnalysisViewEntry."Item No." := ItemAnalysisViewSource.ItemNo;
TempItemAnalysisViewEntry."Source Type" := ItemAnalysisViewSource.SourceType;
TempItemAnalysisViewEntry."Source No." := ItemAnalysisViewSource.SourceNo;
TempItemAnalysisViewEntry."Entry Type" := ItemAnalysisViewSource.EntryType;
TempItemAnalysisViewEntry."Item Ledger Entry Type" := EntryType;
TempItemAnalysisViewEntry."Location Code" := ItemAnalysisViewSource.LocationCode;
TempItemAnalysisViewEntry."Posting Date" := PostingDate;
TempItemAnalysisViewEntry."Dimension 1 Value Code" := DimValue1;
TempItemAnalysisViewEntry."Dimension 2 Value Code" := DimValue2;
TempItemAnalysisViewEntry."Dimension 3 Value Code" := DimValue3;
TempItemAnalysisViewEntry."Entry No." := EntryNo;
OnAfterInitializeTempItemAnalysisViewEntry(TempItemAnalysisViewEntry, ItemAnalysisView, ItemAnalysisViewSource, ValueEntry);
if TempItemAnalysisViewEntry.Find() then begin
if (ItemAnalysisViewSource.EntryType = ItemAnalysisViewSource.EntryType::"Direct Cost") and
(ItemAnalysisViewSource.ItemChargeNo = '')
then
AddValue(TempItemAnalysisViewEntry.Quantity, ItemAnalysisViewSource.ILEQuantity);
AddValue(TempItemAnalysisViewEntry."Invoiced Quantity", ItemAnalysisViewSource.InvoicedQuantity);
AddValue(TempItemAnalysisViewEntry."Sales Amount (Actual)", ItemAnalysisViewSource.SalesAmountActual);
AddValue(TempItemAnalysisViewEntry."Cost Amount (Actual)", ItemAnalysisViewSource.CostAmountActual);
AddValue(TempItemAnalysisViewEntry."Cost Amount (Non-Invtbl.)", ItemAnalysisViewSource.CostAmountNonInvtbl);
AddValue(TempItemAnalysisViewEntry."Sales Amount (Expected)", ItemAnalysisViewSource.SalesAmountExpected);
AddValue(TempItemAnalysisViewEntry."Cost Amount (Expected)", ItemAnalysisViewSource.CostAmountExpected);
OnUpdateAnalysisViewEntryOnBeforeModifyTempItemAnalysisViewEntry(TempItemAnalysisViewEntry, ItemAnalysisViewSource, ValueEntry, ItemAnalysisView);
TempItemAnalysisViewEntry.Modify();
end else begin
if (ItemAnalysisViewSource.EntryType = ItemAnalysisViewSource.EntryType::"Direct Cost") and
(ItemAnalysisViewSource.ItemChargeNo = '')
then
TempItemAnalysisViewEntry.Quantity := ItemAnalysisViewSource.ILEQuantity;
TempItemAnalysisViewEntry."Invoiced Quantity" := ItemAnalysisViewSource.InvoicedQuantity;
TempItemAnalysisViewEntry."Sales Amount (Actual)" := ItemAnalysisViewSource.SalesAmountActual;
TempItemAnalysisViewEntry."Cost Amount (Actual)" := ItemAnalysisViewSource.CostAmountActual;
TempItemAnalysisViewEntry."Cost Amount (Non-Invtbl.)" := ItemAnalysisViewSource.CostAmountNonInvtbl;
TempItemAnalysisViewEntry."Sales Amount (Expected)" := ItemAnalysisViewSource.SalesAmountExpected;
TempItemAnalysisViewEntry."Cost Amount (Expected)" := ItemAnalysisViewSource.CostAmountExpected;
OnUpdateAnalysisViewEntryOnBeforeInsertTempItemAnalysisViewEntry(TempItemAnalysisViewEntry, ItemAnalysisViewSource, ValueEntry, ItemAnalysisView);
TempItemAnalysisViewEntry.Insert();
NoOfEntries := NoOfEntries + 1;
end;
if NoOfEntries >= 10000 then
FlushAnalysisViewEntry();
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeUpdateAnalysisViewEntry(DimValue1: Code[20]; DimValue2: Code[20]; DimValue3: Code[20]; EntryType: Enum "Item Ledger Entry Type"; var IsHandled: Boolean)
begin
end;
Additional context
We need to handle the following by overriding this procedure
- support for alternate quantities in the Item Analysis View.
- handle "Sales Amount (FOB)" and "Sales Amount (Freight)" fields to track these specific sales amount components separately.
Internal work item: AB#567227
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
SCMGitHub request for SCM areaGitHub request for SCM areaevent-requestRequest for adding an eventRequest for adding an eventships-in-future-updateFix ships in a future updateFix ships in a future update