,@pIsNapirendbit=0/*0 csak orarendi ora, 1 csak napirend, NULL mindkettő*/
AS
BEGIN
SETNOCOUNTON;
DECLARE@sqlnvarchar(max)=''
/* Változók deklarálása */
SET@sql+=N'
DECLARE
@KezdoHet int = DATEPART( ISO_WEEK, @pIdoszakKezdete)
,@ZaroHet int = DATEPART( ISO_WEEK, @pIdoszakVege);
DECLARE @VegzosUtolsoTanitasiNap datetime;
SELECT @VegzosUtolsoTanitasiNap = C_DATUM
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = ''F''
AND C_TANEVID = @pTanevId
AND C_NAPTIPUSA = 1402
DECLARE @IsVegzosEvfolyam char(1)
'
/* A kapcsolódó osztálycsoportok összegyűjtése */
SET@sql+=N'
CREATE TABLE #OsztalyCsoportok (
Id int PRIMARY KEY
,Nev nvarchar(255)
,Oka nvarchar(50)
,IsVegzos char(1)
,IdoszakVege datetime
,INDEX IX1 CLUSTERED(Id, Nev, IsVegzos)
);
IF @pOsztalyCsoportId IS NOT NULL BEGIN
SELECT @IsVegzosEvfolyam = C_VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES
WHERE ID = @pOsztalyCsoportId
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT kocs.ID, ocs.C_NEV, kocs.OKA, ocs.C_VEGZOSEVFOLYAM, IIF(ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM [dbo].fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege) kocs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = kocs.ID AND ocs.TOROLT = ''F''
END
ELSE BEGIN
IF @pTanuloId IS NOT NULL BEGIN
SELECT @IsVegzosEvfolyam = ocs.C_VEGZOSEVFOLYAM
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
WHERE EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES o WHERE o.ID = ocs.ID)
AND tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT tcs.C_OSZTALYCSOPORTID, ocs.C_NEV, '''' AS Oka, @IsVegzosEvfolyam, IIF(@IsVegzosEvfolyam = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.TOROLT = ''F''
WHERE tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
END
--Performancia noveles miatt
ELSE IF @pTanarId IS NOT NULL
BEGIN
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT ID
,ocs.C_NEV
,''''
,ocs.C_VEGZOSEVFOLYAM
,IIF(ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM (
SELECT
oo.C_OSZTALYCSOPORTID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_TANARID = @pTanarId
AND oo.C_ORAERVENYESSEGKEZDETE <= @pIdoszakVege
AND oo.C_ORAERVENYESSEGVEGE >= @pIdoszakKezdete
AND oo.TOROLT = ''F''
UNION
SELECT
oo.C_OSZTALYCSOPORTID
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = hi.C_HELYETTESITETTORARENDID AND oo.TOROLT = ''F''
WHERE hi.C_HELYETTESTANAROKID = @pTanarId
AND hi.C_HELYETTESITESNAPJA >= @pIdoszakKezdete
AND hi.C_HELYETTESITESNAPJA <= @pIdoszakVege
AND hi.TOROLT = ''F''
UNION
SELECT
tno.C_OSZTALYCSOPORTID
FROM T_TANITASIORA_OSSZES tno
WHERE tno.C_HELYETTESITOTANARID = @pTanarId
AND tno.C_DATUM <= @pIdoszakVege
AND tno.C_DATUM >= @pIdoszakKezdete
AND tno.TOROLT = ''F''
UNION
SELECT
tno.C_OSZTALYCSOPORTID
FROM T_TANITASIORA_OSSZES tno
WHERE tno.C_TANARID = @pTanarId
AND tno.C_DATUM <= @pIdoszakVege
AND tno.C_DATUM >= @pIdoszakKezdete
AND tno.TOROLT = ''F''
) x
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = x.C_OSZTALYCSOPORTID
END
--Performancia noveles miatt
ELSE BEGIN
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT ID, C_NEV, '''' AS Oka, C_VEGZOSEVFOLYAM, IIF(C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM T_OSZTALYCSOPORT_OSSZES
WHERE C_TANEVID = @pTanevId AND TOROLT = ''F''
END
END
'
/* A naptári napok összegyűjtése tanév rendje alapján */
,ISNULL(tr.HetirendId, nn.HetirendId) AS HetirendId
,ISNULL(tr.HetNapjaId, nn.HetNapjaId) AS HetNapjaId
,ISNULL(tr.OrarendiNap, nn.OrarendiNap) AS OrarendiNap
,nn.OsztalyCsoportId
,ISNULL(tr.HetSorszam, nn.HetSorszam) AS HetSorszam
,ISNULL(tr.CsengetesiRendId, nn.CsengetesiRendId) AS CsengetesiRendId
FROM (
SELECT
nn.C_NAPDATUMA AS Datum
,nn.C_HETIREND AS HetirendId
,nn.C_HETNAPJA AS HetNapjaId
,nn.C_ORARENDINAP AS OrarendiNap
,ocs.ID AS OsztalyCsoportId
,nn.C_HETSORSZAMA AS HetSorszam
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''T''
CROSS JOIN #OsztalyCsoportok ocs
WHERE nn.TOROLT = ''F''
AND nn.C_NAPDATUMA >= @pIdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
) nn
LEFT JOIN (
SELECT
nn.C_NAPDATUMA AS Datum
,tr.C_HETIREND AS HetirendId
,tr.C_HETNAPJA AS HetNapjaId
,tr.C_ORARENDINAP AS OrarendiNap
,ocstr.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,nn.C_HETSORSZAMA AS HetSorszam
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
INNER JOIN #OsztalyCsoportok ocs ON ocs.Id = ocstr.C_OSZTALYCSOPORTID
WHERE nn.TOROLT = ''F''
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
AND nn.C_NAPDATUMA >= @pIdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
) tr ON nn.Datum = tr.datum AND nn.OsztalyCsoportId = tr.OsztalyCsoportId
WHERE ISNULL(tr.OrarendiNap, nn.OrarendiNap) = ''T''
,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
,tt.C_TARGYKATEGORIA AS TargykategoriaID
,''F'' AS Megtartott
,csro.ID AS CsengetesiRendOraID
,csro.C_CSENGETESIRENDID AS CsengetesiRendID
,MAX(oo.C_ORASZAM) OVER() AS MaxNapiOraszam
,ocs.Nev AS OsztalyNev
,nn.OsztalyCsoportId AS TanevRendOsztalyCsoportId
,ocs.OKA AS MegjelenesOka
,tanar.C_NYOMTATASINEV AS TanarNev
,terem.C_NEV AS TeremNev
,''OrarendiOra'' AS OraTipus
,''F'' AS Hianyzas
,''F'' AS Keses
,''F'' AS Ures
,hisz.C_HELYETTESTANAROKID AS HelyettesitoTanarID
,helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev
,hisz.Id AS HelyettesitesId
,tanar.ID AS TanarID
,NULL AS AdminAltalKiirt
,oo.C_ORARENDIORAGROUPID AS GroupId
,NULL AS Tema
,oo.C_TANTARGYID AS TantargyId
,oo.C_OSZTALYCSOPORTID AS OsztCsopId
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN #NaptariNapok nn ON (oo.C_HETIREND = 1554 OR nn.HetirendId = oo.C_HETIREND) AND nn.HetnapjaId = oo.C_HETNAPJA AND oo.C_OSZTALYCSOPORTID = nn.OsztalyCsoportId AND nn.Datum >= oo.C_ORAERVENYESSEGKEZDETE AND ((nn.Datum < oo.C_ORAERVENYESSEGVEGE) OR (oo.C_ORAERVENYESSEGKEZDETE = oo.C_ORAERVENYESSEGVEGE AND nn.Datum = oo.C_ORAERVENYESSEGVEGE))
INNER JOIN #OsztalyCsoportok ocs ON nn.OsztalyCsoportId = ocs.Id
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = ISNULL(nn.CsengetesiRendId, oo.C_CSENGETESIRENDID) AND csro.C_ORASZAM = oo.C_ORASZAM AND csro.TOROLT = ''F''
INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = oo.C_TANTARGYID AND tt.TOROLT = ''F''
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = oo.C_TANARID AND tanar.TOROLT = ''F''
LEFT JOIN T_TEREM_OSSZES terem ON terem.id = oo.C_TEREMID AND terem.TOROLT = ''F''
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hisz ON oo.ID = hisz.C_HELYETTESITETTORARENDID AND hisz.C_HELYETTESITESNAPJA = nn.Datum AND hisz.TOROLT = ''F''
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON hisz.C_HELYETTESTANAROKID = helyettes.ID AND helyettes.TOROLT = ''F''
WHERE oo.TOROLT = ''F''
'+CASE@pIsNapirendWHEN1THEN'AND oo.C_CSENGETESIRENDID IS NULL 'WHEN0THEN'AND oo.C_CSENGETESIRENDID IS NOT NULL AND csro.ID IS NOT NULL'ELSE'AND ((oo.C_CSENGETESIRENDID IS NOT NULL AND csro.ID IS NOT NULL) OR oo.C_CSENGETESIRENDID IS NULL)'END+'
'+CASE@pIsNapirendWHEN1THEN'AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege 'WHEN0THEN'AND tn.Oraszam = oo.Oraszam 'ELSE'AND ((tn.CsengetesiRendID IS NULL AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege) OR (tn.CsengetesiRendID IS NOT NULL AND tn.Oraszam = oo.Oraszam)) 'END+'
AND tn.TanevRendOsztalyCsoportId = oo.TanevRendOsztalyCsoportId
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.