This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View File

@@ -0,0 +1,212 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOrarendKereszttabla_Osztaly') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOrarendKereszttabla_Osztaly
END
GO
CREATE PROCEDURE sp_GetOrarendKereszttabla_Osztaly
@tanevId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
ELSE
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
INSERT INTO #KapcsolodoCsoportok
SELECT DISTINCT
o.ID Osztaly
,k.ID KapcsolodoCsoport
FROM T_OSZTALY_OSSZES o
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
WHERE
TOROLT = 'F'
AND C_ALTANEVID = @tanevId
DECLARE @OsztalyhozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, TanarId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
INSERT INTO @OsztalyhozKapcsolodoOsszesOrarendiora
SELECT
k.OsztalyId
,k.OsztalyCsoportId
,o.ID
,C_TANTARGYID
,C_TANARID
,C_TEREMID
,C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
FROM #KapcsolodoCsoportok k
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
WHERE
TOROLT = 'F'
DECLARE @temp TABLE (OsztalyId INT, OsztalyCsoportNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX), HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.OsztalyId OsztalyId
,ocs.C_NEV OsztalyCsoportNev
,osztalyNev.C_NEV OsztalyNev
,OrarendiOra.HetirendId HetirendId
,hetirend.C_NAME HetirendNev
,OrarendiOra.HetnapjaId HetnapjaId
,OrarendiOra.Oraszam Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,Terem.C_NEV TeremNev
FROM @OsztalyhozKapcsolodoOsszesOrarendiora OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.TanarId
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.OsztalyCsoportId
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyNev ON osztalyNev.ID = OrarendiOra.OsztalyId
WHERE
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
INSERT INTO @Hetirendek
SELECT DISTINCT HetirendId FROM @temp
DECLARE @OsszesOra TABLE (OsztalyId INT, Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT Osztaly, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT DISTINCT OsztalyId FROM #KapcsolodoCsoportok) Osztaly(Osztaly)
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (OsztalyId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO @TenylegesOra
SELECT
OsztalyId
,HetnapjaId
,Oraszam
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' ('+IIF(bveg.OsztalyCsoportNev <> bveg.OsztalyNev, bveg.OsztalyCsoportNev +', ', '') +bveg.PedagogusNev+', '+bveg.TeremNev+', ' +HetirendNev+')' AS VARCHAR(max))
FROM @temp bveg
WHERE
bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
AND bveg.OsztalyId = veg.OsztalyId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
FROM @temp veg
/*V<EFBFBD>gleges <20>rarend*/
CREATE TABLE #Orarend (OsztalyId INT, OsztalyNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO #Orarend
SELECT
OsszesOra.OsztalyId
,ocs.C_NEV
,OsszesOra.Oraszam
,OsszesOra.Nap
,TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.OsztalyId = OsszesOra.OsztalyId
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OsszesOra.OsztalyId
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
--------------------------------------------------------------------------------------------------------------
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
INSERT INTO #Napok
SELECT DISTINCT
*
, CASE
WHEN nap = 'hetfo' THEN 1
WHEN nap = 'kedd' THEN 2
WHEN nap = 'szerda' THEN 3
WHEN nap = 'csutortok' THEN 4
WHEN nap = 'pentek' THEN 5
END
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
DECLARE @Oraszamok NVARCHAR(MAX),
@OraszamokAlias NVARCHAR(MAX)
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT Oraszam FROM @temp ) o
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT DISTINCT
ocs.C_NEV OsztalyNev,
' + @OraszamokAlias + '
FROM #KapcsolodoCsoportok k
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1408
) hetfo ON hetfo.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1409
) kedd ON kedd.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1410
) szerda ON szerda.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1411
) csutortok ON csutortok.OsztalyId = k.OsztalyId
INNER JOIN (
SELECT
OsztalyId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1412
) pentek ON pentek.OsztalyId = k.OsztalyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = k.OsztalyId
ORDER BY C_NEV
'
EXEC sp_executesql @sql
DROP TABLE #Napok
DROP TABLE #Orarend
DROP TABLE #KapcsolodoCsoportok
END
GO

View File

