Table 337 Reservation Entry
- App
- Base Application
- Namespace
- Microsoft.Inventory.Tracking
- Versions
- 17-28
Fields, 45Keys, 12Procedures, 76Events, 61Obsolete, 2
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Inventory/Tracking/ReservationEntry.Table.al1482 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.Foundation.Enums;
using Microsoft.Foundation.UOM;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Journal;
using Microsoft.Inventory.Ledger;
using Microsoft.Inventory.Location;
using Microsoft.Inventory.Requisition;
using Microsoft.Purchases.Document;
using Microsoft.Sales.Document;
using Microsoft.Utilities;
using Microsoft.Warehouse.Activity;
using Microsoft.Warehouse.Journal;
using Microsoft.Warehouse.Ledger;
using Microsoft.Warehouse.Tracking;
using System.Security.AccessControl;
table 337 "Reservation Entry"
{
Caption = 'Reservation Entry';
DrillDownPageID = "Reservation Entries";
LookupPageID = "Reservation Entries";
DataClassification = CustomerContent;
fields
{
field(1; "Entry No."; Integer)
{
AutoIncrement = true;
Caption = 'Entry No.';
ToolTip = 'Specifies the number of the entry, as assigned from the specified number series when the entry was created.';
}
field(2; "Item No."; Code[20])
{
Caption = 'Item No.';
ToolTip = 'Specifies the number of the item that has been reserved in this entry.';
TableRelation = Item;
}
field(3; "Location Code"; Code[10])
{
Caption = 'Location Code';
ToolTip = 'Specifies the Location of the items that have been reserved in the entry.';
TableRelation = Location;
}
field(4; "Quantity (Base)"; Decimal)
{
AutoFormatType = 0;
Caption = 'Quantity (Base)';
DecimalPlaces = 0 : 5;
trigger OnValidate()
begin
Quantity := CalcReservationQuantity();
"Qty. to Handle (Base)" := "Quantity (Base)";
"Qty. to Invoice (Base)" := "Quantity (Base)";
end;
}
field(5; "Reservation Status"; Enum "Reservation Status")
{
Caption = 'Reservation Status';
ToolTip = 'Specifies the status of the reservation.';
}
field(7; Description; Text[100])
{
Caption = 'Description';
ToolTip = 'Specifies a description of the reservation entry.';
}
field(8; "Creation Date"; Date)
{
Caption = 'Creation Date';
ToolTip = 'Specifies the date on which the entry was created.';
}
field(9; "Transferred from Entry No."; Integer)
{
Caption = 'Transferred from Entry No.';
ToolTip = 'Specifies a value when the order tracking entry is for the quantity that remains on a document line after a partial posting.';
TableRelation = "Reservation Entry";
}
field(10; "Source Type"; Integer)
{
Caption = 'Source Type';
ToolTip = 'Specifies for which source type the reservation entry is related to.';
}
field(11; "Source Subtype"; Option)
{
Caption = 'Source Subtype';
ToolTip = 'Specifies which source subtype the reservation entry is related to.';
OptionCaption = '0,1,2,3,4,5,6,7,8,9,10';
OptionMembers = "0","1","2","3","4","5","6","7","8","9","10";
}
field(12; "Source ID"; Code[20])
{
Caption = 'Source ID';
ToolTip = 'Specifies which source ID the reservation entry is related to.';
}
field(13; "Source Batch Name"; Code[10])
{
Caption = 'Source Batch Name';
ToolTip = 'Specifies the journal batch name if the reservation entry is related to a journal or requisition line.';
}
field(14; "Source Prod. Order Line"; Integer)
{
Caption = 'Source Prod. Order Line';
}
field(15; "Source Ref. No."; Integer)
{
Caption = 'Source Ref. No.';
ToolTip = 'Specifies a reference number for the line, which the reservation entry is related to.';
}
field(16; "Item Ledger Entry No."; Integer)
{
Caption = 'Item Ledger Entry No.';
Editable = false;
TableRelation = "Item Ledger Entry";
}
field(22; "Expected Receipt Date"; Date)
{
Caption = 'Expected Receipt Date';
ToolTip = 'Specifies the date on which the reserved items are expected to enter inventory.';
}
field(23; "Shipment Date"; Date)
{
Caption = 'Shipment Date';
ToolTip = 'Specifies when items on the document are shipped or were shipped. A shipment date is usually calculated from a requested delivery date plus lead time.';
}
field(24; "Serial No."; Code[50])
{
Caption = 'Serial No.';
ToolTip = 'Specifies the serial number of the item that is being handled on the document line.';
}
field(25; "Created By"; Code[50])
{
Caption = 'Created By';
ToolTip = 'Specifies the user who created the traced record.';
DataClassification = EndUserIdentifiableInformation;
TableRelation = User."User Name";
}
field(27; "Changed By"; Code[50])
{
Caption = 'Changed By';
DataClassification = EndUserIdentifiableInformation;
TableRelation = User."User Name";
}
field(28; Positive; Boolean)
{
Caption = 'Positive';
ToolTip = 'Specifies that the difference is positive.';
Editable = false;
}
field(29; "Qty. per Unit of Measure"; Decimal)
{
AutoFormatType = 0;
Caption = 'Qty. per Unit of Measure';
ToolTip = 'Specifies how many of the base unit of measure are contained in one unit of the item.';
DecimalPlaces = 0 : 5;
Editable = false;
InitValue = 1;
trigger OnValidate()
begin
Quantity := Round("Quantity (Base)" / "Qty. per Unit of Measure", UOMMgt.QtyRndPrecision());
end;
}
field(30; Quantity; Decimal)
{
AutoFormatType = 0;
Caption = 'Quantity';
ToolTip = 'Specifies the quantity of the record.';
DecimalPlaces = 0 : 5;
}
field(31; "Action Message Adjustment"; Decimal)
{
AutoFormatType = 0;
CalcFormula = sum("Action Message Entry".Quantity where("Reservation Entry" = field("Entry No."),
Calculation = const(Sum)));
Caption = 'Action Message Adjustment';
DecimalPlaces = 0 : 5;
Editable = false;
FieldClass = FlowField;
}
field(32; Binding; Enum "Reservation Binding")
{
Caption = 'Binding';
Editable = false;
}
field(33; "Suppressed Action Msg."; Boolean)
{
Caption = 'Suppressed Action Msg.';
}
field(34; "Planning Flexibility"; Enum "Reservation Planning Flexibility")
{
Caption = 'Planning Flexibility';
}
field(38; "Appl.-to Item Entry"; Integer)
{
Caption = 'Appl.-to Item Entry';
}
field(40; "Warranty Date"; Date)
{
Caption = 'Warranty Date';
ToolTip = 'Specifies the last day of the serial/lot number''s warranty.';
Editable = false;
}
field(41; "Expiration Date"; Date)
{
Caption = 'Expiration Date';
ToolTip = 'Specifies the expiration date of the item that is being handled on the document line.';
Editable = false;
}
field(50; "Qty. to Handle (Base)"; Decimal)
{
AutoFormatType = 0;
Caption = 'Qty. to Handle (Base)';
DecimalPlaces = 0 : 5;
}
field(51; "Qty. to Invoice (Base)"; Decimal)
{
AutoFormatType = 0;
Caption = 'Qty. to Invoice (Base)';
DecimalPlaces = 0 : 5;
}
field(53; "Quantity Invoiced (Base)"; Decimal)
{
AutoFormatType = 0;
Caption = 'Quantity Invoiced (Base)';
DecimalPlaces = 0 : 5;
}
field(80; "New Serial No."; Code[50])
{
Caption = 'New Serial No.';
Editable = false;
}
field(81; "New Lot No."; Code[50])
{
Caption = 'New Lot No.';
Editable = false;
}
field(900; "Disallow Cancellation"; Boolean)
{
Caption = 'Disallow Cancellation';
}
field(5400; "Lot No."; Code[50])
{
Caption = 'Lot No.';
ToolTip = 'Specifies the lot number of the item that is being handled with the associated document line.';
}
field(5401; "Variant Code"; Code[10])
{
Caption = 'Variant Code';
ToolTip = 'Specifies the variant of the item on the line.';
TableRelation = "Item Variant".Code where("Item No." = field("Item No."));
}
field(5811; "Appl.-from Item Entry"; Integer)
{
Caption = 'Appl.-from Item Entry';
MinValue = 0;
}
field(5817; Correction; Boolean)
{
Caption = 'Correction';
}
field(6505; "New Expiration Date"; Date)
{
Caption = 'New Expiration Date';
Editable = false;
}
field(6510; "Item Tracking"; Enum "Item Tracking Entry Type")
{
Caption = 'Item Tracking';
Editable = false;
}
field(6511; "Untracked Surplus"; Boolean)
{
Caption = 'Untracked Surplus';
}
field(6515; "Package No."; Code[50])
{
Caption = 'Package No.';
ToolTip = 'Specifies the package number of the item that is being handled with the associated document line.';
CaptionClass = '6,1';
Editable = false;
}
field(6516; "New Package No."; Code[50])
{
Caption = 'New Package No.';
CaptionClass = '6,2';
}
}
keys
{
key(Key1; "Entry No.", Positive)
{
Clustered = true;
}
key(Key2; "Source ID", "Source Ref. No.", "Source Type", "Source Subtype", "Source Batch Name", "Source Prod. Order Line", "Reservation Status", "Shipment Date", "Expected Receipt Date")
{
IncludedFields = "Quantity (Base)", "Qty. to Handle (Base)", "Serial No.", "Lot No.", "Package No.", "Item No.", Quantity, "Untracked Surplus";
}
key(Key3; "Item No.", "Variant Code", "Location Code")
{
IncludedFields = "Item Tracking";
}
key(Key4; "Item No.", "Variant Code", "Location Code", "Reservation Status", "Shipment Date", "Expected Receipt Date", "Serial No.", "Lot No.", "Package No.")
{
IncludedFields = "Source Type", "Source Subtype", "Quantity (Base)", "Untracked Surplus";
}
key(Key9; "Source Type", "Source Subtype", "Source ID", "Source Batch Name", "Source Prod. Order Line", "Source Ref. No.")
{
IncludedFields = "Qty. to Handle (Base)", "Item Tracking", "Untracked Surplus";
}
key(Key10; "Reservation Status", "Item No.", "Variant Code", "Location Code", "Expected Receipt Date")
{
IncludedFields = "Quantity (Base)";
}
key(Key11; "Serial No.", "Source ID", "Source Ref. No.", "Source Type", "Source Subtype", "Source Batch Name", "Source Prod. Order Line")
{
IncludedFields = "Reservation Status", "Quantity (Base)", "Lot No.", "Package No.", Binding;
}
key(Key12; Positive, "Reservation Status", "Source Type")
{
}
}
fieldgroups
{
fieldgroup(DropDown; "Entry No.", Positive, "Item No.", Description, Quantity)
{
}
}
trigger OnDelete()
var
ActionMessageEntry: Record "Action Message Entry";
begin
ActionMessageEntry.SetCurrentKey("Reservation Entry");
ActionMessageEntry.SetRange("Reservation Entry", "Entry No.");
ActionMessageEntry.DeleteAll();
end;
var
UOMMgt: Codeunit "Unit of Measure Management";
#pragma warning disable AA0074
Text001: Label 'Line';
Text004: Label 'Codeunit 99000845: Illegal FieldFilter parameter';
#pragma warning restore AA0074
procedure GetLastEntryNo(): Integer;
var
FindRecordManagement: Codeunit "Find Record Management";
begin
exit(FindRecordManagement.GetLastEntryIntFieldValue(Rec, FieldNo("Entry No.")))
end;
procedure InitSortingAndFilters(SetFilters: Boolean)
begin
Reset();
SetCurrentKey(
"Source ID", "Source Ref. No.", "Source Type", "Source Subtype",
"Source Batch Name", "Source Prod. Order Line", "Reservation Status",
"Shipment Date", "Expected Receipt Date");
if SetFilters then
SetRange("Reservation Status", "Reservation Status"::Reservation);
end;
procedure TextCaption(): Text[255]
var
RecRef: RecordRef;
ExtensionTextCaption: Text[255];
begin
if "Source Type" > 0 then begin
RecRef.Open("Source Type");
ExtensionTextCaption := RecRef.Caption;
end;
OnAfterTextCaption("Source Type", ExtensionTextCaption);
if ExtensionTextCaption <> '' then
exit(ExtensionTextCaption);
exit(Text001);
end;
procedure SummEntryNo(): Integer
var
ReturnValue: Integer;
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeSummEntryNo(Rec, ReturnValue, IsHandled);
if IsHandled then
exit(ReturnValue);
case "Source Type" of
Database::"Item Ledger Entry":
exit(Enum::"Reservation Summary Type"::"Item Ledger Entry".AsInteger());
Database::"Requisition Line":
exit(Enum::"Reservation Summary Type"::"Requisition Line".AsInteger());
Database::"Item Journal Line":
exit(Enum::"Reservation Summary Type"::"Item Journal Purchase".AsInteger() + "Source Subtype");
end;
OnAfterSummEntryNo(Rec, ReturnValue);
exit(ReturnValue);
end;
procedure HasSamePointer(var ReservEntry: Record "Reservation Entry"): Boolean
begin
exit(
("Source Type" = ReservEntry."Source Type") and
("Source Subtype" = ReservEntry."Source Subtype") and
("Source ID" = ReservEntry."Source ID") and
("Source Batch Name" = ReservEntry."Source Batch Name") and
("Source Prod. Order Line" = ReservEntry."Source Prod. Order Line") and
("Source Ref. No." = ReservEntry."Source Ref. No."));
end;
procedure HasSamePointerWithSpec(var TrackingSpecification: Record "Tracking Specification"): Boolean
begin
exit(
("Source Type" = TrackingSpecification."Source Type") and
("Source Subtype" = TrackingSpecification."Source Subtype") and
("Source ID" = TrackingSpecification."Source ID") and
("Source Batch Name" = TrackingSpecification."Source Batch Name") and
("Source Prod. Order Line" = TrackingSpecification."Source Prod. Order Line") and
("Source Ref. No." = TrackingSpecification."Source Ref. No."));
end;
procedure HasSameTracking(ReservEntry: Record "Reservation Entry") IsSameTracking: Boolean
begin
IsSameTracking := ("Serial No." = ReservEntry."Serial No.") and ("Lot No." = ReservEntry."Lot No.");
OnAfterHasSameTracking(Rec, ReservEntry, IsSameTracking);
end;
procedure HasSameTrackingWithSpec(TrackingSpecification: Record "Tracking Specification") IsSameTracking: Boolean
begin
IsSameTracking := ("Serial No." = TrackingSpecification."Serial No.") and ("Lot No." = TrackingSpecification."Lot No.");
OnAfterHasSameTrackingWithSpec(Rec, TrackingSpecification, IsSameTracking);
end;
procedure HasSameNewTracking(ReservEntry: Record "Reservation Entry") IsSameTracking: Boolean
begin
IsSameTracking := ("New Serial No." = ReservEntry."New Serial No.") and ("New Lot No." = ReservEntry."New Lot No.");
OnAfterHasSameNewTracking(Rec, ReservEntry, IsSameTracking);
end;
procedure SetPointer(RowID: Text[250])
var
ItemTrackingMgt: Codeunit "Item Tracking Management";
StrArray: array[6] of Text[100];
begin
ItemTrackingMgt.DecomposeRowID(RowID, StrArray);
Evaluate("Source Type", StrArray[1]);
Evaluate("Source Subtype", StrArray[2]);
"Source ID" := StrArray[3];
"Source Batch Name" := StrArray[4];
Evaluate("Source Prod. Order Line", StrArray[5]);
Evaluate("Source Ref. No.", StrArray[6]);
end;
procedure SetPointerFilter()
begin
SetCurrentKey(
"Source ID", "Source Ref. No.", "Source Type", "Source Subtype",
"Source Batch Name", "Source Prod. Order Line", "Reservation Status",
"Shipment Date", "Expected Receipt Date");
SetRange("Source ID", "Source ID");
SetRange("Source Ref. No.", "Source Ref. No.");
SetRange("Source Type", "Source Type");
SetRange("Source Subtype", "Source Subtype");
SetRange("Source Batch Name", "Source Batch Name");
SetRange("Source Prod. Order Line", "Source Prod. Order Line");
end;
procedure SetSourceFilterFromReservEntry(ReservEntry: Record "Reservation Entry")
begin
SetRange("Source ID", ReservEntry."Source ID");
SetRange("Source Ref. No.", ReservEntry."Source Ref. No.");
SetRange("Source Type", ReservEntry."Source Type");
SetRange("Source Subtype", ReservEntry."Source Subtype");
SetRange("Source Batch Name", ReservEntry."Source Batch Name");
SetRange("Source Prod. Order Line", ReservEntry."Source Prod. Order Line");
end;
procedure Lock()
var
Rec2: Record "Reservation Entry";
begin
Rec2.SetCurrentKey("Item No.", "Variant Code", "Location Code");
Rec2.SetLoadFields("Entry No.");
if "Item No." <> '' then begin
Rec2.SetRange("Item No.", "Item No.");
Rec2.SetRange("Variant Code", "Variant Code");
Rec2.SetRange("Location Code", "Location Code");
end;
Rec2.ReadIsolation(IsolationLevel::UpdLock);
if Rec2.FindLast() then;
end;
procedure SetItemData(ItemNo: Code[20]; ItemDescription: Text[100]; LocationCode: Code[10]; VariantCode: Code[10]; QtyPerUoM: Decimal)
begin
"Item No." := ItemNo;
Description := ItemDescription;
"Location Code" := LocationCode;
"Variant Code" := VariantCode;
"Qty. per Unit of Measure" := QtyPerUoM;
end;
procedure SetSource(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceBatchName: Code[10]; SourceProdOrderLine: Integer)
begin
"Source Type" := SourceType;
"Source Subtype" := SourceSubtype;
"Source ID" := SourceID;
"Source Ref. No." := SourceRefNo;
"Source Batch Name" := SourceBatchName;
"Source Prod. Order Line" := SourceProdOrderLine;
end;
procedure SetSourceFilter(SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceKey: Boolean)
begin
if SourceKey then
SetCurrentKey(
"Source ID", "Source Ref. No.", "Source Type", "Source Subtype",
"Source Batch Name", "Source Prod. Order Line");
SetRange("Source Type", SourceType);
if SourceSubtype >= 0 then
SetRange("Source Subtype", SourceSubtype);
SetRange("Source ID", SourceID);
if SourceRefNo >= 0 then
SetRange("Source Ref. No.", SourceRefNo);
OnAfterSetSourceFilter(Rec, SourceType, SourceSubtype, SourceID, SourceRefNo, SourceKey);
end;
procedure SetSourceFilter(SourceBatchName: Code[10]; SourceProdOrderLine: Integer)
begin
SetRange("Source Batch Name", SourceBatchName);
SetRange("Source Prod. Order Line", SourceProdOrderLine);
end;
procedure ClearTracking()
begin
"Serial No." := '';
"Lot No." := '';
"Warranty Date" := 0D;
"Expiration Date" := 0D;
OnAfterClearTracking(Rec);
end;
procedure ClearNewTracking()
begin
"New Serial No." := '';
"New Lot No." := '';
OnAfterClearNewTracking(Rec);
end;
procedure ClearTrackingFilter()
begin
SetRange("Serial No.");
SetRange("Lot No.");
OnAfterClearTrackingFilter(Rec);
end;
procedure CopyTrackingFromItemLedgEntry(ItemLedgerEntry: Record "Item Ledger Entry")
begin
"Serial No." := ItemLedgerEntry."Serial No.";
"Lot No." := ItemLedgerEntry."Lot No.";
OnAfterCopyTrackingFromItemLedgEntry(Rec, ItemLedgerEntry);
end;
procedure CopyTrackingFromItemTrackingSetup(ItemTrackingSetup: Record "Item Tracking Setup")
begin
"Serial No." := ItemTrackingSetup."Serial No.";
"Lot No." := ItemTrackingSetup."Lot No.";
OnAfterCopyTrackingFromItemTrackingSetup(Rec, ItemTrackingSetup);
end;
procedure CopyTrackingFromInvtProfile(InvtProfile: Record "Inventory Profile")
begin
"Serial No." := InvtProfile."Serial No.";
"Lot No." := InvtProfile."Lot No.";
OnAfterCopyTrackingFromInvtProfile(Rec, InvtProfile);
end;
procedure CopyTrackingFromReservEntry(ReservationEntry: Record "Reservation Entry")
begin
"Serial No." := ReservationEntry."Serial No.";
"Lot No." := ReservationEntry."Lot No.";
OnAfterCopyTrackingFromReservEntry(Rec, ReservationEntry);
end;
procedure CopyTrackingFromReservEntryNewTracking(ReservationEntry: Record "Reservation Entry")
begin
"Serial No." := ReservationEntry."New Serial No.";
"Lot No." := ReservationEntry."New Lot No.";
OnAfterCopyTrackingFromReservEntryNewTracking(Rec, ReservationEntry);
end;
procedure CopyTrackingFromSpec(TrackingSpecification: Record "Tracking Specification")
begin
"Serial No." := TrackingSpecification."Serial No.";
"Lot No." := TrackingSpecification."Lot No.";
"Warranty Date" := TrackingSpecification."Warranty Date";
"Expiration Date" := TrackingSpecification."Expiration Date";
OnAfterCopyTrackingFromTrackingSpec(Rec, TrackingSpecification);
end;
procedure CopyTrackingFromWhseActivLine(WarehouseActivityLine: Record "Warehouse Activity Line")
begin
"Serial No." := WarehouseActivityLine."Serial No.";
"Lot No." := WarehouseActivityLine."Lot No.";
"Expiration Date" := WarehouseActivityLine."Expiration Date";
OnAfterCopyTrackingFromWhseActivLine(Rec, WarehouseActivityLine);
end;
procedure CopyTrackingFromWhseEntry(WhseEntry: Record "Warehouse Entry")
begin
"Serial No." := WhseEntry."Serial No.";
"Lot No." := WhseEntry."Lot No.";
OnAfterCopyTrackingFromWhseEntry(Rec, WhseEntry);
end;
procedure CopyTrackingFromWhseItemTrackingLine(WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
"Serial No." := WhseItemTrackingLine."Serial No.";
"Lot No." := WhseItemTrackingLine."Lot No.";
OnAfterCopyTrackingFromWhseItemTrackingLine(Rec, WhseItemTrackingLine);
end;
procedure CopyNewTrackingFromItemJnlLine(ItemJnlLine: Record "Item Journal Line")
begin
"New Serial No." := ItemJnlLine."New Serial No.";
"New Lot No." := ItemJnlLine."New Lot No.";
OnAfterSetNewTrackingFromItemJnlLine(Rec, ItemJnlLine);
end;
procedure CopyNewTrackingFromTrackingSpec(TrackingSpecification: Record "Tracking Specification")
begin
"New Serial No." := TrackingSpecification."New Serial No.";
"New Lot No." := TrackingSpecification."New Lot No.";
OnAfterSetNewTrackingFromTrackingSpecification(Rec, TrackingSpecification);
end;
procedure CopyNewTrackingFromReservEntry(ReservEntry: Record "Reservation Entry")
begin
"New Serial No." := ReservEntry."Serial No.";
"New Lot No." := ReservEntry."Lot No.";
OnAfterCopyNewTrackingFromReservEntry(Rec, ReservEntry);
end;
procedure CopyNewTrackingFromWhseItemTrackingLine(WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
"New Serial No." := WhseItemTrackingLine."New Serial No.";
"New Lot No." := WhseItemTrackingLine."New Lot No.";
OnAfterCopyNewTrackingFromWhseItemTrackingLine(Rec, WhseItemTrackingLine);
end;
procedure CopyTrackingFiltersToReservEntry(var FilterReservEntry: Record "Reservation Entry")
begin
CopyFilter("Serial No.", FilterReservEntry."Serial No.");
CopyFilter("Lot No.", FilterReservEntry."Lot No.");
OnAfterCopyTrackingFiltersToReservEntry(Rec, FilterReservEntry);
end;
procedure FilterLinesForTracking(CalcReservEntry: Record "Reservation Entry"; Positive: Boolean)
var
FieldFilter: Text;
begin
if CalcReservEntry.FieldFilterNeeded(FieldFilter, Positive, Enum::"Item Tracking Type"::"Lot No.") then
SetFilter("Lot No.", FieldFilter);
if CalcReservEntry.FieldFilterNeeded(FieldFilter, Positive, Enum::"Item Tracking Type"::"Serial No.") then
SetFilter("Serial No.", FieldFilter);
OnAfterFilterLinesForTracking(Rec, CalcReservEntry, Positive);
end;
procedure SetTrackingFilterBlank()
begin
SetRange("Serial No.", '');
SetRange("Lot No.", '');
OnAfterSetTrackingFilterBlank(Rec);
end;
procedure SetTrackingFilterFromEntrySummaryIfNotBlank(EntrySummary: Record "Entry Summary")
begin
if EntrySummary."Serial No." <> '' then
SetRange("Serial No.", EntrySummary."Serial No.");
if EntrySummary."Lot No." <> '' then
SetRange("Lot No.", EntrySummary."Lot No.");
OnAfterSetTrackingFilterFromEntrySummaryIfNotBlank(Rec, EntrySummary);
end;
procedure SetTrackingFilterFromItemJnlLine(ItemJournalLine: Record "Item Journal Line")
begin
SetRange("Serial No.", ItemJournalLine."Serial No.");
SetRange("Lot No.", ItemJournalLine."Lot No.");
OnAfterSetTrackingFilterFromItemJnlLine(Rec, ItemJournalLine);
end;
procedure SetTrackingFilterFromItemLedgEntry(ItemLedgEntry: Record "Item Ledger Entry")
begin
SetRange("Serial No.", ItemLedgEntry."Serial No.");
SetRange("Lot No.", ItemLedgEntry."Lot No.");
OnAfterSetTrackingFilterFromItemLedgEntry(Rec, ItemLedgEntry);
end;
procedure CopyTrackingFilterFromItemLedgEntry(var ItemLedgEntry: Record "Item Ledger Entry")
begin
ItemLedgEntry.CopyFilter("Serial No.", "Serial No.");
ItemLedgEntry.CopyFilter("Lot No.", "Lot No.");
OnAfterCopyTrackingFilterFromItemLedgEntry(Rec, ItemLedgEntry);
end;
procedure SetTrackingFilterFromItemTrackingSetup(ItemTrackingSetup: Record "Item Tracking Setup")
begin
SetRange("Serial No.", ItemTrackingSetup."Serial No.");
SetRange("Lot No.", ItemTrackingSetup."Lot No.");
OnAfterSetTrackingFilterFromItemTrackingSetup(Rec, ItemTrackingSetup);
end;
procedure SetTrackingFilterFromItemTrackingSetupIfNotBlank(ItemTrackingSetup: Record "Item Tracking Setup")
begin
if ItemTrackingSetup."Serial No." <> '' then
SetRange("Serial No.", ItemTrackingSetup."Serial No.");
if ItemTrackingSetup."Lot No." <> '' then
SetRange("Lot No.", ItemTrackingSetup."Lot No.");
OnAfterSetTrackingFilterFromItemTrackingSetupIfNotBlank(Rec, ItemTrackingSetup);
end;
procedure SetTrackingFilterFromReservEntry(ReservEntry: Record "Reservation Entry")
begin
SetRange("Serial No.", ReservEntry."Serial No.");
SetRange("Lot No.", ReservEntry."Lot No.");
OnAfterSetTrackingFilterFromReservEntry(Rec, ReservEntry);
end;
procedure SetNewTrackingFilterFromNewReservEntry(ReservEntry: Record "Reservation Entry")
begin
SetRange("New Serial No.", ReservEntry."New Serial No.");
SetRange("New Lot No.", ReservEntry."New Lot No.");
OnAfterSetNewTrackingFilterFromNewReservEntry(Rec, ReservEntry);
end;
procedure SetTrackingFilterFromSpec(TrackingSpecification: Record "Tracking Specification")
begin
SetRange("Serial No.", TrackingSpecification."Serial No.");
SetRange("Lot No.", TrackingSpecification."Lot No.");
OnAfterSetTrackingFilterFromTrackingSpec(Rec, TrackingSpecification);
end;
procedure SetTrackingFilterFromSpecIfNotBlank(TrackingSpecification: Record "Tracking Specification")
begin
if TrackingSpecification."Serial No." <> '' then
SetRange("Serial No.", TrackingSpecification."Serial No.");
if TrackingSpecification."Lot No." <> '' then
SetRange("Lot No.", TrackingSpecification."Lot No.");
OnAfterSetTrackingFilterFromSpecIfNotBlank(Rec, TrackingSpecification);
end;
procedure SetTrackingFilterFromTrackingSpecIfNotBlank(TrackingSpecification: Record "Tracking Specification")
begin
if TrackingSpecification."Serial No." <> '' then
SetRange("Serial No.", TrackingSpecification."Serial No.")
else
SetRange("Serial No.");
if TrackingSpecification."Lot No." <> '' then
SetRange("Lot No.", TrackingSpecification."Lot No.")
else
SetRange("Lot No.");
OnAfterSetTrackingFilterFromTrackingSpecIfNotBlank(Rec, TrackingSpecification);
end;
procedure SetTrackingFilterFromWhseActivityLine(WhseActivityLine: Record "Warehouse Activity Line")
begin
SetRange("Serial No.", WhseActivityLine."Serial No.");
SetRange("Lot No.", WhseActivityLine."Lot No.");
OnAfterSetTrackingFilterFromWhseActivityLine(Rec, WhseActivityLine);
end;
procedure SetTrackingFilterFromWhseJnlLine(WhseJournalLine: Record "Warehouse Journal Line")
begin
SetRange("Serial No.", WhseJournalLine."Serial No.");
SetRange("Lot No.", WhseJournalLine."Lot No.");
OnAfterSetTrackingFilterFromWhseJnlLine(Rec, WhseJournalLine);
end;
procedure SetTrackingFilterFromWhseSpec(WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
SetRange("Serial No.", WhseItemTrackingLine."Serial No.");
SetRange("Lot No.", WhseItemTrackingLine."Lot No.");
OnAfterSetTrackingFilterFromWhseSpec(Rec, WhseItemTrackingLine);
end;
procedure SetTrackingFilterFromWhseActivityLineIfRequired(WhseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
if WhseItemTrackingSetup."Serial No. Required" then
SetRange("Serial No.", WhseActivityLine."Serial No.")
else
SetFilter("Serial No.", '%1|%2', WhseActivityLine."Serial No.", '');
if WhseItemTrackingSetup."Lot No. Required" then
SetRange("Lot No.", WhseActivityLine."Lot No.")
else
SetFilter("Lot No.", '%1|%2', WhseActivityLine."Lot No.", '');
OnAfterSetTrackingFilterFromWhseActivityLineIfRequired(Rec, WhseActivityLine, WhseItemTrackingSetup);
end;
procedure SetTrackingFilterFromWhseItemTrackingSetupNotBlankIfRequired(WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
if WhseItemTrackingSetup."Serial No. Required" then
SetFilter("Serial No.", '<>%1', '');
if WhseItemTrackingSetup."Lot No. Required" then
SetFilter("Lot No.", '<>%1', '');
OnAfterSetTrackingFilterFromWhseItemTrackingSetupNotBlankIfRequired(Rec, WhseItemTrackingSetup);
end;
procedure SetTrackingFilterFromWhseItemTrackingSetupIfRequired(WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
if WhseItemTrackingSetup."Serial No." <> '' then
if WhseItemTrackingSetup."Serial No. Required" then
SetRange("Serial No.", WhseItemTrackingSetup."Serial No.")
else
SetFilter("Serial No.", '%1|%2', WhseItemTrackingSetup."Serial No.", '');
if WhseItemTrackingSetup."Lot No." <> '' then
if WhseItemTrackingSetup."Lot No. Required" then
SetRange("Lot No.", WhseItemTrackingSetup."Lot No.")
else
SetFilter("Lot No.", '%1|%2', WhseItemTrackingSetup."Lot No.", '');
OnAfterSetTrackingFilterFromWhseItemTrackingSetupIfRequired(Rec, WhseItemTrackingSetup);
end;
procedure SetTrackingFilterToItemIfRequired(var Item: Record Item)
begin
if "Lot No." <> '' then
Item.SetRange("Lot No. Filter", "Lot No.");
if "Serial No." <> '' then
Item.SetRange("Serial No. Filter", "Serial No.");
OnAfterSetTrackingFilterToItemIfRequired(Rec, Item);
end;
procedure GetItemTrackingEntryType() TrackingEntryType: Enum "Item Tracking Entry Type"
begin
if "Lot No." <> '' then
TrackingEntryType := Enum::"Item Tracking Entry Type"::"Lot No.";
if "Serial No." <> '' then
if "Lot No." <> '' then
TrackingEntryType := Enum::"Item Tracking Entry Type"::"Lot and Serial No."
else
TrackingEntryType := Enum::"Item Tracking Entry Type"::"Serial No.";
OnAfterGetItemTrackingEntryType(Rec, TrackingEntryType);
end;
procedure UpdateItemTracking()
begin
"Item Tracking" := GetItemTrackingEntryType();
end;
procedure UpdateActionMessageEntries(OldReservEntry: Record "Reservation Entry")
var
ActionMessageEntry: Record "Action Message Entry";
ActionMessageEntry2: Record "Action Message Entry";
OldReservEntry2: Record "Reservation Entry";
begin
if OldReservEntry."Reservation Status" = OldReservEntry."Reservation Status"::Surplus then begin
ActionMessageEntry.FilterFromReservEntry(OldReservEntry);
if ActionMessageEntry.FindSet() then
repeat
ActionMessageEntry2 := ActionMessageEntry;
ActionMessageEntry2.TransferFromReservEntry(Rec);
ActionMessageEntry2.Modify();
until ActionMessageEntry.Next() = 0;
Modify();
end else
if OldReservEntry2.Get(OldReservEntry."Entry No.", not OldReservEntry.Positive) then begin
if HasSamePointer(OldReservEntry2) then begin
OldReservEntry2.Delete();
Delete();
end else
Modify();
end else
Modify();
end;
procedure ClearItemTrackingFields()
begin
OnBeforeClearItemTrackingFields(Rec);
ClearTracking();
UpdateItemTracking();
OnAfterClearItemTrackingFields(Rec);
end;
local procedure CalcReservationQuantity(): Decimal
var
ReservEntry: Record "Reservation Entry";
begin
if "Qty. per Unit of Measure" = 1 then
exit("Quantity (Base)");
ReservEntry.SetFilter("Entry No.", '<>%1', "Entry No.");
ReservEntry.SetSourceFilter("Source Type", "Source Subtype", "Source ID", "Source Ref. No.", false);
ReservEntry.SetSourceFilter("Source Batch Name", "Source Prod. Order Line");
ReservEntry.SetFilter("Reservation Status", '%1|%2', "Reservation Status"::Reservation, "Reservation Status"::Tracking);
ReservEntry.CalcSums("Quantity (Base)", Quantity);
exit(
Round((ReservEntry."Quantity (Base)" + "Quantity (Base)") / "Qty. per Unit of Measure", UOMMgt.QtyRndPrecision()) -
ReservEntry.Quantity);
end;
procedure ClearApplFromToItemEntry()
begin
if Positive then
"Appl.-to Item Entry" := 0
else
"Appl.-from Item Entry" := 0;
end;
[Scope('OnPrem')]
procedure IsResidualSurplus(): Boolean
begin
exit(
("Item Tracking" = "Item Tracking"::None) and
("Reservation Status" = "Reservation Status"::Surplus) and not Positive and
("Source Type" = Database::"Sales Line") and ("Source Subtype" = 1));
end;
procedure TestItemFields(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10])
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeTestItemFields(Rec, ItemNo, VariantCode, LocationCode, IsHandled);
if not IsHandled then begin
TestField("Item No.", ItemNo);
TestField("Variant Code", VariantCode);
TestField("Location Code", LocationCode);
end;
end;
procedure TrackingExists() IsTrackingExists: Boolean
begin
IsTrackingExists := ("Serial No." <> '') or ("Lot No." <> '');
OnAfterTrackingExists(Rec, IsTrackingExists);
end;
procedure NonSerialTrackingExists() IsTrackingExists: Boolean
begin
IsTrackingExists := "Lot No." <> '';
OnAfterNonSerialTrackingExists(Rec, IsTrackingExists);
end;
procedure GetTrackingText() TrackingText: Text;
begin
TrackingText := StrSubstNo('%1 %2', "Serial No.", "Lot No.");
OnAfterGetTrackingText(Rec, TrackingText);
end;
procedure NewTrackingExists() IsTrackingExists: Boolean
begin
IsTrackingExists := ("New Serial No." <> '') or ("New Lot No." <> '');
OnAfterNewTrackingExists(Rec, IsTrackingExists);
end;
procedure IsReclass() Reclass: Boolean
begin
Reclass := ("Source Type" = Database::"Item Journal Line") and ("Source Subtype" = 4);
end;
procedure TransferReservations(var OldReservEntry: Record "Reservation Entry"; ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; TransferAll: Boolean; TransferQty: Decimal; QtyPerUOM: Decimal; SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer)
var
NewReservEntry: Record "Reservation Entry";
CreateReservEntry: Codeunit "Create Reserv. Entry";
ReservStatus: Enum "Reservation Status";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeTransferReservations(OldReservEntry, ItemNo, VariantCode, LocationCode, TransferAll, TransferQty, QtyPerUOM, SourceType, SourceSubtype, SourceID, SourceBatchName, SourceProdOrderLine, SourceRefNo, IsHandled);
if not IsHandled then
if TransferAll then begin
OldReservEntry.FindSet();
OldReservEntry.TestField("Qty. per Unit of Measure", QtyPerUOM);
repeat
OldReservEntry.TestItemFields(ItemNo, VariantCode, LocationCode);
NewReservEntry := OldReservEntry;
OnTransferReservationsOnBeforeSetSourceForNewEntry(OldReservEntry, NewReservEntry);
NewReservEntry.SetSource(SourceType, SourceSubtype, SourceID, SourceRefNo, SourceBatchName, SourceProdOrderLine);
CreateReservEntry.SetQtyToHandleAndInvoiceForReservationWithoutItemTracking(NewReservEntry, NewReservEntry."Quantity (Base)", NewReservEntry."Quantity (Base)", false);
NewReservEntry.UpdateActionMessageEntries(OldReservEntry);
OnTransferReservationsOnAfterNewReservEntryUpdateActionMessageEntries(OldReservEntry, NewReservEntry);
until OldReservEntry.Next() = 0;
end else
for ReservStatus := ReservStatus::Reservation to ReservStatus::Prospect do begin
if TransferQty = 0 then
exit;
OldReservEntry.SetRange("Reservation Status", ReservStatus);
if OldReservEntry.FindSet() then
repeat
OldReservEntry.TestItemFields(ItemNo, VariantCode, LocationCode);
TransferQty :=
CreateReservEntry.TransferReservEntry(
SourceType, SourceSubtype, SourceID, SourceBatchName, SourceProdOrderLine, SourceRefNo,
QtyPerUOM, OldReservEntry, TransferQty);
if (OldReservEntry."Reservation Status" = OldReservEntry."Reservation Status"::Prospect) and (SourceType = Database::"Purchase Line") and (SourceSubtype in [1, 2]) then
ChangeReservationStatusToSurplus(SourceType, SourceSubtype, SourceID, SourceRefNo);
OnTransferReservationsOnAfterSecondOldReservEntryLoop(OldReservEntry, NewReservEntry, SourceType, SourceSubtype, SourceID);
until (OldReservEntry.Next() = 0) or (TransferQty = 0);
end;
OnAfterTransferReservations(OldReservEntry, NewReservEntry);
end;
procedure FieldFilterNeeded(var FieldFilter: Text; SearchForSupply: Boolean; ItemTrackingType: Enum "Item Tracking Type") Result: Boolean
var
Item: Record Item;
ItemTrackingCode: Record "Item Tracking Code";
ItemTrackingSetup: Record "Item Tracking Setup";
FieldValue: Code[50];
IsHandled: Boolean;
IsSpecificTracking: Boolean;
begin
IsHandled := false;
OnBeforeFieldFilterNeeded(Rec, FieldFilter, SearchForSupply, ItemTrackingType, IsHandled, Result);
if IsHandled then
exit(Result);
FieldFilter := '';
FieldValue := '';
if "Item No." <> Item."No." then begin
Item.Get("Item No.");
if Item."Item Tracking Code" <> '' then
ItemTrackingCode.Get(Item."Item Tracking Code")
else
ItemTrackingCode.Init();
end;
case ItemTrackingType of
ItemTrackingType::"Lot No.":
begin
if not ItemTrackingCode."Lot Specific Tracking" then
exit(false);
FieldValue := "Lot No.";
end;
ItemTrackingType::"Serial No.":
begin
if not ItemTrackingCode."SN Specific Tracking" then
exit(false);
FieldValue := "Serial No.";
end;
else begin
IsHandled := false;
OnFieldFilterNeededOnItemTrackingTypeElseCase(Rec, ItemTrackingCode, ItemTrackingType, FieldValue, IsSpecificTracking, IsHandled);
if IsHandled and not IsSpecificTracking then
exit(false);
if not IsHandled then
Error(Text004);
end;
end;
// The field "Lot No." is used a foundation for building up the filter:
if FieldValue <> '' then begin
if SearchForSupply then // Demand
ItemTrackingSetup.SetRange("Lot No.", FieldValue)
else // Supply
ItemTrackingSetup.SetFilter("Lot No.", '%1|%2', FieldValue, '');
FieldFilter := ItemTrackingSetup.GetFilter("Lot No.");
end else // FieldValue = ''
if SearchForSupply then // Demand
exit(false)
else
FieldFilter := StrSubstNo('''%1''', '');
exit(true);
end;
procedure GetAvailabilityFilter(AvailabilityDate: Date; Positive: Boolean): Text
var
ReservEntry: Record "Reservation Entry";
begin
if Positive then
ReservEntry.SetFilter("Expected Receipt Date", '..%1', AvailabilityDate)
else
ReservEntry.SetFilter("Expected Receipt Date", '>=%1', AvailabilityDate);
exit(ReservEntry.GetFilter("Expected Receipt Date"));
end;
procedure IsReservationOrTracking(): Boolean
begin
exit(
("Reservation Status" = "Reservation Status"::Reservation) or
("Reservation Status" = "Reservation Status"::Tracking));
end;
procedure GetTransferDirection() TransferDirection: Enum "Transfer Direction"
begin
case "Source Subtype" of
0:
exit(TransferDirection::Outbound);
1:
exit(TransferDirection::Inbound);
end;
end;
procedure UpdateSourceCost(UnitCost: Decimal)
begin
OnUpdateSourceCost(Rec, UnitCost);
end;
local procedure ChangeReservationStatusToSurplus(SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceRefNo: Integer)
var
NewReservationEntry: Record "Reservation Entry";
begin
NewReservationEntry.SetSourceFilter(SourceType, SourceSubtype, SourceID, SourceRefNo, true);
NewReservationEntry.SetRange("Reservation Status", NewReservationEntry."Reservation Status"::Prospect);
if NewReservationEntry.FindFirst() then begin
NewReservationEntry."Reservation Status" := NewReservationEntry."Reservation Status"::Surplus;
NewReservationEntry.Modify(true);
end;
end;
procedure HasNoTrackingWithSpec() IsNoTracking: Boolean
begin
IsNoTracking := ("Serial No." = '') and ("Lot No." = '') and ("Package No." = '');
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromItemLedgEntry(var ReservationEntry: Record "Reservation Entry"; ItemLedgerEntry: Record "Item Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromItemTrackingSetup(var ReservationEntry: Record "Reservation Entry"; ItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromInvtProfile(var ReservationEntry: Record "Reservation Entry"; InventoryProfile: Record "Inventory Profile")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromReservEntry(var ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromReservEntryNewTracking(var ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromTrackingSpec(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromWhseActivLine(var ReservationEntry: Record "Reservation Entry"; WarehouseActivityLine: Record "Warehouse Activity Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromWhseEntry(var ReservationEntry: Record "Reservation Entry"; WhseEntry: Record "Warehouse Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFromWhseItemTrackingLine(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyNewTrackingFromWhseItemTrackingLine(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterClearItemTrackingFields(var ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterClearTracking(var ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterClearNewTracking(var ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterClearTrackingFilter(var ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFiltersToReservEntry(var ReservEntry: Record "Reservation Entry"; var FilterReservEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterFilterLinesForTracking(var ReservEntry: Record "Reservation Entry"; CalcReservEntry: Record "Reservation Entry"; Positive: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetNewTrackingFromItemJnlLine(var ReservationEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetNewTrackingFromTrackingSpecification(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetSourceFilter(var ReservationEntry: Record "Reservation Entry"; SourceType: Integer; SourceSubtype: Integer; SourceID: Code[20]; SourceRefNo: Integer; SourceKey: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyNewTrackingFromReservEntry(var ReservationEntry: Record "Reservation Entry"; FromReservEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterBlank(var ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromEntrySummaryIfNotBlank(var ReservationEntry: Record "Reservation Entry"; EntrySummary: Record "Entry Summary")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromItemJnlLine(var ReservationEntry: Record "Reservation Entry"; ItemJournalLine: Record "Item Journal Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromItemLedgEntry(var ReservationEntry: Record "Reservation Entry"; ItemLedgEntry: Record "Item Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterCopyTrackingFilterFromItemLedgEntry(var ReservationEntry: Record "Reservation Entry"; var ItemLedgEntry: Record "Item Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromItemTrackingSetup(var ReservationEntry: Record "Reservation Entry"; ItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromItemTrackingSetupIfNotBlank(var ReservationEntry: Record "Reservation Entry"; ItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromReservEntry(var ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetNewTrackingFilterFromNewReservEntry(var ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromSpecIfNotBlank(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromTrackingSpec(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromTrackingSpecIfNotBlank(var ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseActivityLine(var ReservationEntry: Record "Reservation Entry"; WhseActivityLine: Record "Warehouse Activity Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseJnlLine(var ReservationEntry: Record "Reservation Entry"; WhseJournalLine: Record "Warehouse Journal Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseSpec(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingLine: Record "Whse. Item Tracking Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseActivityLineIfRequired(var ReservationEntry: Record "Reservation Entry"; WhseActivityLine: Record "Warehouse Activity Line"; WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseItemTrackingSetupNotBlankIfRequired(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterFromWhseItemTrackingSetupIfRequired(var ReservationEntry: Record "Reservation Entry"; WhseItemTrackingSetup: Record "Item Tracking Setup")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSetTrackingFilterToItemIfRequired(ReservationEntry: Record "Reservation Entry"; var Item: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterGetItemTrackingEntryType(ReservationEntry: Record "Reservation Entry"; var TrackingEntryType: Enum "Item Tracking Entry Type")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterTextCaption(SourceType: Integer; var NewTextCaption: Text[255])
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterGetTrackingText(ReservationEntry: Record "Reservation Entry"; var TrackingText: Text)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeClearItemTrackingFields(ReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterHasSameTracking(ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry"; var IsSameTracking: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterHasSameNewTracking(ReservationEntry: Record "Reservation Entry"; FromReservationEntry: Record "Reservation Entry"; var IsSameTracking: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterHasSameTrackingWithSpec(ReservationEntry: Record "Reservation Entry"; TrackingSpecification: Record "Tracking Specification"; var IsSameTracking: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterTrackingExists(ReservationEntry: Record "Reservation Entry"; var IsTrackingExists: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterTransferReservations(var OldReservationEntry: Record "Reservation Entry"; var NewReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterNonSerialTrackingExists(ReservationEntry: Record "Reservation Entry"; var IsTrackingExists: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterNewTrackingExists(ReservationEntry: Record "Reservation Entry"; var IsTrackingExists: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterSummEntryNo(ReservationEntry: Record "Reservation Entry"; var ReturnValue: Integer)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeSummEntryNo(ReservationEntry: Record "Reservation Entry"; var ReturnValue: Integer; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeTestItemFields(ReservationEntry: Record "Reservation Entry"; ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeTransferReservations(var OldReservEntry: Record "Reservation Entry"; ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10]; TransferAll: Boolean; TransferQty: Decimal; QtyPerUOM: Decimal; SourceType: Integer; SourceSubtype: Option; SourceID: Code[20]; SourceBatchName: Code[10]; SourceProdOrderLine: Integer; SourceRefNo: Integer; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFieldFilterNeededOnItemTrackingTypeElseCase(ReservationEntry: Record "Reservation Entry"; ItemTrackingCode: Record "Item Tracking Code"; ItemTrackingType: Enum "Item Tracking Type"; var FieldValue: Code[50]; var IsSpecificTracking: Boolean; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnTransferReservationsOnAfterSecondOldReservEntryLoop(var OldReservEntry: Record "Reservation Entry"; var NewReservEntry: Record "Reservation Entry"; SourceType: Integer; SourceSubtype: Option; SourceID: Code[20])
begin
end;
[IntegrationEvent(false, false)]
local procedure OnTransferReservationsOnAfterNewReservEntryUpdateActionMessageEntries(var OldReservEntry: Record "Reservation Entry"; var NewReservEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnTransferReservationsOnBeforeSetSourceForNewEntry(var OldReservationEntry: Record "Reservation Entry"; var NewReservationEntry: Record "Reservation Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnUpdateSourceCost(ReservationEntry: Record "Reservation Entry"; UnitCost: Decimal)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeFieldFilterNeeded(var ReservationEntry: Record "Reservation Entry"; var FieldFilter: Text; SearchForSupply: Boolean; ItemTrackingType: Enum "Item Tracking Type"; var IsHandled: Boolean; var Result: Boolean)
begin
end;
}