27 lines
946 B
MySQL
27 lines
946 B
MySQL
|
|
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;
|
|||
|
|
$$;
|