@@ -0,0 +1,208 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOrarendKereszttabla_Pedagogus') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOrarendKereszttabla_Pedagogus
END
GO
CREATE PROCEDURE sp_GetOrarendKereszttabla_Pedagogus
@tanevId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
ELSE
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
INSERT INTO #KapcsolodoCsoportok
SELECT DISTINCT
o.ID Osztaly
,k.ID KapcsolodoCsoport
FROM T_OSZTALY_OSSZES o
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
WHERE
TOROLT = 'F'
AND C_ALTANEVID = @tanevId
DECLARE @PedagogushozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, PedagogusId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
INSERT INTO @PedagogushozKapcsolodoOsszesOrarendiora
SELECT
k.OsztalyId
,K.OsztalyCsoportId
,o.ID
,C_TANTARGYID
,C_TANARID
,C_TEREMID
,C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
FROM #KapcsolodoCsoportok k
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
WHERE
TOROLT = 'F'
CREATE TABLE #temp (PedagogusId INT, HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX))
INSERT INTO #temp
SELECT
OrarendiOra.PedagogusId PedagogusId
,OrarendiOra.HetirendId HetirendId
,hetirend.C_NAME HetirendNev
,OrarendiOra.HetnapjaId HetnapjaId
,OrarendiOra.Oraszam Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyNev
FROM @PedagogushozKapcsolodoOsszesOrarendiora OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OrarendiOrA.OsztalyCsoportId
WHERE
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
INSERT INTO @Hetirendek
SELECT DISTINCT HetirendId FROM #temp
DECLARE @OsszesOra TABLE (PedagogusId INT, Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT PedagogusId, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT DISTINCT PedagogusId FROM #temp) Pedagogus(PedagogusId)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (PedagogusId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO @TenylegesOra
SELECT
PedagogusId
,HetnapjaId
,Oraszam
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' (' +bveg.OsztalyNev+', ' + bveg.TeremNev +', ' +HetirendNev+')' AS VARCHAR(max))
FROM #temp bveg
WHERE
bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
AND bveg.PedagogusId = veg.PedagogusId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
FROM #temp veg
/*V<EFBFBD>gleges <20>rarend*/
CREATE TABLE #Orarend (PedagogusId INT, PedagogusNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO #Orarend
SELECT
OsszesOra.PedagogusId
,ped.C_NYOMTATASINEV
,OsszesOra.Oraszam
,OsszesOra.Nap
,TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.PedagogusId = OsszesOra.PedagogusId
LEFT JOIN T_FELHASZNALO_OSSZES ped ON ped.ID = OsszesOra.PedagogusId
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
--------------------------------------------------------------------------------------------------------------
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
INSERT INTO #Napok
SELECT DISTINCT
*
, CASE
WHEN nap = 'hetfo' THEN 1
WHEN nap = 'kedd' THEN 2
WHEN nap = 'szerda' THEN 3
WHEN nap = 'csutortok' THEN 4
WHEN nap = 'pentek' THEN 5
END
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
DECLARE @Oraszamok NVARCHAR(MAX),
@OraszamokAlias NVARCHAR(MAX)
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT Oraszam FROM #temp ) o
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT DISTINCT
f.C_NYOMTATASINEV PedagogusNev,
' + @OraszamokAlias + '
FROM (SELECT DISTINCT PedagogusId FROM #temp) k
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1408
) hetfo ON hetfo.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1409
) kedd ON kedd.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1410
) szerda ON szerda.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1411
) csutortok ON csutortok.PedagogusId = k.PedagogusId
INNER JOIN (
SELECT
PedagogusId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1412
) pentek ON pentek.PedagogusId = k.PedagogusId
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = k.PedagogusId
ORDER BY C_NYOMTATASINEV
'
EXEC sp_executesql @sql
DROP TABLE #Napok
DROP TABLE #Orarend
DROP TABLE #KapcsolodoCsoportok
END
GO

View File

