init
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
--TANÉV RENDJE JAVÍTÁS
|
||||
UPDATE tr SET C_HETIREND = 1554
|
||||
FROM T_TANEVRENDJE tr
|
||||
WHERE tr.C_HETIREND <> 1554
|
||||
AND tr.C_EGYEDINAP = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
||||
AND tr.C_DATUM IN
|
||||
('20200901','20201023','20201026','20201027','20201028','20201029','20201030','20201221'
|
||||
,'20201222','20201223','20201228','20201229','20201230','20201231','20201224','20201225'
|
||||
,'20210101','20210122','20210315','20210401','20210406','20210402','20210405','20210524'
|
||||
,'20210615','20201101','20201226','20210404','20210430','20210501'
|
||||
)
|
||||
|
||||
DECLARE crsr CURSOR LOCAL FOR
|
||||
SELECT i.ID, tv.ID
|
||||
FROM T_INTEZMENY i
|
||||
INNER JOIN T_TANEV tv ON i.ID = tv.C_INTEZMENYID AND tv.C_NEV = '2020/2021'
|
||||
WHERE i.TOROLT = 'F' AND tv.TOROLT = 'F'
|
||||
|
||||
DECLARE @intezmenyid int, @tanevid int
|
||||
|
||||
OPEN crsr
|
||||
FETCH NEXT FROM crsr INTO @intezmenyid, @tanevid
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
EXEC dbo.sp_GenerateNaptariNapok @intezmenyid, @tanevid
|
||||
EXEC dbo.uspGenerateOrarend @intezmenyid, @tanevid
|
||||
|
||||
FETCH NEXT FROM crsr INTO @intezmenyid, @tanevid
|
||||
END
|
||||
|
||||
CLOSE crsr
|
||||
DEALLOCATE crsr
|
||||
GO
|
||||
|
||||
|
||||
|
||||
-- DKT_DIC Töltése köv tanévre is.
|
||||
DECLARE @Data TABLE (
|
||||
Tabla nvarchar(200)
|
||||
,Id int
|
||||
,Nev nvarchar(1000)
|
||||
,AliasNev nvarchar(1000)
|
||||
)
|
||||
|
||||
DECLARE @sql nvarchar(max)
|
||||
DECLARE @Tabla nvarchar(200), @Id int, @Nev nvarchar(1000), @AliasNev nvarchar(1000)
|
||||
|
||||
INSERT INTO @Data (Tabla, Id, Nev, AliasNev) VALUES
|
||||
('T_DKT_DIC_AVATARTIPUS', 0, 'Alap', 'Alap')
|
||||
,('T_DKT_DIC_AVATARTIPUS', 1, 'Saját kép', 'SajatKep')
|
||||
,('T_DKT_DIC_CSAKTANARIRHATUZENOFALRATIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_CSAKTANARIRHATUZENOFALRATIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 0, 'Osztályzat', 'Osztalyzat')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 1, 'Szöveges értékelés', 'SzovegesErtekeles')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 2, 'Százalékos értékelés', 'SzazalekosErtekeles')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 3, 'Csak elfogadás jelölés', 'CsakElfogadasJeloles')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 4, 'Nincs értékelés', 'NincsErtekeles')
|
||||
,('T_DKT_DIC_FELADATERTEKELESTIPUS', 5, 'Pontszám', 'Pontszam')
|
||||
,('T_DKT_DIC_FELADATTIPUS', 0, 'Házi feladat', 'HaziFeladat')
|
||||
,('T_DKT_DIC_FELADATTIPUS', 1, 'Órai feladat', 'OraiFeladat')
|
||||
,('T_DKT_DIC_HFBEADANDOTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_HFBEADANDOTIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_HFCSATOLASENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_HFCSATOLASENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 0, 'Azonnal látható', 'AzonnalLathato')
|
||||
,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 1, 'A tanóra napjától látható', 'ATanoraNapjatolLathato')
|
||||
,('T_DKT_DIC_HFELOREBEIRTFELADATMEGJELENITESE', 2, 'A naplózás után látható', 'ANaplozasUtanLathato')
|
||||
,('T_DKT_DIC_HFUZENOFALENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_HFUZENOFALENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_OFBEADANDOTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_OFBEADANDOTIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_OFCSATOLASENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_OFCSATOLASENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 0, 'Pontszám', 'Pontszam')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 1, 'Osztályzat', 'Osztalyzat')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 2, 'Szöveges értékelés', 'SzovegesErtekeles')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 3, 'Százalékos értékelés', 'SzazalekosErtekeles')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 4, 'Csak elfogadás jelölés', 'CsakElfogadasJeloles')
|
||||
,('T_DKT_DIC_OFEGYEDIERTEKELESTIPUS', 5, 'Nincs értékelés', 'NincsErtekeles')
|
||||
,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 0, 'Azonnal látható', 'AzonnalLathato')
|
||||
,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 1, 'A tanóra napjától látható', 'ATanoraNapjatolLathato')
|
||||
,('T_DKT_DIC_OFELOREBEIRTFELADATMEGJELENITESE', 2, 'A naplózás után látható', 'ANaplozasUtanLathato')
|
||||
,('T_DKT_DIC_OFUZENOFALENGEDELYEZESTIPUS', 0, 'Nem', 'Nem')
|
||||
,('T_DKT_DIC_OFUZENOFALENGEDELYEZESTIPUS', 1, 'Igen', 'Igen')
|
||||
|
||||
DECLARE DicCursor CURSOR LOCAL FOR
|
||||
SELECT Tabla, Id, Nev, AliasNev
|
||||
FROM @Data
|
||||
|
||||
OPEN DicCursor
|
||||
FETCH NEXT FROM DicCursor INTO @Tabla, @Id, @Nev, @AliasNev
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
|
||||
SET @sql = N'
|
||||
|
||||
SET IDENTITY_INSERT ' + @Tabla + N' ON;
|
||||
INSERT INTO ' + @Tabla + N' (ID, C_NEV, C_ALIASNEV, C_INTEZMENYID, C_TANEVID, CREATED, LASTCHANGED, CREATOR)
|
||||
SELECT @Id, @Nev, @AliasNev, i.ID, tv.ID, GETDATE(), GETDATE(), 0
|
||||
FROM T_TANEV tv
|
||||
INNER JOIN T_INTEZMENY i ON i.ID = tv.C_INTEZMENYID
|
||||
WHERE tv.TOROLT = ''F'' AND i.TOROLT = ''F''
|
||||
AND NOT EXISTS (SELECT 1 FROM ' + @Tabla + N' x WHERE x.ID = @Id AND x.C_TANEVID = tv.ID)
|
||||
SET IDENTITY_INSERT ' + @Tabla + N' OFF;
|
||||
|
||||
|
||||
UPDATE x SET
|
||||
C_NEV = @Nev,
|
||||
C_ALIASNEV = @AliasNev
|
||||
FROM ' + @Tabla + N' x
|
||||
WHERE x.ID = @Id
|
||||
AND C_ALIASNEV <> @AliasNev;
|
||||
|
||||
'
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@Id int
|
||||
,@Nev nvarchar(1000)
|
||||
,@AliasNev nvarchar(1000)'
|
||||
,@Id = @Id
|
||||
,@Nev = @Nev
|
||||
,@AliasNev = @AliasNev
|
||||
|
||||
FETCH NEXT FROM DicCursor INTO @Tabla, @Id, @Nev, @AliasNev
|
||||
END
|
||||
|
||||
CLOSE DicCursor
|
||||
DEALLOCATE DicCursor
|
||||
GO
|
||||
|
||||
|
||||
-- Mondatbanktipus előzőtanévirekordid javítás
|
||||
UPDATE mbt set
|
||||
ELOZOTANEVIREKORDID = mbt.ID,
|
||||
ELOZOTANEVIREKORDIDA = mbt.ID
|
||||
FROM T_ERTMONDATBANKTIPUS mbt
|
||||
INNER JOIN T_TANEV tv ON tv.ID = mbt.C_ALTANEVID AND tv.C_NEV = '2020/2021'
|
||||
WHERE mbt.ELOZOTANEVIREKORDID IS NULL
|
||||
|
||||
UPDATE mbt set
|
||||
ELOZOTANEVIREKORDID = mbt.ID
|
||||
FROM T_DICTIONARYITEMBASE mbt
|
||||
INNER JOIN T_TANEV tv ON tv.ID = mbt.C_TANEVID AND tv.C_NEV = '2020/2021'
|
||||
WHERE C_TYPE = 'ERTMONDATBANKTIPUS'
|
||||
AND mbt.ELOZOTANEVIREKORDID IS NULL
|
||||
GO
|
||||
|
@@ -0,0 +1,309 @@
|
||||
DROP PROCEDURE IF EXISTS uspGenerateOrarend
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGenerateOrarend
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pIdoszakKezdete datetime = NULL
|
||||
,@pIdoszakVege datetime = NULL
|
||||
,@pOrarendiOraId int = NULL
|
||||
,@pOsztalycsoportId int = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@sql nvarchar(max) = N''
|
||||
,@aktivCsengetesirend int;
|
||||
|
||||
SELECT
|
||||
@pIdoszakKezdete = ISNULL(@pIdoszakKezdete, C_KEZDONAP)
|
||||
,@pIdoszakVege = ISNULL(@pIdoszakVege, C_UTOLSONAP)
|
||||
FROM T_TANEV
|
||||
WHERE ID = @pTanevId
|
||||
|
||||
SELECT @aktivCsengetesirend = ID
|
||||
FROM T_CSENGETESIREND
|
||||
WHERE C_TANEVID = @pTanevId
|
||||
AND TOROLT = 'F'
|
||||
AND C_AKTIV = 'T'
|
||||
|
||||
IF @pOrarendiOraId IS NOT NULL BEGIN
|
||||
IF (SELECT TOROLT FROM T_ORARENDIORA_OSSZES WHERE ID = @pOrarendiOraId) = 'T' BEGIN
|
||||
DELETE orr
|
||||
FROM T_ORAREND_OSSZES orr
|
||||
WHERE orr.C_ORARENDIORAID = @pOrarendiOraId
|
||||
END
|
||||
ELSE BEGIN
|
||||
DELETE orr
|
||||
FROM T_ORAREND_OSSZES orr
|
||||
WHERE orr.C_ORARENDIORAID = @pOrarendiOraId
|
||||
AND (C_DATUM < @pIdoszakKezdete OR C_DATUM >= @pIdoszakVege)
|
||||
END
|
||||
END
|
||||
ELSE BEGIN
|
||||
DELETE orr
|
||||
FROM T_ORAREND_OSSZES orr
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = orr.C_ORARENDIORAID
|
||||
WHERE oo.TOROLT = 'T' AND oo.C_TANEVID = @pTanevId
|
||||
END
|
||||
|
||||
SET @sql += N'
|
||||
|
||||
CREATE TABLE #Osztalycsoport (
|
||||
Id int
|
||||
,IdoszakVege datetime
|
||||
,TanevId int
|
||||
,IsVegzos char(1)
|
||||
)
|
||||
|
||||
DECLARE @VegzosUtolsoTanitasiNap datetime;
|
||||
SELECT @VegzosUtolsoTanitasiNap = MIN(C_DATUM)
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
WHERE TOROLT = ''F''
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395)
|
||||
AND C_OSSZESCSOPORTRAVONATKOZIK = ''T''
|
||||
|
||||
--PRINT ''Oszt<EFBFBD>lycsoport insert''
|
||||
|
||||
INSERT INTO #Osztalycsoport (Id, IdoszakVege, TanevId, IsVegzos)
|
||||
SELECT ocs.ID, IIF(C_VEGZOSEVFOLYAM = ''T'', @VegzosUtolsoTanitasiNap, @pIdoszakVege), ocs.C_TANEVID, C_VEGZOSEVFOLYAM
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
' + IIF(@pOrarendiOraId IS NULL, '', 'INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_OSZTALYCSOPORTID = ocs.ID AND oo.TOROLT = ''F'' AND oo.ID = @pOrarendiOraId') + '
|
||||
WHERE ocs.TOROLT = ''F'' ' + IIF(@pOsztalycsoportId IS NULL, '', 'AND ocs.ID = @pOsztalycsoportId') + '
|
||||
|
||||
--PRINT ''Oszt<EFBFBD>lycsoport update''
|
||||
|
||||
UPDATE ocs SET
|
||||
ocs.IdoszakVege = NewVegeDatum
|
||||
FROM #OsztalyCsoport ocs
|
||||
INNER JOIN (
|
||||
SELECT MIN(tr.C_DATUM) AS NewVegeDatum, ocstr.C_OSZTALYCSOPORTID
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
|
||||
AND tr.TOROLT = ''F''
|
||||
AND tr.C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603)
|
||||
AND tr.C_TANEVID = @pTanevId
|
||||
GROUP BY ocstr.C_OSZTALYCSOPORTID
|
||||
) x ON x.C_OSZTALYCSOPORTID = ocs.Id
|
||||
WHERE ocs.IsVegzos = ''T'''
|
||||
|
||||
IF @pOsztalycsoportId IS NOT NULL OR @pOrarendiOraId IS NOT NULL BEGIN
|
||||
SET @sql += N'
|
||||
CREATE TABLE #OrarendiOra (
|
||||
Id int primary key
|
||||
);
|
||||
|
||||
--PRINT ''OrarendiOraTemp insert''
|
||||
INSERT INTO #OrarendiOra (id)
|
||||
SELECT ID
|
||||
FROM T_ORARENDIORA_OSSZES
|
||||
WHERE TOROLT = ''F''
|
||||
' + IIF(@pOsztalycsoportId IS NULL, '', 'AND C_OSZTALYCSOPORTID = @pOsztalycsoportId')
|
||||
+ IIF(@pOrarendiOraId IS NULL, '', 'AND ID = @pOrarendiOraId') + '
|
||||
'
|
||||
END
|
||||
SET @sql += N'
|
||||
CREATE TABLE #NaptariNap (
|
||||
C_TANEVID int
|
||||
,C_INTEZMENYID int
|
||||
,C_NAPDATUMA datetime
|
||||
,C_HETNAPJA int
|
||||
,C_HETIREND int
|
||||
,C_EGYEDINAP char(1) COLLATE Hungarian_CI_AI
|
||||
,C_CSENGETESIRENDID int
|
||||
,INDEX IX_001 CLUSTERED (C_TANEVID, C_HETNAPJA, C_INTEZMENYID, C_NAPDATUMA)
|
||||
)
|
||||
|
||||
INSERT INTO #NaptariNap (
|
||||
C_TANEVID
|
||||
,C_INTEZMENYID
|
||||
,C_NAPDATUMA
|
||||
,C_HETNAPJA
|
||||
,C_HETIREND
|
||||
,C_EGYEDINAP
|
||||
,C_CSENGETESIRENDID
|
||||
) SELECT
|
||||
nn.C_TANEVID
|
||||
,nn.C_INTEZMENYID
|
||||
,nn.C_NAPDATUMA
|
||||
,nn.C_HETNAPJA
|
||||
,IIF(nn.C_HETIREND = 1554, nh.C_HETIREND, nn.C_HETIREND)
|
||||
,ISNULL(tr.C_EGYEDINAP, ''F'')
|
||||
,nn.C_AKTIVCSENGETESIRENDID
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''T'' AND tr.TOROLT = ''F''
|
||||
INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN C_HETKEZDONAPJA AND C_HETUTOLSONAPJA AND nn.C_TANEVID = nh.C_TANEVID
|
||||
WHERE nn.C_TANEVID = @pTanevId AND nn.TOROLT = ''F''
|
||||
AND nn.C_ORARENDINAP = ''T''
|
||||
AND nn.C_NAPDATUMA BETWEEN @pIdoszakKezdete AND @pIdoszakVege
|
||||
' + IIF(@pOrarendiOraId IS NULL, '', 'AND nn.C_HETNAPJA = (SELECT C_HETNAPJA FROM T_ORARENDIORA_OSSZES WHERE ID = @pOrarendiOraId)') + '
|
||||
|
||||
CREATE TABLE #NaptariNapOsztalycsoport (
|
||||
C_TANEVID int
|
||||
,C_INTEZMENYID int
|
||||
,C_NAPDATUMA datetime
|
||||
,C_HETNAPJA int
|
||||
,C_HETIREND int
|
||||
,C_EGYEDINAP char(1) COLLATE Hungarian_CI_AI
|
||||
,C_OSZTALYCSOPORTID int
|
||||
,C_CSENGETESIRENDID int
|
||||
,INDEX IX_001 CLUSTERED (C_TANEVID, C_HETNAPJA, C_INTEZMENYID, C_NAPDATUMA, C_OSZTALYCSOPORTID)
|
||||
)
|
||||
INSERT INTO #NaptariNapOsztalycsoport (
|
||||
C_TANEVID
|
||||
,C_INTEZMENYID
|
||||
,C_NAPDATUMA
|
||||
,C_HETNAPJA
|
||||
,C_HETIREND
|
||||
,C_EGYEDINAP
|
||||
,C_OSZTALYCSOPORTID
|
||||
,C_CSENGETESIRENDID
|
||||
) SELECT
|
||||
tr.C_TANEVID
|
||||
,tr.C_INTEZMENYID
|
||||
,tr.C_DATUM
|
||||
,tr.C_HETNAPJA
|
||||
,IIF(tr.C_HETIREND = 1554, nh.C_HETIREND, tr.C_HETIREND)
|
||||
,tr.C_EGYEDINAP
|
||||
,ocstr.C_OSZTALYCSOPORTID
|
||||
,tr.C_CSENGETESIRENDID
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
INNER JOIN T_NAPTARIHET_OSSZES nh ON tr.C_DATUM BETWEEN C_HETKEZDONAPJA AND C_HETUTOLSONAPJA AND tr.C_TANEVID = nh.C_TANEVID
|
||||
WHERE tr.C_TANEVID = @pTanevId
|
||||
AND tr.TOROLT = ''F''
|
||||
AND tr.C_ORARENDINAP = ''T''
|
||||
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
|
||||
AND tr.C_DATUM BETWEEN @pIdoszakKezdete AND @pIdoszakVege
|
||||
' + IIF(@pOsztalycsoportId IS NULL, '', 'AND ocstr.C_OSZTALYCSOPORTID = @pOsztalycsoportId' )
|
||||
|
||||
SET @sql += N'
|
||||
CREATE TABLE #Orarend (
|
||||
Datum datetime
|
||||
,OrarendiOraId int
|
||||
,PRIMARY KEY CLUSTERED (Datum, OrarendioraId)
|
||||
);
|
||||
|
||||
--PRINT ''Napt<EFBFBD>rinapTemp insert''
|
||||
INSERT INTO #Orarend (
|
||||
Datum
|
||||
,OrarendiOraId
|
||||
)'
|
||||
SET @sql += N'
|
||||
SELECT nn.C_NAPDATUMA, oo.ID
|
||||
FROM #NaptariNap nn
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_HETNAPJA = nn.C_HETNAPJA
|
||||
AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = nn.C_HETIREND)
|
||||
AND nn.C_EGYEDINAP = oo.C_EGYEDINAP
|
||||
AND oo.TOROLT=''F''
|
||||
AND oo.C_TANEVID = nn.C_TANEVID
|
||||
AND oo.C_INTEZMENYID = nn.C_INTEZMENYID
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE <= nn.C_NAPDATUMA AND oo.C_ORAERVENYESSEGVEGE > nn.C_NAPDATUMA
|
||||
INNER JOIN #Osztalycsoport ocs ON ocs.Id = oo.C_OSZTALYCSOPORTID AND ocs.IdoszakVege >= nn.C_NAPDATUMA
|
||||
'+IIF(@pOrarendiOraId IS NULL AND @pOsztalyCsoportId IS NULL, '', 'INNER JOIN #OrarendiOra oo2 ON oo2.Id = oo.ID') + '
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM T_TANEVRENDJE_OSSZES tr2
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr2.ID = ocstr.C_TANEVRENDJEID
|
||||
WHERE tr2.C_OSSZESCSOPORTRAVONATKOZIK = ''F'' AND tr2.TOROLT = ''F''
|
||||
AND ocs.Id = ocstr.C_OSZTALYCSOPORTID AND nn.C_NAPDATUMA = tr2.C_DATUM)
|
||||
AND (EXISTS (SELECT 1 FROM T_CSENGETESIRENDORA_OSSZES csro WHERE csro.C_CSENGETESIRENDID = ISNULL(nn.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AND oo.C_ORASZAM = csro.C_ORASZAM AND csro.TOROLT = ''F'') OR oo.C_CSENGETESIRENDID IS NULL)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT nn.C_NAPDATUMA, oo.ID
|
||||
FROM #NaptariNap nn
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_HETNAPJA = nn.C_HETNAPJA
|
||||
AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = nn.C_HETIREND)
|
||||
AND nn.C_EGYEDINAP = oo.C_EGYEDINAP
|
||||
AND oo.TOROLT=''F''
|
||||
AND oo.C_TANEVID = nn.C_TANEVID
|
||||
AND oo.C_INTEZMENYID = nn.C_INTEZMENYID
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE = nn.C_NAPDATUMA AND oo.C_ORAERVENYESSEGVEGE = nn.C_NAPDATUMA
|
||||
INNER JOIN #Osztalycsoport ocs ON ocs.Id = oo.C_OSZTALYCSOPORTID AND ocs.IdoszakVege >= nn.C_NAPDATUMA
|
||||
'+IIF(@pOrarendiOraId IS NULL AND @pOsztalyCsoportId IS NULL, '', 'INNER JOIN #OrarendiOra oo2 ON oo2.Id = oo.ID') + '
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM T_TANEVRENDJE_OSSZES tr2
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr2.ID = ocstr.C_TANEVRENDJEID
|
||||
WHERE tr2.C_OSSZESCSOPORTRAVONATKOZIK = ''F'' AND tr2.TOROLT = ''F''
|
||||
AND ocs.Id = ocstr.C_OSZTALYCSOPORTID AND nn.C_NAPDATUMA = tr2.C_DATUM)
|
||||
AND (EXISTS (SELECT 1 FROM T_CSENGETESIRENDORA_OSSZES csro WHERE csro.C_CSENGETESIRENDID = ISNULL(nn.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AND oo.C_ORASZAM = csro.C_ORASZAM AND csro.TOROLT = ''F'') OR oo.C_CSENGETESIRENDID IS NULL)
|
||||
|
||||
UNION ALL'
|
||||
|
||||
SET @sql += N'
|
||||
SELECT nn.C_NAPDATUMA, oo.ID
|
||||
FROM #NaptariNapOsztalycsoport nn
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_HETNAPJA = nn.C_HETNAPJA
|
||||
AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = nn.C_HETIREND)
|
||||
AND nn.C_EGYEDINAP = oo.C_EGYEDINAP
|
||||
AND oo.TOROLT=''F''
|
||||
AND oo.C_TANEVID = nn.C_TANEVID
|
||||
AND oo.C_INTEZMENYID = nn.C_INTEZMENYID
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE <= nn.C_NAPDATUMA AND oo.C_ORAERVENYESSEGVEGE > nn.C_NAPDATUMA
|
||||
AND oo.C_OSZTALYCSOPORTID = nn.C_OSZTALYCSOPORTID
|
||||
INNER JOIN #Osztalycsoport ocs ON ocs.Id = nn.C_OSZTALYCSOPORTID AND ocs.IdoszakVege >= nn.C_NAPDATUMA
|
||||
'+IIF(@pOrarendiOraId IS NULL AND @pOsztalyCsoportId IS NULL, '', 'INNER JOIN #OrarendiOra oo2 ON oo2.Id = oo.ID') + '
|
||||
WHERE (EXISTS (SELECT 1 FROM T_CSENGETESIRENDORA_OSSZES csro WHERE csro.C_CSENGETESIRENDID = ISNULL(nn.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AND oo.C_ORASZAM = csro.C_ORASZAM AND csro.TOROLT = ''F'') OR oo.C_CSENGETESIRENDID IS NULL)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT nn.C_NAPDATUMA, oo.ID
|
||||
FROM #NaptariNapOsztalycsoport nn
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_HETNAPJA = nn.C_HETNAPJA
|
||||
AND (oo.C_HETIREND = 1554 OR oo.C_HETIREND = nn.C_HETIREND)
|
||||
AND nn.C_EGYEDINAP = oo.C_EGYEDINAP
|
||||
AND oo.TOROLT=''F''
|
||||
AND oo.C_TANEVID = nn.C_TANEVID
|
||||
AND oo.C_INTEZMENYID = nn.C_INTEZMENYID
|
||||
AND oo.C_ORAERVENYESSEGKEZDETE = nn.C_NAPDATUMA AND oo.C_ORAERVENYESSEGVEGE = nn.C_NAPDATUMA
|
||||
AND oo.C_OSZTALYCSOPORTID = nn.C_OSZTALYCSOPORTID
|
||||
INNER JOIN #Osztalycsoport ocs ON ocs.Id = nn.C_OSZTALYCSOPORTID AND ocs.IdoszakVege >= nn.C_NAPDATUMA
|
||||
'+IIF(@pOrarendiOraId IS NULL AND @pOsztalyCsoportId IS NULL, '', 'INNER JOIN #OrarendiOra oo2 ON oo2.Id = oo.ID') + '
|
||||
WHERE (EXISTS (SELECT 1 FROM T_CSENGETESIRENDORA_OSSZES csro WHERE csro.C_CSENGETESIRENDID = ISNULL(nn.C_CSENGETESIRENDID, oo.C_CSENGETESIRENDID) AND oo.C_ORASZAM = csro.C_ORASZAM AND csro.TOROLT = ''F'') OR oo.C_CSENGETESIRENDID IS NULL)
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
--PRINT ''MERGE''
|
||||
MERGE T_ORAREND_OSSZES trg
|
||||
USING #Orarend src ON
|
||||
trg.C_ORARENDIORAID = src.OrarendioraId AND src.Datum = trg.C_DATUM
|
||||
WHEN NOT MATCHED BY TARGET THEN
|
||||
INSERT (
|
||||
C_ORARENDIORAID
|
||||
,C_DATUM
|
||||
,C_TANEVID
|
||||
,C_INTEZMENYID
|
||||
) VALUES (
|
||||
src.OrarendiOraId
|
||||
,src.Datum
|
||||
,@pTanevId
|
||||
,@pIntezmenyId
|
||||
)
|
||||
WHEN NOT MATCHED BY SOURCE AND trg.C_TANEVID = @pTanevId AND trg.C_DATUM BETWEEN @pIdoszakKezdete AND @pIdoszakVege
|
||||
' + IIF(@pOrarendiOraId IS NULL AND @pOsztalyCsoportId IS NULL, '', 'AND trg.C_ORARENDIORAID IN (SELECT Id FROM #OrarendiOra)') + '
|
||||
THEN
|
||||
DELETE
|
||||
--OUTPUT $action, DELETED.C_DATUM, DELETED.C_ORARENDIORAID, INSERTED.C_DATUM, INSERTED.C_ORARENDIORAID
|
||||
;
|
||||
'
|
||||
--select @sql
|
||||
EXEC sp_executesql @sql,N'
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pIdoszakKezdete datetime
|
||||
,@pIdoszakVege datetime
|
||||
,@pOrarendiOraId int
|
||||
,@pOsztalycsoportId int
|
||||
,@aktivCsengetesirend int'
|
||||
,@pIntezmenyId = @pIntezmenyId
|
||||
,@pTanevId = @pTanevId
|
||||
,@pIdoszakKezdete = @pIdoszakKezdete
|
||||
,@pIdoszakVege = @pIdoszakVege
|
||||
,@pOrarendiOraId = @pOrarendiOraId
|
||||
,@pOsztalycsoportId = @pOsztalycsoportId
|
||||
,@aktivCsengetesirend = @aktivCsengetesirend
|
||||
END
|
||||
GO
|
Reference in New Issue
Block a user