init
This commit is contained in:
@@ -0,0 +1,266 @@
|
||||
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,
|
||||
@isEgyebFoglalkozasok BIT,
|
||||
@orarendErvenyessegiDatum DATE
|
||||
|
||||
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')
|
||||
,@VizsgaltNap DATE
|
||||
,@isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
|
||||
,@VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
|
||||
,@osztalyNev NVARCHAR(MAX) = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
|
||||
|
||||
SET @UtolsoNap = (SELECT IIF(@isVegzos = 'T', @VegzosUtolsoNap, @UtolsoNap))
|
||||
|
||||
IF (@tanevId = @aktivTanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (@orarendErvenyessegiDatum <= @ElsoNap)
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = @UtolsoNap
|
||||
END
|
||||
|
||||
SELECT
|
||||
C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
|
||||
INTO #CsengetesiRendAdatok
|
||||
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
|
||||
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
|
||||
WHERE
|
||||
CsengetesiRendOra.C_TANEVID = @tanevId
|
||||
AND CsengetesiRendOra.TOROLT = 'F'
|
||||
AND CsengetesiRend.TOROLT = 'F'
|
||||
AND CsengetesiRend.C_AKTIV = 'T'
|
||||
|
||||
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
|
||||
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
|
||||
|
||||
SELECT
|
||||
OrarendiOra.C_HETIREND HetirendId
|
||||
,OrarendiOra.C_HETNAPJA HetnapjaId
|
||||
,CsengetesiRendOra.C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Pedagogus.C_NYOMTATASINEV PedagogusNev
|
||||
,Terem.C_NEV TeremNev
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
INTO #OrarendiOrak
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
INNER JOIN fnGetKapcsolodoOsztalycsoportokByDate(@osztalyId, @VizsgaltNap, @VizsgaltNap) 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
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
|
||||
LEFT JOIN T_CSOPORT_OSSZES Csoport ON Csoport.Id = Kapcsolodo.Id
|
||||
WHERE
|
||||
OrarendiOra.Torolt = 'F'
|
||||
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
|
||||
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
|
||||
|
||||
SELECT
|
||||
OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,Kezdete
|
||||
,Vege
|
||||
INTO #OrarendTEMP
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NOT NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
)OrarendioraOraszammal
|
||||
|
||||
INSERT INTO #OrarendTEMP
|
||||
SELECT
|
||||
@MinCsengetesiRendOraszam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #orarendiorak OrarendiOrak
|
||||
WHERE
|
||||
Kezdete < @MinCsengetesiRendOraKezdet
|
||||
|
||||
SELECT
|
||||
Orarend.OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
|
||||
INTO #Orarend
|
||||
FROM #OrarendTEMP Orarend
|
||||
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
|
||||
|
||||
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 (Ora INT)
|
||||
INSERT INTO @orakezdetek
|
||||
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
|
||||
|
||||
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT Ora FROM @Orakezdetek) OraSzam (OraSzam)
|
||||
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413),(1414)) Nap (Nap)
|
||||
|
||||
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), 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>' + CHAR(13) + CHAR(10)
|
||||
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
|
||||
+ IIF(bveg.OsztalyCsoportNev <> @osztalyNev, bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10), '')
|
||||
+ bveg.PedagogusNev + CHAR(13) + CHAR(10)
|
||||
+ bveg.TeremNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
|
||||
FROM #Orarend 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 #Orarend 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],[1414]))pv
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
|
||||
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
|
||||
ORDER BY Ora
|
||||
END
|
||||
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,73 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetOsztalyOrarend]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetOsztalyOrarend]
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetOsztalyOrarend]
|
||||
@tanevID INT
|
||||
,@intezmenyId INT
|
||||
,@aktivTanevId INT
|
||||
,@osztalyId INT
|
||||
,@isEgyebFoglalkozasok BIT
|
||||
,@orarendErvenyessegiDatum DATE
|
||||
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 + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt
|
||||
FROM T_INTEZMENY_OSSZES i
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID=I.ID AND ia.C_TANEVID = @tanevid
|
||||
INNER JOIN T_MUKODESIHELY_OSSZES m ON ia.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F' AND m.C_TANEVID = @tanevID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevID
|
||||
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 (osztalyId INT, Ora INT, HetirendId INT, Hetfo NVARCHAR(MAX), Kedd NVARCHAR(MAX), Szerda NVARCHAR(MAX), Csutortok NVARCHAR(MAX), Pentek NVARCHAR(MAX), Szombat NVARCHAR(MAX), Vasarnap NVARCHAR(MAX), Hetirend NVARCHAR(MAX),Osztalynev NVARCHAR(MAX))
|
||||
|
||||
SELECT
|
||||
ocs.Id OsztalyId
|
||||
,ocs.C_NEV OsztalyNev
|
||||
INTO #Osztalyok
|
||||
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
|
||||
AND ocs.Id = @osztalyId
|
||||
|
||||
INSERT INTO @tabla
|
||||
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyId, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum
|
||||
|
||||
SELECT
|
||||
OsztalyId
|
||||
,OsztalyNev
|
||||
,Hetirend
|
||||
FROM #Osztalyok Osztalyok
|
||||
CROSS JOIN (SELECT DISTINCT Hetirend FROM @tabla) Hetirend (Hetirend)
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.Id = Osztalyok.OsztalyId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA AND EvfolyamTipusa.C_TANEVID = @tanevId
|
||||
ORDER BY C_ORDER, C_NEV
|
||||
|
||||
SELECT
|
||||
OsztalyokOrarendje.*
|
||||
FROM @tabla OsztalyokOrarendje
|
||||
ORDER BY Ora
|
||||
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,85 @@
|
||||
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
|
||||
,@isEgyebFoglalkozasok BIT
|
||||
,@orarendErvenyessegiDatum DATE
|
||||
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 + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt
|
||||
FROM T_INTEZMENY_OSSZES i
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID=I.ID AND ia.C_TANEVID = @tanevid
|
||||
INNER JOIN T_MUKODESIHELY_OSSZES m ON ia.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F' AND m.C_TANEVID = @tanevID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevID
|
||||
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 (osztalyId INT, Ora INT, HetirendId INT, Hetfo NVARCHAR(MAX), Kedd NVARCHAR(MAX), Szerda NVARCHAR(MAX), Csutortok NVARCHAR(MAX), Pentek NVARCHAR(MAX), Szombat NVARCHAR(MAX), Vasarnap NVARCHAR(MAX), Hetirend NVARCHAR(MAX),Osztalynev NVARCHAR(MAX))
|
||||
|
||||
SELECT
|
||||
ocs.Id OsztalyId
|
||||
,ocs.C_NEV OsztalyNev
|
||||
INTO #Osztalyok
|
||||
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 kurzor CURSOR FOR
|
||||
SELECT OsztalyId FROM #Osztalyok
|
||||
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, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum
|
||||
|
||||
FETCH NEXT FROM kurzor INTO @OsztalyId
|
||||
END
|
||||
|
||||
CLOSE kurzor
|
||||
DEALLOCATE kurzor
|
||||
|
||||
SELECT
|
||||
OsztalyId
|
||||
,OsztalyNev
|
||||
,Hetirend
|
||||
FROM #Osztalyok Osztalyok
|
||||
CROSS JOIN (SELECT DISTINCT Hetirend FROM @tabla) Hetirend (Hetirend)
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.Id = Osztalyok.OsztalyId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA AND EvfolyamTipusa.C_TANEVID = @tanevId
|
||||
ORDER BY C_ORDER, C_NEV
|
||||
|
||||
SELECT
|
||||
OsztalyokOrarendje.*
|
||||
FROM @tabla OsztalyokOrarendje
|
||||
ORDER BY Ora
|
||||
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,267 @@
|
||||
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,
|
||||
@isEgyebFoglalkozasok BIT,
|
||||
@orarendErvenyessegiDatum DATE
|
||||
|
||||
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')
|
||||
,@VizsgaltNap DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (@orarendErvenyessegiDatum <= @ElsoNap)
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = @UtolsoNap
|
||||
END
|
||||
|
||||
SELECT
|
||||
C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
|
||||
INTO #CsengetesiRendAdatok
|
||||
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
|
||||
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
|
||||
WHERE
|
||||
CsengetesiRendOra.C_TANEVID = @tanevId
|
||||
AND CsengetesiRendOra.TOROLT = 'F'
|
||||
AND CsengetesiRend.TOROLT = 'F'
|
||||
AND CsengetesiRend.C_AKTIV = 'T'
|
||||
|
||||
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
|
||||
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
|
||||
|
||||
SELECT
|
||||
OrarendiOra.C_HETIREND HetirendId
|
||||
,OrarendiOra.C_HETNAPJA HetnapjaId
|
||||
,CsengetesiRendOra.C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Pedagogus.C_NYOMTATASINEV PedagogusNev
|
||||
,Terem.C_NEV TeremNev
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
INTO #OrarendiOrak
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
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
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
|
||||
LEFT JOIN T_CSOPORT_OSSZES Csoport ON OrarendiOra.C_OSZTALYCSOPORTID = Csoport.Id
|
||||
WHERE
|
||||
OrarendiOra.Torolt = 'F'
|
||||
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
|
||||
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
|
||||
AND Orarendiora.C_TANARID = @pedagogusId
|
||||
|
||||
SELECT
|
||||
OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,Kezdete
|
||||
,Vege
|
||||
INTO #OrarendTEMP FROM
|
||||
(
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NOT NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
)OrarendioraOraszammal
|
||||
|
||||
INSERT INTO #OrarendTEMP
|
||||
SELECT
|
||||
@MinCsengetesiRendOraszam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #orarendiorak OrarendiOrak
|
||||
WHERE
|
||||
Kezdete < @MinCsengetesiRendOraKezdet
|
||||
|
||||
SELECT
|
||||
Orarend.OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
|
||||
INTO #Orarend
|
||||
FROM #OrarendTEMP Orarend
|
||||
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
|
||||
|
||||
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 (Ora INT)
|
||||
INSERT INTO @orakezdetek
|
||||
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
|
||||
|
||||
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT Ora 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 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>' + CHAR(13) + CHAR(10)
|
||||
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
|
||||
+ bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10)
|
||||
+ bveg.TeremNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
|
||||
FROM #Orarend 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 #Orarend veg
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
END
|
||||
CLOSE kur
|
||||
DEALLOCATE kur
|
||||
|
||||
/*Végleges órarend*/
|
||||
INSERT INTO @Orarend
|
||||
SELECT @pedagogusId
|
||||
, 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
|
||||
@pedagogusId PedagogusId
|
||||
,pv.Ora Ora
|
||||
,Hetirend
|
||||
,(SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE Id = @pedagogusId) 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
|
||||
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
|
||||
ORDER BY Hetirend, Ora
|
||||
|
||||
END
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
@@ -0,0 +1,92 @@
|
||||
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,
|
||||
@isEgyebFoglalkozasok BIT,
|
||||
@pedagogusId INT,
|
||||
@orarendErvenyessegiDatum DATE
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SELECT DISTINCT
|
||||
IntezmenyAdatok.C_NEV as intezmeny
|
||||
,ISNULL(IntezmenyAdatok.C_VAROS + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt
|
||||
,(SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE Id = @pedagogusId) PedagogusNev
|
||||
FROM T_INTEZMENY_OSSZES Intezmeny
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_INTEZMENYID = Intezmeny.ID AND IntezmenyAdatok.C_TANEVID = @tanevid
|
||||
WHERE
|
||||
Intezmeny.Id = @intezmenyId
|
||||
AND Intezmeny.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),
|
||||
HetirendNev NVARCHAR(MAX)
|
||||
)
|
||||
|
||||
SELECT
|
||||
Alkalmazott.ID
|
||||
,Felhasznalo.C_NYOMTATASINEV Nev
|
||||
INTO #Pedagogusok
|
||||
FROM T_ALKALMAZOTT_OSSZES Alkalmazott
|
||||
INNER JOIN (SELECT DISTINCT C_TANARID FROM T_ORARENDIORA_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT = 'F') OrarendiOra on OrarendiOra.C_TANARID = Alkalmazott.Id
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = Alkalmazott.Id
|
||||
WHERE
|
||||
Alkalmazott.torolt='F'
|
||||
AND Alkalmazott.C_ALTANEVID = @tanevID
|
||||
AND (@pedagogusId = -1 OR Alkalmazott.Id = @pedagogusId)
|
||||
|
||||
DECLARE kurzor CURSOR FOR
|
||||
SELECT ID FROM #Pedagogusok
|
||||
|
||||
DECLARE @TanarId int
|
||||
|
||||
OPEN kurzor
|
||||
FETCH NEXT FROM kurzor INTO @TanarId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
INSERT INTO @tabla
|
||||
|
||||
EXEC sp_GetPedagogusOrarend @intezmenyId, @tanevid, @tanarid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum
|
||||
|
||||
FETCH NEXT FROM kurzor INTO @TanarId
|
||||
END
|
||||
|
||||
CLOSE kurzor
|
||||
DEALLOCATE kurzor
|
||||
|
||||
SELECT
|
||||
ID PedagogusId
|
||||
,Nev
|
||||
,Hetirend
|
||||
FROM #Pedagogusok
|
||||
CROSS JOIN (SELECT DISTINCT HetirendNev FROM @tabla) Hetirend (Hetirend)
|
||||
ORDER BY Nev, Hetirend
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM @tabla
|
||||
ORDER BY Hetirend, Ora
|
||||
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,289 @@
|
||||
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,
|
||||
@isEgyebFoglalkozasok BIT,
|
||||
@orarendErvenyessegiDatum DATE,
|
||||
@isReszletes BIT = 1
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @isReszletes = 1
|
||||
BEGIN
|
||||
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
|
||||
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')
|
||||
,@VizsgaltNap DATE
|
||||
,@IdoszakKezdete DATE
|
||||
,@IdoszakVege DATE
|
||||
IF (@tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (@orarendErvenyessegiDatum <= @ElsoNap)
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = @UtolsoNap
|
||||
END
|
||||
|
||||
SELECT
|
||||
C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
|
||||
INTO #CsengetesiRendAdatok
|
||||
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
|
||||
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
|
||||
WHERE
|
||||
CsengetesiRendOra.C_TANEVID = @tanevId
|
||||
AND CsengetesiRendOra.TOROLT = 'F'
|
||||
AND CsengetesiRend.TOROLT = 'F'
|
||||
AND CsengetesiRend.C_AKTIV = 'T'
|
||||
|
||||
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
|
||||
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
|
||||
|
||||
SELECT
|
||||
OrarendiOra.C_HETIREND HetirendId
|
||||
,OrarendiOra.C_HETNAPJA HetnapjaId
|
||||
,CsengetesiRendOra.C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Pedagogus.C_NYOMTATASINEV PedagogusNev
|
||||
,Terem.C_NEV TeremNev
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
INTO #OrarendiOrak
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
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
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
|
||||
LEFT JOIN T_CSOPORT_OSSZES Csoport ON OrarendiOra.C_OSZTALYCSOPORTID = Csoport.Id
|
||||
WHERE
|
||||
OrarendiOra.Torolt = 'F'
|
||||
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
|
||||
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
|
||||
AND Orarendiora.C_TEREMID = @teremId
|
||||
|
||||
SELECT
|
||||
OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,Kezdete
|
||||
,Vege
|
||||
INTO #OrarendTEMP FROM
|
||||
(
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NOT NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
)OrarendioraOraszammal
|
||||
|
||||
INSERT INTO #OrarendTEMP
|
||||
SELECT
|
||||
@MinCsengetesiRendOraszam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #orarendiorak OrarendiOrak
|
||||
WHERE
|
||||
Kezdete < @MinCsengetesiRendOraKezdet
|
||||
|
||||
SELECT
|
||||
Orarend.OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
|
||||
INTO #Orarend
|
||||
FROM #OrarendTEMP Orarend
|
||||
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
|
||||
|
||||
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 (Ora INT)
|
||||
INSERT INTO @orakezdetek
|
||||
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
|
||||
|
||||
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT Ora 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 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>' + CHAR(13) + CHAR(10)
|
||||
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
|
||||
+ bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10)
|
||||
+ bveg.PedagogusNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
|
||||
FROM #Orarend 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 #Orarend veg
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
END
|
||||
CLOSE kur
|
||||
DEALLOCATE kur
|
||||
|
||||
/*Végleges órarend*/
|
||||
INSERT INTO @Orarend
|
||||
SELECT @teremId
|
||||
, 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
|
||||
|
||||
IF @isReszletes = 1
|
||||
BEGIN
|
||||
SELECT
|
||||
Terem.Id TeremId
|
||||
,Terem.C_NEV TeremNev
|
||||
,Hetirend HetirendId
|
||||
,HetirendDictionary.C_NAME HetirendNev
|
||||
FROM T_TEREM_OSSZES Terem
|
||||
CROSS JOIN (SELECT ID FROM @Hetirendek) Hetirend (Hetirend)
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES HetirendDictionary ON HetirendDictionary.id = Hetirend AND HetirendDictionary.C_TANEVID = @tanevId
|
||||
END
|
||||
|
||||
SELECT
|
||||
@teremId TeremId
|
||||
,pv.Ora Ora
|
||||
,Hetirend HetirendId
|
||||
,(SELECT C_NEV FROM T_TEREM_OSSZES WHERE Id = @teremId) TeremNev
|
||||
,[1408] 'Hetfo'
|
||||
,[1409] 'Kedd'
|
||||
,[1410] 'Szerda'
|
||||
,[1411] 'Csutortok'
|
||||
,[1412] 'Pentek'
|
||||
,[1413] 'Szombat'
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
|
||||
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
|
||||
ORDER BY Hetirend, Ora
|
||||
|
||||
END
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
@@ -0,0 +1,92 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
IF OBJECT_ID('[dbo].[sp_GetTeremOrarendOsszes]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetTeremOrarendOsszes]
|
||||
END
|
||||
GO
|
||||
CREATE PROCEDURE [dbo].[sp_GetTeremOrarendOsszes]
|
||||
@pTanevId INT
|
||||
,@pIntezmenyId INT
|
||||
,@pAktivTanevId INT
|
||||
,@isEgyebFoglalkozasok BIT
|
||||
,@orarendErvenyessegiDatum DATE
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
/*INTEZMENY*/
|
||||
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 = @pTanevId
|
||||
|
||||
/*TERMEK*/
|
||||
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=@pTanevId)
|
||||
|
||||
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 = @pTanevId
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@pTanevId AND oo.C_HETIREND <> 1554
|
||||
END
|
||||
|
||||
SELECT
|
||||
Terem.Id TeremId
|
||||
,Terem.C_NEV TeremNev
|
||||
,Hetirend HetirendId
|
||||
,HetirendDictionary.C_NAME HetirendNev
|
||||
FROM T_TEREM_OSSZES Terem
|
||||
CROSS JOIN (SELECT ID FROM @Hetirendek) Hetirend (Hetirend)
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES HetirendDictionary ON HetirendDictionary.id = Hetirend AND HetirendDictionary.C_TANEVID = @pTanevId
|
||||
WHERE
|
||||
Terem.C_TANEVID = @pTanevId
|
||||
AND Terem.TOROLT = 'F'
|
||||
ORDER BY TeremNev, HetirendNev
|
||||
|
||||
DECLARE @tabla TABLE (
|
||||
TeremId INT
|
||||
,Ora INT
|
||||
,HetirendId INT
|
||||
,TeremNev NVARCHAR(MAX)
|
||||
,Hetfo NVARCHAR(MAX)
|
||||
,Kedd NVARCHAR(MAX)
|
||||
,Szerda NVARCHAR(MAX)
|
||||
,Csutortok NVARCHAR(MAX)
|
||||
,Pentek NVARCHAR(MAX)
|
||||
,Szombat NVARCHAR(MAX))
|
||||
|
||||
DECLARE kurzor CURSOR FOR
|
||||
SELECT
|
||||
ID
|
||||
FROM T_TEREM_OSSZES
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND C_INTEZMENYID = @pIntezmenyId
|
||||
|
||||
DECLARE @teremId INT
|
||||
OPEN kurzor
|
||||
FETCH NEXT FROM kurzor INTO @teremId
|
||||
WHILE @@FETCH_STATUS = 0 BEGIN
|
||||
INSERT INTO @tabla
|
||||
EXEC dbo.sp_GetTeremOrarend @pIntezmenyId, @pTanevId, @teremId, @pAktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum, 0
|
||||
|
||||
FETCH NEXT FROM kurzor INTO @teremId
|
||||
END
|
||||
CLOSE kurzor
|
||||
DEALLOCATE kurzor
|
||||
|
||||
SELECT * from @tabla ORDER BY Ora
|
||||
END
|
||||
GO
|
Reference in New Issue
Block a user