sozsoft-platform/configs/seeds/sql/object/Hr_S_TrainingSync.sql
2026-10-05 15:58:59 +03:00

50 lines
1.9 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE OR ALTER PROCEDURE [dbo].[Hr_S_TrainingSync]
@TrainingId uniqueidentifier,
@UserId uniqueidentifier = NULL,
@ActorId uniqueidentifier = NULL
AS
BEGIN
SET NOCOUNT ON;
-- Eğitim ya da katılımcı kaydından sonra çalışır (@UserId boşsa eğitimin bütün katılımcıları):
-- "Katıldı" işaretli katılımcının eğitim günleri puantajda Eğitim olur (devamsız yazılmaz), bağlı
-- gelişim aksiyonu tamamlanır. Silinen katılımcı/eğitim ve değişen tarih için eski günleri
-- puantaj hesabı kendisi düzeltir.
DECLARE @TenantId uniqueidentifier, @StartDate date, @EndDate date;
SELECT @TenantId = TenantId, @StartDate = StartDate, @EndDate = EndDate
FROM Hr_T_Training
WHERE Id = @TrainingId;
IF @StartDate IS NULL
RETURN;
DECLARE @Participant uniqueidentifier, @PlanId uniqueidentifier;
DECLARE participant_cursor CURSOR LOCAL FAST_FORWARD FOR
SELECT DISTINCT UserId FROM Hr_T_TrainingParticipant
WHERE TrainingId = @TrainingId AND (@UserId IS NULL OR UserId = @UserId);
OPEN participant_cursor;
FETCH NEXT FROM participant_cursor INTO @Participant;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC dbo.Hr_S_TimesheetCalculate @TenantId, @Participant, @StartDate, @EndDate, @ActorId;
FETCH NEXT FROM participant_cursor INTO @Participant;
END
CLOSE participant_cursor;
DEALLOCATE participant_cursor;
DECLARE plan_cursor CURSOR LOCAL FAST_FORWARD FOR
SELECT Id FROM Hr_T_DevelopmentPlan
WHERE TrainingId = @TrainingId AND IsDeleted = 0 AND (@UserId IS NULL OR EmployeeId = @UserId);
OPEN plan_cursor;
FETCH NEXT FROM plan_cursor INTO @PlanId;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC dbo.Hr_S_DevelopmentPlanSync @PlanId;
FETCH NEXT FROM plan_cursor INTO @PlanId;
END
CLOSE plan_cursor;
DEALLOCATE plan_cursor;
END
GO