Codeunit 6529 Item Tracking Navigate Mgt.
- App
- Base Application
- Namespace
- Microsoft.Inventory.Tracking
- Versions
- 17-28
Procedures, 10Events, 21Obsolete, 1
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Inventory/Tracking/ItemTrackingNavigateMgt.Codeunit.al1153 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.FixedAssets.FixedAsset;
using Microsoft.HumanResources.Employee;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Journal;
using Microsoft.Inventory.Ledger;
using Microsoft.Inventory.Planning;
using Microsoft.Inventory.Requisition;
using Microsoft.Inventory.Transfer;
using Microsoft.Projects.Project.Ledger;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.History;
using Microsoft.Sales.Document;
using Microsoft.Sales.History;
using Microsoft.Warehouse.Activity;
using Microsoft.Warehouse.Activity.History;
using Microsoft.Warehouse.History;
using Microsoft.Warehouse.InventoryDocument;
using Microsoft.Warehouse.Ledger;
using System.IO;
using System.Reflection;
codeunit 6529 "Item Tracking Navigate Mgt."
{
trigger OnRun()
begin
end;
var
GlobalItemFilters: Record Item;
ItemLedgEntry: Record "Item Ledger Entry";
ItemTrackingSetup: Record "Item Tracking Setup";
ReservEntry: Record "Reservation Entry";
MiscArticleInfo: Record "Misc. Article Information";
FixedAsset: Record "Fixed Asset";
WhseActivLine: Record "Warehouse Activity Line";
RgstrdWhseActivLine: Record "Registered Whse. Activity Line";
SerialNoInfo: Record "Serial No. Information";
LotNoInfo: Record "Lot No. Information";
PackageNoInfo: Record "Package No. Information";
WhseEntry: Record "Warehouse Entry";
PostedInvtPutAwayLine: Record "Posted Invt. Put-away Line";
PostedInvtPickLine: Record "Posted Invt. Pick Line";
JobLedgEntry: Record "Job Ledger Entry";
TempPostedWhseRcptLine: Record "Posted Whse. Receipt Line" temporary;
TempPostedWhseShptLine: Record "Posted Whse. Shipment Line" temporary;
TempPurchRcptHeader: Record "Purch. Rcpt. Header" temporary;
TempPurchInvHeader: Record "Purch. Inv. Header" temporary;
TempPurchCrMemoHeader: Record "Purch. Cr. Memo Hdr." temporary;
TempSalesShptHeader: Record "Sales Shipment Header" temporary;
TempSalesInvHeader: Record "Sales Invoice Header" temporary;
TempSalesCrMemoHeader: Record "Sales Cr.Memo Header" temporary;
TempReturnShipHeader: Record "Return Shipment Header" temporary;
TempReturnRcptHeader: Record "Return Receipt Header" temporary;
TempTransShipHeader: Record "Transfer Shipment Header" temporary;
TempTransRcptHeader: Record "Transfer Receipt Header" temporary;
TempSalesLine: Record "Sales Line" temporary;
TempReqLine: Record "Requisition Line" temporary;
TempPurchLine: Record "Purchase Line" temporary;
TempItemJnlLine: Record "Item Journal Line" temporary;
TempPlanningComponent: Record "Planning Component" temporary;
TempTransLine: Record "Transfer Line" temporary;
TempRecordBuffer: Record "Record Buffer" temporary;
TempField: Record "Field" temporary;
TempJobLedgEntry: Record "Job Ledger Entry" temporary;
RecRef: RecordRef;
LastEntryNo: Integer;
procedure FindTrackingRecords(SerialNoFilter: Text; LotNoFilter: Text; PackageNoFilter: Text; ItemNoFilter: Text; VariantFilter: Text)
begin
GlobalItemFilters.SetFilter("No.", ItemNoFilter);
GlobalItemFilters.SetFilter("Variant Filter", VariantFilter);
GlobalItemFilters.SetFilter("Serial No. Filter", SerialNoFilter);
GlobalItemFilters.SetFilter("Lot No. Filter", LotNoFilter);
GlobalItemFilters.SetFilter("Package No. Filter", PackageNoFilter);
FindTrackingRecords(GlobalItemFilters);
end;
procedure FindTrackingRecords(var ItemFilters: Record Item)
var
FiltersAreEmpty: Boolean;
begin
FiltersAreEmpty := (ItemFilters.GetFilter("Serial No. Filter") = '') and (ItemFilters.GetFilter("Lot No. Filter") = '') and (ItemFilters.GetFilter("Package No. Filter") = '');
OnFindTrackingRecordsOnAfterCalcFiltersAreEmpty(ItemFilters, FiltersAreEmpty);
if FiltersAreEmpty then
exit;
OnFindTrackingRecordsOnBeforeFind();
FindItemLedgerEntry(ItemFilters);
FindReservEntry(ItemFilters);
FindWhseActivLine(ItemFilters);
FindRegWhseActivLine(ItemFilters);
FindWhseEntry(ItemFilters);
FindPostedInvtPutAwayLine(ItemFilters);
FindPostedInvtPickLine(ItemFilters);
// Only LotNos
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
FindLotNoInfo(ItemFilters);
// Only SerialNos
if ItemFilters.GetFilter("Serial No. Filter") <> '' then begin
FindSerialNoInfo(ItemFilters);
FindSerialNoMisc(ItemFilters);
FindSerialNoFixedAsset(ItemFilters);
OnFindTrackingRecordsOnAfterFindSerialNo(TempRecordBuffer, ItemFilters);
end;
// Only PackageNos
if ItemFilters.GetFilter("Package No. Filter") <> '' then
FindPackageNoInfo(ItemFilters);
FindJobLedgEntry(ItemFilters);
OnAfterFindTrackingRecords(TempRecordBuffer, ItemFilters);
end;
local procedure FindLotNoInfo(var ItemFilters: Record Item)
begin
if not LotNoInfo.ReadPermission then
exit;
LotNoInfo.Reset();
if LotNoInfo.SetCurrentKey("Lot No.") then;
LotNoInfo.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
LotNoInfo.SetFilter("Item No.", ItemFilters.GetFilter("No."));
LotNoInfo.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
if LotNoInfo.FindSet() then
repeat
RecRef.GetTable(LotNoInfo);
Clear(ItemTrackingSetup);
ItemTrackingSetup."Lot No." := LotNoInfo."Lot No.";
InsertBufferRec(RecRef, ItemTrackingSetup, LotNoInfo."Item No.", LotNoInfo."Variant Code");
until LotNoInfo.Next() = 0;
end;
local procedure FindSerialNoInfo(var ItemFilters: Record Item)
begin
if not SerialNoInfo.ReadPermission then
exit;
SerialNoInfo.Reset();
if SerialNoInfo.SetCurrentKey("Serial No.") then;
SerialNoInfo.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
SerialNoInfo.SetFilter("Item No.", ItemFilters.GetFilter("No."));
SerialNoInfo.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
if SerialNoInfo.FindSet() then
repeat
RecRef.GetTable(SerialNoInfo);
Clear(ItemTrackingSetup);
ItemTrackingSetup."Serial No." := SerialNoInfo."Serial No.";
InsertBufferRec(RecRef, ItemTrackingSetup, SerialNoInfo."Item No.", SerialNoInfo."Variant Code");
until SerialNoInfo.Next() = 0;
end;
local procedure FindSerialNoMisc(var ItemFilters: Record Item)
begin
if not MiscArticleInfo.ReadPermission then
exit;
MiscArticleInfo.Reset();
if MiscArticleInfo.SetCurrentKey("Serial No.") then;
MiscArticleInfo.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
if MiscArticleInfo.FindSet() then
repeat
RecRef.GetTable(MiscArticleInfo);
Clear(ItemTrackingSetup);
ItemTrackingSetup."Serial No." := MiscArticleInfo."Serial No.";
InsertBufferRec(RecRef, ItemTrackingSetup, '', '');
until MiscArticleInfo.Next() = 0;
end;
local procedure FindSerialNoFixedAsset(var ItemFilters: Record Item)
begin
if not FixedAsset.ReadPermission then
exit;
FixedAsset.Reset();
if FixedAsset.SetCurrentKey("Serial No.") then;
FixedAsset.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
if FixedAsset.FindSet() then
repeat
RecRef.GetTable(FixedAsset);
Clear(ItemTrackingSetup);
ItemTrackingSetup."Serial No." := FixedAsset."Serial No.";
InsertBufferRec(RecRef, ItemTrackingSetup, '', '');
until FixedAsset.Next() = 0;
end;
local procedure FindPackageNoInfo(var ItemFilters: Record Item)
begin
if not PackageNoInfo.ReadPermission then
exit;
PackageNoInfo.Reset();
PackageNoInfo.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
PackageNoInfo.SetFilter("Item No.", ItemFilters.GetFilter("No."));
PackageNoInfo.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
if PackageNoInfo.FindSet() then
repeat
RecRef.GetTable(PackageNoInfo);
Clear(ItemTrackingSetup);
ItemTrackingSetup."Package No." := PackageNoInfo."Package No.";
InsertBufferRec(RecRef, ItemTrackingSetup, PackageNoInfo."Item No.", PackageNoInfo."Variant Code");
until PackageNoInfo.Next() = 0;
end;
procedure SearchValueEntries()
var
ValueEntry: Record "Value Entry";
begin
if not ValueEntry.ReadPermission then
exit;
ValueEntry.Reset();
ValueEntry.SetCurrentKey("Item Ledger Entry No.");
ValueEntry.SetRange("Item Ledger Entry No.", ItemLedgEntry."Entry No.");
ValueEntry.SetRange("Entry Type", ValueEntry."Entry Type"::"Direct Cost");
ValueEntry.SetFilter("Document Type", '<>%1', ItemLedgEntry."Document Type");
if ValueEntry.FindSet() then
repeat
case ValueEntry."Document Type" of
ValueEntry."Document Type"::"Sales Invoice":
FindSalesInvoice(ValueEntry."Document No.");
ValueEntry."Document Type"::"Sales Credit Memo":
FindSalesCrMemo(ValueEntry."Document No.");
ValueEntry."Document Type"::"Purchase Invoice":
FindPurchInvoice(ValueEntry."Document No.");
ValueEntry."Document Type"::"Purchase Credit Memo":
FindPurchCrMemo(ValueEntry."Document No.");
else
OnSearchValueEntriesOnAfterFindValueEntry(ValueEntry);
end;
until ValueEntry.Next() = 0;
end;
local procedure FindSalesInvoice(DocumentNo: Code[20])
var
SalesInvHeader: Record "Sales Invoice Header";
begin
if SalesInvHeader.ReadPermission then
if SalesInvHeader.Get(DocumentNo) then begin
RecRef.GetTable(SalesInvHeader);
InsertBufferRecFromItemLedgEntry();
TempSalesInvHeader := SalesInvHeader;
if TempSalesInvHeader.Insert() then;
end;
end;
local procedure FindSalesCrMemo(DocumentNo: Code[20])
var
SalesCrMemoHeader: Record "Sales Cr.Memo Header";
begin
if SalesCrMemoHeader.ReadPermission then
if SalesCrMemoHeader.Get(DocumentNo) then begin
RecRef.GetTable(SalesCrMemoHeader);
InsertBufferRecFromItemLedgEntry();
TempSalesCrMemoHeader := SalesCrMemoHeader;
if TempSalesCrMemoHeader.Insert() then;
end;
end;
local procedure FindSalesShptHeader(DocumentNo: Code[20])
var
SalesShptHeader: Record "Sales Shipment Header";
begin
if not SalesShptHeader.ReadPermission then
exit;
if SalesShptHeader.Get(DocumentNo) then begin
RecRef.GetTable(SalesShptHeader);
InsertBufferRecFromItemLedgEntry();
TempSalesShptHeader := SalesShptHeader;
if TempSalesShptHeader.Insert() then;
FindPostedWhseShptLine();
// Find Invoice if it exists
SearchValueEntries();
end;
end;
local procedure FindSalesLines()
var
SalesLine: Record "Sales Line";
begin
if not SalesLine.ReadPermission then
exit;
if SalesLine.Get(ReservEntry."Source Subtype", ReservEntry."Source ID", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(SalesLine);
InsertBufferRecFromReservEntry();
TempSalesLine := SalesLine;
if TempSalesLine.Insert() then;
end;
end;
local procedure FindPurchaseLines()
var
PurchLine: Record "Purchase Line";
begin
if not PurchLine.ReadPermission then
exit;
if PurchLine.Get(ReservEntry."Source Subtype", ReservEntry."Source ID", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(PurchLine);
InsertBufferRecFromReservEntry();
TempPurchLine := PurchLine;
if TempPurchLine.Insert() then;
end;
end;
local procedure FindRequisitionLines()
var
ReqLine: Record "Requisition Line";
begin
if not ReqLine.ReadPermission then
exit;
if ReqLine.Get(ReservEntry."Source ID", ReservEntry."Source Batch Name", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(ReqLine);
InsertBufferRecFromReservEntry();
TempReqLine := ReqLine;
if TempReqLine.Insert() then;
end;
end;
local procedure FindPlanningComponent()
var
PlanningComponent: Record "Planning Component";
begin
if not PlanningComponent.ReadPermission then
exit;
if PlanningComponent.Get(ReservEntry."Source ID", ReservEntry."Source Batch Name", ReservEntry."Source Prod. Order Line", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(PlanningComponent);
InsertBufferRecFromReservEntry();
TempPlanningComponent := PlanningComponent;
if TempPlanningComponent.Insert() then;
end;
end;
local procedure FindItemJournalLines()
var
ItemJnlLine: Record "Item Journal Line";
begin
if not ItemJnlLine.ReadPermission then
exit;
if ItemJnlLine.Get(ReservEntry."Source ID", ReservEntry."Source Batch Name", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(ItemJnlLine);
InsertBufferRecFromReservEntry();
TempItemJnlLine := ItemJnlLine;
if TempItemJnlLine.Insert() then;
end;
end;
local procedure FindTransferLines()
var
TransLine: Record "Transfer Line";
begin
if not TransLine.ReadPermission then
exit;
if TransLine.Get(ReservEntry."Source ID", ReservEntry."Source Ref. No.") then begin
RecRef.GetTable(TransLine);
InsertBufferRecFromReservEntry();
TempTransLine := TransLine;
if TempTransLine.Insert() then;
end;
end;
local procedure FindPurchInvoice(DocumentNo: Code[20])
var
PurchInvHeader: Record "Purch. Inv. Header";
begin
if not PurchInvHeader.ReadPermission then
exit;
if PurchInvHeader.Get(DocumentNo) then begin
RecRef.GetTable(PurchInvHeader);
InsertBufferRecFromItemLedgEntry();
TempPurchInvHeader := PurchInvHeader;
if TempPurchInvHeader.Insert() then;
end;
end;
local procedure FindPurchCrMemo(DocumentNo: Code[20])
var
PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr.";
begin
if not PurchCrMemoHeader.ReadPermission then
exit;
if PurchCrMemoHeader.Get(DocumentNo) then begin
RecRef.GetTable(PurchCrMemoHeader);
InsertBufferRecFromItemLedgEntry();
TempPurchCrMemoHeader := PurchCrMemoHeader;
if TempPurchCrMemoHeader.Insert() then;
end;
end;
local procedure FindPurchRcptHeader(DocumentNo: Code[20])
var
PurchRcptHeader: Record "Purch. Rcpt. Header";
begin
if not PurchRcptHeader.ReadPermission then
exit;
if PurchRcptHeader.Get(DocumentNo) then begin
RecRef.GetTable(PurchRcptHeader);
InsertBufferRecFromItemLedgEntry();
TempPurchRcptHeader := PurchRcptHeader;
if TempPurchRcptHeader.Insert() then;
FindPostedWhseRcptLine();
// Find Invoice if it exists
SearchValueEntries();
end;
end;
procedure FindPostedWhseShptLine()
var
PostedWhseShptLine: Record "Posted Whse. Shipment Line";
begin
if not PostedWhseShptLine.ReadPermission then
exit;
PostedWhseShptLine.Reset();
PostedWhseShptLine.SetCurrentKey("Posted Source No.", "Posting Date");
PostedWhseShptLine.SetRange("Posted Source No.", ItemLedgEntry."Document No.");
PostedWhseShptLine.SetRange("Posting Date", ItemLedgEntry."Posting Date");
PostedWhseShptLine.SetRange("Item No.", ItemLedgEntry."Item No.");
PostedWhseShptLine.SetRange("Variant Code", ItemLedgEntry."Variant Code");
PostedWhseShptLine.SetRange("Source Line No.", ItemLedgEntry."Document Line No.");
if PostedWhseShptLine.FindFirst() then begin
RecRef.GetTable(PostedWhseShptLine);
InsertBufferRecFromItemLedgEntry();
TempPostedWhseShptLine := PostedWhseShptLine;
if TempPostedWhseShptLine.Insert() then;
end;
end;
local procedure FindPostedWhseRcptLine()
var
PostedWhseRcptLine: Record "Posted Whse. Receipt Line";
begin
if not PostedWhseRcptLine.ReadPermission then
exit;
PostedWhseRcptLine.Reset();
PostedWhseRcptLine.SetCurrentKey("Posted Source No.", PostedWhseRcptLine."Posting Date");
PostedWhseRcptLine.SetRange("Posted Source No.", ItemLedgEntry."Document No.");
PostedWhseRcptLine.SetRange("Posting Date", ItemLedgEntry."Posting Date");
PostedWhseRcptLine.SetRange("Item No.", ItemLedgEntry."Item No.");
PostedWhseRcptLine.SetRange("Variant Code", ItemLedgEntry."Variant Code");
PostedWhseRcptLine.SetRange("Source Line No.", ItemLedgEntry."Document Line No.");
if PostedWhseRcptLine.FindFirst() then begin
RecRef.GetTable(PostedWhseRcptLine);
InsertBufferRecFromItemLedgEntry();
TempPostedWhseRcptLine := PostedWhseRcptLine;
if TempPostedWhseRcptLine.Insert() then;
end;
end;
local procedure FindPostedInvtPickLine(var ItemFilters: Record Item)
begin
if not PostedInvtPickLine.ReadPermission then
exit;
PostedInvtPickLine.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if PostedInvtPickLine.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if PostedInvtPickLine.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if PostedInvtPickLine.SetCurrentKey("Serial No.") then;
PostedInvtPickLine.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
PostedInvtPickLine.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
PostedInvtPickLine.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
PostedInvtPickLine.SetFilter("Item No.", ItemFilters.GetFilter("No."));
PostedInvtPickLine.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindPostedInvtPickLineOnAfterSetFilters(PostedInvtPickLine, ItemFilters);
if PostedInvtPickLine.FindSet() then
repeat
RecRef.GetTable(PostedInvtPickLine);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromPostedInvtPickLine(PostedInvtPickLine);
InsertBufferRec(RecRef, ItemTrackingSetup, PostedInvtPickLine."Item No.", PostedInvtPickLine."Variant Code");
until PostedInvtPickLine.Next() = 0;
end;
local procedure FindPostedInvtPutAwayLine(var ItemFilters: Record Item)
begin
if not PostedInvtPutAwayLine.ReadPermission then
exit;
PostedInvtPutAwayLine.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if PostedInvtPutAwayLine.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if PostedInvtPutAwayLine.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if PostedInvtPutAwayLine.SetCurrentKey("Serial No.") then;
PostedInvtPutAwayLine.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
PostedInvtPutAwayLine.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
PostedInvtPutAwayLine.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
PostedInvtPutAwayLine.SetFilter("Item No.", ItemFilters.GetFilter("No."));
PostedInvtPutAwayLine.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindPostedInvtPutAwayLineOnAfterSetFilters(PostedInvtPutAwayLine, ItemFilters);
if PostedInvtPutAwayLine.FindSet() then
repeat
RecRef.GetTable(PostedInvtPutAwayLine);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromPostedInvtPutAwayLine(PostedInvtPutAwayLine);
InsertBufferRec(RecRef, ItemTrackingSetup, PostedInvtPutAwayLine."Item No.", PostedInvtPutAwayLine."Variant Code");
until PostedInvtPutAwayLine.Next() = 0;
end;
local procedure FindRegWhseActivLine(var ItemFilters: Record Item)
begin
if not RgstrdWhseActivLine.ReadPermission then
exit;
RgstrdWhseActivLine.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if RgstrdWhseActivLine.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if RgstrdWhseActivLine.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if RgstrdWhseActivLine.SetCurrentKey("Serial No.") then;
RgstrdWhseActivLine.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
RgstrdWhseActivLine.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
RgstrdWhseActivLine.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
RgstrdWhseActivLine.SetFilter("Item No.", ItemFilters.GetFilter("No."));
RgstrdWhseActivLine.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindRegWhseActivLineOnAfterSetFilters(RgstrdWhseActivLine, ItemFilters);
if RgstrdWhseActivLine.FindSet() then
repeat
RecRef.GetTable(RgstrdWhseActivLine);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromRegisteredWhseActivityLine(RgstrdWhseActivLine);
InsertBufferRec(RecRef, ItemTrackingSetup, RgstrdWhseActivLine."Item No.", RgstrdWhseActivLine."Variant Code");
until RgstrdWhseActivLine.Next() = 0;
end;
local procedure FindItemLedgerEntry(var ItemFilters: Record Item)
var
IsHandled: Boolean;
begin
if not ItemLedgEntry.ReadPermission then
exit;
ItemLedgEntry.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if ItemLedgEntry.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if ItemLedgEntry.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if ItemLedgEntry.SetCurrentKey("Serial No.") then;
ItemLedgEntry.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
ItemLedgEntry.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
ItemLedgEntry.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
ItemLedgEntry.SetFilter("Item No.", ItemFilters.GetFilter("No."));
ItemLedgEntry.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindItemLedgerEntryOnAfterSetFilters(ItemLedgEntry, ItemFilters);
if ItemLedgEntry.FindSet() then
repeat
RecRef.GetTable(ItemLedgEntry);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromItemLedgerEntry(ItemLedgEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, ItemLedgEntry."Item No.", ItemLedgEntry."Variant Code");
IsHandled := false;
OnFindItemLedgerEntryOnBeforeCaseDocumentType(ItemLedgEntry, RecRef, IsHandled);
if not IsHandled then
case ItemLedgEntry."Document Type" of
ItemLedgEntry."Document Type"::"Sales Shipment":
FindSalesShptHeader(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Sales Invoice":
FindSalesInvoice(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Sales Return Receipt":
FindReturnRcptHeader(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Sales Credit Memo":
FindSalesCrMemo(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Purchase Receipt":
FindPurchRcptHeader(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Purchase Invoice":
FindPurchInvoice(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Purchase Return Shipment":
FindReturnShptHeader(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Purchase Credit Memo":
FindPurchCrMemo(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Transfer Shipment":
FindTransShptHeader(ItemLedgEntry."Document No.");
ItemLedgEntry."Document Type"::"Transfer Receipt":
FindTransRcptHeader(ItemLedgEntry."Document No.");
else
OnFindLedgerEntryByDocumentType(ItemLedgEntry, RecRef);
end;
OnFindTrackingRecordsForItemLedgerEntry(ItemLedgEntry);
until ItemLedgEntry.Next() = 0;
end;
local procedure FindReturnRcptHeader(DocumentNo: Code[20])
var
ReturnRcptHeader: Record "Return Receipt Header";
begin
if not ReturnRcptHeader.ReadPermission then
exit;
if ReturnRcptHeader.Get(DocumentNo) then begin
RecRef.GetTable(ReturnRcptHeader);
InsertBufferRecFromItemLedgEntry();
TempReturnRcptHeader := ReturnRcptHeader;
if TempReturnRcptHeader.Insert() then;
FindPostedWhseRcptLine();
// Find CreditMemo if it exists
SearchValueEntries();
end;
end;
local procedure FindReturnShptHeader(DocumentNo: Code[20])
var
ReturnShptHeader: Record "Return Shipment Header";
begin
if not ReturnShptHeader.ReadPermission then
exit;
if ReturnShptHeader.Get(DocumentNo) then begin
RecRef.GetTable(ReturnShptHeader);
InsertBufferRecFromItemLedgEntry();
TempReturnShipHeader := ReturnShptHeader;
if TempReturnShipHeader.Insert() then;
FindPostedWhseShptLine();
// Find CreditMemo if it exists
SearchValueEntries();
end;
end;
local procedure FindTransShptHeader(DocumentNo: Code[20])
var
TransShptHeader: Record "Transfer Shipment Header";
begin
if not TransShptHeader.ReadPermission then
exit;
if TransShptHeader.Get(DocumentNo) then begin
RecRef.GetTable(TransShptHeader);
InsertBufferRecFromItemLedgEntry();
TempTransShipHeader := TransShptHeader;
if TempTransShipHeader.Insert() then;
FindPostedWhseShptLine();
end;
end;
local procedure FindTransRcptHeader(DocumentNo: Code[20])
var
TransRcptHeader: Record "Transfer Receipt Header";
begin
if not TransRcptHeader.ReadPermission then
exit;
if TransRcptHeader.Get(DocumentNo) then begin
RecRef.GetTable(TransRcptHeader);
InsertBufferRecFromItemLedgEntry();
TempTransRcptHeader := TransRcptHeader;
if TempTransRcptHeader.Insert() then;
FindPostedWhseRcptLine();
end;
end;
local procedure FindJobLedgEntry(var ItemFilters: Record Item)
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeFindJobLedgEntry(TempJobLedgEntry, ItemFilters, IsHandled);
if IsHandled then
exit;
if not JobLedgEntry.ReadPermission then
exit;
JobLedgEntry.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if JobLedgEntry.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if JobLedgEntry.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if JobLedgEntry.SetCurrentKey("Serial No.") then;
JobLedgEntry.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
JobLedgEntry.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
JobLedgEntry.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
JobLedgEntry.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
if JobLedgEntry.FindSet() then
repeat
RecRef.GetTable(JobLedgEntry);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromJobLedgerEntry(JobLedgEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, '', JobLedgEntry."Variant Code");
TempJobLedgEntry := JobLedgEntry;
if TempJobLedgEntry.Insert() then;
until JobLedgEntry.Next() = 0;
end;
local procedure FindReservEntry(var ItemFilters: Record Item)
var
IsHandled: Boolean;
begin
if not ReservEntry.ReadPermission then
exit;
ReservEntry.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if ReservEntry.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if ReservEntry.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if ReservEntry.SetCurrentKey("Serial No.") then;
ReservEntry.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
ReservEntry.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
ReservEntry.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
ReservEntry.SetFilter("Item No.", ItemFilters.GetFilter("No."));
ReservEntry.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindReservEntryOnAfterSetFilters(ReservEntry, ItemFilters);
if ReservEntry.FindSet() then
repeat
RecRef.GetTable(ReservEntry);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromReservEntry(ReservEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, ReservEntry."Item No.", ReservEntry."Variant Code");
IsHandled := false;
OnFindReservEntryOnBeforeCaseDocumentType(ReservEntry, RecRef, IsHandled);
if not IsHandled then
case ReservEntry."Source Type" of
Database::"Sales Line":
FindSalesLines();
Database::"Purchase Line":
FindPurchaseLines();
Database::"Requisition Line":
FindRequisitionLines();
Database::"Planning Component":
FindPlanningComponent();
Database::"Item Journal Line":
FindItemJournalLines();
Database::"Transfer Line":
FindTransferLines();
end;
until ReservEntry.Next() = 0;
end;
local procedure FindWhseActivLine(var ItemFilters: Record Item)
begin
if not WhseActivLine.ReadPermission then
exit;
WhseActivLine.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if WhseActivLine.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if WhseActivLine.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if WhseActivLine.SetCurrentKey("Serial No.") then;
WhseActivLine.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
WhseActivLine.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
WhseActivLine.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
WhseActivLine.SetFilter("Item No.", ItemFilters.GetFilter("No."));
WhseActivLine.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindWhseActivLineOnAfterSetFilters(WhseActivLine, ItemFilters);
if WhseActivLine.FindSet() then
repeat
RecRef.GetTable(WhseActivLine);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromWhseActivityLine(WhseActivLine);
InsertBufferRec(RecRef, ItemTrackingSetup, WhseActivLine."Item No.", WhseActivLine."Variant Code");
until WhseActivLine.Next() = 0;
end;
local procedure FindWhseEntry(var ItemFilters: Record Item)
begin
if not WhseEntry.ReadPermission then
exit;
WhseEntry.Reset();
if ItemFilters.GetFilter("Lot No. Filter") <> '' then
if WhseEntry.SetCurrentKey("Lot No.") then;
if ItemFilters.GetFilter("Package No. Filter") <> '' then
if WhseEntry.SetCurrentKey("Package No.") then;
if ItemFilters.GetFilter("Serial No. Filter") <> '' then
if WhseEntry.SetCurrentKey("Serial No.") then;
WhseEntry.SetFilter("Lot No.", ItemFilters.GetFilter("Lot No. Filter"));
WhseEntry.SetFilter("Serial No.", ItemFilters.GetFilter("Serial No. Filter"));
WhseEntry.SetFilter("Package No.", ItemFilters.GetFilter("Package No. Filter"));
WhseEntry.SetFilter("Item No.", ItemFilters.GetFilter("No."));
WhseEntry.SetFilter("Variant Code", ItemFilters.GetFilter("Variant Filter"));
OnFindWhseEntryOnAfterSetFilters(WhseEntry, ItemFilters);
if WhseEntry.FindSet() then
repeat
RecRef.GetTable(WhseEntry);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromWhseEntry(WhseEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, WhseEntry."Item No.", WhseEntry."Variant Code");
until WhseEntry.Next() = 0;
end;
procedure Show(TableNo: Integer)
begin
case TableNo of
Database::"Item Ledger Entry":
PAGE.Run(0, ItemLedgEntry);
Database::"Reservation Entry":
PAGE.Run(0, ReservEntry);
Database::"Misc. Article Information":
PAGE.Run(0, MiscArticleInfo);
Database::"Fixed Asset":
PAGE.Run(0, FixedAsset);
Database::"Warehouse Activity Line":
PAGE.Run(0, WhseActivLine);
Database::"Registered Whse. Activity Line":
PAGE.Run(0, RgstrdWhseActivLine);
Database::"Serial No. Information":
PAGE.Run(0, SerialNoInfo);
Database::"Lot No. Information":
PAGE.Run(0, LotNoInfo);
Database::"Package No. Information":
PAGE.Run(0, PackageNoInfo);
Database::"Warehouse Entry":
PAGE.Run(0, WhseEntry);
Database::"Posted Whse. Shipment Line":
PAGE.Run(0, TempPostedWhseShptLine);
Database::"Posted Whse. Receipt Line":
PAGE.Run(0, TempPostedWhseRcptLine);
Database::"Posted Invt. Put-away Line":
PAGE.Run(0, PostedInvtPutAwayLine);
Database::"Posted Invt. Pick Line":
PAGE.Run(0, PostedInvtPickLine);
Database::"Purch. Rcpt. Header":
PAGE.Run(0, TempPurchRcptHeader);
Database::"Purch. Inv. Header":
PAGE.Run(0, TempPurchInvHeader);
Database::"Purch. Cr. Memo Hdr.":
PAGE.Run(0, TempPurchCrMemoHeader);
Database::"Sales Shipment Header":
PAGE.Run(0, TempSalesShptHeader);
Database::"Sales Invoice Header":
PAGE.Run(0, TempSalesInvHeader);
Database::"Sales Cr.Memo Header":
PAGE.Run(0, TempSalesCrMemoHeader);
Database::"Transfer Shipment Header":
PAGE.Run(0, TempTransShipHeader);
Database::"Return Shipment Header":
PAGE.Run(0, TempReturnShipHeader);
Database::"Return Receipt Header":
PAGE.Run(0, TempReturnRcptHeader);
Database::"Transfer Receipt Header":
PAGE.Run(0, TempTransRcptHeader);
Database::"Sales Line":
PAGE.Run(0, TempSalesLine);
Database::"Purchase Line":
PAGE.Run(0, TempPurchLine);
Database::"Requisition Line":
PAGE.Run(0, TempReqLine);
Database::"Item Journal Line":
PAGE.Run(0, TempItemJnlLine);
Database::"Planning Component":
PAGE.Run(0, TempPlanningComponent);
Database::"Transfer Line":
PAGE.Run(0, TempTransLine);
Database::"Job Ledger Entry":
PAGE.Run(0, TempJobLedgEntry);
else
OnShowTable(TableNo, TempRecordBuffer);
end;
OnAfterShow(TableNo, TempRecordBuffer);
end;
procedure InsertBufferRecFromItemLedgEntry()
var
TrackingRecRef: RecordRef;
begin
TrackingRecRef.GetTable(ItemLedgEntry);
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromItemLedgerEntry(ItemLedgEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, ItemLedgEntry."Item No.", ItemLedgEntry."Variant Code", TrackingRecRef);
end;
procedure InsertBufferRecFromReservEntry()
begin
Clear(ItemTrackingSetup);
ItemTrackingSetup.CopyTrackingFromReservEntry(ReservEntry);
InsertBufferRec(RecRef, ItemTrackingSetup, ReservEntry."Item No.", ReservEntry."Variant Code");
end;
procedure InsertBufferRec(RecRef: RecordRef; ItemTrackingSetup: Record "Item Tracking Setup"; ItemNo: Code[20]; VariantCode: Code[10])
var
DummyTrackingRecRef: RecordRef;
begin
InsertBufferRec(RecRef, ItemTrackingSetup, ItemNo, VariantCode, DummyTrackingRecRef);
end;
local procedure InsertBufferRec(RecRef: RecordRef; ItemTrackingSetup: Record "Item Tracking Setup"; ItemNo: Code[20]; VariantCode: Code[10]; TrackingRecRef: RecordRef)
var
KeyFldRef: FieldRef;
KeyRef1: KeyRef;
i: Integer;
SkipProcedure: Boolean;
begin
SkipProcedure := not ItemTrackingSetup.TrackingExists();
OnInsertBufferRecOnAfterCalcSkipProcedure(VariantCode, SkipProcedure);
if SkipProcedure then
exit;
TempRecordBuffer.SetRange("Record Identifier", RecRef.RecordId);
TempRecordBuffer.SetTrackingFilterFromItemTrackingSetup(ItemTrackingSetup);
TempRecordBuffer.SetRange("Item No.", ItemNo);
TempRecordBuffer.SetRange("Variant Code", VariantCode);
if not TempRecordBuffer.Find('-') then begin
TempRecordBuffer.Init();
TempRecordBuffer."Entry No." := LastEntryNo + 10;
LastEntryNo := TempRecordBuffer."Entry No.";
TempRecordBuffer."Table No." := RecRef.Number;
TempRecordBuffer."Table Name" := GetTableCaption(RecRef.Number);
TempRecordBuffer."Record Identifier" := RecRef.RecordId;
TempRecordBuffer."Search Record ID" :=
CopyStr(Format(TempRecordBuffer."Record Identifier"), 1, MaxStrLen(TempRecordBuffer."Search Record ID"));
KeyRef1 := RecRef.KeyIndex(1);
for i := 1 to KeyRef1.FieldCount do begin
KeyFldRef := KeyRef1.FieldIndex(i);
if i = 1 then
TempRecordBuffer."Primary Key" :=
CopyStr(
StrSubstNo('%1=%2', KeyFldRef.Caption, FormatValue(KeyFldRef, RecRef.Number)),
1, MaxStrLen(TempRecordBuffer."Primary Key"))
else
if MaxStrLen(TempRecordBuffer."Primary Key") >
StrLen(TempRecordBuffer."Primary Key") +
StrLen(StrSubstNo(', %1=%2', KeyFldRef.Caption, FormatValue(KeyFldRef, RecRef.Number)))
then
TempRecordBuffer."Primary Key" :=
CopyStr(
TempRecordBuffer."Primary Key" +
StrSubstNo(', %1=%2', KeyFldRef.Caption, FormatValue(KeyFldRef, RecRef.Number)),
1, MaxStrLen(TempRecordBuffer."Primary Key"));
case i of
1:
begin
TempRecordBuffer."Primary Key Field 1 No." := KeyFldRef.Number;
TempRecordBuffer."Primary Key Field 1 Value" :=
CopyStr(
FormatValue(KeyFldRef, RecRef.Number), 1, MaxStrLen(TempRecordBuffer."Primary Key Field 1 Value"));
end;
2:
begin
TempRecordBuffer."Primary Key Field 2 No." := KeyFldRef.Number;
TempRecordBuffer."Primary Key Field 2 Value" :=
CopyStr(
FormatValue(KeyFldRef, RecRef.Number), 1, MaxStrLen(TempRecordBuffer."Primary Key Field 2 Value"));
end;
3:
begin
TempRecordBuffer."Primary Key Field 3 No." := KeyFldRef.Number;
TempRecordBuffer."Primary Key Field 3 Value" :=
CopyStr(
FormatValue(KeyFldRef, RecRef.Number), 1, MaxStrLen(TempRecordBuffer."Primary Key Field 3 Value"));
end;
end;
end;
TempRecordBuffer."Item No." := ItemNo;
TempRecordBuffer."Variant Code" := VariantCode;
TempRecordBuffer.CopyTrackingFromItemTrackingSetup(ItemTrackingSetup);
OnBeforeTempRecordBufferInsert(TempRecordBuffer, RecRef, TrackingRecRef);
TempRecordBuffer.Insert();
end;
end;
procedure Collect(var RecordBuffer: Record "Record Buffer" temporary)
begin
RecordBuffer.Reset();
RecordBuffer.DeleteAll();
TempRecordBuffer.Reset();
if TempRecordBuffer.Find('-') then
repeat
RecordBuffer := TempRecordBuffer;
RecordBuffer.Insert();
until TempRecordBuffer.Next() = 0;
end;
local procedure GetTableCaption(TableNumber: Integer): Text[250]
var
AllObjWithCaption: Record AllObjWithCaption;
begin
AllObjWithCaption.Reset();
AllObjWithCaption.SetRange("Object Type", AllObjWithCaption."Object Type"::TableData);
AllObjWithCaption.SetRange("Object ID", TableNumber);
if AllObjWithCaption.FindFirst() then
exit(AllObjWithCaption."Object Caption");
exit('');
end;
local procedure FormatValue(var FldRef: FieldRef; TableNumber: Integer): Text[250]
var
"Field": Record "Field";
OptionNo: Integer;
OptionStr: Text[1024];
i: Integer;
begin
GetField(TableNumber, FldRef.Number, Field);
if Field.Type = Field.Type::Option then begin
OptionNo := FldRef.Value();
OptionStr := Format(FldRef.OptionCaption);
for i := 1 to OptionNo do
OptionStr := CopyStr(OptionStr, StrPos(OptionStr, ',') + 1);
if StrPos(OptionStr, ',') > 0 then
if StrPos(OptionStr, ',') = 1 then
OptionStr := ''
else
OptionStr := CopyStr(OptionStr, 1, StrPos(OptionStr, ',') - 1);
exit(OptionStr);
end;
exit(Format(FldRef.Value));
end;
local procedure GetField(TableNumber: Integer; FieldNumber: Integer; var Field2: Record "Field")
var
"Field": Record "Field";
begin
if not TempField.Get(TableNumber, FieldNumber) then begin
Field.Get(TableNumber, FieldNumber);
TempField := Field;
TempField.Insert();
end;
Field2 := TempField;
end;
[IntegrationEvent(false, false)]
local procedure OnAfterShow(TableID: Integer; var TempRecordBuffer: Record "Record Buffer" temporary)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterFindTrackingRecords(var TempRecordBuffer: Record "Record Buffer" temporary; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindJobLedgEntry(var TempJobLedgerEntry: Record "Job Ledger Entry" temporary; var ItemFilters: Record Item; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeTempRecordBufferInsert(var TempRecordBuffer: Record "Record Buffer" temporary; RecRef: RecordRef; TrackingRecRef: RecordRef);
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindTrackingRecordsOnAfterCalcFiltersAreEmpty(var ItemFilters: Record Item; var FiltersAreEmpty: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindTrackingRecordsForItemLedgerEntry(var ItemLedgerEntry: Record "Item Ledger Entry")
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindTrackingRecordsOnAfterFindSerialNo(var TempRecordBuffer: Record "Record Buffer" temporary; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindItemLedgerEntryOnBeforeCaseDocumentType(var ItemLedgerEntry: Record "Item Ledger Entry"; RecRef: RecordRef; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindReservEntryOnBeforeCaseDocumentType(var ReservationEntry: Record "Reservation Entry"; RecRef: RecordRef; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnInsertBufferRecOnAfterCalcSkipProcedure(VariantCode: Code[10]; var SkipProcedure: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnSearchValueEntriesOnAfterFindValueEntry(ValueEntry: Record "Value Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnShowTable(TableNo: Integer; var TempRecordBuffer: Record "Record Buffer" temporary)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindLedgerEntryByDocumentType(var ItemLedgerEntry: Record "Item Ledger Entry"; RecRef: RecordRef)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindTrackingRecordsOnBeforeFind()
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindItemLedgerEntryOnAfterSetFilters(var ItemLedgerEntry: Record "Item Ledger Entry"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindReservEntryOnAfterSetFilters(var ReservationEntry: Record "Reservation Entry"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindWhseActivLineOnAfterSetFilters(var WarehouseActivityLine: Record "Warehouse Activity Line"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindRegWhseActivLineOnAfterSetFilters(var RegisteredWhseActivityLine: Record "Registered Whse. Activity Line"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindWhseEntryOnAfterSetFilters(var WarehouseEntry: Record "Warehouse Entry"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindPostedInvtPutAwayLineOnAfterSetFilters(var PostedInvtPutawayLine: Record "Posted Invt. Put-away Line"; var ItemFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindPostedInvtPickLineOnAfterSetFilters(var PostedInvtPickLine: Record "Posted Invt. Pick Line"; var ItemFilters: Record Item)
begin
end;
}