kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_DeleteAllTTF.sql
2024-03-13 00:33:46 +01:00

125 lines
6.2 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
IF OBJECT_ID('sp_DeleteAllTTF', 'P') IS NOT NULL BEGIN
DROP PROCEDURE sp_DeleteAllTTF
END
GO
CREATE PROCEDURE [sp_DeleteAllTTF]
@feladatellatasiHely int = null,
@tanevID int
AS
BEGIN
SET NOCOUNT ON;
IF @feladatellatasiHely IS NULL BEGIN
DELETE FROM T_FOGLALKOZASOK_TANAROK
WHERE C_FOGLALKOZASOKID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_TANEVID = @tanevID
)
DELETE FROM T_FOGLALKOZAS
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_TANEVID = @tanevID
)
END
ELSE BEGIN -- Csak a megadott feladatellátási helyen töröl
DELETE FROM T_FOGLALKOZASOK_TANAROK
WHERE C_FOGLALKOZASOKID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_OSZTALYCSOPORTID IN (
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHely and C_TANEVID = @tanevID
)
AND f.C_TANEVID = @tanevID
)
DELETE FROM T_FOGLALKOZAS
WHERE ID IN (
SELECT ID FROM T_FOGLALKOZAS_OSSZES f
WHERE NOT EXISTS (SELECT 1 FROM T_ORARENDIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TEREM_FOGLALKOZAS_OSSZES WHERE f.ID = C_FOGLALKOZASID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOTARGYMULASZTASSTATISZT_OSSZES WHERE f.ID = C_TARGYMULASZTASSTATISZTIKAIID)
AND f.C_IMPORTALT = 'T'
AND f.C_OSZTALYCSOPORTID IN (
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_FELADATELLATASIHELYID = @feladatellatasiHely and C_TANEVID = @tanevID
)
AND f.C_TANEVID = @tanevID
)
END -- ENDIF
/*
* Innentől nem kell figyelni a feladatellátási helyet,
* mert a NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS szerepel mindenütt
*/
DELETE t
FROM T_TANTARGY t
WHERE NOT EXISTS (SELECT 1 FROM T_ORATERVTARGY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANARITANTARGY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOESEMENY_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOMENTESSEG_OSSZES WHERE C_TANTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_TANTARGY_OSSZES WHERE C_FOTARGYID = t.ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_TANTARGYID = t.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevID
DELETE cso
FROM T_CSOPORTOK_OSZTALYOK cso
WHERE (EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_CSOPORTOKID = ocs.ID AND ocs.TOROLT='F' )
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_CSOPORTOKID))
OR
(EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES ocs WHERE C_IMPORTALT = 'T' AND cso.C_OSZTALYOKID = ocs.ID AND ocs.TOROLT='F' )
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cso.C_OSZTALYOKID))
DELETE cs
FROM T_CSOPORT cs
WHERE EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND cs.ID = ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = cs.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_CSOPORTOKID = cs.ID)
DELETE o
FROM T_OSZTALY o
WHERE NOT EXISTS (SELECT 1 FROM T_NAPLOELLENORZES_OSSZES WHERE o.ID = C_OSZTALYID)
AND EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_OSSZES WHERE C_IMPORTALT = 'T' AND o.ID = ID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = o.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORTOK_OSZTALYOK WHERE C_OSZTALYOKID = o.ID)
AND C_ALTANEVID = @tanevID
DELETE ocs
FROM T_OSZTALYCSOPORT ocs
WHERE NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_FALIUJSAGBEJE_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALYCSOPORT_TANEVRENDJE_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANMENET_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOCSOPORT_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_TANULOERTEKELES_OSSZES WHERE ocs.ID = C_OSZTALYCSOPORTID)
AND NOT EXISTS (SELECT 1 FROM T_FOGLALKOZAS_OSSZES WHERE C_OSZTALYCSOPORTID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = ocs.ID)
AND NOT EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = ocs.ID)
AND C_IMPORTALT = 'T'
AND C_TANEVID = @tanevID
END