65 lines
3.1 KiB
Transact-SQL
65 lines
3.1 KiB
Transact-SQL
IF OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]', 'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[Hr_T_LeaveRequest]
|
|
(
|
|
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
|
[TenantId] uniqueidentifier NULL,
|
|
[RequestNo] nvarchar(32) NULL,
|
|
[EmployeeId] uniqueidentifier NOT NULL,
|
|
[EmployeeName] nvarchar(256) NULL,
|
|
[DepartmentId] uniqueidentifier NULL,
|
|
[JobPositionId] uniqueidentifier NULL,
|
|
[LeaveTypeId] uniqueidentifier NOT NULL,
|
|
[StartDate] datetime2 NOT NULL,
|
|
[EndDate] datetime2 NOT NULL,
|
|
[IsHalfDay] bit NOT NULL DEFAULT 0,
|
|
[HalfDayPart] nvarchar(16) NULL,
|
|
[Days] decimal(5, 1) NOT NULL DEFAULT 0,
|
|
[Description] nvarchar(1024) NULL,
|
|
[DocumentFileName] nvarchar(256) NULL,
|
|
[DocumentContent] nvarchar(MAX) NULL,
|
|
[BalanceWarning] nvarchar(512) NULL,
|
|
[SickLeaveId] uniqueidentifier NULL,
|
|
[ManagerIds] nvarchar(1024) NULL,
|
|
[ManagerUserNames] nvarchar(1024) NULL,
|
|
[RequiresManagerApproval] int NOT NULL DEFAULT 1,
|
|
[ApprovalStatus] nvarchar(50) NULL,
|
|
[ApprovalUser] nvarchar(1024) NULL,
|
|
[ApprovalDate] datetime2 NULL,
|
|
[ApprovalDescription] nvarchar(512) NULL,
|
|
[LastNotifiedStatus] nvarchar(50) NULL,
|
|
[IsActive] bit NOT NULL DEFAULT 1,
|
|
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
|
|
[CreatorId] uniqueidentifier NULL,
|
|
[LastModificationTime] datetime2 NULL,
|
|
[LastModifierId] uniqueidentifier NULL,
|
|
[IsDeleted] bit NOT NULL DEFAULT 0,
|
|
[DeletionTime] datetime2 NULL,
|
|
[DeleterId] uniqueidentifier NULL,
|
|
CONSTRAINT [PK_Hr_T_LeaveRequest] PRIMARY KEY NONCLUSTERED
|
|
(
|
|
[Id] ASC
|
|
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
|
) ON [PRIMARY]
|
|
END
|
|
GO
|
|
|
|
IF COL_LENGTH(N'dbo.Hr_T_LeaveRequest', N'RequiresManagerApproval') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_LeaveRequest] ADD [RequiresManagerApproval] int NOT NULL DEFAULT 1
|
|
GO
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_LeaveRequest_Dates]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_LeaveRequest] ADD CONSTRAINT [CK_Hr_T_LeaveRequest_Dates] CHECK ([EndDate] >= [StartDate])
|
|
GO
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_LeaveRequest_HalfDayPart]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_LeaveRequest] ADD CONSTRAINT [CK_Hr_T_LeaveRequest_HalfDayPart] CHECK ([HalfDayPart] IS NULL OR [HalfDayPart] IN ('Morning', 'Afternoon'))
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_LeaveRequest_Employee' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]'))
|
|
CREATE NONCLUSTERED INDEX [IX_Hr_T_LeaveRequest_Employee] ON [dbo].[Hr_T_LeaveRequest] ([TenantId], [EmployeeId], [StartDate]) WHERE [IsDeleted] = 0
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_LeaveRequest_SickLeave' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]'))
|
|
CREATE NONCLUSTERED INDEX [IX_Hr_T_LeaveRequest_SickLeave] ON [dbo].[Hr_T_LeaveRequest] ([SickLeaveId]) WHERE [SickLeaveId] IS NOT NULL
|
|
GO
|