vtth
This commit is contained in:
@@ -168,7 +168,214 @@ SET NewQuantity = CASE
|
||||
END;
|
||||
|
||||
-- ===========================================
|
||||
-- 5. CREATE ASSET DEPARTMENTS TABLE
|
||||
-- 5. CREATE CONSUMABLE INVENTORY TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'ConsumableInventory')
|
||||
BEGIN
|
||||
CREATE TABLE ConsumableInventory (
|
||||
ConsumableId INT PRIMARY KEY IDENTITY(1,1),
|
||||
RequestMonth NVARCHAR(50) NULL,
|
||||
ConsumableCode NVARCHAR(100) NOT NULL UNIQUE,
|
||||
ConsumableName NVARCHAR(255) NOT NULL,
|
||||
Model NVARCHAR(255) NULL,
|
||||
Unit NVARCHAR(50) NULL,
|
||||
OpeningBalance INT NOT NULL DEFAULT 0,
|
||||
ImportInPeriod INT NOT NULL DEFAULT 0,
|
||||
ExportInPeriod INT NOT NULL DEFAULT 0,
|
||||
EndingBalance INT NOT NULL DEFAULT 0,
|
||||
ExportReason NVARCHAR(1000) NULL,
|
||||
CreatedBy INT NULL,
|
||||
CreatedDate DATETIME DEFAULT (DATEADD(HOUR, 7, SYSUTCDATETIME())),
|
||||
UpdatedDate DATETIME DEFAULT (DATEADD(HOUR, 7, SYSUTCDATETIME())),
|
||||
FOREIGN KEY (CreatedBy) REFERENCES Users(UserId) ON DELETE SET NULL
|
||||
);
|
||||
PRINT 'Table ConsumableInventory created successfully.';
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'RequestMonth') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD RequestMonth NVARCHAR(50) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'Model') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD Model NVARCHAR(255) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'Unit') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD Unit NVARCHAR(50) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'OpeningBalance') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD OpeningBalance INT NOT NULL CONSTRAINT DF_ConsumableInventory_OpeningBalance DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'ImportInPeriod') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD ImportInPeriod INT NOT NULL CONSTRAINT DF_ConsumableInventory_ImportInPeriod DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'ExportInPeriod') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD ExportInPeriod INT NOT NULL CONSTRAINT DF_ConsumableInventory_ExportInPeriod DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'EndingBalance') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD EndingBalance INT NOT NULL CONSTRAINT DF_ConsumableInventory_EndingBalance DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableInventory', 'ExportReason') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableInventory ADD ExportReason NVARCHAR(1000) NULL;
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 6. CREATE CONSUMABLE EXPORT HISTORY TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'ConsumableExportHistory')
|
||||
BEGIN
|
||||
CREATE TABLE ConsumableExportHistory (
|
||||
ExportHistoryId INT PRIMARY KEY IDENTITY(1,1),
|
||||
ConsumableId INT NOT NULL,
|
||||
ConsumableCode NVARCHAR(100) NOT NULL,
|
||||
ConsumableName NVARCHAR(255) NOT NULL,
|
||||
Unit NVARCHAR(50) NULL,
|
||||
ExportQuantity INT NOT NULL DEFAULT 1,
|
||||
RecipientName NVARCHAR(100) NOT NULL,
|
||||
ProjectName NVARCHAR(150) NULL,
|
||||
ExportedByName NVARCHAR(100) NOT NULL,
|
||||
ExportNote NVARCHAR(1000) NULL,
|
||||
PreviousExportInPeriod INT NOT NULL DEFAULT 0,
|
||||
NextExportInPeriod INT NOT NULL DEFAULT 0,
|
||||
PreviousEndingBalance INT NOT NULL DEFAULT 0,
|
||||
NextEndingBalance INT NOT NULL DEFAULT 0,
|
||||
CreatedBy INT NULL,
|
||||
ExportedDate DATETIME NOT NULL DEFAULT (DATEADD(HOUR, 7, SYSUTCDATETIME())),
|
||||
CreatedDate DATETIME NOT NULL DEFAULT (DATEADD(HOUR, 7, SYSUTCDATETIME())),
|
||||
UpdatedDate DATETIME NOT NULL DEFAULT (DATEADD(HOUR, 7, SYSUTCDATETIME())),
|
||||
FOREIGN KEY (ConsumableId) REFERENCES ConsumableInventory(ConsumableId) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CreatedBy) REFERENCES Users(UserId) ON DELETE SET NULL
|
||||
);
|
||||
PRINT 'Table ConsumableExportHistory created successfully.';
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ConsumableCode') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ConsumableCode NVARCHAR(100) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ConsumableName') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ConsumableName NVARCHAR(255) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'Unit') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD Unit NVARCHAR(50) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ExportQuantity') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ExportQuantity INT NOT NULL CONSTRAINT DF_ConsumableExportHistory_ExportQuantity DEFAULT(1);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'RecipientName') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD RecipientName NVARCHAR(100) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ProjectName') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ProjectName NVARCHAR(150) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ExportedByName') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ExportedByName NVARCHAR(100) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ExportNote') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ExportNote NVARCHAR(1000) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'PreviousExportInPeriod') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD PreviousExportInPeriod INT NOT NULL CONSTRAINT DF_ConsumableExportHistory_PreviousExportInPeriod DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'NextExportInPeriod') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD NextExportInPeriod INT NOT NULL CONSTRAINT DF_ConsumableExportHistory_NextExportInPeriod DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'PreviousEndingBalance') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD PreviousEndingBalance INT NOT NULL CONSTRAINT DF_ConsumableExportHistory_PreviousEndingBalance DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'NextEndingBalance') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD NextEndingBalance INT NOT NULL CONSTRAINT DF_ConsumableExportHistory_NextEndingBalance DEFAULT(0);
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'CreatedBy') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD CreatedBy INT NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'ExportedDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD ExportedDate DATETIME NOT NULL CONSTRAINT DF_ConsumableExportHistory_ExportedDate DEFAULT(DATEADD(HOUR, 7, SYSUTCDATETIME()));
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'CreatedDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD CreatedDate DATETIME NOT NULL CONSTRAINT DF_ConsumableExportHistory_CreatedDate DEFAULT(DATEADD(HOUR, 7, SYSUTCDATETIME()));
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.ConsumableExportHistory', 'UpdatedDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory ADD UpdatedDate DATETIME NOT NULL CONSTRAINT DF_ConsumableExportHistory_UpdatedDate DEFAULT(DATEADD(HOUR, 7, SYSUTCDATETIME()));
|
||||
END
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.foreign_key_columns fkc
|
||||
INNER JOIN sys.columns c
|
||||
ON c.object_id = fkc.parent_object_id
|
||||
AND c.column_id = fkc.parent_column_id
|
||||
WHERE fkc.parent_object_id = OBJECT_ID('dbo.ConsumableExportHistory')
|
||||
AND c.name = 'ConsumableId'
|
||||
)
|
||||
AND COL_LENGTH('dbo.ConsumableExportHistory', 'ConsumableId') IS NOT NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory
|
||||
ADD CONSTRAINT FK_ConsumableExportHistory_ConsumableId
|
||||
FOREIGN KEY (ConsumableId) REFERENCES ConsumableInventory(ConsumableId) ON DELETE CASCADE;
|
||||
END
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.foreign_key_columns fkc
|
||||
INNER JOIN sys.columns c
|
||||
ON c.object_id = fkc.parent_object_id
|
||||
AND c.column_id = fkc.parent_column_id
|
||||
WHERE fkc.parent_object_id = OBJECT_ID('dbo.ConsumableExportHistory')
|
||||
AND c.name = 'CreatedBy'
|
||||
)
|
||||
AND COL_LENGTH('dbo.ConsumableExportHistory', 'CreatedBy') IS NOT NULL
|
||||
BEGIN
|
||||
ALTER TABLE ConsumableExportHistory
|
||||
ADD CONSTRAINT FK_ConsumableExportHistory_CreatedBy
|
||||
FOREIGN KEY (CreatedBy) REFERENCES Users(UserId) ON DELETE SET NULL;
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 7. CREATE ASSET DEPARTMENTS TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetDepartments')
|
||||
BEGIN
|
||||
@@ -197,7 +404,7 @@ WHERE NOT EXISTS (
|
||||
);
|
||||
|
||||
-- ===========================================
|
||||
-- 6. CREATE ASSET PROJECTS TABLE
|
||||
-- 8. CREATE ASSET PROJECTS TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetProjects')
|
||||
BEGIN
|
||||
@@ -211,7 +418,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 7. CREATE ASSET BORROW REQUESTS TABLE
|
||||
-- 9. CREATE ASSET BORROW REQUESTS TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetBorrowRequests')
|
||||
BEGIN
|
||||
@@ -386,7 +593,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 8. CREATE ASSET EXPORT HISTORY TABLE
|
||||
-- 10. CREATE ASSET EXPORT HISTORY TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetExportHistory')
|
||||
BEGIN
|
||||
@@ -484,7 +691,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 9. CREATE ASSET DAMAGE/DISPOSAL HISTORY TABLE
|
||||
-- 11. CREATE ASSET DAMAGE/DISPOSAL HISTORY TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetDamageDisposalHistory')
|
||||
BEGIN
|
||||
@@ -522,7 +729,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 10. CREATE AUDIT LOG TABLE
|
||||
-- 12. CREATE AUDIT LOG TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AuditLog')
|
||||
BEGIN
|
||||
@@ -541,7 +748,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 11. CREATE INDEXES
|
||||
-- 13. CREATE INDEXES
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Users_Username')
|
||||
BEGIN
|
||||
@@ -573,6 +780,31 @@ BEGIN
|
||||
CREATE INDEX IX_AssetInventory_Department ON AssetInventory(Department);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ConsumableInventory_ConsumableCode')
|
||||
BEGIN
|
||||
CREATE INDEX IX_ConsumableInventory_ConsumableCode ON ConsumableInventory(ConsumableCode);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ConsumableInventory_RequestMonth')
|
||||
BEGIN
|
||||
CREATE INDEX IX_ConsumableInventory_RequestMonth ON ConsumableInventory(RequestMonth);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ConsumableInventory_EndingBalance')
|
||||
BEGIN
|
||||
CREATE INDEX IX_ConsumableInventory_EndingBalance ON ConsumableInventory(EndingBalance);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ConsumableExportHistory_ConsumableId')
|
||||
BEGIN
|
||||
CREATE INDEX IX_ConsumableExportHistory_ConsumableId ON ConsumableExportHistory(ConsumableId);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_ConsumableExportHistory_ExportedDate')
|
||||
BEGIN
|
||||
CREATE INDEX IX_ConsumableExportHistory_ExportedDate ON ConsumableExportHistory(ExportedDate DESC);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'UX_AssetDepartments_DepartmentName')
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX UX_AssetDepartments_DepartmentName ON AssetDepartments(DepartmentName);
|
||||
|
||||
Reference in New Issue
Block a user