DROP PROCEDURE IF EXISTS uspFollowupRendszerBeallitas GO CREATE PROCEDURE uspFollowupRendszerBeallitas @intezmenyId int ,@aktTanevId int ,@kovetkezoTanevId int ,@beallitasId int AS BEGIN SET NOCOUNT ON; IF NOT EXISTS (SELECT 1 from T_TANEV where ID = @kovetkezoTanevId and C_KOVETKEZO = 'T' and C_AKTIVALVA is null and C_ISKIVALASZTHATO = 'T') BEGIN RETURN; END DECLARE @updateColList nvarchar(max) ,@sql nvarchar(max) SELECT @updateColList = ISNULL(@updateColList+','+insertColName+' = '+updateColname,insertColName+' = '+updateColname) FROM fnGetFollowUpColumnMapping ('','T_RENDSZERBEALLITAS') WHERE updateColname IS NOT NULL SET @sql = N' UPDATE t SET '+@updateColList+' FROM T_RENDSZERBEALLITAS_OSSZES t INNER JOIN T_RENDSZERBEALLITAS_OSSZES s ON s.ID = @beallitasId AND s.ID = t.ELOZOTANEVIREKORDID' PRINT @sql EXEC sp_executesql @sql,N' @intezmenyId int ,@aktTanevId int ,@kovetkezoTanevId int ,@beallitasId int' ,@intezmenyId = @intezmenyId ,@aktTanevId = @aktTanevId ,@kovetkezoTanevId = @kovetkezoTanevId ,@beallitasId = @beallitasId -- Dátum típusú rendszerbeállításoknál az alapértelmezett beállításnál a dátumokat a tanév első és utolsó napja közé módosítjuk IF EXISTS ( SELECT 1 FROM T_RENDSZERBEALLITAS_OSSZES rbk INNER JOIN T_RENDSZERBEALLITAS_OSSZES rba ON rba.ID = @beallitasId AND rba.ID = rbk.ELOZOTANEVIREKORDID AND rba.C_ERTEKTIPUS = 1696 AND rba.C_BEALLITASTIPUS <> 3082 AND rba.TOROLT = 'F' WHERE rbk.TOROLT = 'F' ) BEGIN DECLARE @rbDatum datetime ,@rbID int SELECT @rbID = rbk.ID, @rbDatum = CAST(JSON_VALUE(rbk.C_ERTEK, '$.Date') AS datetime) FROM T_RENDSZERBEALLITAS_OSSZES rbk INNER JOIN T_RENDSZERBEALLITAS_OSSZES rba ON rba.ID = @beallitasId AND rba.ID = rbk.ELOZOTANEVIREKORDID AND rba.C_ERTEKTIPUS = 1696 AND rba.TOROLT = 'F' WHERE rbk.TOROLT = 'F' UPDATE rbk SET rbk.C_ERTEK = JSON_MODIFY(rbk.C_ERTEK, '$.Date', CONVERT(nvarchar, nn.C_NAPDATUMA, 126)) ,rbk.SERIAL = rbk.SERIAL + 1 ,rbk.MODIFIER = rba.MODIFIER ,rbk.LASTCHANGED = rba.LASTCHANGED FROM T_RENDSZERBEALLITAS_OSSZES rbk INNER JOIN T_RENDSZERBEALLITAS_OSSZES rba ON rba.ID = @beallitasId AND rba.ID = rbk.ELOZOTANEVIREKORDID AND rba.TOROLT = 'F' INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_TANEVID = rbk.C_TANEVID AND nn.TOROLT = 'F' AND DATEPART(month, nn.C_NAPDATUMA) = DATEPART(month, @rbDatum) AND DATEPART(day, nn.C_NAPDATUMA) = DATEPART(day, @rbDatum) WHERE rbk.ID = @rbID AND rbk.TOROLT = 'F' AND @rbDatum <> nn.C_NAPDATUMA END END GO