31 lines
1.3 KiB
PL/PgSQL
31 lines
1.3 KiB
PL/PgSQL
CREATE OR REPLACE PROCEDURE public."Hr_S_PerformanceFeedbackOpen"(
|
||
p_FeedbackId uuid,
|
||
p_ActorId uuid DEFAULT NULL
|
||
)
|
||
LANGUAGE plpgsql
|
||
AS $$
|
||
DECLARE
|
||
v_ReviewId uuid;
|
||
v_ReviewerId uuid;
|
||
BEGIN
|
||
SELECT "ReviewId", "ReviewerId" INTO v_ReviewId, v_ReviewerId
|
||
FROM "Hr_T_PerformanceFeedback"
|
||
WHERE "Id" = p_FeedbackId AND "IsDeleted" = FALSE;
|
||
|
||
IF v_ReviewId IS NULL THEN
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- Değerlendirici, değerlendirmenin yetkinlikleri üzerinden puan verir; satırlar burada açılır.
|
||
INSERT INTO "Hr_T_PerformanceFeedbackScore" ("Id", "TenantId", "FeedbackId", "SkillId", "IsActive", "CreationTime", "CreatorId", "IsDeleted")
|
||
SELECT gen_random_uuid(), c."TenantId", p_FeedbackId, c."SkillId", TRUE, NOW() AT TIME ZONE 'UTC', p_ActorId, FALSE
|
||
FROM "Hr_T_PerformanceCompetency" c
|
||
WHERE c."ReviewId" = v_ReviewId AND c."IsDeleted" = FALSE
|
||
AND NOT EXISTS (
|
||
SELECT 1 FROM "Hr_T_PerformanceFeedbackScore" s
|
||
WHERE s."FeedbackId" = p_FeedbackId AND s."SkillId" = c."SkillId" AND s."IsDeleted" = FALSE);
|
||
|
||
CALL public."Hr_S_PerformanceNotify"(v_ReviewId, v_ReviewerId, 'Performans360Talebi',
|
||
'App.Hr.Performance.Notification.Feedback.Subject', 'App.Hr.Performance.Notification.Feedback.Message', p_ActorId);
|
||
END
|
||
$$;
|