kreta/Kreta.DataAccess.Migrations/Scripts/20210401115935_DB_3712/DB_3712.sql
2024-03-13 00:33:46 +01:00

124 lines
No EOL
3.5 KiB
Transact-SQL

SET NOCOUNT ON;
DECLARE @Now DATETIME = GETDATE();
SELECT
Te.Id AS C_TANEVID
,Te.C_Intezmenyid AS C_INTEZMENYID
INTO
#T_Affected
FROM
T_Naptipus AS Nt
INNER JOIN T_Tanev AS Te ON (Te.Torolt = 'F' AND Te.Id = Nt.C_Altanevid)
INNER JOIN T_Tanevrendje AS Tr ON (Te.Torolt = 'F' AND Tr.C_Tanevid = Nt.C_Altanevid)
WHERE
Nt.Torolt = 'F'
AND Nt.Id = 1385
AND Te.C_Aktiv = 'T'
AND Te.Created > '2021-01-01';
IF EXISTS(SELECT 1 FROM #T_Affected)
BEGIN
UPDATE Tr
SET
C_Hetnapja = 1409
,Modifier = NULL
,Lastchanged = @Now
,Serial += 1
FROM
T_Tanevrendje AS Tr
INNER JOIN #T_Affected AS aff ON (Tr.C_Tanevid = aff.C_Tanevid AND Tr.C_Intezmenyid = aff.C_Intezmenyid)
WHERE
tr.Torolt = 'F'
AND tr.C_Naptipusa = 1394;
UPDATE nt
SET
C_Istanorai = 'T'
,C_Issorszamozando = 'T'
,C_Istanorankivuli = 'T'
,C_Islenemkotottmunkaido = 'T'
,Modifier = NULL
,Lastchanged = @Now
,Serial += 1
FROM
T_Naptipus AS nt
INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
WHERE
nt.Torolt = 'F'
AND nt.Id IN (
1385, --Tanítási nap
1384, --Na
1389, --Egész napos kirándulás
1393, --Rövidített órákat tartalmazó tanítási nap
1394, --Elsõ tanítási nap
1395, --Utolsó tanítási nap
1400, --Elsõ félév vége
1401, --Vizsganap
1402, --Utolsó tanítási nap a végzõs évfolyamokon
1403, --I. negyedév vége
1404, --III. negyedév vége
1406, --Rendkívüli tanítási nap
1649, --Nyílt nap
7600, --Utolsó tanítási nap a végzõs évfolyamokon (rendészeti iskolákban)
7601, --Utolsó tanítási nap a végzõs évfolyamokon (honvédelmi iskolákban)
7602, --Utolsó tanítási nap a végzõs évfolyamokon (keresztféléves képzésben)
7603, --Utolsó tanítási nap a végzõs évfolyamokon (részszakképesítéses oktatásban)
7604, --Elsõ tanítási nap (keresztféléves képzésben)
7605 --Elsõ félév vége (keresztféléves képzésben)
);
UPDATE nt
SET
C_Istanorai = 'T'
,C_Istanorankivuli = 'T'
,C_Islenemkotottmunkaido = 'T'
,Modifier = NULL
,Lastchanged = @Now
,Serial += 1
FROM
T_Naptipus AS nt
INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
WHERE
nt.Torolt = 'F'
AND nt.Id = 1405; --Egybefüggõ szakmai gyakorlati nap)
UPDATE nt
SET
C_Islenemkotottmunkaido = 'T'
,Modifier = NULL
,Lastchanged = @Now
,Serial += 1
FROM
T_Naptipus AS nt
INNER JOIN #T_Affected AS aff ON (nt.C_Altanevid = aff.C_Tanevid AND nt.C_Alintezmenyid = aff.C_Intezmenyid)
WHERE
nt.Torolt = 'F'
AND nt.Id IN (
1387, --Tanítás nélküli munkanap
1388, --Szülõi értekezlet (tanítás nélkül)
1390 --Fogadónap (tanítás nélküli)
);
DECLARE cAffectedIntezmeny
CURSOR LOCAL FOR
SELECT
C_TANEVID,
C_INTEZMENYID
FROM #T_Affected;
DECLARE @curTanevId INT;
DECLARE @curIntezmenyId INT;
OPEN cAffectedIntezmeny;
FETCH NEXT FROM cAffectedIntezmeny INTO @curTanevId, @curIntezmenyId;
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC dbo.sp_GenerateNaptariNapok @curIntezmenyId, @curTanevId;
EXEC dbo.uspGenerateOrarend @curIntezmenyId, @curTanevId;
FETCH NEXT FROM cAffectedIntezmeny INTO @curTanevId, @curIntezmenyId;
END;
CLOSE cAffectedIntezmeny;
DEALLOCATE cAffectedIntezmeny;
END;