59 lines
2.3 KiB
MySQL
59 lines
2.3 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS public."Hr_T_LeaveRequest"
|
||
|
|
(
|
||
|
|
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
|
||
|
|
"TenantId" uuid NULL,
|
||
|
|
"RequestNo" varchar(32) NULL,
|
||
|
|
"EmployeeId" uuid NOT NULL,
|
||
|
|
"EmployeeName" varchar(256) NULL,
|
||
|
|
"DepartmentId" uuid NULL,
|
||
|
|
"JobPositionId" uuid NULL,
|
||
|
|
"LeaveTypeId" uuid NOT NULL,
|
||
|
|
"StartDate" timestamp NOT NULL,
|
||
|
|
"EndDate" timestamp NOT NULL,
|
||
|
|
"IsHalfDay" boolean NOT NULL DEFAULT FALSE,
|
||
|
|
"HalfDayPart" varchar(16) NULL,
|
||
|
|
"Days" numeric(5, 1) NOT NULL DEFAULT 0,
|
||
|
|
"Description" varchar(1024) NULL,
|
||
|
|
"DocumentFileName" varchar(256) NULL,
|
||
|
|
"DocumentContent" text NULL,
|
||
|
|
"BalanceWarning" varchar(512) NULL,
|
||
|
|
"SickLeaveId" uuid NULL,
|
||
|
|
"ManagerIds" varchar(1024) NULL,
|
||
|
|
"ManagerUserNames" varchar(1024) NULL,
|
||
|
|
"RequiresManagerApproval" integer NOT NULL DEFAULT 1,
|
||
|
|
"ApprovalStatus" varchar(50) NULL,
|
||
|
|
"ApprovalUser" varchar(1024) NULL,
|
||
|
|
"ApprovalDate" timestamp NULL,
|
||
|
|
"ApprovalDescription" varchar(512) NULL,
|
||
|
|
"LastNotifiedStatus" varchar(50) NULL,
|
||
|
|
"IsActive" boolean NOT NULL DEFAULT TRUE,
|
||
|
|
"CreationTime" timestamp NOT NULL DEFAULT (NOW() AT TIME ZONE 'UTC'),
|
||
|
|
"CreatorId" uuid NULL,
|
||
|
|
"LastModificationTime" timestamp NULL,
|
||
|
|
"LastModifierId" uuid NULL,
|
||
|
|
"IsDeleted" boolean NOT NULL DEFAULT FALSE,
|
||
|
|
"DeletionTime" timestamp NULL,
|
||
|
|
"DeleterId" uuid NULL,
|
||
|
|
CONSTRAINT "PK_Hr_T_LeaveRequest" PRIMARY KEY ("Id")
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_LeaveRequest_Dates') THEN
|
||
|
|
ALTER TABLE public."Hr_T_LeaveRequest" ADD CONSTRAINT "CK_Hr_T_LeaveRequest_Dates" CHECK ("EndDate" >= "StartDate");
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'CK_Hr_T_LeaveRequest_HalfDayPart') THEN
|
||
|
|
ALTER TABLE public."Hr_T_LeaveRequest" ADD CONSTRAINT "CK_Hr_T_LeaveRequest_HalfDayPart" CHECK ("HalfDayPart" IS NULL OR "HalfDayPart" IN ('Morning', 'Afternoon'));
|
||
|
|
END IF;
|
||
|
|
END
|
||
|
|
$$;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS "IX_Hr_T_LeaveRequest_Employee" ON public."Hr_T_LeaveRequest" ("TenantId", "EmployeeId", "StartDate") WHERE "IsDeleted" = FALSE;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS "IX_Hr_T_LeaveRequest_SickLeave" ON public."Hr_T_LeaveRequest" ("SickLeaveId") WHERE "SickLeaveId" IS NOT NULL;
|