26 lines
946 B
PL/PgSQL
26 lines
946 B
PL/PgSQL
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;
|
||
$$;
|