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,158 @@
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')
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@IdoszakKezdete DATE
,@IdoszakVege 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 @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(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 @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(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)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam nvarchar(20), TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) KezdVeg
,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 fnGetKapcsolodoOsztalycsoportokByDate(@osztalyId, @IdoszakKezdete, @IdoszakVege) 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 <= @IdoszakVege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <> OrarendiOra.C_ORAERVENYESSEGVEGE
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 @Orakezdetek TABLE (idotartam NVARCHAR(20), Ora INT, Perc INT)
INSERT INTO @orakezdetek
SELECT DISTINCT
CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) KezdVeg
,DATEPART(HH, C_ORAKEZDETE)
,DATEPART(MINUTE, C_ORAKEZDETE)
FROM T_ORARENDIORA_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Idotartam FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam nvarchar(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (osztalyId INT, Ora nvarchar(20), 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
,ok.Ora Rendez_ora
,ok.Perc Rendez_perc
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
INNER JOIN @Orakezdetek ok ON ok.Idotartam = pv.Ora
END
GO

View File

@@ -0,0 +1,62 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetOsztalyOrarendOsszes]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetOsztalyOrarendOsszes]
END
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyOrarendOsszes]
@tanevID int,
@intezmenyId int
,@aktivTanevId int
AS
BEGIN
SET NOCOUNT ON;
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) d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE
i.id=@intezmenyId
AND I.TOROLT='F'
declare @tabla table (osztalyId int, Ora nvarchar(20), Hetirend int, [1408] nvarchar(max), [1409] nvarchar(max), [1410] nvarchar(max), [1411] nvarchar(max), [1412] nvarchar(max), [1413] nvarchar(max), Hetirend_dname nvarchar(max),Osztalynev nvarchar(max), Rendez_ora int, Rendez_perc int)
DECLARE kurzor CURSOR FOR
SELECT ocs.ID FROM T_OSZTALYCSOPORT_OSSZES ocs
inner join T_OSZTALY_OSSZES o on ocs.id=o.id
where ocs.TOROLT='F' and ocs.C_TANEVID=@tanevID and ocs.C_INTEZMENYID=@intezmenyId
DECLARE @OsztalyId int
OPEN kurzor
FETCH NEXT FROM kurzor INTO @OsztalyId
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO @tabla
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId
FETCH NEXT FROM kurzor INTO @OsztalyId
END
CLOSE kurzor
DEALLOCATE kurzor
SELECT * from @tabla
END
GO

View File

@@ -0,0 +1,186 @@
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')
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@IdoszakKezdete DATE
,@IdoszakVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(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 @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(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)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam NVARCHAR(20), TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
,CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) 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 <= @IdoszakVege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <> OrarendiOra.C_ORAERVENYESSEGVEGE
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 @Orakezdetek TABLE (idotartam NVARCHAR(20), Ora INT, Perc INT)
INSERT INTO @orakezdetek
SELECT DISTINCT
CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) KezdVeg
,DATEPART(HH, C_ORAKEZDETE)
,DATEPART(MINUTE, C_ORAKEZDETE)
FROM T_ORARENDIORA_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam NVARCHAR(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Idotartam FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (PedagogusId INT, Ora NVARCHAR(20), 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
,pv.Ora
,Hetirend
,PedagogusNev
,[1408] 'Hetfo'
,[1409] 'Kedd'
,[1410] 'Szerda'
,[1411] 'Csutortok'
,[1412] 'Pentek'
,[1413] 'Szombat'
, dic.C_NAME HETIREND_DNAME
,ok.Ora Rendez_ora
,ok.Perc Rendez_perc
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
INNER JOIN @Orakezdetek ok ON ok.Idotartam = pv.Ora
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 NVARCHAR(MAX), 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), Rendez_ora INT, Rendez_perc INT)
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,173 @@
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')
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1394 AND C_TANEVID=@tanevid AND TOROLT='F')
,@IdoszakKezdete DATE
,@IdoszakVege DATE
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
BEGIN
IF (GETDATE() <= @ElsoNap)
BEGIN
SET @IdoszakKezdete = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
SET @IdoszakVege = (SELECT TOP 1 C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 3 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @IdoszakKezdete =(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 @IdoszakVege = DATEADD(DAY, 13, @IdoszakKezdete)
END
END
ELSE
BEGIN
SET @IdoszakVege =(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)
SET @IdoszakKezdete = DATEADD(DAY, -13, @IdoszakVege)
END
DECLARE @temp TABLE (HetirendId INT, HetnapjaId INT, Oraszam NVARCHAR(20), TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), OsztalyCsoportNev NVARCHAR(MAX))
INSERT INTO @temp
SELECT
OrarendiOra.C_HETIREND HetirendId
,OrarendiOra.C_HETNAPJA HetnapjaId
, CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) 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 <= @IdoszakVege
AND OrarendiOra.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE <> OrarendiOra.C_ORAERVENYESSEGVEGE
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 @Orakezdetek TABLE (idotartam NVARCHAR(20), Ora INT, Perc INT)
INSERT INTO @orakezdetek
SELECT DISTINCT
CAST(DATEPART(HOUR, C_ORAKEZDETE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAKEZDETE), '00') AS NVARCHAR(10))
+ ' -' + char(13) + char(10) + CAST(DATEPART(HOUR, C_ORAVEGE) AS NVARCHAR(10)) + ':' + CAST(FORMAT(DATEPART(MINUTE, C_ORAVEGE), '00') AS NVARCHAR(10)) KezdVeg
,DATEPART(HH, C_ORAKEZDETE)
,DATEPART(MINUTE, C_ORAKEZDETE)
FROM T_ORARENDIORA_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam NVARCHAR(20))
INSERT INTO @OsszesOra
SELECT DISTINCT oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
CROSS JOIN (SELECT Idotartam FROM @Orakezdetek) OraSzam (OraSzam)
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (TeremId INT, Ora NVARCHAR(20), 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
,pv.Ora
,Hetirend
,TeremNev
,[1408] 'Hetfo'
,[1409] 'Kedd'
,[1410] 'Szerda'
,[1411] 'Csutortok'
,[1412] 'Pentek'
,[1413] 'Szombat'
, dic.C_NAME HETIREND_DNAME
,ok.Ora Rendez_ora
,ok.Perc Rendez_perc
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
INNER JOIN @Orakezdetek ok ON ok.Idotartam = pv.Ora
ORDER BY Hetirend, Ora
END
GO