Codeunit 99000791 Mfg. Page Management, source in 29
Source29
src/Layers/W1/BaseApp/Manufacturing/Foundation/MfgPageManagement.Codeunit.al115 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.Utilities;
using Microsoft.Inventory.Journal;
using Microsoft.Manufacturing.Capacity;
using Microsoft.Manufacturing.Document;
using Microsoft.Manufacturing.Journal;
codeunit 99000791 "Mfg. Page Management"
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Page Management", 'OnConditionalCardPageIDNotFound', '', true, false)]
local procedure OnConditionalCardPageIDNotFound(RecordRef: RecordRef; var CardPageID: Integer);
begin
case RecordRef.Number of
Database::"Production Order":
CardPageID := GetProductionOrderPageID(RecordRef);
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Page Management", OnBeforeGetConditionalListPageID, '', false, false)]
local procedure OnBeforeGetConditionalListPageID(RecRef: RecordRef; var PageID: Integer; var IsHandled: Boolean; CheckDocumentTypeFilter: Boolean)
var
ConditionalListPageID: Integer;
begin
if IsHandled then
exit;
case RecRef.Number of
Database::"Production Order":
ConditionalListPageID := GetProductionOrderListPageID(RecRef, CheckDocumentTypeFilter);
end;
if ConditionalListPageID <> 0 then begin
PageID := ConditionalListPageID;
IsHandled := true;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Page Management", 'OnGetItemJournalTemplatePageID', '', true, false)]
local procedure OnGetItemJournalTemplatePageID(ItemJournalTemplate: Record "Item Journal Template"; RecordRef: RecordRef; var CardPageID: Integer);
begin
case ItemJournalTemplate.Type of
ItemJournalTemplate.Type::Capacity:
CardPageID := Page::"Capacity Journal";
ItemJournalTemplate.Type::Consumption:
CardPageID := Page::"Consumption Journal";
ItemJournalTemplate.Type::Output:
CardPageID := Page::"Output Journal";
ItemJournalTemplate.Type::"Prod. Order":
CardPageID := Page::"Production Journal";
end;
end;
local procedure GetProductionOrderPageID(RecRef: RecordRef): Integer
var
ProductionOrder: Record "Production Order";
begin
RecRef.SetTable(ProductionOrder);
case ProductionOrder.Status of
ProductionOrder.Status::Simulated:
exit(PAGE::"Simulated Production Order");
ProductionOrder.Status::Planned:
exit(PAGE::"Planned Production Order");
ProductionOrder.Status::"Firm Planned":
exit(PAGE::"Firm Planned Prod. Order");
ProductionOrder.Status::Released:
exit(PAGE::"Released Production Order");
ProductionOrder.Status::Finished:
exit(PAGE::"Finished Production Order");
end;
end;
local procedure GetProductionOrderListPageID(RecRef: RecordRef; CheckDocumentTypeFilter: Boolean): Integer
var
ProductionOrder: Record "Production Order";
ProdOrderStatus: Enum "Production Order Status";
begin
RecRef.SetTable(ProductionOrder);
if CheckDocumentTypeFilter then begin
if ProductionOrder.GetFilter(Status) = '' then
exit(0);
if not Evaluate(ProdOrderStatus, ProductionOrder.GetFilter(Status)) then
exit(0);
end else begin
if IsNullGuid(ProductionOrder.SystemId) then
exit(0);
ProdOrderStatus := ProductionOrder.Status;
end;
case ProdOrderStatus of
ProductionOrder.Status::Simulated:
exit(PAGE::"Simulated Production Orders");
ProductionOrder.Status::Planned:
exit(PAGE::"Planned Production Orders");
ProductionOrder.Status::"Firm Planned":
exit(PAGE::"Firm Planned Prod. Orders");
ProductionOrder.Status::Released:
exit(PAGE::"Released Production Orders");
ProductionOrder.Status::Finished:
exit(PAGE::"Finished Production Orders");
end;
end;
#if not CLEAN27
[Obsolete('This event added by mistake to Mfg part, use correct event in ServPageManagement codeunit', '27.0')]
[IntegrationEvent(false, false)]
local procedure OnAfterGetServiceHeaderPageID(RecRef: RecordRef; ServiceHeader: Record Microsoft.Service.Document."Service Header"; var Result: Integer)
begin
end;
#endif
}