sozsoft-platform/configs/seeds/postgres/object/Hr_F_TimesheetPeriodClosed.sql

27 lines
946 B
MySQL
Raw Normal View History

2026-10-06 11:24:30 +00:00
CREATE OR REPLACE FUNCTION public."Hr_F_TimesheetPeriodClosed"
(
p_TenantId uuid,
p_StartDate date,
p_EndDate date
)
RETURNS boolean
LANGUAGE plpgsql
STABLE
AS $$
BEGIN
-- Aralığın değdiği aylardan biri kapalı puantaj dönemiyse TRUE. Puantajı değiştiren kayıtlar
-- (izin, rapor, puantaj günü) kapalı aya yazılamaz; dönemi İK açar, açılış ayı yeniden hesaplar.
IF p_StartDate IS NULL OR p_EndDate IS NULL THEN
RETURN FALSE;
END IF;
RETURN EXISTS (
SELECT 1 FROM "Hr_T_TimesheetPeriod" p
WHERE p."IsDeleted" = FALSE AND p."Status" = 'Closed'
AND p."TenantId" IS NOT DISTINCT FROM p_TenantId
AND p."PeriodYear" * 100 + p."PeriodMonth"
BETWEEN EXTRACT(YEAR FROM p_StartDate)::int * 100 + EXTRACT(MONTH FROM p_StartDate)::int
AND EXTRACT(YEAR FROM p_EndDate)::int * 100 + EXTRACT(MONTH FROM p_EndDate)::int);
END;
$$;