Codeunit 99000788 Mfg. Experience Tier

App
Base Application
Namespace
System.Environment
Versions
27-28

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Manufacturing/MfgExperienceTier.Codeunit.al341 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 System.Environment;

using Microsoft.Inventory.Tracking;
using Microsoft.Manufacturing.Capacity;
using Microsoft.Manufacturing.Comment;
using Microsoft.Manufacturing.Document;
using Microsoft.Manufacturing.Family;
using Microsoft.Manufacturing.MachineCenter;
using Microsoft.Manufacturing.ProductionBOM;
using Microsoft.Manufacturing.Routing;
using Microsoft.Manufacturing.Setup;
using Microsoft.Manufacturing.WorkCenter;

codeunit 99000788 "Mfg. Experience Tier"
{
    Access = Internal;
    EventSubscriberInstance = Manual;
    SingleInstance = true;

    var
        MfgExperienceTier: Codeunit "Mfg. Experience Tier";
        CannotInsertErr: Label 'You cannot insert into table %1. Premium features are blocked since you are accessing a non-premium company.', Comment = '%1 - Table caption';

    local procedure BlockInsert(IsTemporary: Boolean; TableCaption: Text)
    begin
        if IsTemporary then
            exit;

        Error(CannotInsertErr, TableCaption);
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Experience Tier", 'OnCheckExperienceTierForUserPlanPremium', '', false, false)]
    local procedure OnCheckExperienceTierForUserPlanPremium()
    begin
        BindSubscription(MfgExperienceTier);
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production Order", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionOrder(RunTrigger: Boolean; var Rec: Record "Production Order")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderLine(RunTrigger: Boolean; var Rec: Record "Prod. Order Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Component", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderComponent(RunTrigger: Boolean; var Rec: Record "Prod. Order Component")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Routing Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderRoutingLine(RunTrigger: Boolean; var Rec: Record "Prod. Order Routing Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Capacity Need", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderCapacityNeed(RunTrigger: Boolean; var Rec: Record "Prod. Order Capacity Need")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Routing Tool", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderRoutingTool(RunTrigger: Boolean; var Rec: Record "Prod. Order Routing Tool")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Routing Personnel", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderRoutingPersonnel(RunTrigger: Boolean; var Rec: Record "Prod. Order Routing Personnel")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Rtng Qlty Meas.", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderRtngQltyMeas(RunTrigger: Boolean; var Rec: Record "Prod. Order Rtng Qlty Meas.")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Comment Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderCommentLine(RunTrigger: Boolean; var Rec: Record "Prod. Order Comment Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Rtng Comment Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderRtngCommentLine(RunTrigger: Boolean; var Rec: Record "Prod. Order Rtng Comment Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Prod. Order Comp. Cmt Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProdOrderCompCmtLine(RunTrigger: Boolean; var Rec: Record "Prod. Order Comp. Cmt Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Work Shift", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertWorkShift(RunTrigger: Boolean; var Rec: Record "Work Shift")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Shop Calendar", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertShopCalendar(RunTrigger: Boolean; var Rec: Record "Shop Calendar")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Shop Calendar Working Days", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertShopCalendarWorkingDays(RunTrigger: Boolean; var Rec: Record "Shop Calendar Working Days")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Shop Calendar Holiday", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertShopCalendarHoliday(RunTrigger: Boolean; var Rec: Record "Shop Calendar Holiday")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Work Center Group", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertWorkCenterGroup(RunTrigger: Boolean; var Rec: Record "Work Center Group")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Calendar Entry", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertCalendarEntry(RunTrigger: Boolean; var Rec: Record "Calendar Entry")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Machine Center", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertMachineCenter(RunTrigger: Boolean; var Rec: Record "Machine Center")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Calendar Absence Entry", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertCalendarAbsenceEntry(RunTrigger: Boolean; var Rec: Record "Calendar Absence Entry")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Stop", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertStop(RunTrigger: Boolean; var Rec: Record "Stop")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Scrap", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertScrap(RunTrigger: Boolean; var Rec: Record "Scrap")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Header", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingHeader(RunTrigger: Boolean; var Rec: Record "Routing Header")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingLine(RunTrigger: Boolean; var Rec: Record "Routing Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Manufacturing Comment Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertManufacturingCommentLine(RunTrigger: Boolean; var Rec: Record "Manufacturing Comment Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production BOM Header", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionBOMHeader(RunTrigger: Boolean; var Rec: Record "Production BOM Header")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production BOM Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionBOMLine(RunTrigger: Boolean; var Rec: Record "Production BOM Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Family", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertFamily(RunTrigger: Boolean; var Rec: Record "Family")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Family Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertFamilyLine(RunTrigger: Boolean; var Rec: Record "Family Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Comment Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingCommentLine(RunTrigger: Boolean; var Rec: Record "Routing Comment Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production BOM Comment Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionBOMCommentLine(RunTrigger: Boolean; var Rec: Record "Production BOM Comment Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Link", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingLink(RunTrigger: Boolean; var Rec: Record "Routing Link")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Standard Task", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockINsertStandardTask(RunTrigger: Boolean; var Rec: Record "Standard Task")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production BOM Version", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionBOMVersion(RunTrigger: Boolean; var Rec: Record "Production BOM Version")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Capacity Unit of Measure", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertCapacityUnitofMeasure(RunTrigger: Boolean; var Rec: Record "Capacity Unit of Measure")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Standard Task Tool", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockINsertStandardTaskTool(RunTrigger: Boolean; var Rec: Record "Standard Task Tool")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Standard Task Personnel", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockINsertStandardTaskPersonnel(RunTrigger: Boolean; var Rec: Record "Standard Task Personnel")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Standard Task Description", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockINsertStandardTaskDescription(RunTrigger: Boolean; var Rec: Record "Standard Task Description")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Standard Task Quality Measure", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockINsertStandardTaskQualityMeasure(RunTrigger: Boolean; var Rec: Record "Standard Task Quality Measure")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Quality Measure", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertQualityMeasure(RunTrigger: Boolean; var Rec: Record "Quality Measure")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Version", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingVersion(RunTrigger: Boolean; var Rec: Record "Routing Version")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production Matrix BOM Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionMatrixBOMLine(RunTrigger: Boolean; var Rec: Record "Production Matrix BOM Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Production Matrix  BOM Entry", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertProductionMatrixBOMEntry(RunTrigger: Boolean; var Rec: Record "Production Matrix  BOM Entry")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Where-Used Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertWhereUsedLine(RunTrigger: Boolean; var Rec: Record "Where-Used Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Tool", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingTool(RunTrigger: Boolean; var Rec: Record "Routing Tool")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Personnel", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingPersonnel(RunTrigger: Boolean; var Rec: Record "Routing Personnel")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Routing Quality Measure", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRoutingQualityMeasure(RunTrigger: Boolean; var Rec: Record "Routing Quality Measure")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Planning Routing Line", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertPlanningRoutingLine(RunTrigger: Boolean; var Rec: Record "Planning Routing Line")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Registered Absence", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertRegisteredAbsence(RunTrigger: Boolean; var Rec: Record "Registered Absence")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Capacity Constrained Resource", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertCapacityConstrainedResource(RunTrigger: Boolean; var Rec: Record "Capacity Constrained Resource")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;

    [EventSubscriber(ObjectType::Table, Database::"Inventory Profile", 'OnBeforeInsertEvent', '', false, false)]
    local procedure BlockInsertInventoryProfile(RunTrigger: Boolean; var Rec: Record "Inventory Profile")
    begin
        BlockInsert(Rec.IsTemporary(), Rec.TableCaption());
    end;
}