@@ -0,0 +1,207 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOrarendKereszttabla_Terem') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOrarendKereszttabla_Terem
END
GO
CREATE PROCEDURE sp_GetOrarendKereszttabla_Terem
@tanevId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
ELSE
BEGIN
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
INSERT INTO #KapcsolodoCsoportok
SELECT DISTINCT
o.ID Osztaly
,k.ID KapcsolodoCsoport
FROM T_OSZTALY_OSSZES o
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
WHERE
TOROLT = 'F'
AND C_ALTANEVID = @tanevId
DECLARE @TermekhezKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, TanarId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
INSERT INTO @TermekhezKapcsolodoOsszesOrarendiora
SELECT
k.OsztalyId
,K.OsztalyCsoportId
,o.ID
,C_TANTARGYID
,C_TANARID
,C_TEREMID
,C_HETIREND
,C_HETNAPJA
,C_ORASZAM
,C_ORAERVENYESSEGKEZDETE
,C_ORAERVENYESSEGVEGE
FROM #KapcsolodoCsoportok k
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
WHERE
TOROLT = 'F'
CREATE TABLE #temp (TeremId INT, HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX))
INSERT INTO #temp
SELECT
OrarendiOra.TeremId TeremId
,OrarendiOra.HetirendId HetirendId
,hetirend.C_NAME HetirendNev
,OrarendiOra.HetnapjaId HetnapjaId
,OrarendiOra.Oraszam Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,ocs.C_NEV OsztalyNev
FROM @TermekhezKapcsolodoOsszesOrarendiora OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.TanarId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OrarendiOrA.OsztalyCsoportId
WHERE
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
INSERT INTO @Hetirendek
SELECT DISTINCT HetirendId FROM #temp
DECLARE @OsszesOra TABLE (TeremId INT, Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT Terem, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT DISTINCT TeremId FROM #temp) Terem(Terem)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (TeremId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO @TenylegesOra
SELECT
TeremId
,HetnapjaId
,Oraszam
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' ('+bveg.PedagogusNev+', '+bveg.OsztalyNev+', ' +HetirendNev+')' AS VARCHAR(max))
FROM #temp bveg
WHERE
bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
AND bveg.TeremId = veg.TeremId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
FROM #temp veg
/*V<EFBFBD>gleges <20>rarend*/
CREATE TABLE #Orarend (TeremId INT, TeremNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
INSERT INTO #Orarend
SELECT
OsszesOra.TeremId
,terem.C_NEV
,OsszesOra.Oraszam
,OsszesOra.Nap
,TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.TeremId = OsszesOra.TeremId
LEFT JOIN T_TEREM_OSSZES Terem ON Terem.ID = OsszesOra.TeremId
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
--------------------------------------------------------------------------------------------------------------
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
INSERT INTO #Napok
SELECT DISTINCT
*
, CASE
WHEN nap = 'hetfo' THEN 1
WHEN nap = 'kedd' THEN 2
WHEN nap = 'szerda' THEN 3
WHEN nap = 'csutortok' THEN 4
WHEN nap = 'pentek' THEN 5
END
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
DECLARE @Oraszamok NVARCHAR(MAX),
@OraszamokAlias NVARCHAR(MAX)
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT Oraszam FROM #temp ) o
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT DISTINCT
t.C_NEV TeremNev,
' + @OraszamokAlias + '
FROM (SELECT DISTINCT TeremId FROM #temp) k
INNER JOIN (
SELECT
TeremId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1408
) hetfo ON hetfo.TeremId = k.TeremId
INNER JOIN (
SELECT
TeremId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1409
) kedd ON kedd.TeremId = k.TeremId
INNER JOIN (
SELECT
TeremId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1410
) szerda ON szerda.TeremId = k.TeremId
INNER JOIN (
SELECT
TeremId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1411
) csutortok ON csutortok.TeremId = k.TeremId
INNER JOIN (
SELECT
TeremId
,'+ @Oraszamok +'
FROM #Orarend
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
WHERE Nap = 1412
) pentek ON pentek.TeremId = k.TeremId
INNER JOIN T_TEREM_OSSZES t ON t.Id = k.TeremId
ORDER BY C_NEV
'
EXEC sp_executesql @sql
DROP TABLE #Napok
DROP TABLE #Orarend
DROP TABLE #KapcsolodoCsoportok
END
GO

View File

@@ -0,0 +1,142 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOrarendOsztalyonkent') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOrarendOsztalyonkent
END
GO
CREATE PROCEDURE sp_GetOrarendOsztalyonkent
@intezmenyId INT,
@tanevId INT,
@osztalyId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
DECLARE @ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
DECLARE @osztalyNev NVARCHAR(MAX)=(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID=@osztalyId)
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,OrarendiOra.C_ORASZAM Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Pedagogus.C_NYOMTATASINEV PedagogusNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) Kapcsolodo ON Kapcsolodo.Id = OrarendiOra.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.C_TANARID
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
WHERE
OrarendiOra.Torolt = 'F'
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <= @Hetvege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @Heteleje
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND<>1554
END
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (osztalyId INT, Ora INT, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT CAST('<b>' + bveg.TantargyNev + '</b>' + ' (' + IIF(bveg.OsztalyCsoportNev <> @osztalyNev, bveg.OsztalyCsoportNev + ', ', '') + bveg.PedagogusNev + ', ' + bveg.TeremNev + ')' + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM @temp bveg
WHERE bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=@HetirendId OR bveg.HetirendId=1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM @temp veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @osztalyId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend=TenylegesOra.Hetirend AND OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
pv.*
, dic.C_NAME HETIREND_DNAME
,@osztalyNev OsztalyNev
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
ORDER BY Hetirend, Ora
END
GO

View File

@@ -0,0 +1,169 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetPedagogusOrarend') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetPedagogusOrarend
END
GO
CREATE PROCEDURE sp_GetPedagogusOrarend
@intezmenyId INT,
@tanevId INT,
@pedagogusId INT,
@aktivTanevId INT,
@reszletes BIT = 0
AS
BEGIN
SET NOCOUNT ON;
IF @reszletes = 1
BEGIN
SELECT TOP(1)
f.C_NYOMTATASINEV as TANAR_NEV
,i.C_NEV as INTEZMENY_NEV
,i.C_OMKOD as INTEZMENY_OMKOD
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
INNER JOIN T_FOGLALKOZASOK_TANAROK ON T_FOGLALKOZASOK_TANAROK.C_TANAROKID = a.ID
INNER JOIN T_FOGLALKOZAS_OSSZES fo ON fo.ID = T_FOGLALKOZASOK_TANAROK.C_FOGLALKOZASOKID AND fo.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = fo.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = a.C_ALINTEZMENYID AND i.C_TANEVID = a.C_ALTANEVID AND i.TOROLT = 'F'
WHERE
a.ID = @pedagogusId
AND a.C_ALTANEVID = @tanevId
AND i.C_INTEZMENYID = @intezmenyId
AND a.TOROLT = 'F'
END
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
DECLARE @ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,OrarendiOra.C_ORASZAM Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,Terem.C_NEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
WHERE
OrarendiOra.Torolt = 'F'
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <= @Hetvege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @Heteleje
AND OrarendiOra.C_TANARID = @pedagogusId
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND<>1554
END
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (PedagogusId INT, Ora INT, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT CAST('<b>' + bveg.TantargyNev + '</b>' + ' (' + OsztalyCsoportNev + ', ' + bveg.TeremNev + ')' + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM @temp bveg
WHERE bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=@HetirendId OR bveg.HetirendId=1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM @temp veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
DECLARE @pedagogusNev NVARCHAR(MAX) = (SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @pedagogusId)
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @pedagogusId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
, @pedagogusNev Pedagogusnev
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend=TenylegesOra.Hetirend AND OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
PedagogusId
,Ora
,Hetirend
,PedagogusNev
,[1408] 'Hetfo'
,[1409] 'Kedd'
,[1410] 'Szerda'
,[1411] 'Csutortok'
,[1412] 'Pentek'
,[1413] 'Szombat'
, dic.C_NAME HETIREND_DNAME
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
ORDER BY Hetirend, Ora
END
GO

View File

@@ -0,0 +1,59 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetPedagogusOrarendOsszes]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
END
GO
CREATE PROCEDURE [dbo].[sp_GetPedagogusOrarendOsszes]
@tanevID INT,
@intezmenyId INT,
@aktivTanevId INT
AS
BEGIN
SELECT DISTINCT ia.C_NEV as intezmeny, m.C_NEV as mukodesihely, d.C_NAME as oktatasiNevelesiFeladatTipus,
ISNULL(ia.C_VAROS + ', ', '') + FORMAT(GETDATE(), 'yyyy. MMMM dd.', 'hu-hu') AS kelt
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES IA ON IA.C_INTEZMENYID=I.ID
INNER JOIN T_MUKODESIHELY_OSSZES m ON IA.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F'
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE i.id=@intezmenyId AND I.TOROLT='F'
DECLARE @tabla TABLE (PedagogusId INT, Ora INT, Hetirend INT, PedagogusNev NVARCHAR(MAX), Hetfo NVARCHAR(MAX), Kedd NVARCHAR(MAX), Szerda NVARCHAR(MAX), Csutortok NVARCHAR(MAX), Pentek NVARCHAR(MAX), Szombat NVARCHAR(MAX), Hetirend_DNAME NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT ID FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN (SELECT DISTINCT c_tanarokid FROM T_FOGLALKOZASOK_TANAROK) ft on ft.c_tanarokid=a.id
where a.torolt='F' and a.C_ALTANEVID=@tanevID
DECLARE @TanarId int
OPEN kur
FETCH NEXT FROM kur INTO @TanarId
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO @tabla
EXEC sp_GetPedagogusOrarend @intezmenyId, @tanevid, @tanarid, @aktivTanevId
FETCH NEXT FROM kur INTO @TanarId
END
CLOSE kur
DEALLOCATE kur
SELECT
*
FROM @tabla
ORDER BY Hetirend, Ora
END
GO

View File

@@ -0,0 +1,156 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetTeremOrarend') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetTeremOrarend
END
GO
CREATE PROCEDURE sp_GetTeremOrarend
@intezmenyId INT,
@tanevId INT,
@teremId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve
,T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod
FROM T_INTEZMENYADATOK_OSSZES
WHERE
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @tanevId
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
DECLARE @ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,OrarendiOra.C_ORASZAM Oraszam
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
,f.C_NYOMTATASINEV TeremNev
,ocs.C_NEV OsztalyCsoportNev
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = OrarendiOra.C_TANARID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
WHERE
OrarendiOra.Torolt = 'F'
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <= @Hetvege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @Heteleje
AND OrarendiOra.C_TEREMID = @teremId
DECLARE @Hetirendek TABLE (Id INT)
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
IF (@HetirendCount=1)
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId
END
ELSE
BEGIN
INSERT INTO @Hetirendek
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND<>1554
END
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam INT)
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (TeremId INT, Ora INT, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX), TeremNev NVARCHAR(MAX))
DECLARE kur CURSOR FOR
SELECT Id FROM @Hetirendek
DECLARE @HetirendId int
OPEN kur
FETCH NEXT FROM kur INTO @HetirendId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @TenylegesOra
SELECT DISTINCT
@HetirendId
,veg.HetnapjaId
,veg.Oraszam
,STUFF((SELECT DISTINCT CAST('<b>' + bveg.TantargyNev + '</b>' + ' (' + OsztalyCsoportNev + ', ' + bveg.PedagogusNev + ')' + CHAR(13) + CHAR(10) AS VARCHAR(max))
FROM @temp bveg
WHERE bveg.HetnapjaId=veg.HetnapjaId
AND bveg.Oraszam=veg.Oraszam
AND (bveg.HetirendId=@HetirendId OR bveg.HetirendId=1554)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
FROM @temp veg
FETCH NEXT FROM kur INTO @HetirendId
END
CLOSE kur
DEALLOCATE kur
DECLARE @teremNev NVARCHAR(MAX) = (SELECT C_NEV FROM T_TEREM_OSSZES WHERE ID = @teremId)
/*Végleges órarend*/
INSERT INTO @Orarend
SELECT @teremId
, OsszesOra.Oraszam
, OsszesOra.Hetirend
, OsszesOra.Nap
, TenylegesOra.Foglalkozas
, @teremNev TeremNev
FROM @OsszesOra OsszesOra
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend=TenylegesOra.Hetirend AND OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
SELECT
TeremId
,Ora
,Hetirend
,TeremNev
,[1408] 'Hetfo'
,[1409] 'Kedd'
,[1410] 'Szerda'
,[1411] 'Csutortok'
,[1412] 'Pentek'
,[1413] 'Szombat'
, dic.C_NAME HETIREND_DNAME
FROM @Orarend
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
ORDER BY Hetirend, Ora
END
GO

View File

@@ -0,0 +1,207 @@
IF OBJECT_ID('sp_GetTeremrend') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetTeremrend
END
GO
CREATE PROCEDURE [sp_GetTeremrend]
@TanevId INT,
@IntezmenyId INT,
@aktivTanevId INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @OrarendiOra TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max), Foglalkozas nvarchar(max)) --Összes órarendi óra
DECLARE @Hetirendek TABLE (Hetirend int) --Összes hetirend
DECLARE @Ures TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max)) --Összes hetirendhez órasávok generálva
DECLARE @Teljes TABLE (Hetirend int, OraSzam int, Hetnapja int, Terem nvarchar(max), Foglalkozas nvarchar(max)) --@Ures tábla, a létező órákkal kiegészítve
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
DECLARE @ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@HetEleje DATE
,@HetVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @ElsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @ElsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
END
END
ELSE
BEGIN
SET @HetEleje =(SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
-- @Hetirendek tábálába inzertálás
INSERT INTO @Hetirendek
SELECT DISTINCT C_HETIREND
FROM T_ORARENDIORA_OSSZES WHERE TOROLT='F' AND C_TANEVID=@TANEVID AND C_INTEZMENYID=@IntezmenyId
-- @OrarendiOra tábálába inzertálás
INSERT INTO @OrarendiOra
SELECT C_HETIREND,
OrarendiOra.C_ORASZAM,
C_HETNAPJA,
Terem.C_NEV,
--Összefűzi a foglalkozásokat, ha teremre egyszerre több foglalkozás van felvéve egy órára
STUFF(
(SELECT DISTINCT ', ' + ISNULL(CAST(Foglalkozas.C_NEV AS VARCHAR(MAX)),'')
FROM T_ORARENDIORA_OSSZES OrarendiOraFoglalkozas
INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas ON Foglalkozas.ID = OrarendiOraFoglalkozas.C_FOGLALKOZASID
where OrarendiOraFoglalkozas.C_TEREMID = OrarendiOra.C_TEREMID AND
(OrarendiOraFoglalkozas.C_HETIREND = OrarendiOra.C_HETIREND OR OrarendiOraFoglalkozas.C_HETIREND = 1554) AND
OrarendiOraFoglalkozas.C_HETNAPJA = OrarendiOra.C_HETNAPJA AND
OrarendiOraFoglalkozas.C_ORASZAM = OrarendiOra.c_oraszam AND
((OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE<=@HetEleje) and (OrarendiOraFoglalkozas.c_oraervenyessegvege>=@HetVege)or
(OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE>=@HetEleje) and (OrarendiOraFoglalkozas.C_ORAERVENYESSEGKEZDETE<=@HetVege)) AND
Foglalkozas.TOROLT = 'F' AND
Foglalkozas.C_INTEZMENYID = @IntezmenyId AND
Foglalkozas.C_TANEVID = @TanevId AND
OrarendiOraFoglalkozas.Torolt ='F' AND
OrarendiOraFoglalkozas.C_TANEVID =@TanevId
FOR XML PATH('')),1,1,''
) AS Foglalkozas
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TEREM_OSSZES Terem ON Terem.ID = OrarendiOra.C_TEREMID
WHERE OrarendiOra.C_INTEZMENYID = @IntezmenyId AND
OrarendiOra.C_TANEVID = @TanevId AND
OrarendiOra.TOROLT = 'F' AND
OrarendiOra.C_TEREMID IS NOT NULL
-- @Ures tábálába inzertálás
INSERT INTO @Ures
SELECT HetiRend,
OraSzam,
Hetnapja,
Terem
FROM @Hetirendek
CROSS JOIN (SELECT DISTINCT OraSzam FROM @OrarendiOra) OraSzam (OraSzam)
CROSS JOIN (SELECT DISTINCT Terem FROM @OrarendiOra) Terem (Terem)
CROSS JOIN (SELECT DISTINCT Hetnapja FROM @OrarendiOra) Hetnapja (Hetnapja)
-- @Teljes tábálába inzertálás
INSERT INTO @Teljes
SELECT Ures.*,
OrarendiOra.Foglalkozas
FROM @Ures Ures
LEFT JOIN @OrarendiOra OrarendiOra ON OrarendiOra.Hetirend = Ures.Hetirend AND
OrarendiOra.Hetnapja = Ures.Hetnapja AND
OrarendiOra.OraSzam = Ures.OraSzam AND
OrarendiOra.Terem = Ures.Terem
-- Az Excel nyomtatvány munkalap- és táblázat nevei
SELECT Hetnapja
FROM (SELECT DISTINCT C_NAME Hetnapja,
C_VALUE Sorrend
FROM @OrarendiOra
INNER JOIN T_DICTIONARYITEMBASE_OSSZES DictionaryItemBase on DictionaryItemBase.ID = Hetnapja
) Hetnapja
ORDER BY Sorrend
SELECT Hetirend
FROM (SELECT DISTINCT C_NAME Hetirend,
C_VALUE Sorrend
FROM @Hetirendek
INNER JOIN T_DICTIONARYITEMBASE_OSSZES DictionaryItemBase on DictionaryItemBase.ID = Hetirend
--WHERE DictionaryItemBase.ID <> 1554--Minden hét
) Hetirend
ORDER BY Hetirend
-- @Teljes tábla feltöltése, fő lekérdezés
DECLARE KurzorHetirend CURSOR FOR
SELECT Hetirend
FROM @Hetirendek
--WHERE Hetirend <> 1554
ORDER BY Hetirend
DECLARE @Hetirend INT
DECLARE KurzorHetnapja CURSOR FOR
SELECT DISTINCT Hetnapja
FROM @Ures
ORDER BY Hetnapja
DECLARE @Hetnapja INT
OPEN KurzorHetirend
FETCH NEXT FROM KurzorHetirend INTO @Hetirend
WHILE @@FETCH_STATUS = 0
BEGIN
OPEN KurzorHetnapja
FETCH NEXT FROM KurzorHetnapja INTO @Hetnapja
-- A "Minden hét" óráinak inzertálása minden hetirendbe
INSERT INTO @Teljes
SELECT @Hetirend,
OraSzam,
Hetnapja,
Terem,
Foglalkozas
FROM @OrarendiOra
WHERE Hetirend = 1554
WHILE @@FETCH_STATUS = 0
BEGIN
CREATE table #VeglegesteremOrarend(Terem nvarchar(max), [0] nvarchar(max), [1] nvarchar(max), [2] nvarchar(max), [3] nvarchar(max), [4] nvarchar(max), [5] nvarchar(max),
[6] nvarchar(max), [7] nvarchar(max), [8] nvarchar(max), [9] nvarchar(max), [10] nvarchar(max))
INSERT INTO #VeglegesTeremOrarend
SELECT Vegleges.Terem,
Vegleges.[0],
Vegleges.[1],
Vegleges.[2],
Vegleges.[3],
Vegleges.[4],
Vegleges.[5],
Vegleges.[6],
Vegleges.[7],
Vegleges.[8],
Vegleges.[9],
Vegleges.[10]
FROM @Teljes
PIVOT
(
MAX(Foglalkozas) FOR OraSzam IN ([0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
) Vegleges
WHERE Vegleges.Hetirend = @Hetirend AND
Vegleges.Hetnapja = @Hetnapja
SELECT *
FROM #VeglegesTeremOrarend
DROP TABLE #VeglegesTeremOrarend
FETCH NEXT FROM KurzorHetnapja INTO @Hetnapja
END
FETCH NEXT FROM KurzorHetirend INTO @Hetirend
CLOSE KurzorHetnapja
END
CLOSE KurzorHetirend
DEALLOCATE KurzorHetnapja
DEALLOCATE KurzorHetirend
END
GO