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

100 lines
No EOL
3.4 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspDeleteEgyediNap
GO
CREATE PROCEDURE uspDeleteEgyediNap
@pTanevRendjeId INT
,@pIsKezzelRogzitesTorles 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
IF(@pIsKezzelRogzitesTorles = 'T')
BEGIN
IF(@osszesOsztalyraVonatkozik= 'T')
BEGIN
UPDATE T_ORARENDIORA
SET
TOROLT = 'T'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
WHERE
C_EGYEDINAP = 'T' AND C_ORAERVENYESSEGKEZDETE = @napDatuma AND C_ORAERVENYESSEGVEGE = @napDatuma
END
ELSE
BEGIN
UPDATE oo
SET
oo.TOROLT = 'T'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
FROM T_ORARENDIORA_OSSZES AS oo
INNER 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
END
END
ELSE
BEGIN
IF(@osszesOsztalyraVonatkozik= 'T')
BEGIN
UPDATE T_ORARENDIORA
SET
TOROLT = 'T'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
WHERE
C_EGYEDINAP = 'T' AND C_ORAERVENYESSEGKEZDETE = @napDatuma AND C_ORAERVENYESSEGVEGE = @napDatuma
AND C_ISKEZZELFELVETTEGYEDINAP = 'F'
UPDATE oo
SET
oo.C_HETNAPJA = nn.C_ALAPHETNAPJA
,oo.C_EGYEDINAP = 'F'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
FROM T_TANEVRENDJE_OSSZES AS tr
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tr.C_DATUM
INNER JOIN T_ORARENDIORA_OSSZES AS oo ON oo.C_EGYEDINAP = 'T'
AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma
AND oo.TOROLT = 'F' AND oo.C_ISKEZZELFELVETTEGYEDINAP = 'T'
WHERE
tr.ID = @pTanevRendjeId
END
ELSE
BEGIN
UPDATE oo
SET
oo.TOROLT = 'T'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
FROM T_ORARENDIORA_OSSZES AS oo
INNER 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 C_ISKEZZELFELVETTEGYEDINAP = 'F'
UPDATE oo
SET
oo.C_HETNAPJA = nn.C_ALAPHETNAPJA
,oo.C_EGYEDINAP = 'F'
,LASTCHANGED = GETDATE()
,MODIFIER = @pModifierId
FROM T_TANEVRENDJE_OSSZES AS tr
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tr.C_DATUM
INNER JOIN T_ORARENDIORA_OSSZES AS oo ON oo.C_EGYEDINAP = 'T'
AND oo.C_ORAERVENYESSEGKEZDETE = @napDatuma AND oo.C_ORAERVENYESSEGVEGE = @napDatuma
AND oo.TOROLT = 'F' AND oo.C_ISKEZZELFELVETTEGYEDINAP = 'T'
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr ON ocstr.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
WHERE
tr.ID = @pTanevRendjeId
END
END
END
GO