Table 5769 Warehouse Setup

App
Base Application
Namespace
Microsoft.Warehouse.Setup
Versions
17-28

Fields, 22Keys, 1Procedures, 4Obsolete, 2

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Warehouse/Setup/WarehouseSetup.Table.al297 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.Warehouse.Setup;

using Microsoft.Foundation.NoSeries;
using Microsoft.Warehouse.Document;
using Microsoft.Warehouse.InventoryDocument;
using Microsoft.Warehouse.Request;
using System.Utilities;

table 5769 "Warehouse Setup"
{
    Caption = 'Warehouse Setup';
    DataClassification = CustomerContent;
    DrillDownPageID = "Warehouse Setup";
    LookupPageID = "Warehouse Setup";

    fields
    {
        field(1; "Primary Key"; Code[10])
        {
            AllowInCustomizations = Never;
            Caption = 'Primary Key';
        }
        field(2; "Whse. Receipt Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Receipt Header" = R;
            Caption = 'Whse. Receipt Nos.';
            ToolTip = 'Specifies the number series code to use when you assign numbers to warehouse receipt journals.';
            TableRelation = "No. Series";
        }
        field(3; "Whse. Put-away Nos."; Code[20])
        {
            AccessByPermission = TableData "Posted Invt. Put-away Header" = R;
            Caption = 'Whse. Put-away Nos.';
            ToolTip = 'Specifies the number series code you want used when you assign numbers to warehouse put-away documents.';
            TableRelation = "No. Series";
        }
        field(5; "Whse. Pick Nos."; Code[20])
        {
            AccessByPermission = TableData "Posted Invt. Pick Header" = R;
            Caption = 'Whse. Pick Nos.';
            ToolTip = 'Specifies the number series code you want used when you assign numbers to warehouse pick documents.';
            TableRelation = "No. Series";
        }
        field(6; "Whse. Ship Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Shipment Header" = R;
            Caption = 'Whse. Ship Nos.';
            ToolTip = 'Specifies the number series code you want used when you assign numbers to warehouse shipment journals.';
            TableRelation = "No. Series";
        }
        field(7; "Registered Whse. Pick Nos."; Code[20])
        {
            AccessByPermission = TableData "Posted Invt. Pick Header" = R;
            Caption = 'Registered Whse. Pick Nos.';
            ToolTip = 'Specifies the number series code you want to be used to assign numbers to registered pick documents.';
            TableRelation = "No. Series";
        }
        field(10; "Registered Whse. Put-away Nos."; Code[20])
        {
            AccessByPermission = TableData "Posted Invt. Put-away Header" = R;
            Caption = 'Registered Whse. Put-away Nos.';
            ToolTip = 'Specifies the number series code used when numbers are assigned to registered put-away documents.';
            TableRelation = "No. Series";
        }
        field(13; "Require Receive"; Boolean)
        {
            AccessByPermission = TableData "Warehouse Receipt Header" = R;
            Caption = 'Require Receive';
            ToolTip = 'Specifies whether you require users to use the receive activity.';

            trigger OnValidate()
            begin
                if not "Require Receive" then
                    "Require Put-away" := false
                else
                    ConfirmDiscontinuedFieldBeingSet(Rec.FieldCaption("Require Receive"), Rec.TableCaption);
            end;
        }
        field(14; "Require Put-away"; Boolean)
        {
            AccessByPermission = TableData "Posted Invt. Put-away Header" = R;
            Caption = 'Require Put-away';
            ToolTip = 'Specifies whether you require users to use the put-away activity.';

            trigger OnValidate()
            begin
                if "Require Put-away" then begin
                    ConfirmDiscontinuedFieldBeingSet(Rec.FieldCaption("Require Put-away"), Rec.TableCaption);
                    "Require Receive" := true;
                end;

            end;
        }
        field(15; "Require Pick"; Boolean)
        {
            AccessByPermission = TableData "Posted Invt. Pick Header" = R;
            Caption = 'Require Pick';
            ToolTip = 'Specifies whether you require users to use the pick activity.';

            trigger OnValidate()
            begin
                if "Require Pick" then begin
                    ConfirmDiscontinuedFieldBeingSet(Rec.FieldCaption("Require Pick"), Rec.TableCaption);
                    "Require Shipment" := true;
                end;
            end;
        }
        field(16; "Require Shipment"; Boolean)
        {
            AccessByPermission = TableData "Warehouse Shipment Header" = R;
            Caption = 'Require Shipment';
            ToolTip = 'Specifies if warehouse shipments are required in warehouse work flows.';

            trigger OnValidate()
            begin
                if not "Require Shipment" then
                    "Require Pick" := false
                else
                    ConfirmDiscontinuedFieldBeingSet(Rec.FieldCaption("Require Shipment"), Rec.TableCaption);
            end;
        }
#if not CLEANSCHEMA28
        field(17; "Last Whse. Posting Ref. No."; Integer)
        {
            Caption = 'Last Whse. Posting Ref. No.';
            Editable = false;
            ObsoleteReason = 'Replaced by Last Whse. Posting Ref. Seq. field.';
            ObsoleteState = Removed;
            ObsoleteTag = '28.0';
        }
#endif
        field(18; "Receipt Posting Policy"; Option)
        {
            Caption = 'Receipt Posting Policy';
            ToolTip = 'Specifies what should happen if errors occur when warehouse receipts are posted.';
            OptionCaption = 'Posting errors are not processed,Stop and show the first posting error';
            OptionMembers = "Posting errors are not processed","Stop and show the first posting error";
            InitValue = "Stop and show the first posting error";
        }
        field(19; "Shipment Posting Policy"; Option)
        {
            Caption = 'Shipment Posting Policy';
            ToolTip = 'Specifies what should happen if errors occur when warehouse shipments are posted per source document.';
            OptionCaption = 'Posting errors are not processed,Stop and show the first posting error';
            OptionMembers = "Posting errors are not processed","Stop and show the first posting error";
            InitValue = "Stop and show the first posting error";
        }
        field(20; "Last Whse. Posting Ref. Seq."; Code[40])
        {
            Caption = 'Last Whse. Posting Ref. Seq.';
            Editable = false;
        }
        field(51; "Copy Item Descr. to Entries"; Boolean)
        {
            Caption = 'Copy Item Descr. to Entries';
            ToolTip = 'Specifies if you want the description on item cards to be copied to warehouse entries during posting.';
            DataClassification = SystemMetadata;

            trigger OnValidate()
            var
                UpdateNameInLedgerEntries: Codeunit Microsoft.Upgrade."Update Name In Ledger Entries";
            begin
                if Rec."Copy Item Descr. to Entries" then
                    UpdateNameInLedgerEntries.NotifyAboutBlankNamesInLedgerEntries(RecordId);
            end;
        }
        field(7301; "Posted Whse. Receipt Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Receipt Header" = R;
            Caption = 'Posted Whse. Receipt Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to posted warehouse receipts.';
            TableRelation = "No. Series";
        }
        field(7303; "Posted Whse. Shipment Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Shipment Header" = R;
            Caption = 'Posted Whse. Shipment Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to posted warehouse shipments.';
            TableRelation = "No. Series";
        }
        field(7304; "Whse. Internal Put-away Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Source Filter" = R;
            Caption = 'Whse. Internal Put-away Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to internal put-always.';
            TableRelation = "No. Series";
        }
        field(7306; "Whse. Internal Pick Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Source Filter" = R;
            Caption = 'Whse. Internal Pick Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to internal picks.';
            TableRelation = "No. Series";
        }
        field(7308; "Whse. Movement Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Source Filter" = R;
            Caption = 'Whse. Movement Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to warehouse movements.';
            TableRelation = "No. Series";
        }
        field(7309; "Registered Whse. Movement Nos."; Code[20])
        {
            AccessByPermission = TableData "Warehouse Source Filter" = R;
            Caption = 'Registered Whse. Movement Nos.';
            ToolTip = 'Specifies the number series code used to assign numbers to registered warehouse movements.';
            TableRelation = "No. Series";
        }
    }

    keys
    {
        key(Key1; "Primary Key")
        {
            Clustered = true;
        }
    }

    fieldgroups
    {
    }

    var
        RecordHasBeenRead: Boolean;
        SetDiscontinuedFieldQst: Label 'The %1 field will be removed from %2 in a future release. Use the %1 field for a specific location instead. \\Do you want to continue?', Comment = '%1 = field name, %2 = table name.';
        SetDiscontinuedFieldTelemetryMsg: Label 'The %1 field was enabled on %2 in company %3.', Comment = '%1 = field name, %2 = table name, %3 = company name';
        TelemetryCategoryLbl: Label 'AL Warehouse Setup', Locked = true;


    local procedure ConfirmDiscontinuedFieldBeingSet(Field_Caption: Text; Table_Caption: Text)
    var
        ConfirmManagement: Codeunit "Confirm Management";
    begin
        if not ConfirmManagement.GetResponseOrDefault(StrSubstNo(SetDiscontinuedFieldQst, Field_Caption, Table_Caption), false) then
            Error('')
        else
            Session.LogMessage('0000JR8', StrSubstNo(SetDiscontinuedFieldTelemetryMsg, Field_Caption, Table_Caption, CompanyName), Verbosity::Warning, DataClassification::SystemMetadata, TelemetryScope::All, 'Category', TelemetryCategoryLbl);
    end;

    procedure GetCurrentReference(): Integer
    begin
        Rec.Get();
        EnsureSequenceExists();
        exit(NumberSequence.Current(Rec."Last Whse. Posting Ref. Seq.") mod MaxInt());
    end;

    procedure GetNextReference(): Integer
    begin
        EnsureSequenceExists();
        exit(NumberSequence.Next(Rec."Last Whse. Posting Ref. Seq.") mod MaxInt());
    end;

    local procedure EnsureSequenceExists()
    begin
        Rec.Get();
        if Rec."Last Whse. Posting Ref. Seq." = '' then begin
            LockTable();
            Get();
            if Rec."Last Whse. Posting Ref. Seq." = '' then begin
                Rec."Last Whse. Posting Ref. Seq." := CopyStr(Format(CreateGuid()), 1, MaxStrLen(Rec."Last Whse. Posting Ref. Seq."));
                Rec."Last Whse. Posting Ref. Seq." := DelChr(Rec."Last Whse. Posting Ref. Seq.", '=', '{}');
                Modify();
            end;
        end;
        if NumberSequence.Exists("Last Whse. Posting Ref. Seq.") then
            exit;
        NumberSequence.Insert(Rec."Last Whse. Posting Ref. Seq.", 0, 1);
        // Simulate that a number was used - init issue with number sequences.
        if NumberSequence.next(Rec."Last Whse. Posting Ref. Seq.") = 0 then;
    end;

    local procedure MaxInt(): Integer
    begin
        exit(2147483647);
    end;

#if not CLEAN27
    [Obsolete('This function is deprecated. Concurrent warehouse posting is always on.', '27.0')]
    procedure UseLegacyPosting(): Boolean
    begin
        exit(false);
    end;
#endif

    internal procedure GetRecordOnce()
    begin
        if RecordHasBeenRead then
            exit;
        Get();
        RecordHasBeenRead := true;
    end;
}