sozsoft-platform/configs/seeds/sql/object/Hr_T_Timesheet.sql

51 lines
2.3 KiB
MySQL
Raw Permalink Normal View History

2026-10-04 21:18:13 +00:00
IF OBJECT_ID(N'[dbo].[Hr_T_Timesheet]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_Timesheet]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[EmployeeId] uniqueidentifier NOT NULL,
[WorkDate] date NOT NULL,
[PeriodYear] int NOT NULL,
[PeriodMonth] int NOT NULL,
[PeriodKey] nvarchar(48) NOT NULL,
[ShiftId] uniqueidentifier NULL,
[DayType] nvarchar(16) NOT NULL DEFAULT N'Work',
[LeaveTypeId] uniqueidentifier NULL,
[TrainingId] uniqueidentifier NULL,
[FirstIn] datetime2 NULL,
[LastOut] datetime2 NULL,
[BreakMinutes] int NOT NULL DEFAULT 0,
[NetMinutes] int NOT NULL DEFAULT 0,
[NetHours] decimal(6, 2) NOT NULL DEFAULT 0,
[LateMinutes] int NOT NULL DEFAULT 0,
[EarlyLeaveMinutes] int NOT NULL DEFAULT 0,
[OvertimeHours] decimal(6, 2) NOT NULL DEFAULT 0,
[IsManual] bit NOT NULL DEFAULT 0,
[IsIncomplete] bit NOT NULL DEFAULT 0,
[IsAssumed] bit NOT NULL DEFAULT 0,
[Note] nvarchar(512) NULL,
[CalculatedAt] datetime2 NULL,
[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_Timesheet] 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 NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_Timesheet_EmployeeDate' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_Timesheet]'))
CREATE INDEX [IX_Hr_T_Timesheet_EmployeeDate] ON [dbo].[Hr_T_Timesheet] ([EmployeeId], [WorkDate]) INCLUDE ([IsDeleted], [IsManual])
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_Timesheet_Period' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_Timesheet]'))
CREATE INDEX [IX_Hr_T_Timesheet_Period] ON [dbo].[Hr_T_Timesheet] ([TenantId], [PeriodYear], [PeriodMonth]) INCLUDE ([EmployeeId], [DayType], [IsDeleted])
GO