Table 99000786 Routing Version, source in 29
Source29
src/Layers/W1/BaseApp/Manufacturing/Routing/RoutingVersion.Table.al217 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.Manufacturing.Routing;
using Microsoft.Foundation.NoSeries;
table 99000786 "Routing Version"
{
Caption = 'Routing Version';
DrillDownPageID = "Routing Version List";
LookupPageID = "Routing Version List";
DataClassification = CustomerContent;
fields
{
field(1; "Routing No."; Code[20])
{
Caption = 'Routing No.';
NotBlank = true;
TableRelation = "Routing Header";
}
field(2; "Version Code"; Code[20])
{
Caption = 'Version Code';
ToolTip = 'Specifies the version code of the routing.';
}
field(3; Description; Text[100])
{
Caption = 'Description';
ToolTip = 'Specifies a description for the routing version.';
}
field(10; "Starting Date"; Date)
{
Caption = 'Starting Date';
ToolTip = 'Specifies the starting date for this routing version.';
}
field(20; Status; Enum "Routing Status")
{
Caption = 'Status';
ToolTip = 'Specifies the status of this routing version.';
trigger OnValidate()
var
RoutingHeader: Record "Routing Header";
SkipCommit: Boolean;
begin
if (Status <> xRec.Status) and (Status = Status::Certified) then begin
RoutingHeader.Get("Routing No.");
CheckRouting.Calculate(RoutingHeader, "Version Code");
end;
Modify(true);
SkipCommit := false;
OnValidateStatusBeforeCommit(Rec, SkipCommit);
if not SkipCommit then
Commit();
end;
}
field(21; Type; Option)
{
Caption = 'Type';
ToolTip = 'Specifies in which order operations in the routing are performed.';
OptionCaption = 'Serial,Parallel';
OptionMembers = Serial,Parallel;
trigger OnValidate()
begin
if Status = Status::Certified then
FieldError(Status);
end;
}
field(22; "Last Date Modified"; Date)
{
Caption = 'Last Date Modified';
Editable = false;
}
field(50; "No. Series"; Code[20])
{
Caption = 'No. Series';
Editable = false;
TableRelation = "No. Series";
}
}
keys
{
key(Key1; "Routing No.", "Version Code")
{
Clustered = true;
}
key(Key2; "Routing No.", "Starting Date")
{
}
}
fieldgroups
{
}
trigger OnDelete()
var
RtngLine: Record "Routing Line";
begin
RtngLine.LockTable();
RtngLine.SetRange("Routing No.", "Routing No.");
RtngLine.SetRange("Version Code", "Version Code");
RtngLine.DeleteAll(true);
end;
trigger OnInsert()
var
NoSeries: Codeunit "No. Series";
begin
if "Version Code" = '' then begin
RoutingHeader.Get("Routing No.");
RoutingHeader.TestField("Version Nos.");
"No. Series" := RoutingHeader."Version Nos.";
if NoSeries.AreRelated("No. Series", xRec."No. Series") then
"No. Series" := xRec."No. Series";
VersionCode := NoSeries.GetNextNo("No. Series");
if StrLen(VersionCode) > MaxStrLen("Version Code") then
Error(Text000,
FieldCaption("Version Code"),
NoSeriesLine.FieldCaption("Starting No."),
RoutingHeader."Version Nos.",
NoSeriesRec.TableCaption(),
MaxStrLen("Version Code"));
"Version Code" := VersionCode;
end;
end;
trigger OnModify()
begin
"Last Date Modified" := Today;
end;
trigger OnRename()
begin
if Status = Status::Certified then
Error(Text001, TableCaption(), FieldCaption(Status), Format(Status));
end;
var
NoSeriesRec: Record "No. Series";
NoSeriesLine: Record "No. Series Line";
RoutingHeader: Record "Routing Header";
RtngVersion: Record "Routing Version";
CheckRouting: Codeunit "Check Routing Lines";
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'The new %1 cannot be generated by default\because the %2 for %3 %4 contains more than %5 characters.';
#pragma warning restore AA0470
#pragma warning restore AA0074
VersionCode: Code[20];
#pragma warning disable AA0074
#pragma warning disable AA0470
Text001: Label 'You cannot rename the %1 when %2 is %3.';
#pragma warning restore AA0470
#pragma warning restore AA0074
procedure AssistEdit(OldRoutVersion: Record "Routing Version"): Boolean
var
NoSeries: Codeunit "No. Series";
begin
RtngVersion := Rec;
RoutingHeader.Get(RtngVersion."Routing No.");
RoutingHeader.TestField("Version Nos.");
if NoSeries.LookupRelatedNoSeries(RoutingHeader."Version Nos.", OldRoutVersion."No. Series", RtngVersion."No. Series") then begin
VersionCode := NoSeries.GetNextNo(RtngVersion."No. Series");
if StrLen(VersionCode) > MaxStrLen(RtngVersion."Version Code") then
Error(Text000,
RtngVersion.FieldCaption(RtngVersion."Version Code"),
NoSeriesLine.FieldCaption("Starting No."),
RoutingHeader."Version Nos.",
NoSeriesRec.TableCaption(),
MaxStrLen(RtngVersion."Version Code"));
RtngVersion."Version Code" := VersionCode;
Rec := RtngVersion;
exit(true);
end;
end;
procedure Caption(): Text
var
RtngHeader: Record "Routing Header";
begin
if GetFilters = '' then
exit('');
if "Routing No." = '' then
exit('');
RtngHeader.Get("Routing No.");
exit(
StrSubstNo(
'%1 %2 %3', RtngHeader."No.", RtngHeader.Description, "Version Code"));
end;
procedure RoutingLinesExist(): Boolean
var
RoutingLine: Record "Routing Line";
begin
RoutingLine.SetRange("Routing No.", Rec."Routing No.");
RoutingLine.SetRange("Version Code", Rec."Version Code");
exit(not RoutingLine.IsEmpty());
end;
[IntegrationEvent(false, false)]
local procedure OnValidateStatusBeforeCommit(var RoutingVersion: Record "Routing Version"; var SkipCommit: Boolean)
begin
end;
}