Codeunit 6481 Serv. Item Tracing Mgt.

App
Base Application
Namespace
Microsoft.Inventory.Tracking
Versions
25-28

Events, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Service/Inventory/Tracking/ServItemTracingMgt.Codeunit.al83 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.Inventory.Tracking;

using Microsoft.Inventory.Ledger;
using Microsoft.Service.History;

codeunit 6481 "Serv. Item Tracing Mgt."
{

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracing Mgt.", 'OnSetRecordIDOnProcessServiceDocument', '', true, false)]
    local procedure OnSetRecordIDOnProcessServiceDocument(ItemLedgEntry: Record "Item Ledger Entry"; var TrackingEntry: Record "Item Tracing Buffer")
    var
        ServShptHeader: Record "Service Shipment Header";
        ServInvHeader: Record "Service Invoice Header";
        ServCrMemoHeader: Record "Service Cr.Memo Header";
        RecRef: RecordRef;
    begin
        OnSetRecordIDOnBeforeProcessServiceDocument(ItemLedgEntry, TrackingEntry);

        case ItemLedgEntry."Document Type" of
            ItemLedgEntry."Document Type"::"Service Shipment":
                if ServShptHeader.Get(TrackingEntry."Document No.") then begin
                    RecRef.GetTable(ServShptHeader);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end else begin
                    RecRef.GetTable(ItemLedgEntry);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end;
            ItemLedgEntry."Document Type"::"Service Invoice":
                if ServInvHeader.Get(TrackingEntry."Document No.") then begin
                    RecRef.GetTable(ServInvHeader);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end else begin
                    RecRef.GetTable(ItemLedgEntry);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end;
            ItemLedgEntry."Document Type"::"Service Credit Memo":
                if ServCrMemoHeader.Get(TrackingEntry."Document No.") then begin
                    RecRef.GetTable(ServCrMemoHeader);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end else begin
                    RecRef.GetTable(ItemLedgEntry);
                    TrackingEntry."Record Identifier" := RecRef.RecordId;
                end;
        end
    end;

    [IntegrationEvent(false, false)]
    local procedure OnSetRecordIDOnBeforeProcessServiceDocument(ItemLedgEntry: Record "Item Ledger Entry"; var TrackingEntry: Record "Item Tracing Buffer")
    begin
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracing Mgt.", 'OnShowDocument', '', true, false)]
    local procedure OnShowDocument(RecRef: RecordRef)
    var
        ServShptHeader: Record "Service Shipment Header";
        ServInvHeader: Record "Service Invoice Header";
        ServCrMemoHeader: Record "Service Cr.Memo Header";
    begin
        case RecRef.Number of
            Database::"Service Shipment Header":
                begin
                    RecRef.SetTable(ServShptHeader);
                    PAGE.RunModal(PAGE::"Posted Service Shipment", ServShptHeader);
                end;
            Database::"Service Invoice Header":
                begin
                    RecRef.SetTable(ServInvHeader);
                    PAGE.RunModal(PAGE::"Posted Service Invoice", ServInvHeader);
                end;
            Database::"Service Cr.Memo Header":
                begin
                    RecRef.SetTable(ServCrMemoHeader);
                    PAGE.RunModal(PAGE::"Posted Service Credit Memo", ServCrMemoHeader);
                end;
        end;
    end;

}