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

55 lines
No EOL
1.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspDeleteEgyediNapOsztalycsoport
GO
CREATE PROCEDURE uspDeleteEgyediNapOsztalycsoport
@pTanevRendjeId INT
,@pOsztalycsoportId INT
,@pIsKapcsolodoCsoportokIs CHAR(1)
,@pModifierId INT
AS BEGIN
SET NOCOUNT ON
DECLARE @napDatuma DATETIME, @osszesOsztalyraVonatkozik CHAR(1);
SELECT @napDatuma = C_DATUM, @osszesOsztalyraVonatkozik = C_OSSZESCSOPORTRAVONATKOZIK FROM T_TANEVRENDJE_OSSZES WHERE ID = @pTanevRendjeId
DECLARE @sql NVARCHAR(MAX) = '';
SET @sql += N'
UPDATE oo
SET
oo.TOROLT = ''T''
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
FROM T_ORARENDIORA_OSSZES AS oo
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr ON ocstr.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
WHERE
oo.C_EGYEDINAP = ''T'' AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma
AND oo.TOROLT = ''F''
'
IF(@pIsKapcsolodoCsoportokIs = 'T')
BEGIN
SET @sql += N'
AND oo.C_OSZTALYCSOPORTID IN (
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalycsoportId AND TOROLT = ''F''
UNION
SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @pOsztalycsoportId AND TOROLT = ''F'')
'
END
ELSE
BEGIN
SET @sql += N'
AND oo.C_OSZTALYCSOPORTID = @pOsztalycsoportId
'
END
EXEC sp_executesql @sql, N'
@napDatuma datetime
,@pOsztalycsoportId INT
,@pModifierId INT'
,@napDatuma = @napDatuma
,@pOsztalycsoportId = @pOsztalycsoportId
,@pModifierId = @pModifierId
END
GO