Codeunit 985 Asm. ItemTrackingNavigateMgt
- App
- Base Application
- Namespace
- Microsoft.Inventory.Tracking
- Versions
- 27-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Assembly/Inventory/Tracking/AsmItemTrackingNavigateMgt.Codeunit.al108 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.Assembly.Document;
using Microsoft.Assembly.History;
using Microsoft.Inventory.Ledger;
codeunit 985 "Asm. ItemTrackingNavigateMgt"
{
SingleInstance = true;
var
TempAssemblyLine: Record "Assembly Line" temporary;
TempAssemblyHeader: Record "Assembly Header" temporary;
TempPostedAssemblyLine: Record "Posted Assembly Line" temporary;
TempPostedAssemblyHeader: Record "Posted Assembly Header" temporary;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracking Navigate Mgt.", 'OnFindTrackingRecordsOnBeforeFind', '', false, false)]
local procedure OnFindTrackingRecordsOnBeforeFind()
begin
TempAssemblyHeader.DeleteAll();
TempAssemblyLine.DeleteAll();
TempPostedAssemblyHeader.DeleteAll();
TempPostedAssemblyLine.DeleteAll();
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracking Navigate Mgt.", 'OnFindLedgerEntryByDocumentType', '', false, false)]
local procedure OnFindLedgerEntryByDocumentType(var ItemLedgerEntry: Record "Item Ledger Entry"; RecRef: RecordRef; var sender: Codeunit "Item Tracking Navigate Mgt.")
begin
if ItemLedgerEntry."Document Type" = ItemLedgerEntry."Document Type"::"Posted Assembly" then
FindPostedAssembly(ItemLedgerEntry."Document No.", RecRef, sender);
end;
local procedure FindPostedAssembly(DocumentNo: Code[20]; RecRef: RecordRef; var sender: Codeunit "Item Tracking Navigate Mgt.")
var
PostedAssemblyHeader: Record "Posted Assembly Header";
begin
if not PostedAssemblyHeader.ReadPermission then
exit;
if PostedAssemblyHeader.Get(DocumentNo) then begin
RecRef.GetTable(PostedAssemblyHeader);
sender.InsertBufferRecFromItemLedgEntry();
TempPostedAssemblyHeader := PostedAssemblyHeader;
if TempPostedAssemblyHeader.Insert() then;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracking Navigate Mgt.", 'OnFindReservEntryOnBeforeCaseDocumentType', '', false, false)]
local procedure OnFindReservEntryOnBeforeCaseDocumentType(var ReservationEntry: Record "Reservation Entry"; RecRef: RecordRef; var IsHandled: Boolean; var sender: Codeunit "Item Tracking Navigate Mgt.")
begin
case ReservationEntry."Source Type" of
Database::"Assembly Header":
FindAssemblyHeaders(ReservationEntry, RecRef, sender);
Database::"Assembly Line":
FindAssemblyLines(ReservationEntry, RecRef, sender);
end;
end;
local procedure FindAssemblyHeaders(ReservEntry: Record "Reservation Entry"; RecRef: RecordRef; var sender: Codeunit "Item Tracking Navigate Mgt.")
var
AssemblyHeader: Record "Assembly Header";
begin
if not AssemblyHeader.ReadPermission then
exit;
if AssemblyHeader.Get(ReservEntry."Source Subtype", ReservEntry."Source ID") then begin
RecRef.GetTable(AssemblyHeader);
sender.InsertBufferRecFromReservEntry();
TempAssemblyHeader := AssemblyHeader;
if TempAssemblyHeader.Insert() then;
end;
end;
local procedure FindAssemblyLines(ReservEntry: Record "Reservation Entry"; RecRef: RecordRef; var sender: Codeunit "Item Tracking Navigate Mgt.")
var
AssemblyLine: Record "Assembly Line";
begin
if not AssemblyLine.ReadPermission then
exit;
if AssemblyLine.Get(ReservEntry."Source Subtype", ReservEntry."Source ID", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(AssemblyLine);
sender.InsertBufferRecFromReservEntry();
TempAssemblyLine := AssemblyLine;
if TempAssemblyLine.Insert() then;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Item Tracking Navigate Mgt.", 'OnShowTable', '', false, false)]
local procedure OnShowTable(TableNo: Integer)
begin
case TableNo of
Database::"Assembly Line":
PAGE.Run(0, TempAssemblyLine);
Database::"Assembly Header":
PAGE.Run(0, TempAssemblyHeader);
Database::"Posted Assembly Line":
PAGE.Run(0, TempPostedAssemblyLine);
Database::"Posted Assembly Header":
PAGE.Run(0, TempPostedAssemblyHeader);
end;
end;
}