2026-10-04 15:04:16 +00:00
|
|
|
IF OBJECT_ID(N'[dbo].[Hr_T_PerformanceReview]', 'U') IS NULL
|
|
|
|
|
BEGIN
|
|
|
|
|
CREATE TABLE [dbo].[Hr_T_PerformanceReview]
|
|
|
|
|
(
|
|
|
|
|
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
|
|
|
|
[TenantId] uniqueidentifier NULL,
|
2026-10-14 21:12:14 +00:00
|
|
|
[BranchId] uniqueidentifier NOT NULL,
|
2026-10-04 15:04:16 +00:00
|
|
|
[PeriodId] uniqueidentifier NOT NULL,
|
|
|
|
|
[EmployeeId] uniqueidentifier NOT NULL,
|
|
|
|
|
[EmployeeName] nvarchar(128) NULL,
|
|
|
|
|
[ManagerId] uniqueidentifier NULL,
|
|
|
|
|
[DepartmentId] uniqueidentifier NULL,
|
|
|
|
|
[JobPositionId] uniqueidentifier NULL,
|
|
|
|
|
[Status] nvarchar(16) NOT NULL DEFAULT 'GoalSetting',
|
|
|
|
|
[LastStatus] nvarchar(16) NULL,
|
|
|
|
|
[GoalScore] decimal(6, 2) NULL,
|
|
|
|
|
[CompetencyScore] decimal(6, 2) NULL,
|
|
|
|
|
[Feedback360Score] decimal(6, 2) NULL,
|
|
|
|
|
[OverallScore] decimal(6, 2) NULL,
|
|
|
|
|
[CalibratedScore] decimal(6, 2) NULL,
|
|
|
|
|
[RatingId] uniqueidentifier NULL,
|
|
|
|
|
[SelfComment] nvarchar(2048) NULL,
|
|
|
|
|
[ManagerComment] nvarchar(2048) NULL,
|
|
|
|
|
[CalibrationNote] nvarchar(1024) NULL,
|
|
|
|
|
[SelfSubmittedDate] datetime2 NULL,
|
|
|
|
|
[ManagerSubmittedDate] datetime2 NULL,
|
|
|
|
|
[CompletedDate] datetime2 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_PerformanceReview] 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 OBJECT_ID(N'[dbo].[CK_Hr_T_PerformanceReview_Status]', 'C') IS NULL
|
|
|
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceReview] ADD CONSTRAINT [CK_Hr_T_PerformanceReview_Status] CHECK ([Status] IN ('GoalSetting', 'SelfReview', 'ManagerReview', 'Calibration', 'Completed'))
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_PerformanceReview_CalibratedScore]', 'C') IS NULL
|
|
|
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceReview] ADD CONSTRAINT [CK_Hr_T_PerformanceReview_CalibratedScore] CHECK ([CalibratedScore] IS NULL OR [CalibratedScore] BETWEEN 0 AND 150)
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'UX_Hr_T_PerformanceReview_Employee' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_PerformanceReview]'))
|
|
|
|
|
CREATE UNIQUE NONCLUSTERED INDEX [UX_Hr_T_PerformanceReview_Employee] ON [dbo].[Hr_T_PerformanceReview] ([PeriodId], [EmployeeId]) WHERE [IsDeleted] = 0
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_PerformanceReview_Manager' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_PerformanceReview]'))
|
|
|
|
|
CREATE NONCLUSTERED INDEX [IX_Hr_T_PerformanceReview_Manager] ON [dbo].[Hr_T_PerformanceReview] ([ManagerId])
|
|
|
|
|
GO
|