Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
using DbUp;
|
||||
using DbUp.Engine;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace JdeScoping.Database;
|
||||
|
||||
public class DatabaseMigrator
|
||||
{
|
||||
private readonly string _connectionString;
|
||||
|
||||
public DatabaseMigrator(IConfiguration configuration)
|
||||
{
|
||||
_connectionString = configuration.GetConnectionString("SqlServer")
|
||||
?? throw new InvalidOperationException("SqlServer connection string not configured");
|
||||
}
|
||||
|
||||
public DatabaseUpgradeResult Migrate()
|
||||
{
|
||||
EnsureDatabase.For.SqlDatabase(_connectionString);
|
||||
|
||||
var upgrader = DeployChanges.To
|
||||
.SqlDatabase(_connectionString)
|
||||
.WithScriptsEmbeddedInAssembly(typeof(DatabaseMigrator).Assembly)
|
||||
.WithTransaction()
|
||||
.LogToConsole()
|
||||
.Build();
|
||||
|
||||
return upgrader.PerformUpgrade();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Scripts\*.sql" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="dbup-sqlserver" Version="6.0.16" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Migration: 001_CreateSearchTable
|
||||
-- Source: OLD/Database/Tables/Search.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Search' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Search]
|
||||
(
|
||||
[ID] INT IDENTITY(1,1) NOT NULL,
|
||||
[UserName] VARCHAR(128) NOT NULL,
|
||||
[Name] VARCHAR(128) NULL,
|
||||
[Status] SMALLINT NOT NULL,
|
||||
[SubmitDT] DATETIME2(7) NULL,
|
||||
[StartDT] DATETIME2(7) NULL,
|
||||
[EndDT] DATETIME2(7) NULL,
|
||||
[Criteria] VARCHAR(MAX) NULL,
|
||||
[Results] VARBINARY(MAX) NULL,
|
||||
CONSTRAINT [PK_Search] PRIMARY KEY CLUSTERED([ID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Search_UserName' AND object_id = OBJECT_ID('dbo.Search'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Search_UserName] ON [dbo].[Search] ([UserName]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Migration: 002_CreateDataUpdateTable
|
||||
-- Source: OLD/Database/Tables/DataUpdate.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'DataUpdate' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[DataUpdate]
|
||||
(
|
||||
[ID] INT IDENTITY(1,1) NOT NULL,
|
||||
[SourceSystem] VARCHAR(50) NOT NULL,
|
||||
[SourceData] VARCHAR(50) NOT NULL,
|
||||
[TableName] VARCHAR(50) NOT NULL,
|
||||
[StartDT] DATETIME2(7) NOT NULL,
|
||||
[EndDT] DATETIME2(7) NOT NULL,
|
||||
[UpdateType] SMALLINT NOT NULL,
|
||||
[WasSuccessful] BIT NOT NULL,
|
||||
[NumberRecords] BIGINT NOT NULL,
|
||||
CONSTRAINT [PK_DataUpdate] PRIMARY KEY CLUSTERED([ID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_DataUpdate_LastUpdate' AND object_id = OBJECT_ID('dbo.DataUpdate'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_DataUpdate_LastUpdate] ON [dbo].[DataUpdate] ([TableName], [WasSuccessful], [StartDT] DESC);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,21 @@
|
||||
-- Migration: 003_CreateBranchTable
|
||||
-- Source: OLD/Database/Tables/Branch.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Branch' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Branch]
|
||||
(
|
||||
[Code] VARCHAR(12) NOT NULL,
|
||||
[Description] VARCHAR(40) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_Branch] PRIMARY KEY CLUSTERED([Code])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Branch_Lookup' AND object_id = OBJECT_ID('dbo.Branch'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Branch_Lookup] ON [dbo].[Branch] ([Description]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,21 @@
|
||||
-- Migration: 004_CreateStatusCodeTable
|
||||
-- Source: OLD/Database/Tables/StatusCode.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'StatusCode' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[StatusCode]
|
||||
(
|
||||
[Code] VARCHAR(12) NOT NULL,
|
||||
[Description] VARCHAR(40) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_StatusCode] PRIMARY KEY CLUSTERED([Code])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_StatusCode_Lookup' AND object_id = OBJECT_ID('dbo.StatusCode'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_StatusCode_Lookup] ON [dbo].[StatusCode] ([Description]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,15 @@
|
||||
-- Migration: 005_CreateFunctionCodeTable
|
||||
-- Source: OLD/Database/Tables/FunctionCode.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'FunctionCode' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[FunctionCode]
|
||||
(
|
||||
[Code] VARCHAR(10) NOT NULL,
|
||||
[Description] VARCHAR(MAX) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_FunctionCode] PRIMARY KEY ([Code])
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,21 @@
|
||||
-- Migration: 006_CreateProfitCenterTable
|
||||
-- Source: OLD/Database/Tables/ProfitCenter.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'ProfitCenter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[ProfitCenter]
|
||||
(
|
||||
[Code] VARCHAR(12) NOT NULL,
|
||||
[Description] VARCHAR(40) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_ProfitCenter] PRIMARY KEY CLUSTERED([Code])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ProfitCenter_Lookup' AND object_id = OBJECT_ID('dbo.ProfitCenter'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_ProfitCenter_Lookup] ON [dbo].[ProfitCenter] ([Description]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,21 @@
|
||||
-- Migration: 007_CreateWorkCenterTable
|
||||
-- Source: OLD/Database/Tables/WorkCenter.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkCenter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkCenter]
|
||||
(
|
||||
[Code] VARCHAR(12) NOT NULL,
|
||||
[Description] VARCHAR(40) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkCenter] PRIMARY KEY CLUSTERED([Code])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkCenter_Lookup' AND object_id = OBJECT_ID('dbo.WorkCenter'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkCenter_Lookup] ON [dbo].[WorkCenter] ([Description]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,24 @@
|
||||
-- Migration: 008_CreateItemTable
|
||||
-- Source: OLD/Database/Tables/Item.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Item' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Item]
|
||||
(
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[ItemNumber] VARCHAR(25) NOT NULL,
|
||||
[Description] VARCHAR(30) NULL,
|
||||
[PlanningFamily] VARCHAR(3) NULL,
|
||||
[StockingType] CHAR(1) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_Item] PRIMARY KEY CLUSTERED([ShortItemNumber])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Item_ItemNumber' AND object_id = OBJECT_ID('dbo.Item'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Item_ItemNumber] ON [dbo].[Item]([ItemNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,28 @@
|
||||
-- Migration: 009_CreateJdeUserTable
|
||||
-- Source: OLD/Database/Tables/JdeUser.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'JdeUser' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[JdeUser]
|
||||
(
|
||||
[AddressNumber] BIGINT NOT NULL,
|
||||
[UserID] VARCHAR(10) NULL,
|
||||
[FullName] VARCHAR(40) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_JdeUser] PRIMARY KEY CLUSTERED([AddressNumber])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_JdeUser_UserID' AND object_id = OBJECT_ID('dbo.JdeUser'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_JdeUser_UserID] ON [dbo].[JdeUser] ([UserID]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_JdeUser_FullName' AND object_id = OBJECT_ID('dbo.JdeUser'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_JdeUser_FullName] ON [dbo].[JdeUser] ([FullName]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,22 @@
|
||||
-- Migration: 010_CreateOrgHierarchyTable
|
||||
-- Source: OLD/Database/Tables/OrgHierarchy.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'OrgHierarchy' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[OrgHierarchy]
|
||||
(
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[ProfitCenterCode] VARCHAR(12) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_OrgHierarchy] PRIMARY KEY CLUSTERED([WorkCenterCode], [BranchCode])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_OrgHierarchy_ProfitCenterCode' AND object_id = OBJECT_ID('dbo.OrgHierarchy'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_OrgHierarchy_ProfitCenterCode] ON [dbo].[OrgHierarchy] ([ProfitCenterCode]) INCLUDE([WorkCenterCode]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,21 @@
|
||||
-- Migration: 011_CreateRouteMasterTable
|
||||
-- Source: OLD/Database/Tables/RouteMaster.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'RouteMaster' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[RouteMaster]
|
||||
(
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[ItemNumber] VARCHAR(25) NOT NULL,
|
||||
[RoutingType] VARCHAR(3) NOT NULL,
|
||||
[SequenceNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[FunctionCode] VARCHAR(15) NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NULL,
|
||||
[StartDate] DATETIME2(7) NOT NULL,
|
||||
[EndDate] DATETIME2(7) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_RouteMaster] PRIMARY KEY CLUSTERED([BranchCode], [ItemNumber], [RoutingType], [SequenceNumber], [StartDate])
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,26 @@
|
||||
-- Migration: 012_CreateMisDataTable
|
||||
-- Source: OLD/Database/Tables/MisData.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'MisData' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[MisData]
|
||||
(
|
||||
[ItemNumber] VARCHAR(32) NOT NULL,
|
||||
[BranchCode] VARCHAR(32) NOT NULL,
|
||||
[SequenceNumber] VARCHAR(32) NOT NULL,
|
||||
[MisNumber] VARCHAR(32) NOT NULL,
|
||||
[RevID] VARCHAR(32) NOT NULL,
|
||||
[CharNumber] VARCHAR(32) NOT NULL,
|
||||
[TestDescription] VARCHAR(2000) NULL,
|
||||
[SamplingType] VARCHAR(32) NULL,
|
||||
[SamplingValue] VARCHAR(32) NULL,
|
||||
[ToolsGauges] VARCHAR(2000) NULL,
|
||||
[WorkInstructions] VARCHAR(2000) NULL,
|
||||
[Status] VARCHAR(32) NOT NULL,
|
||||
[ReleaseDate] DATETIME2(7) NULL,
|
||||
[ObsoleteDate] DATETIME2(7) NULL,
|
||||
CONSTRAINT [PK_MisData] PRIMARY KEY CLUSTERED([ItemNumber], [BranchCode], [SequenceNumber], [MisNumber], [RevID], [Status], [CharNumber])
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,28 @@
|
||||
-- Migration: 013_CreateLotTable
|
||||
-- Source: OLD/Database/Tables/Lot.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'Lot' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[Lot]
|
||||
(
|
||||
[LotNumber] VARCHAR(30) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[ItemNumber] VARCHAR(25) NULL,
|
||||
[SupplierCode] BIGINT NOT NULL,
|
||||
[StatusCode] CHAR(1) NULL,
|
||||
[Memo1] VARCHAR(30) NULL,
|
||||
[Memo2] VARCHAR(30) NULL,
|
||||
[Memo3] VARCHAR(30) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_Lot] PRIMARY KEY CLUSTERED([LotNumber], [ShortItemNumber], [BranchCode])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Lot_SupplierCode' AND object_id = OBJECT_ID('dbo.Lot'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Lot_SupplierCode] ON [dbo].[Lot] ([SupplierCode]) INCLUDE([LotNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,17 @@
|
||||
-- Migration: 014_CreateLotLocationTable
|
||||
-- Source: OLD/Database/Tables/LotLocation.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'LotLocation' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[LotLocation]
|
||||
(
|
||||
[LotNumber] VARCHAR(120) NOT NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[Location] VARCHAR(80) NOT NULL DEFAULT '',
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_LotLocation] PRIMARY KEY CLUSTERED([LotNumber], [ShortItemNumber], [BranchCode], [Location])
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,39 @@
|
||||
-- Migration: 015_CreateWorkOrderCurrTable
|
||||
-- Source: OLD/Database/Tables/WorkOrder_Curr.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrder_Curr' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrder_Curr]
|
||||
(
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[LotNumber] VARCHAR(30) NULL,
|
||||
[ItemNumber] VARCHAR(25) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[ParentWorkOrderNumber] VARCHAR(8) NULL,
|
||||
[OrderQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[HeldQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[ShippedQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[StatusCode] VARCHAR(10) NULL,
|
||||
[StatusCodeUpdateDT] DATETIME2(7) NULL,
|
||||
[IssueDate] DATETIME2(7) NOT NULL,
|
||||
[StartDate] DATETIME2(7) NOT NULL,
|
||||
[RoutingType] VARCHAR(3) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrder_Curr] PRIMARY KEY CLUSTERED([WorkOrderNumber])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrder_Curr_ParentWorkOrderNumber' AND object_id = OBJECT_ID('dbo.WorkOrder_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrder_Curr_ParentWorkOrderNumber] ON [dbo].[WorkOrder_Curr] ([ParentWorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrder_Curr_ItemNumber' AND object_id = OBJECT_ID('dbo.WorkOrder_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrder_Curr_ItemNumber] ON [dbo].[WorkOrder_Curr] ([ItemNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,39 @@
|
||||
-- Migration: 016_CreateWorkOrderHistTable
|
||||
-- Source: OLD/Database/Tables/WorkOrder_Hist.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrder_Hist' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrder_Hist]
|
||||
(
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[LotNumber] VARCHAR(30) NULL,
|
||||
[ItemNumber] VARCHAR(25) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[ParentWorkOrderNumber] VARCHAR(8) NULL,
|
||||
[OrderQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[HeldQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[ShippedQuantity] DECIMAL(15, 2) NOT NULL,
|
||||
[StatusCode] VARCHAR(10) NULL,
|
||||
[StatusCodeUpdateDT] DATETIME2(7) NULL,
|
||||
[IssueDate] DATETIME2(7) NOT NULL,
|
||||
[StartDate] DATETIME2(7) NOT NULL,
|
||||
[RoutingType] VARCHAR(3) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrder_Hist] PRIMARY KEY CLUSTERED([WorkOrderNumber])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrder_Hist_ParentWorkOrderNumber' AND object_id = OBJECT_ID('dbo.WorkOrder_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrder_Hist_ParentWorkOrderNumber] ON [dbo].[WorkOrder_Hist] ([ParentWorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrder_Hist_ItemNumber' AND object_id = OBJECT_ID('dbo.WorkOrder_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrder_Hist_ItemNumber] ON [dbo].[WorkOrder_Hist] ([ItemNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,29 @@
|
||||
-- Migration: 017_CreateWorkOrderStepCurrTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderStep_Curr.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderStep_Curr' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderStep_Curr]
|
||||
(
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[StepNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[StepTypeCode] VARCHAR(2) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[StepDescription] VARCHAR(30) NULL,
|
||||
[StartDT] DATETIME2(7) NULL,
|
||||
[EndDT] DATETIME2(7) NULL,
|
||||
[FunctionCode] VARCHAR(15) NULL,
|
||||
[ScrappedQuantity] DECIMAL(18, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderStep_Curr] PRIMARY KEY CLUSTERED([WorkOrderNumber], [WorkCenterCode], [StepNumber], [StepTypeCode])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderStep_Curr_WorkCenterCode' AND object_id = OBJECT_ID('dbo.WorkOrderStep_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderStep_Curr_WorkCenterCode] ON [dbo].[WorkOrderStep_Curr] ([WorkCenterCode]) INCLUDE([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,29 @@
|
||||
-- Migration: 018_CreateWorkOrderStepHistTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderStep_Hist.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderStep_Hist' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderStep_Hist]
|
||||
(
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[StepNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[StepTypeCode] VARCHAR(2) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[StepDescription] VARCHAR(30) NULL,
|
||||
[StartDT] DATETIME2(7) NULL,
|
||||
[EndDT] DATETIME2(7) NULL,
|
||||
[FunctionCode] VARCHAR(15) NULL,
|
||||
[ScrappedQuantity] DECIMAL(18, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderStep_Hist] PRIMARY KEY CLUSTERED([WorkOrderNumber], [WorkCenterCode], [StepNumber], [StepTypeCode])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderStep_Hist_WorkCenterCode' AND object_id = OBJECT_ID('dbo.WorkOrderStep_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderStep_Hist_WorkCenterCode] ON [dbo].[WorkOrderStep_Hist] ([WorkCenterCode]) INCLUDE([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,32 @@
|
||||
-- Migration: 019_CreateWorkOrderTimeCurrTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderTime_Curr.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderTime_Curr' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderTime_Curr]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[StepNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[AddressNumber] BIGINT NOT NULL,
|
||||
[GlDate] DATETIME2(7) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderTime_Curr] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderTime_Curr_Lookup' AND object_id = OBJECT_ID('dbo.WorkOrderTime_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderTime_Curr_Lookup] ON [dbo].[WorkOrderTime_Curr] ([WorkOrderNumber], [WorkCenterCode], [StepNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderTime_Curr_AddressNumber' AND object_id = OBJECT_ID('dbo.WorkOrderTime_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderTime_Curr_AddressNumber] ON [dbo].[WorkOrderTime_Curr] ([AddressNumber]) INCLUDE([WorkOrderNumber], [WorkCenterCode], [StepNumber], [LastUpdateDT]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,32 @@
|
||||
-- Migration: 020_CreateWorkOrderTimeHistTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderTime_Hist.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderTime_Hist' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderTime_Hist]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[StepNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NOT NULL,
|
||||
[AddressNumber] BIGINT NOT NULL,
|
||||
[GlDate] DATETIME2(7) NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderTime_Hist] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderTime_Hist_Lookup' AND object_id = OBJECT_ID('dbo.WorkOrderTime_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderTime_Hist_Lookup] ON [dbo].[WorkOrderTime_Hist] ([WorkOrderNumber], [WorkCenterCode], [StepNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderTime_Hist_AddressNumber' AND object_id = OBJECT_ID('dbo.WorkOrderTime_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderTime_Hist_AddressNumber] ON [dbo].[WorkOrderTime_Hist] ([AddressNumber]) INCLUDE([WorkOrderNumber], [WorkCenterCode], [StepNumber], [LastUpdateDT]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Migration: 021_CreateWorkOrderComponentCurrTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderComponent_Curr.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderComponent_Curr' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderComponent_Curr]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[LotNumber] VARCHAR(30) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[Quantity] DECIMAL(15, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderComponent_Curr] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderComponent_Curr_WorkOrderNumber' AND object_id = OBJECT_ID('dbo.WorkOrderComponent_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderComponent_Curr_WorkOrderNumber] ON [dbo].[WorkOrderComponent_Curr] ([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderComponent_Curr_LotLookup' AND object_id = OBJECT_ID('dbo.WorkOrderComponent_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderComponent_Curr_LotLookup] ON [dbo].[WorkOrderComponent_Curr] ([LotNumber], [ShortItemNumber], [BranchCode]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Migration: 022_CreateWorkOrderComponentHistTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderComponent_Hist.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderComponent_Hist' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderComponent_Hist]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[LotNumber] VARCHAR(30) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[Quantity] DECIMAL(15, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderComponent_Hist] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderComponent_Hist_WorkOrderNumber' AND object_id = OBJECT_ID('dbo.WorkOrderComponent_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderComponent_Hist_WorkOrderNumber] ON [dbo].[WorkOrderComponent_Hist] ([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderComponent_Hist_LotLookup' AND object_id = OBJECT_ID('dbo.WorkOrderComponent_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderComponent_Hist_LotLookup] ON [dbo].[WorkOrderComponent_Hist] ([LotNumber], [ShortItemNumber], [BranchCode]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,32 @@
|
||||
-- Migration: 023_CreateWorkOrderRoutingTable
|
||||
-- Source: OLD/Database/Tables/WorkOrderRouting_Curr.sql
|
||||
-- Note: Legacy file creates [dbo].[WorkOrderRouting] (no _Curr suffix - single table)
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'WorkOrderRouting' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[WorkOrderRouting]
|
||||
(
|
||||
[UserID] VARCHAR(40) NOT NULL,
|
||||
[BatchNumber] VARCHAR(60) NOT NULL,
|
||||
[TransactionNumber] VARCHAR(88) NOT NULL,
|
||||
[LineNumber] INT NOT NULL,
|
||||
[StepNumber] DECIMAL(7, 2) NOT NULL,
|
||||
[WorkCenterCode] VARCHAR(12) NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[RoutingType] VARCHAR(12) NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[StepDescription] VARCHAR(120) NULL,
|
||||
[FunctionCode] VARCHAR(60) NULL,
|
||||
[TransactionDate] DATETIME2(7) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_WorkOrderRouting] PRIMARY KEY CLUSTERED([UserID], [BatchNumber], [TransactionNumber], [LineNumber], [StepNumber], [WorkCenterCode])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_WorkOrderRouting_Lookup' AND object_id = OBJECT_ID('dbo.WorkOrderRouting'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_WorkOrderRouting_Lookup] ON [dbo].[WorkOrderRouting] ([WorkOrderNumber], [WorkCenterCode], [FunctionCode]) INCLUDE([StepNumber]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Migration: 024_CreateLotUsageCurrTable
|
||||
-- Source: OLD/Database/Tables/LotUsage_Curr.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'LotUsage_Curr' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[LotUsage_Curr]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[LotNumber] VARCHAR(30) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[Quantity] DECIMAL(15, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_LotUsage_Curr] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_LotUsage_Curr_WorkOrderNumber' AND object_id = OBJECT_ID('dbo.LotUsage_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_LotUsage_Curr_WorkOrderNumber] ON [dbo].[LotUsage_Curr] ([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_LotUsage_Curr_LotLookup' AND object_id = OBJECT_ID('dbo.LotUsage_Curr'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_LotUsage_Curr_LotLookup] ON [dbo].[LotUsage_Curr] ([LotNumber], [ShortItemNumber], [BranchCode]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Migration: 025_CreateLotUsageHistTable
|
||||
-- Source: OLD/Database/Tables/LotUsage_Hist.sql
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'LotUsage_Hist' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[LotUsage_Hist]
|
||||
(
|
||||
[UniqueID] BIGINT NOT NULL,
|
||||
[WorkOrderNumber] BIGINT NOT NULL,
|
||||
[LotNumber] VARCHAR(30) NOT NULL,
|
||||
[BranchCode] VARCHAR(12) NULL,
|
||||
[ShortItemNumber] BIGINT NOT NULL,
|
||||
[Quantity] DECIMAL(15, 2) NOT NULL,
|
||||
[LastUpdateDT] DATETIME2(7) NOT NULL,
|
||||
CONSTRAINT [PK_LotUsage_Hist] PRIMARY KEY CLUSTERED([UniqueID])
|
||||
);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_LotUsage_Hist_WorkOrderNumber' AND object_id = OBJECT_ID('dbo.LotUsage_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_LotUsage_Hist_WorkOrderNumber] ON [dbo].[LotUsage_Hist] ([WorkOrderNumber]);
|
||||
END
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_LotUsage_Hist_LotLookup' AND object_id = OBJECT_ID('dbo.LotUsage_Hist'))
|
||||
BEGIN
|
||||
CREATE INDEX [IX_LotUsage_Hist_LotLookup] ON [dbo].[LotUsage_Hist] ([LotNumber], [ShortItemNumber], [BranchCode]);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Migration: 026_CreateWorkOrderView
|
||||
-- Source: OLD/Database/Views/WorkOrder.sql
|
||||
-- Union view combining WorkOrder_Curr and WorkOrder_Hist
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[WorkOrder] AS
|
||||
(
|
||||
SELECT hist.*
|
||||
FROM dbo.WorkOrder_Hist hist
|
||||
UNION ALL
|
||||
SELECT curr.*
|
||||
FROM dbo.WorkOrder_Curr curr
|
||||
);
|
||||
GO
|
||||
@@ -0,0 +1,27 @@
|
||||
-- Migration: 027_CreateWorkOrderTimeView
|
||||
-- Source: OLD/Database/Views/WorkOrderTime.sql
|
||||
-- Union view combining WorkOrderTime_Curr and WorkOrderTime_Hist
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[WorkOrderTime] AS
|
||||
(
|
||||
SELECT hist.UniqueID,
|
||||
hist.WorkOrderNumber,
|
||||
hist.StepNumber,
|
||||
hist.WorkCenterCode,
|
||||
hist.BranchCode,
|
||||
hist.AddressNumber,
|
||||
hist.GlDate,
|
||||
hist.LastUpdateDT
|
||||
FROM dbo.WorkOrderTime_Hist hist
|
||||
UNION ALL
|
||||
SELECT curr.UniqueID,
|
||||
curr.WorkOrderNumber,
|
||||
curr.StepNumber,
|
||||
curr.WorkCenterCode,
|
||||
curr.BranchCode,
|
||||
curr.AddressNumber,
|
||||
curr.GlDate,
|
||||
curr.LastUpdateDT
|
||||
FROM dbo.WorkOrderTime_Curr curr
|
||||
);
|
||||
GO
|
||||
@@ -0,0 +1,47 @@
|
||||
-- Migration: 028_CreateWorkOrderStepView
|
||||
-- Source: OLD/Database/Views/WorkOrderStep.sql
|
||||
-- Union view with FunctionCode join for description
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[WorkOrderStep] AS
|
||||
SELECT wos.WorkOrderNumber,
|
||||
wos.WorkCenterCode,
|
||||
wos.StepNumber,
|
||||
wos.StepTypeCode,
|
||||
wos.BranchCode,
|
||||
wos.StepDescription,
|
||||
wos.StartDT,
|
||||
wos.EndDT,
|
||||
wos.FunctionCode,
|
||||
fc.[Description] AS FunctionOperationDescription,
|
||||
wos.ScrappedQuantity,
|
||||
wos.LastUpdateDT
|
||||
FROM
|
||||
(
|
||||
SELECT hist.WorkOrderNumber,
|
||||
hist.WorkCenterCode,
|
||||
hist.StepNumber,
|
||||
hist.StepTypeCode,
|
||||
hist.BranchCode,
|
||||
hist.StepDescription,
|
||||
hist.StartDT,
|
||||
hist.EndDT,
|
||||
hist.FunctionCode,
|
||||
hist.ScrappedQuantity,
|
||||
hist.LastUpdateDT
|
||||
FROM dbo.WorkOrderStep_Hist hist
|
||||
UNION ALL
|
||||
SELECT curr.WorkOrderNumber,
|
||||
curr.WorkCenterCode,
|
||||
curr.StepNumber,
|
||||
curr.StepTypeCode,
|
||||
curr.BranchCode,
|
||||
curr.StepDescription,
|
||||
curr.StartDT,
|
||||
curr.EndDT,
|
||||
curr.FunctionCode,
|
||||
curr.ScrappedQuantity,
|
||||
curr.LastUpdateDT
|
||||
FROM dbo.WorkOrderStep_Curr curr
|
||||
) wos
|
||||
LEFT OUTER JOIN dbo.FunctionCode fc ON (wos.FunctionCode = fc.Code);
|
||||
GO
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Migration: 029_CreateWorkOrderComponentView
|
||||
-- Source: OLD/Database/Views/WorkOrderComponent.sql
|
||||
-- Union view combining WorkOrderComponent_Curr and WorkOrderComponent_Hist
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[WorkOrderComponent] AS
|
||||
(
|
||||
SELECT hist.*
|
||||
FROM dbo.WorkOrderComponent_Hist hist
|
||||
UNION ALL
|
||||
SELECT curr.*
|
||||
FROM dbo.WorkOrderComponent_Curr curr
|
||||
);
|
||||
GO
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Migration: 030_CreateLotUsageView
|
||||
-- Source: OLD/Database/Views/LotUsage.sql
|
||||
-- Union view combining LotUsage_Curr and LotUsage_Hist
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[LotUsage] AS
|
||||
(
|
||||
SELECT hist.*
|
||||
FROM dbo.LotUsage_Hist hist
|
||||
UNION ALL
|
||||
SELECT curr.*
|
||||
FROM dbo.LotUsage_Curr curr
|
||||
);
|
||||
GO
|
||||
@@ -0,0 +1,11 @@
|
||||
-- Migration: 031_CreateWorkOrderTotalScrapView
|
||||
-- Source: OLD/Database/Views/WorkOrderTotalScrap.sql
|
||||
-- Aggregation view for total scrap by work order
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[WorkOrderTotalScrap] AS
|
||||
SELECT wos.WorkOrderNumber,
|
||||
COALESCE(SUM(wos.ScrappedQuantity), 0) AS TotalScrappedQuantity
|
||||
FROM dbo.WorkOrderStep wos
|
||||
WHERE wos.StepNumber = ROUND(wos.StepNumber, 0)
|
||||
GROUP BY wos.WorkOrderNumber;
|
||||
GO
|
||||
@@ -0,0 +1,34 @@
|
||||
-- Migration: 032_CreateLastDataUpdatesView
|
||||
-- Source: OLD/Database/Views/LastDataUpdates.sql
|
||||
-- Pivot view showing last successful update timestamps by table and type
|
||||
|
||||
CREATE OR ALTER VIEW [dbo].[LastDataUpdates]
|
||||
AS
|
||||
WITH UPDATE_CTE AS
|
||||
(
|
||||
SELECT du.TableName,
|
||||
du.UpdateType,
|
||||
du.StartDT,
|
||||
ROW_NUMBER() OVER (PARTITION BY du.TableName, du.UpdateType ORDER BY du.StartDT DESC) AS RN
|
||||
FROM dbo.DataUpdate du
|
||||
WHERE du.WasSuccessful = 1
|
||||
)
|
||||
SELECT TableName,
|
||||
COALESCE([3], '1970-01-01') AS MassUpdateDT,
|
||||
COALESCE(COALESCE([2], [3]), '1970-01-01') AS DailyUpdateDT,
|
||||
COALESCE(COALESCE(COALESCE([1], [2]), [3]), '1970-01-01') AS HourlyUpdateDT
|
||||
FROM
|
||||
(
|
||||
SELECT UPDATE_CTE.TableName,
|
||||
UPDATE_CTE.UpdateType,
|
||||
UPDATE_CTE.StartDT,
|
||||
UPDATE_CTE.RN
|
||||
FROM UPDATE_CTE
|
||||
WHERE RN = 1
|
||||
) AS Source
|
||||
PIVOT
|
||||
(
|
||||
MAX(StartDT)
|
||||
FOR UpdateType IN ([1], [2], [3])
|
||||
) AS PivotTable;
|
||||
GO
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Migration: 033_CreateWorkOrderFilterParameterType
|
||||
-- Source: OLD/Database/Types/WorkOrderFilterParameter.sql
|
||||
-- Table-valued parameter for work order number filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'WorkOrderFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[WorkOrderFilterParameter] AS TABLE
|
||||
(
|
||||
WorkOrderNumber BIGINT NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Migration: 034_CreateItemNumberFilterParameterType
|
||||
-- Source: OLD/Database/Types/ItemNumberFilterParameter.sql
|
||||
-- Table-valued parameter for item number filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'ItemNumberFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[ItemNumberFilterParameter] AS TABLE
|
||||
(
|
||||
ItemNumber VARCHAR(25) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Migration: 035_CreateProfitCenterFilterParameterType
|
||||
-- Source: OLD/Database/Types/ProfitCenterFilterParameter.sql
|
||||
-- Table-valued parameter for profit center filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'ProfitCenterFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[ProfitCenterFilterParameter] AS TABLE
|
||||
(
|
||||
Code VARCHAR(12) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Migration: 036_CreateWorkCenterFilterParameterType
|
||||
-- Source: OLD/Database/Types/WorkCenterFilterParameter.sql
|
||||
-- Table-valued parameter for work center filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'WorkCenterFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[WorkCenterFilterParameter] AS TABLE
|
||||
(
|
||||
Code VARCHAR(12) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Migration: 037_CreateOperatorFilterParameterType
|
||||
-- Source: OLD/Database/Types/OperatorFilterParameter.sql
|
||||
-- Table-valued parameter for operator (JDE user) filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'OperatorFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[OperatorFilterParameter] AS TABLE
|
||||
(
|
||||
UserName VARCHAR(10) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,13 @@
|
||||
-- Migration: 038_CreateComponentLotFilterParameterType
|
||||
-- Source: OLD/Database/Types/ComponentLotFilterParameter.sql
|
||||
-- Table-valued parameter for component lot filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'ComponentLotFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[ComponentLotFilterParameter] AS TABLE
|
||||
(
|
||||
ComponentLotNumber VARCHAR(30) NULL,
|
||||
ItemNumber VARCHAR(128) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,16 @@
|
||||
-- Migration: 039_CreateItemOperationMisFilterParameterType
|
||||
-- Source: OLD/Database/Types/ItemOperationMISFilterParameter.sql
|
||||
-- Note: Using lowercase "Mis" per Codex review naming convention
|
||||
-- Table-valued parameter for MIS data filtering
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.types WHERE name = 'ItemOperationMisFilterParameter' AND schema_id = SCHEMA_ID('dbo'))
|
||||
BEGIN
|
||||
CREATE TYPE [dbo].[ItemOperationMisFilterParameter] AS TABLE
|
||||
(
|
||||
ItemNumber VARCHAR(32) NULL,
|
||||
OperationNumber VARCHAR(32) NULL,
|
||||
MisNumber VARCHAR(32) NULL,
|
||||
MisRevision VARCHAR(32) NULL
|
||||
);
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,35 @@
|
||||
-- Migration: 040_CreateSubmitSearchProcedure
|
||||
-- Source: OLD/Database/StoredProcedures/SubmitSearch.sql
|
||||
-- Creates a new search record with status=1 (Submitted)
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[SubmitSearch]
|
||||
(
|
||||
@p_UserName VARCHAR(128),
|
||||
@p_Name VARCHAR(128),
|
||||
@p_Criteria VARCHAR(MAX),
|
||||
@o_SearchID INT OUTPUT
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- Insert new search record
|
||||
INSERT INTO dbo.Search
|
||||
(
|
||||
UserName,
|
||||
Name,
|
||||
Status,
|
||||
SubmitDT,
|
||||
Criteria
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@p_UserName,
|
||||
@p_Name,
|
||||
1,
|
||||
GETDATE(),
|
||||
@p_Criteria
|
||||
);
|
||||
|
||||
-- Get assigned auto-ID
|
||||
SET @o_SearchID = SCOPE_IDENTITY();
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,17 @@
|
||||
-- Migration: 041_CreateStartSearchProcedure
|
||||
-- Source: OLD/Database/StoredProcedures/StartSearch.sql
|
||||
-- Updates search status to 2 (Started) and sets start timestamp
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[StartSearch]
|
||||
(
|
||||
@p_SearchID INT
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
-- Update search status and start timestamp
|
||||
UPDATE dbo.Search
|
||||
SET Status = 2,
|
||||
StartDT = GETDATE()
|
||||
WHERE ID = @p_SearchID;
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,28 @@
|
||||
-- Migration: 042_CreateCompleteSearchProcedure
|
||||
-- Source: OLD/Database/StoredProcedures/CompleteSearch.sql
|
||||
-- Completes search with status 3 (Success) or 4 (Error) and stores results
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[CompleteSearch]
|
||||
(
|
||||
@p_SearchID INT,
|
||||
@p_WasSuccessful BIT,
|
||||
@p_Results VARBINARY(MAX)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @v_Status INT;
|
||||
|
||||
-- Determine status code
|
||||
SET @v_Status = CASE @p_WasSuccessful
|
||||
WHEN 1 THEN 3
|
||||
ELSE 4
|
||||
END;
|
||||
|
||||
-- Update search status and results
|
||||
UPDATE dbo.Search
|
||||
SET Status = @v_Status,
|
||||
Results = @p_Results,
|
||||
EndDT = GETDATE()
|
||||
WHERE ID = @p_SearchID;
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,15 @@
|
||||
-- Migration: 043_CreateResetPartialSearchesProcedure
|
||||
-- Source: OLD/Database/StoredProcedures/ResetPartialSearches.sql
|
||||
-- Resets searches that were started but not completed (cleanup after crash)
|
||||
|
||||
CREATE OR ALTER PROCEDURE [dbo].[ResetPartialSearches]
|
||||
AS
|
||||
BEGIN
|
||||
-- Reset status and start timestamp for searches begun but not finished
|
||||
UPDATE dbo.Search
|
||||
SET Status = 1,
|
||||
StartDT = NULL
|
||||
WHERE StartDT IS NOT NULL
|
||||
AND EndDT IS NULL;
|
||||
END
|
||||
GO
|
||||
@@ -0,0 +1,330 @@
|
||||
-- Migration: 044_CreateMatchMisFunction
|
||||
-- Source: OLD/Database/Functions/MatchMis.sql
|
||||
-- Table-valued function for MIS data matching
|
||||
-- Dependencies: Item, WorkOrder, WorkOrderRouting, RouteMaster, MisData tables
|
||||
-- Changes: DATETIME -> DATETIME2(7)
|
||||
|
||||
CREATE OR ALTER FUNCTION [dbo].[MatchMIS]
|
||||
(
|
||||
@workOrderNumber BIGINT,
|
||||
@itemNumber VARCHAR(25),
|
||||
@branchCode VARCHAR(12),
|
||||
@routingType VARCHAR(3),
|
||||
@issueDate DATETIME2(7),
|
||||
@workCenterCode VARCHAR(12),
|
||||
@sequenceNumber DECIMAL(7, 2),
|
||||
@steptimestamp DATETIME2(7),
|
||||
@functionCode VARCHAR(15),
|
||||
@functionOperationDescription VARCHAR(80)
|
||||
)
|
||||
RETURNS @MIS TABLE
|
||||
(
|
||||
WorkOrderNumber BIGINT,
|
||||
ItemNumber VARCHAR(25),
|
||||
ItemDescription VARCHAR(30),
|
||||
BranchCode VARCHAR(12),
|
||||
WorkCenterCode VARCHAR(12),
|
||||
StepTimestamp DATETIME2(7),
|
||||
SequenceNumber DECIMAL(7, 2),
|
||||
FunctionCode VARCHAR(15),
|
||||
FunctionOperationDescription VARCHAR(80),
|
||||
MatchedSequenceNumber DECIMAL(7, 2),
|
||||
RoutingMatch BIT,
|
||||
MasterMatch BIT,
|
||||
MisNumber VARCHAR(32),
|
||||
RevID VARCHAR(32),
|
||||
CharNumber VARCHAR(32),
|
||||
MisSequenceNumber VARCHAR(32),
|
||||
TestDescription VARCHAR(2000),
|
||||
SamplingType VARCHAR(32),
|
||||
SamplingValue VARCHAR(32),
|
||||
ToolsGauges VARCHAR(2000),
|
||||
WorkInstructions VARCHAR(2000),
|
||||
Status VARCHAR(32),
|
||||
ReleaseDate DATETIME2(7)
|
||||
)
|
||||
BEGIN
|
||||
-- Lookup item description
|
||||
DECLARE @itemDescription VARCHAR(30);
|
||||
SELECT TOP 1 @itemDescription = i.[Description]
|
||||
FROM dbo.Item AS i
|
||||
WHERE i.ItemNumber = @itemNumber;
|
||||
|
||||
-- Find aliases for sequence number
|
||||
DECLARE @alias TABLE
|
||||
(
|
||||
SequenceNumber DECIMAL(7, 2),
|
||||
RoutingMatch BIT,
|
||||
MasterMatch BIT
|
||||
);
|
||||
|
||||
-- Lookup parent work order info
|
||||
DECLARE @p_WorkOrderNumber BIGINT;
|
||||
SELECT @p_WorkOrderNumber = COALESCE(TRY_CONVERT(BIGINT, wo.ParentWorkOrderNumber), wo.WorkOrderNumber)
|
||||
FROM dbo.WorkOrder AS wo
|
||||
WHERE wo.WorkOrderNumber = @workOrderNumber;
|
||||
|
||||
-- Add F3112Z1 records to aliases
|
||||
WITH routing_cte AS
|
||||
(
|
||||
SELECT DISTINCT wor.StepNumber AS SequenceNumber
|
||||
FROM dbo.WorkOrderRouting AS wor
|
||||
WHERE wor.WorkOrderNumber = @p_WorkOrderNumber
|
||||
AND wor.WorkCenterCode = @workCenterCode
|
||||
AND wor.FunctionCode = @functionCode
|
||||
AND wor.TransactionDate = (
|
||||
SELECT MIN(wor2.TransactionDate)
|
||||
FROM dbo.WorkOrderRouting AS wor2
|
||||
WHERE wor2.WorkOrderNumber = @p_WorkOrderNumber
|
||||
)
|
||||
)
|
||||
MERGE @alias AS TARGET
|
||||
USING routing_cte AS SOURCE ON (TARGET.SequenceNumber = SOURCE.SequenceNumber)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET TARGET.RoutingMatch = 1
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (SequenceNumber, RoutingMatch, MasterMatch)
|
||||
VALUES (SOURCE.SequenceNumber, 1, 0);
|
||||
|
||||
-- Add F3003 records to aliases
|
||||
IF (NOT EXISTS (SELECT * FROM @alias AS a))
|
||||
BEGIN
|
||||
WITH master_cte AS
|
||||
(
|
||||
SELECT DISTINCT rm.SequenceNumber
|
||||
FROM dbo.RouteMaster AS rm
|
||||
WHERE rm.BranchCode = @branchCode
|
||||
AND rm.ItemNumber = @itemNumber
|
||||
AND rm.RoutingType = @routingType
|
||||
AND @issueDate BETWEEN rm.StartDate AND rm.EndDate
|
||||
AND rm.WorkCenterCode = @workCenterCode
|
||||
AND rm.FunctionCode = @functionCode
|
||||
)
|
||||
MERGE @alias AS TARGET
|
||||
USING master_cte AS SOURCE ON (TARGET.SequenceNumber = SOURCE.SequenceNumber)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET TARGET.MasterMatch = 1
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (SequenceNumber, RoutingMatch, MasterMatch)
|
||||
VALUES (SOURCE.SequenceNumber, 0, 1);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
WITH master_cte AS
|
||||
(
|
||||
SELECT DISTINCT rm.SequenceNumber
|
||||
FROM dbo.RouteMaster AS rm
|
||||
WHERE rm.BranchCode = @branchCode
|
||||
AND rm.ItemNumber = @itemNumber
|
||||
AND rm.RoutingType = @routingType
|
||||
AND @issueDate BETWEEN rm.StartDate AND rm.EndDate
|
||||
AND rm.WorkCenterCode = @workCenterCode
|
||||
AND rm.FunctionCode = @functionCode
|
||||
)
|
||||
MERGE @alias AS TARGET
|
||||
USING master_cte AS SOURCE ON (TARGET.SequenceNumber = SOURCE.SequenceNumber)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET TARGET.MasterMatch = 1;
|
||||
END
|
||||
|
||||
-- Try to match to 'Current'
|
||||
INSERT INTO @MIS
|
||||
(
|
||||
WorkOrderNumber,
|
||||
ItemNumber,
|
||||
ItemDescription,
|
||||
BranchCode,
|
||||
WorkCenterCode,
|
||||
StepTimestamp,
|
||||
SequenceNumber,
|
||||
FunctionCode,
|
||||
FunctionOperationDescription,
|
||||
MatchedSequenceNumber,
|
||||
RoutingMatch,
|
||||
MasterMatch,
|
||||
MisNumber,
|
||||
RevID,
|
||||
CharNumber,
|
||||
MisSequenceNumber,
|
||||
TestDescription,
|
||||
SamplingType,
|
||||
SamplingValue,
|
||||
ToolsGauges,
|
||||
WorkInstructions,
|
||||
Status,
|
||||
ReleaseDate
|
||||
)
|
||||
SELECT @workOrderNumber,
|
||||
@itemNumber,
|
||||
@itemDescription,
|
||||
@branchCode,
|
||||
@workCenterCode,
|
||||
@steptimestamp,
|
||||
@sequenceNumber,
|
||||
@functionCode,
|
||||
@functionOperationDescription,
|
||||
a.SequenceNumber AS MatchedSequenceNumber,
|
||||
a.RoutingMatch,
|
||||
a.MasterMatch,
|
||||
md.MisNumber,
|
||||
md.RevID,
|
||||
md.CharNumber,
|
||||
md.SequenceNumber AS MisSequenceNumber,
|
||||
md.TestDescription,
|
||||
md.SamplingType,
|
||||
md.SamplingValue,
|
||||
md.ToolsGauges,
|
||||
md.WorkInstructions,
|
||||
md.Status,
|
||||
md.ReleaseDate
|
||||
FROM @alias AS a
|
||||
INNER JOIN dbo.MisData AS md ON (
|
||||
md.BranchCode = @branchCode
|
||||
AND md.ItemNumber = @itemNumber
|
||||
AND md.SequenceNumber = CAST(CAST(a.SequenceNumber AS INT) AS VARCHAR(32))
|
||||
AND @steptimestamp BETWEEN COALESCE(md.ReleaseDate, '1970-01-01') AND COALESCE(md.ObsoleteDate, '2029-01-01')
|
||||
)
|
||||
WHERE md.Status = 'Current';
|
||||
|
||||
-- Exit if any MIS info found
|
||||
IF (EXISTS (SELECT * FROM @MIS))
|
||||
BEGIN
|
||||
RETURN;
|
||||
END
|
||||
|
||||
-- Try to match to 'BackLevel'
|
||||
INSERT INTO @MIS
|
||||
(
|
||||
WorkOrderNumber,
|
||||
ItemNumber,
|
||||
ItemDescription,
|
||||
BranchCode,
|
||||
WorkCenterCode,
|
||||
StepTimestamp,
|
||||
SequenceNumber,
|
||||
FunctionCode,
|
||||
FunctionOperationDescription,
|
||||
MatchedSequenceNumber,
|
||||
RoutingMatch,
|
||||
MasterMatch,
|
||||
MisNumber,
|
||||
RevID,
|
||||
CharNumber,
|
||||
MisSequenceNumber,
|
||||
TestDescription,
|
||||
SamplingType,
|
||||
SamplingValue,
|
||||
ToolsGauges,
|
||||
WorkInstructions,
|
||||
Status,
|
||||
ReleaseDate
|
||||
)
|
||||
SELECT @workOrderNumber,
|
||||
@itemNumber,
|
||||
@itemDescription,
|
||||
@branchCode,
|
||||
@workCenterCode,
|
||||
@steptimestamp,
|
||||
@sequenceNumber,
|
||||
@functionCode,
|
||||
@functionOperationDescription,
|
||||
a.SequenceNumber AS MatchedSequenceNumber,
|
||||
a.RoutingMatch,
|
||||
a.MasterMatch,
|
||||
md.MisNumber,
|
||||
md.RevID,
|
||||
md.CharNumber,
|
||||
md.SequenceNumber AS MisSequenceNumber,
|
||||
md.TestDescription,
|
||||
md.SamplingType,
|
||||
md.SamplingValue,
|
||||
md.ToolsGauges,
|
||||
md.WorkInstructions,
|
||||
md.Status,
|
||||
md.ReleaseDate
|
||||
FROM @alias AS a
|
||||
INNER JOIN dbo.MisData AS md ON (
|
||||
md.BranchCode = @branchCode
|
||||
AND md.ItemNumber = @itemNumber
|
||||
AND md.SequenceNumber = CAST(CAST(a.SequenceNumber AS INT) AS VARCHAR(32))
|
||||
AND md.ReleaseDate BETWEEN @issueDate AND @steptimestamp
|
||||
)
|
||||
WHERE md.Status = 'BackLevel';
|
||||
|
||||
-- Exit if any MIS info found
|
||||
IF (EXISTS (SELECT * FROM @MIS))
|
||||
BEGIN
|
||||
RETURN;
|
||||
END
|
||||
|
||||
-- Insert alias data without MIS match
|
||||
INSERT INTO @MIS
|
||||
(
|
||||
WorkOrderNumber,
|
||||
ItemNumber,
|
||||
ItemDescription,
|
||||
BranchCode,
|
||||
WorkCenterCode,
|
||||
StepTimestamp,
|
||||
SequenceNumber,
|
||||
FunctionCode,
|
||||
FunctionOperationDescription,
|
||||
MatchedSequenceNumber,
|
||||
RoutingMatch,
|
||||
MasterMatch
|
||||
)
|
||||
SELECT @workOrderNumber,
|
||||
@itemNumber,
|
||||
@itemDescription,
|
||||
@branchCode,
|
||||
@workCenterCode,
|
||||
@steptimestamp,
|
||||
@sequenceNumber,
|
||||
@functionCode,
|
||||
@functionOperationDescription,
|
||||
a.SequenceNumber,
|
||||
a.RoutingMatch,
|
||||
a.MasterMatch
|
||||
FROM @alias AS a;
|
||||
|
||||
-- Exit if any MIS info found
|
||||
IF (EXISTS (SELECT * FROM @MIS))
|
||||
BEGIN
|
||||
RETURN;
|
||||
END
|
||||
|
||||
-- Insert parameter data if no MIS or alias found
|
||||
INSERT INTO @MIS
|
||||
(
|
||||
WorkOrderNumber,
|
||||
ItemNumber,
|
||||
ItemDescription,
|
||||
BranchCode,
|
||||
WorkCenterCode,
|
||||
StepTimestamp,
|
||||
SequenceNumber,
|
||||
FunctionCode,
|
||||
FunctionOperationDescription,
|
||||
MatchedSequenceNumber,
|
||||
RoutingMatch,
|
||||
MasterMatch
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@workOrderNumber,
|
||||
@itemNumber,
|
||||
@itemDescription,
|
||||
@branchCode,
|
||||
@workCenterCode,
|
||||
@steptimestamp,
|
||||
@sequenceNumber,
|
||||
@functionCode,
|
||||
@functionOperationDescription,
|
||||
NULL,
|
||||
0,
|
||||
0
|
||||
);
|
||||
|
||||
RETURN;
|
||||
END;
|
||||
GO
|
||||
Reference in New Issue
Block a user