request
This commit is contained in:
@@ -154,7 +154,99 @@ WHERE NOT EXISTS (
|
||||
);
|
||||
|
||||
-- ===========================================
|
||||
-- 6. CREATE AUDIT LOG TABLE
|
||||
-- 6. CREATE ASSET BORROW REQUESTS TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AssetBorrowRequests')
|
||||
BEGIN
|
||||
CREATE TABLE AssetBorrowRequests (
|
||||
BorrowId INT PRIMARY KEY IDENTITY(1,1),
|
||||
AssetId INT NOT NULL,
|
||||
RequestType NVARCHAR(20) NOT NULL DEFAULT 'borrow',
|
||||
RequestStatus NVARCHAR(20) NOT NULL DEFAULT 'pending',
|
||||
BorrowerName NVARCHAR(100) NOT NULL,
|
||||
BorrowQuantity INT NOT NULL DEFAULT 1,
|
||||
Unit NVARCHAR(50),
|
||||
BorrowDate DATE NOT NULL DEFAULT CAST(GETDATE() AS DATE),
|
||||
RequestNote NVARCHAR(500) NULL,
|
||||
RejectReason NVARCHAR(1000) NULL,
|
||||
CreatedBy INT NULL,
|
||||
ProcessedBy INT NULL,
|
||||
ProcessedByName NVARCHAR(100) NULL,
|
||||
ProcessedDate DATETIME NULL,
|
||||
CreatedDate DATETIME DEFAULT GETDATE(),
|
||||
UpdatedDate DATETIME DEFAULT GETDATE(),
|
||||
FOREIGN KEY (AssetId) REFERENCES AssetInventory(AssetId) ON DELETE CASCADE,
|
||||
FOREIGN KEY (CreatedBy) REFERENCES Users(UserId) ON DELETE SET NULL,
|
||||
FOREIGN KEY (ProcessedBy) REFERENCES Users(UserId) ON DELETE SET NULL
|
||||
);
|
||||
PRINT 'Table AssetBorrowRequests created successfully.';
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'Unit') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD Unit NVARCHAR(50) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'BorrowDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD BorrowDate DATE NOT NULL CONSTRAINT DF_AssetBorrowRequests_BorrowDate DEFAULT(CAST(GETDATE() AS DATE));
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'UpdatedDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD UpdatedDate DATETIME NOT NULL CONSTRAINT DF_AssetBorrowRequests_UpdatedDate DEFAULT(GETDATE());
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'RequestType') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD RequestType NVARCHAR(20) NOT NULL CONSTRAINT DF_AssetBorrowRequests_RequestType DEFAULT('borrow');
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'RequestStatus') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD RequestStatus NVARCHAR(20) NOT NULL CONSTRAINT DF_AssetBorrowRequests_RequestStatus DEFAULT('approved');
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'RequestNote') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD RequestNote NVARCHAR(500) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'RejectReason') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD RejectReason NVARCHAR(1000) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'ProcessedBy') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD ProcessedBy INT NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'ProcessedByName') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD ProcessedByName NVARCHAR(100) NULL;
|
||||
END
|
||||
|
||||
IF COL_LENGTH('dbo.AssetBorrowRequests', 'ProcessedDate') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests ADD ProcessedDate DATETIME NULL;
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.foreign_keys WHERE name = 'FK_AssetBorrowRequests_ProcessedBy')
|
||||
BEGIN
|
||||
ALTER TABLE AssetBorrowRequests
|
||||
ADD CONSTRAINT FK_AssetBorrowRequests_ProcessedBy
|
||||
FOREIGN KEY (ProcessedBy) REFERENCES Users(UserId) ON DELETE SET NULL;
|
||||
END
|
||||
|
||||
UPDATE AssetBorrowRequests
|
||||
SET RequestType = ISNULL(NULLIF(LTRIM(RTRIM(RequestType)), ''), 'borrow');
|
||||
|
||||
UPDATE AssetBorrowRequests
|
||||
SET RequestStatus = ISNULL(NULLIF(LTRIM(RTRIM(RequestStatus)), ''), 'approved');
|
||||
|
||||
-- ===========================================
|
||||
-- 7. CREATE AUDIT LOG TABLE
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = 'AuditLog')
|
||||
BEGIN
|
||||
@@ -173,7 +265,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 7. CREATE INDEXES
|
||||
-- 8. CREATE INDEXES
|
||||
-- ===========================================
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_Users_Username')
|
||||
BEGIN
|
||||
@@ -210,10 +302,30 @@ BEGIN
|
||||
CREATE UNIQUE INDEX UX_AssetDepartments_DepartmentName ON AssetDepartments(DepartmentName);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_AssetBorrowRequests_AssetId')
|
||||
BEGIN
|
||||
CREATE INDEX IX_AssetBorrowRequests_AssetId ON AssetBorrowRequests(AssetId);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_AssetBorrowRequests_BorrowDate')
|
||||
BEGIN
|
||||
CREATE INDEX IX_AssetBorrowRequests_BorrowDate ON AssetBorrowRequests(BorrowDate DESC);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_AssetBorrowRequests_RequestStatus')
|
||||
BEGIN
|
||||
CREATE INDEX IX_AssetBorrowRequests_RequestStatus ON AssetBorrowRequests(RequestStatus);
|
||||
END
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_AssetBorrowRequests_RequestType')
|
||||
BEGIN
|
||||
CREATE INDEX IX_AssetBorrowRequests_RequestType ON AssetBorrowRequests(RequestType);
|
||||
END
|
||||
|
||||
PRINT 'Indexes created successfully.';
|
||||
|
||||
-- ===========================================
|
||||
-- 8. INSERT INITIAL DATA
|
||||
-- 9. INSERT INITIAL DATA
|
||||
-- ===========================================
|
||||
|
||||
-- Check if admin user exists
|
||||
@@ -237,7 +349,7 @@ BEGIN
|
||||
END
|
||||
|
||||
-- ===========================================
|
||||
-- 9. DISPLAY DATABASE INFORMATION
|
||||
-- 10. DISPLAY DATABASE INFORMATION
|
||||
-- ===========================================
|
||||
PRINT '';
|
||||
PRINT '========================================';
|
||||
|
||||
Reference in New Issue
Block a user