kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspDeleteAllZaradekokAndZaradekNyelvekByTanulocsoportok.sql
2024-03-13 00:33:46 +01:00

56 lines
1.8 KiB
PL/PgSQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

DROP PROCEDURE IF EXISTS uspDeleteAllZaradekokAndZaradekNyelvekByTanulocsoportok
GO
CREATE PROCEDURE uspDeleteAllZaradekokAndZaradekNyelvekByTanulocsoportok
@pModifierId int
,@pTanuloCsoportIdList nvarchar(max)
,@pIsOsztalyList bit
AS
BEGIN
SET NOCOUNT ON;
IF(@pIsOsztalyList = 1) BEGIN
;WITH ZaradekCTE AS (
SELECT
z.ID
,IIF(tcs.C_KILEPESDATUM IS NULL OR z.C_ISKIVAGYATSOROLASIZARADEK = 'F' , 2, ROW_NUMBER() OVER (PARTITION BY C_TANULOCSOPORTID ORDER BY C_ISKIVAGYATSOROLASIZARADEK DESC, C_ROGZITESDATUMA DESC)) AS RN
FROM T_ZARADEK_OSSZES z
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = z.C_TANULOCSOPORTID AND tcs.TOROLT = 'F'
WHERE tcs.ID IN (SELECT VALUE FROM string_split(@pTanuloCsoportIdList, ','))
AND z.TOROLT = 'F'
)
UPDATE z SET
z.TOROLT = 'T'
,z.SERIAL += 1
,z.LASTCHANGED = GETDATE()
,z.MODIFIER = @pModifierId
FROM T_ZARADEK_OSSZES z
INNER JOIN ZaradekCTE zcte ON zcte.ID = z.ID
WHERE zcte.RN > 1
END
ELSE BEGIN
UPDATE z SET
z.TOROLT = 'T'
,z.SERIAL += 1
,z.LASTCHANGED = GETDATE()
,z.MODIFIER = @pModifierId
FROM T_ZARADEK_OSSZES z
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = z.C_TANULOCSOPORTID
WHERE tcs.ID IN (SELECT VALUE FROM string_split(@pTanuloCsoportIdList, ','))
AND z.TOROLT = 'F'
END
UPDATE zny SET
zny.TOROLT = 'T'
,zny.SERIAL = zny.SERIAL + 1
,zny.LASTCHANGED = GETDATE()
,zny.MODIFIER = @pModifierId
FROM T_ZARADEKNYELV_OSSZES zny
INNER JOIN T_ZARADEK_OSSZES z ON z.ID = zny.C_ZARADEKID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = z.C_TANULOCSOPORTID AND tcs.TOROLT = 'F'
WHERE zny.TOROLT = 'F' AND z.TOROLT = 'T'
END
GO