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,85 @@
DROP PROCEDURE IF EXISTS sp_FollowUpTanuloFelmentes
GO
CREATE PROCEDURE sp_FollowUpTanuloFelmentes
@intezmenyId int,
@aktTanevId int,
@kovTanevId int,
@felmentesId int
AS
BEGIN
DECLARE @kovFelmentesId int = (SELECT ID FROM T_TANULOMENTESSEG_OSSZES WHERE ELOZOTANEVIREKORDID=@felmentesId AND TOROLT='F')
DECLARE @elsoNap datetime = (select C_KEZDONAP from T_TANEV_OSSZES WHERE ID = @kovTanevId)
IF (SELECT TOROLT FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)='T' BEGIN
RETURN
END
IF @kovFelmentesId IS NULL
BEGIN
INSERT INTO T_TANULOMENTESSEG_OSSZES (
C_ERTEKELESMENTESITES
,C_KEZDETE
,C_MENTESSEGOKA
,C_ORAMENTESITES
,C_VEGE
,C_SZOVEGESENERTEKELHETO
,C_TANTARGYID
,C_TANULOID
,C_INTEZMENYID
,C_TANEVID
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,ELOZOTANEVIREKORDID
) SELECT
C_ERTEKELESMENTESITES
,C_KEZDETE
,C_MENTESSEGOKA
,C_ORAMENTESITES
,C_VEGE
,C_SZOVEGESENERTEKELHETO
,tgy.ID
,tKov.ID
,tm.C_INTEZMENYID
,@kovTanevId
,0
,tm.LASTCHANGED
,tm.LASTCHANGED
,tm.MODIFIER
,tm.MODIFIER
,tm.ID
FROM T_TANULOMENTESSEG_OSSZES tm
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = tm.C_TANULOID
INNER JOIN T_FELHASZNALO_OSSZES tKov ON tKov.C_OKTATASIAZONOSITO = t.C_OKTATASIAZONOSITO AND tKov.C_TANEVID = @kovTanevId AND tKov.TOROLT='F'
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=tm.C_TANTARGYID AND tgy.TOROLT='F'
WHERE tm.ID=@felmentesId AND ISNULL(tm.C_VEGE,'2200-01-01')>@elsoNap
END
ELSE
BEGIN
IF (SELECT C_VEGE FROM T_TANULOMENTESSEG_OSSZES WHERE ID = @felmentesId)<=@elsoNap
UPDATE T_TANULOMENTESSEG_OSSZES SET
TOROLT='T'
WHERE ELOZOTANEVIREKORDID=@felmentesId AND TOROLT='F'
ELSE
BEGIN
UPDATE kovetkezo SET
C_ERTEKELESMENTESITES = regi.C_ERTEKELESMENTESITES
,C_KEZDETE = regi.C_KEZDETE
,C_MENTESSEGOKA = regi.C_MENTESSEGOKA
,C_ORAMENTESITES = regi.C_ORAMENTESITES
,C_VEGE = regi.C_VEGE
,C_SZOVEGESENERTEKELHETO = regi.C_SZOVEGESENERTEKELHETO
,C_TANTARGYID = tgy.ID
,SERIAL += 1
,LASTCHANGED = regi.LASTCHANGED
,MODIFIER = regi.MODIFIER
FROM T_TANULOMENTESSEG_OSSZES kovetkezo
INNER JOIN T_TANULOMENTESSEG_OSSZES regi ON regi.ID=kovetkezo.ELOZOTANEVIREKORDID AND regi.TOROLT='F' AND regi.ID=@felmentesId
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ELOZOTANEVIREKORDID=regi.C_TANTARGYID AND tgy.TOROLT='F'
END
END
END
GO

View File

@@ -0,0 +1,262 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS sp_GetDokumentumTanuloOrarend
GO
CREATE PROCEDURE sp_GetDokumentumTanuloOrarend
@tanevId INT,
@tanuloId INT,
@aktivTanevId INT,
@isEgyebFoglalkozasok BIT,
@orarendErvenyessegiDatum DATE,
@feladatKategoriaId INT = NULL
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_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
,@VizsgaltNap DATE
,@tanuloNev NVARCHAR(MAX) = (SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @tanuloId)
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_ROVIDNEV, 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_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_TANULOID = @tanuloId
AND TanuloCsoport.C_OSZTALYCSOPORTID = OrarendiOra.C_OSZTALYCSOPORTID
AND TanuloCsoport.TOROLT = 'F'
AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND ISNULL(C_KILEPESDATUM, @UtolsoNap)
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 AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
LEFT JOIN T_CSOPORT_OSSZES Csoport ON Csoport.Id = OrarendiOra.C_OSZTALYCSOPORTID
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)) Nap (Nap)
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
DECLARE @Orarend TABLE (TanuloId 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)
+ 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<EFBFBD>gleges <20>rarend*/
INSERT INTO @Orarend
SELECT @tanuloId
, 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
,@tanuloNev TanuloNev
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 Ora
END
DROP TABLE #CsengetesiRendAdatok
DROP TABLE #Orarend
DROP TABLE #OrarendiOrak
GO

View File

@@ -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_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @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

View File

@@ -0,0 +1,394 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
END
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
@pTanevId INT,
@pIntezmenyId INT,
@pOsztalyId INT,
@pHonap INT,
@pElmeletgyakorlat BIT = 0,
@pMulasztandoOrakszamaTeljesNaposMulasztashoz INT = 3
AS
BEGIN
DECLARE @idoszakEleje DATE = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId);
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
DECLARE @pAtsoroltTanuloAdatok INT = 1;
DECLARE @pMulasztasTipusIdKeses INT = 1499;
DECLARE @pMulasztasTipusIdHianyzas INT = 1500;
--Osztály tanulói
CREATE TABLE #tanulo (Id INT)
INSERT INTO #tanulo
SELECT DISTINCT tcs.c_tanuloid AS Id
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tcs.c_tanuloid
WHERE tcs.torolt='F' AND f.torolt='F' AND tcs.c_tanevid=@pTanevId AND tcs.c_intezmenyid=@pIntezmenyId AND tcs.c_osztalycsoportid=@pOsztalyId;
--Igazolástípusok
CREATE TABLE #igazolastipus (Id INT, Nev NVARCHAR(MAX), Sorrend INT);
INSERT INTO #igazolastipus
SELECT T_IGAZOLASTIPUS_OSSZES.ID AS Id, C_NAME AS Nev, C_ORDER AS Sorrrend
FROM T_IGAZOLASTIPUS_OSSZES
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ON T_IGAZOLASTIPUS_OSSZES.ID = T_DICTIONARYITEMBASE_OSSZES.ID
WHERE T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = @pTanevId AND T_IGAZOLASTIPUS_OSSZES.C_ALINTEZMENYID = @pIntezmenyId AND T_IGAZOLASTIPUS_OSSZES.C_ALTANEVID = @pTanevId
AND T_IGAZOLASTIPUS_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F'
ORDER BY C_ORDER, C_NAME;
--Igazolások és típusai
CREATE TABLE #igazolas (Tanulo INT, IgazoltE NVARCHAR(1), IgazolasTipus INT, Gyakorlati CHAR(1), HianyzasErtek FLOAT, KesettPerc FLOAT)
INSERT INTO #igazolas
SELECT TanuloId AS Tanulo, Igazolt AS IgazoltE, IgazolasTipusa AS IgazolasTipus, IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati) AS Gyakorlati,
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek, KesesPercben AS KesettPerc
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
GROUP BY IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati), TanuloId, Igazolt, IgazolasTipusa, KesesPercben;
--Mulasztások
CREATE TABLE #mulasztas (Nap NVARCHAR(5), Tanulo INT, Osztaly INT, HianyzasErtek FLOAT)
INSERT INTO #mulasztas
SELECT CAST(CAST(DAY(Datum) AS INT) AS NVARCHAR) + (IIF(@pElmeletgyakorlat=0, '', IIF(Gyakorlati = 'T', '_GY', '_E'))) AS Nap, TanuloId AS Tanulo, OsztalyCsoportId AS Osztaly,
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses, CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
GROUP BY CAST(DAY(Datum) AS INT), Gyakorlati, TanuloId, OsztalyCsoportId;
--Teljes napos mulasztások száma
CREATE TABLE #teljesnaposmul (Tanulo INT, HianyzasErtek INT)
INSERT INTO #teljesnaposmul
SELECT Tanulo, SUM(TeljesNapiMul) AS HianyzasErtek
FROM (
SELECT Tanulo, Nap, IIF(SUM(HianyzasErtek) >= @pMulasztandoOrakszamaTeljesNaposMulasztashoz, 1, 0) AS TeljesNapiMul
FROM #mulasztas
GROUP BY Tanulo, Nap
) AS TeljesNapiMulasztasok
GROUP BY Tanulo
DECLARE @query AS NVARCHAR(MAX);
IF @pElmeletgyakorlat=0
BEGIN
DECLARE @colsHeader AS NVARCHAR(MAX);
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @colsSum AS NVARCHAR(MAX);
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev),
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(Id),
@colsSum = ISNULL(@colsSum + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id)
FROM #igazolastipus AS Igazolastipus
ORDER BY Sorrend, Nev;
PRINT @cols;
PRINT @colsSum;
PRINT @colsHeader;
SET @query =
'SELECT
f.c_nyomtatasinev AS COLUMN108,
f.C_OKTATASIAZONOSITO AS COLUMN109,
IIF(m.[1]=0, NULL, FLOOR(m.[1])) AS [1],
IIF(m.[2]=0, NULL, FLOOR(m.[2])) AS [2],
IIF(m.[3]=0, NULL, FLOOR(m.[3])) AS [3],
IIF(m.[4]=0, NULL, FLOOR(m.[4])) AS [4],
IIF(m.[5]=0, NULL, FLOOR(m.[5])) AS [5],
IIF(m.[6]=0, NULL, FLOOR(m.[6])) AS [6],
IIF(m.[7]=0, NULL, FLOOR(m.[7])) AS [7],
IIF(m.[8]=0, NULL, FLOOR(m.[8])) AS [8],
IIF(m.[9]=0, NULL, FLOOR(m.[9])) AS [9],
IIF(m.[10]=0, NULL, FLOOR(m.[10])) AS [10],
IIF(m.[11]=0, NULL, FLOOR(m.[11])) AS [11],
IIF(m.[12]=0, NULL, FLOOR(m.[12])) AS [12],
IIF(m.[13]=0, NULL, FLOOR(m.[13])) AS [13],
IIF(m.[14]=0, NULL, FLOOR(m.[14])) AS [14],
IIF(m.[15]=0, NULL, FLOOR(m.[15])) AS [15],
IIF(m.[16]=0, NULL, FLOOR(m.[16])) AS [16],
IIF(m.[17]=0, NULL, FLOOR(m.[17])) AS [17],
IIF(m.[18]=0, NULL, FLOOR(m.[18])) AS [18],
IIF(m.[19]=0, NULL, FLOOR(m.[19])) AS [19],
IIF(m.[20]=0, NULL, FLOOR(m.[20])) AS [20],
IIF(m.[21]=0, NULL, FLOOR(m.[21])) AS [21],
IIF(m.[22]=0, NULL, FLOOR(m.[22])) AS [22],
IIF(m.[23]=0, NULL, FLOOR(m.[23])) AS [23],
IIF(m.[24]=0, NULL, FLOOR(m.[24])) AS [24],
IIF(m.[25]=0, NULL, FLOOR(m.[25])) AS [25],
IIF(m.[26]=0, NULL, FLOOR(m.[26])) AS [26],
IIF(m.[27]=0, NULL, FLOOR(m.[27])) AS [27],
IIF(m.[28]=0, NULL, FLOOR(m.[28])) AS [28],
IIF(m.[29]=0, NULL, FLOOR(m.[29])) AS [29],
IIF(m.[30]=0, NULL, FLOOR(m.[30])) AS [30],
IIF(m.[31]=0, NULL, FLOOR(m.[31])) AS [31],
FLOOR(OSSZES.MULASZTASOKSZAMA) AS COLUMN2672,
FLOOR(IGAZOLT.IGAZOLTSZAMA) AS COLUMN2568, ' + @colsHeader + ',
FLOOR(IGAZOLATLAN.IGAZOLATLANSZAMA) AS COLUMN1911,
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
IGAZOLTKESES.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN,
IGAZOLATLANKESES.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN
FROM #tanulo AS tanulok
LEFT JOIN (
SELECT Tanulo, ' + @colsSum + '
FROM #igazolas AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols + ')) AS PIVOTTABLE
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT ON IGAZOLASTIPUSOKSZERINT.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, HianyzasErtek
FROM #teljesnaposmul AS teljesnaposmul
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo,
SUM([1]) AS [1],
SUM([2]) AS [2],
SUM([3]) AS [3],
SUM([4]) AS [4],
SUM([5]) AS [5],
SUM([6]) AS [6],
SUM([7]) AS [7],
SUM([8]) AS [8],
SUM([9]) AS [9],
SUM([10]) AS [10],
SUM([11]) AS [11],
SUM([12]) AS [12],
SUM([13]) AS [13],
SUM([14]) AS [14],
SUM([15]) AS [15],
SUM([16]) AS [16],
SUM([17]) AS [17],
SUM([18]) AS [18],
SUM([19]) AS [19],
SUM([20]) AS [20],
SUM([21]) AS [21],
SUM([22]) AS [22],
SUM([23]) AS [23],
SUM([24]) AS [24],
SUM([25]) AS [25],
SUM([26]) AS [26],
SUM([27]) AS [27],
SUM([28]) AS [28],
SUM([29]) AS [29],
SUM([30]) AS [30],
SUM([31]) AS [31]
FROM #mulasztas AS mulasztas
PIVOT (SUM(mulasztas.HianyzasErtek) for Nap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])) pv
GROUP BY Tanulo
) m ON m.Tanulo = tanulok.id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas GROUP BY Tanulo) AS OSSZES ON OSSZES.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLT ON IGAZOLT.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE i.IgazoltE=''F'' GROUP BY Tanulo) AS IGAZOLATLAN ON IGAZOLATLAN.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLTKESES ON IGAZOLTKESES.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS IGAZOLATLANKESES ON IGAZOLATLANKESES.Tanulo = tanulok.Id
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
--GROUP BY f.c_nyomtatasinev, tanulok.Id, f.id
ORDER BY f.c_nyomtatasinev';
exec sp_executesql @query;
END
ELSE
BEGIN
DECLARE @colsHeader_E AS NVARCHAR(MAX);
DECLARE @colsHeader_GY AS NVARCHAR(MAX);
DECLARE @cols_E AS NVARCHAR(MAX);
DECLARE @cols_GY AS NVARCHAR(MAX);
DECLARE @colsSum_E AS NVARCHAR(MAX);
DECLARE @colsSum_GY AS NVARCHAR(MAX);
SELECT @colsHeader_E = ISNULL(@colsHeader_E + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev + ' (elméleti)'),
@colsHeader_GY = ISNULL(@colsHeader_GY + ', ', '') + QUOTENAME(-Id) + ' AS ' + QUOTENAME(Nev + ' (gyakorlati)'),
@cols_E = ISNULL(@cols_E + ', ', '') + QUOTENAME(Id),
@cols_GY = ISNULL(@cols_GY + ', ', '') + QUOTENAME(-Id),
@colsSum_E = ISNULL(@colsSum_E + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id),
@colsSum_GY = ISNULL(@colsSum_GY + ', ', '') + 'SUM( [' + CAST(-Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(-Id)
FROM #igazolastipus AS Igazolastipus
ORDER BY Sorrend, Nev;
SET @query =
'SELECT f.c_nyomtatasinev AS COLUMN108,
f.C_OKTATASIAZONOSITO AS COLUMN109,
IIF(m.[1_E]=0, NULL, FLOOR(m.[1_E])) AS [1 E],
IIF(m.[1_GY]=0, NULL, FLOOR(m.[1_GY])) AS [1 GY],
IIF(m.[2_E]=0, NULL, FLOOR(m.[2_E])) AS [2 E],
IIF(m.[2_GY]=0, NULL, FLOOR(m.[2_GY])) AS [2 GY],
IIF(m.[3_E]=0, NULL, FLOOR(m.[3_E])) AS [3 E],
IIF(m.[3_GY]=0, NULL, FLOOR(m.[3_GY])) AS [3 GY],
IIF(m.[4_E]=0, NULL, FLOOR(m.[4_E])) AS [4 E],
IIF(m.[4_GY]=0, NULL, FLOOR(m.[4_GY])) AS [4 GY],
IIF(m.[5_E]=0, NULL, FLOOR(m.[5_E])) AS [5 E],
IIF(m.[5_GY]=0, NULL, FLOOR(m.[5_GY])) AS [5 GY],
IIF(m.[6_E]=0, NULL, FLOOR(m.[6_E])) AS [6 E],
IIF(m.[6_GY]=0, NULL, FLOOR(m.[6_GY])) AS [6 GY],
IIF(m.[7_E]=0, NULL, FLOOR(m.[7_E])) AS [7 E],
IIF(m.[7_GY]=0, NULL, FLOOR(m.[7_GY])) AS [7 GY],
IIF(m.[8_E]=0, NULL, FLOOR(m.[8_E])) AS [8 E],
IIF(m.[8_GY]=0, NULL, FLOOR(m.[8_GY])) AS [8 GY],
IIF(m.[9_E]=0, NULL, FLOOR(m.[9_E])) AS [9 E],
IIF(m.[9_GY]=0, NULL, FLOOR(m.[9_GY])) AS [9 GY],
IIF(m.[10_E]=0, NULL, FLOOR(m.[10_E])) AS [10 E],
IIF(m.[10_GY]=0, NULL, FLOOR(m.[10_GY])) AS [10 GY],
IIF(m.[11_E]=0, NULL, FLOOR(m.[11_E])) AS [11 E],
IIF(m.[11_GY]=0, NULL, FLOOR(m.[11_GY])) AS [11 GY],
IIF(m.[12_E]=0, NULL, FLOOR(m.[12_E])) AS [12 E],
IIF(m.[12_GY]=0, NULL, FLOOR(m.[12_GY])) AS [12 GY],
IIF(m.[13_E]=0, NULL, FLOOR(m.[13_E])) AS [13 E],
IIF(m.[13_GY]=0, NULL, FLOOR(m.[13_GY])) AS [13 GY],
IIF(m.[14_E]=0, NULL, FLOOR(m.[14_E])) AS [14 E],
IIF(m.[14_GY]=0, NULL, FLOOR(m.[14_GY])) AS [14 GY],
IIF(m.[15_E]=0, NULL, FLOOR(m.[15_E])) AS [15 E],
IIF(m.[15_GY]=0, NULL, FLOOR(m.[15_GY])) AS [15 GY],
IIF(m.[16_E]=0, NULL, FLOOR(m.[16_E])) AS [16 E],
IIF(m.[16_GY]=0, NULL, FLOOR(m.[16_GY])) AS [16 GY],
IIF(m.[17_E]=0, NULL, FLOOR(m.[17_E])) AS [17 E],
IIF(m.[17_GY]=0, NULL, FLOOR(m.[17_GY])) AS [17 GY],
IIF(m.[18_E]=0, NULL, FLOOR(m.[18_E])) AS [18 E],
IIF(m.[18_GY]=0, NULL, FLOOR(m.[18_GY])) AS [18 GY],
IIF(m.[19_E]=0, NULL, FLOOR(m.[19_E])) AS [19 E],
IIF(m.[19_GY]=0, NULL, FLOOR(m.[19_GY])) AS [19 GY],
IIF(m.[20_E]=0, NULL, FLOOR(m.[20_E])) AS [20 E],
IIF(m.[20_GY]=0, NULL, FLOOR(m.[20_GY])) AS [20 GY],
IIF(m.[21_E]=0, NULL, FLOOR(m.[21_E])) AS [21 E],
IIF(m.[21_GY]=0, NULL, FLOOR(m.[21_GY])) AS [21 GY],
IIF(m.[22_E]=0, NULL, FLOOR(m.[22_E])) AS [22 E],
IIF(m.[22_GY]=0, NULL, FLOOR(m.[22_GY])) AS [22 GY],
IIF(m.[23_E]=0, NULL, FLOOR(m.[23_E])) AS [23 E],
IIF(m.[23_GY]=0, NULL, FLOOR(m.[23_GY])) AS [23 GY],
IIF(m.[24_E]=0, NULL, FLOOR(m.[24_E])) AS [24 E],
IIF(m.[24_GY]=0, NULL, FLOOR(m.[24_GY])) AS [24 GY],
IIF(m.[25_E]=0, NULL, FLOOR(m.[25_E])) AS [25 E],
IIF(m.[25_GY]=0, NULL, FLOOR(m.[25_GY])) AS [25 GY],
IIF(m.[26_E]=0, NULL, FLOOR(m.[26_E])) AS [26 E],
IIF(m.[26_GY]=0, NULL, FLOOR(m.[26_GY])) AS [26 GY],
IIF(m.[27_E]=0, NULL, FLOOR(m.[27_E])) AS [27 E],
IIF(m.[27_GY]=0, NULL, FLOOR(m.[27_GY])) AS [27 GY],
IIF(m.[28_E]=0, NULL, FLOOR(m.[28_E])) AS [28 E],
IIF(m.[28_GY]=0, NULL, FLOOR(m.[28_GY])) AS [28 GY],
IIF(m.[29_E]=0, NULL, FLOOR(m.[29_E])) AS [29 E],
IIF(m.[29_GY]=0, NULL, FLOOR(m.[29_GY])) AS [29 GY],
IIF(m.[30_E]=0, NULL, FLOOR(m.[30_E])) AS [30 E],
IIF(m.[30_GY]=0, NULL, FLOOR(m.[30_GY])) AS [30 GY],
IIF(m.[31_E]=0, NULL, FLOOR(m.[31_E])) AS [31 E],
FLOOR(osszes_e.MULASZTASOKSZAMA) AS COLUMN2672_E,
FLOOR(igazolt_e.IGAZOLTSZAMA) AS COLUMN2568_E,
' + @colsHeader_E + ',
FLOOR(igazolatlan_e.IGAZOLATLANSZAMA) AS COLUMN1911_E,
FLOOR(osszes_gy.MULASZTASOKSZAMA) AS COLUMN2672_GY,
FLOOR(igazolt_gy.IGAZOLTSZAMA) AS COLUMN2568_GY,
' + @colsHeader_GY + ',
FLOOR(igazolatlan_gy.IGAZOLATLANSZAMA) AS COLUMN1911_GY,
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
igazoltkeses_e.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_E,
igazoltkeses_gy.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_GY,
igazolatlankeses_e.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_E,
igazolatlankeses_gy.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_GY
FROM #tanulo AS tanulok
LEFT JOIN (
SELECT Tanulo, ' + @colsSum_E + '
FROM (
SELECT *
FROM #igazolas AS igazolasok
WHERE Gyakorlati = ''F'' OR Gyakorlati IS NULL
) AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_E + ')) AS PIVOTTABLE_E
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT_E ON IGAZOLASTIPUSOKSZERINT_E.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, ' + @colsSum_Gy + '
FROM (
SELECT Tanulo, IgazoltE, -IgazolasTipus AS IgazolasTipus, Gyakorlati, HianyzasErtek
FROM #igazolas AS igazolasok
WHERE Gyakorlati = ''T''
) AS igazolasok
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_GY + ')) AS PIVOTTABLE_GY
GROUP BY Tanulo
) AS IGAZOLASTIPUSOKSZERINT_GY ON IGAZOLASTIPUSOKSZERINT_GY.Tanulo = tanulok.Id
LEFT JOIN (
SELECT Tanulo, HianyzasErtek
FROM #teljesnaposmul AS teljesnaposmul
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
LEFT JOIN (
SELECT
Tanulo,
SUM([1_E]) AS [1_E],
SUM([2_E]) AS [2_E],
SUM([3_E]) AS [3_E],
SUM([4_E]) AS [4_E],
SUM([5_E]) AS [5_E],
SUM([6_E]) AS [6_E],
SUM([7_E]) AS [7_E],
SUM([8_E]) AS [8_E],
SUM([9_E]) AS [9_E],
SUM([10_E]) AS [10_E],
SUM([11_E]) AS [11_E],
SUM([12_E]) AS [12_E],
SUM([13_E]) AS [13_E],
SUM([14_E]) AS [14_E],
SUM([15_E]) AS [15_E],
SUM([16_E]) AS [16_E],
SUM([17_E]) AS [17_E],
SUM([18_E]) AS [18_E],
SUM([19_E]) AS [19_E],
SUM([20_E]) AS [20_E],
SUM([21_E]) AS [21_E],
SUM([22_E]) AS [22_E],
SUM([23_E]) AS [23_E],
SUM([24_E]) AS [24_E],
SUM([25_E]) AS [25_E],
SUM([26_E]) AS [26_E],
SUM([27_E]) AS [27_E],
SUM([28_E]) AS [28_E],
SUM([29_E]) AS [29_E],
SUM([30_E]) AS [30_E],
SUM([31_E]) AS [31_E],
SUM([1_GY]) AS [1_GY],
SUM([2_GY]) AS [2_GY],
SUM([3_GY]) AS [3_GY],
SUM([4_GY]) AS [4_GY],
SUM([5_GY]) AS [5_GY],
SUM([6_GY]) AS [6_GY],
SUM([7_GY]) AS [7_GY],
SUM([8_GY]) AS [8_GY],
SUM([9_GY]) AS [9_GY],
SUM([10_GY]) AS [10_GY],
SUM([11_GY]) AS [11_GY],
SUM([12_GY]) AS [12_GY],
SUM([13_GY]) AS [13_GY],
SUM([14_GY]) AS [14_GY],
SUM([15_GY]) AS [15_GY],
SUM([16_GY]) AS [16_GY],
SUM([17_GY]) AS [17_GY],
SUM([18_GY]) AS [18_GY],
SUM([19_GY]) AS [19_GY],
SUM([20_GY]) AS [20_GY],
SUM([21_GY]) AS [21_GY],
SUM([22_GY]) AS [22_GY],
SUM([23_GY]) AS [23_GY],
SUM([24_GY]) AS [24_GY], SUM([25_GY]) AS [25_GY], SUM([26_GY]) AS [26_GY], SUM([27_GY]) AS [27_GY], SUM([28_GY]) AS [28_GY], SUM([29_GY]) AS [29_GY],SUM([30_GY]) AS [30_GY], SUM([31_GY]) AS [31_GY]
FROM #mulasztas AS m
PIVOT (SUM(HianyzasErtek) for Nap in
(
[1_E],[2_E],[3_E],[4_E],[5_E],[6_E],[7_E],[8_E],[9_E],[10_E],[11_E],[12_E],[13_E],[14_E],[15_E],[16_E],[17_E],[18_E],[19_E],[20_E],[21_E],[22_E],[23_E],[24_E],[25_E],[26_E],[27_E],[28_E],[29_E],[30_E],[31_E],
[1_GY],[2_GY],[3_GY],[4_GY],[5_GY],[6_GY],[7_GY],[8_GY],[9_GY],[10_GY],[11_GY],[12_GY],[13_GY],[14_GY],[15_GY],[16_GY],[17_GY],[18_GY],[19_GY],[20_GY],[21_GY],[22_GY],[23_GY],[24_GY],[25_GY],[26_GY],[27_GY],[28_GY],[29_GY],[30_GY],[31_GY]
)
) pv
GROUP BY Tanulo
) m ON m.Tanulo = tanulok.id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) GROUP BY Tanulo) AS Osszes_E ON Osszes_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_E ON Igazolt_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_E ON Igazolatlan_E.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE Gyakorlati = ''T'' GROUP BY Tanulo) AS Osszes_Gy ON Osszes_Gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_Gy ON Igazolt_Gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_Gy ON Igazolatlan_Gy.Tanulo = tanulok.Id'
SET @query +=
' LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_e ON igazoltkeses_e.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_gy ON igazoltkeses_gy.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_e ON igazolatlankeses_e.Tanulo = tanulok.Id
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_gy ON igazolatlankeses_gy.Tanulo = tanulok.Id
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
ORDER BY f.c_nyomtatasinev';
exec sp_executesql @query;
END
DROP TABLE #mulasztas
DROP TABLE #tanulo
DROP TABLE #igazolas
DROP TABLE #igazolastipus
DROP TABLE #teljesnaposmul
END
GO

View File

@@ -0,0 +1,73 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetTanarOrarendLefedettseg]
GO
CREATE PROCEDURE [dbo].[sp_GetTanarOrarendLefedettseg]
@intezmenyId int,
@tanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @AktivtanevId INT = (SELECT Id FROM T_TANEV_OSSZES tanev WHERE C_AKTIV='T' AND C_INTEZMENYID = @intezmenyId AND TOROLT = 'F')
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 C_KEZDONAP from T_TANEV_OSSZES WHERE ID = @tanevid)
,@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
--Órarendi lefedettség
CREATE TABLE #csoportok (CsoportId INT, Pedagogus NVARCHAR(MAX), CsoportTipus NVARCHAR(MAX), Oraszam float, Hetirend NVARCHAR(MAX))
INSERT INTO #csoportok
SELECT DISTINCT
cs.ID
,f.C_NYOMTATASINEV
,d.C_NAME
,fog.C_ORASZAM
,Hetirend.C_NAME
FROM T_FOGLALKOZAS_OSSZES fog
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = fog.C_OSZTALYCSOPORTID AND cs.TOROLT='F' AND cs.C_ALTANEVID=@tanevId
LEFT JOIN T_OSZTALY_OSSZES o ON o.Id = fog.C_OSZTALYCSOPORTID AND o.TOROLT='F' AND o.C_ALTANEVID=@tanevId
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.C_FOGLALKOZASID = fog.ID
AND C_ORAERVENYESSEGKEZDETE <= @IdoszakVege
AND C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND oo.C_TANEVID=@tanevid
AND oo.torolt='F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID=fog.C_TANARID AND f.C_INTEZMENYID=@intezmenyId AND f.C_TANEVID=@tanevid AND f.TOROLT='F'
LEFT JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d)d ON d.ID=cs.C_TIPUSA
INNER JOIN (SELECT DISTINCT d.ID, d.C_NAME FROM T_DICTIONARYITEMBASE_OSSZES d) Hetirend ON Hetirend.ID=oo.C_HETIREND
SELECT Pedagogus COLUMN456, ISNULL(CsoportTipus, 'Osztály') COLUMN262, SUM(Oraszam) COLUMN3670 FROM #csoportok cs GROUP BY Pedagogus, CsoportTipus ORDER BY Pedagogus, ISNULL(CsoportTipus, 'Osztály')
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT DISTINCT @cols= ISNULL(@cols + ',','') + QUOTENAME(Hetirend) FROM #csoportok
SET @query='SELECT DISTINCT Pedagogus COLUMN456, ISNULL(CsoportTipus, ''Osztály'') COLUMN262, '+@cols+' FROM #csoportok cs PIVOT (SUM(Oraszam) FOR Hetirend IN ('+@cols+')) pv ORDER BY Pedagogus, ISNULL(CsoportTipus, ''Osztály'')'
EXEC sp_executesql @query;
DROP TABLE #csoportok
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 C_KEZDONAP from T_TANEV_OSSZES WHERE ID = @tanevid)
,@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

View File

@@ -0,0 +1,212 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_Global_SetSystemSettingsDefaultData') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_Global_SetSystemSettingsDefaultData]
END
GO
CREATE PROCEDURE [dbo].[sp_Global_SetSystemSettingsDefaultData]
@intezmenyID int,
@tanevID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TEMP_RENDSZERBEALLITAS TABLE (
C_BEALLITASTIPUS INT not null,
C_ERTEKTIPUS INT not null,
C_ALAPERTEK NVARCHAR(MAX) null,
C_ERTEK NVARCHAR(MAX) not null,
SERIAL INT null,
CREATOR INT null,
C_INTEZMENYID INT not null,
C_TANEVID INT not null
)
--SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE d WHERE C_TYPE = 'NapTipus'
DECLARE @felevVegeDatum nvarchar(50) = COALESCE(
(SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1400 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID AND TOROLT = 'F' AND C_OSSZESCSOPORTRAVONATKOZIK = 'T')
,CONVERT(nvarchar, DATEPART(YEAR, (SELECT C_UTOLSONAP FROM T_TANEV_OSSZES WHERE ID = @tanevID))) + '-02-01'
,CONVERT(nvarchar, DATEPART(YEAR, (SELECT MAX(C_NAPDATUMA) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT='F'))) + '-02-01')
DECLARE @evVegeDatum nvarchar(50) = COALESCE(
(SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID AND TOROLT = 'F' AND C_OSSZESCSOPORTRAVONATKOZIK = 'T')
,(SELECT FORMAT(C_UTOLSOTANITASINAP, 'yyyy-MM-dd') FROM T_TANEV_OSSZES WHERE ID = @tanevID)
,CONVERT(nvarchar, DATEPART(YEAR, (SELECT MAX(C_NAPDATUMA) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT='F'))) + '-06-15')
DECLARE @evElsoNapja nvarchar(50) = COALESCE(
(SELECT FORMAT(C_KEZDONAP, 'yyyy-MM-dd') FROM T_TANEV_OSSZES WHERE ID = @tanevID)
,CONVERT(nvarchar, DATEPART(YEAR, (SELECT MIN(C_NAPDATUMA) FROM T_NAPTARINAP_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT='F'))) + '-09-01')
DECLARE @osszefuggoGyakorlatKezdDatum nvarchar(50) = COALESCE((SELECT FORMAT(DATEADD(DAY, 1, C_DATUM), 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID AND TOROLT = 'F' AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'), (SELECT FORMAT(DATEADD(DAY, 1, C_UTOLSOTANITASINAP), 'yyyy-MM-dd') FROM T_TANEV WHERE C_INTEZMENYID = @intezmenyID AND ID = @tanevID))
DECLARE @osszefuggoGyakorlatVegDatum nvarchar(50) = (SELECT FORMAT(DATEADD(YEAR, 1, DATEADD(DAY, -1, C_KEZDONAP)), 'yyyy-MM-dd') FROM T_TANEV WHERE C_INTEZMENYID = @intezmenyID AND ID = @tanevID)
DECLARE @I_negyedevDatum nvarchar(50) = ISNULL((SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1403 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID AND TOROLT = 'F' AND C_OSSZESCSOPORTRAVONATKOZIK = 'T')
,@felevVegeDatum);
DECLARE @II_negyedevDatum nvarchar(50) = @felevVegeDatum;
DECLARE @III_negyedevDatum nvarchar(50) = ISNULL((SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1404 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID AND TOROLT = 'F' AND C_OSSZESCSOPORTRAVONATKOZIK = 'T')
,@evVegeDatum);
DECLARE @IV_negyedevDatum nvarchar(50) = @evVegeDatum;
DECLARE @tmp TABLE (options nvarchar(MAX))
INSERT INTO @tmp
SELECT '{"Selected":false,"Text":"' + ISNULL(C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}' from T_DICTIONARYITEMBASE where C_TYPE like '%MunkakorTipus%' and C_INTEZMENYID = @intezmenyID and C_TANEVID = @tanevID and TOROLT = 'F' order by C_VALUE
DECLARE @optionList nVARCHAR(MAX)
SELECT @optionList = COALESCE(@optionList + ', ', '') + options FROM @tmp
SET @optionList = ISNULL(@optionList, '')
DECLARE @ErtekelesTipusoktmp TABLE (options nvarchar(MAX))
INSERT INTO @ErtekelesTipusoktmp
SELECT '{"Selected":false,"Text":"' + ISNULL(C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}' from T_DICTIONARYITEMBASE where C_TYPE like 'ErtekelesTipus' and C_INTEZMENYID = @intezmenyID and C_TANEVID = @tanevID and TOROLT = 'F' order by C_VALUE
DECLARE @ErtekelesTipusOptionList nVARCHAR(MAX)
SELECT @ErtekelesTipusOptionList = COALESCE(@ErtekelesTipusOptionList + ', ', '') + options FROM @ErtekelesTipusoktmp
SET @ErtekelesTipusOptionList = ISNULL(@ErtekelesTipusOptionList, '')
DECLARE @ErtekelesModoktmp TABLE (options nvarchar(MAX))
INSERT INTO @ErtekelesModoktmp
SELECT '{"Selected":'+IIF(C_NAME = 'Írásbeli témazáró dolgozat','true','false')+',"Text":"' + ISNULL(C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}' from T_DICTIONARYITEMBASE where C_TYPE like 'ErtekelesMod' and C_INTEZMENYID = @intezmenyID and C_TANEVID = @tanevID and TOROLT = 'F' order by C_VALUE
DECLARE @ErtekelesModOptionList nVARCHAR(MAX)
SELECT @ErtekelesModOptionList = COALESCE(@ErtekelesModOptionList + ', ', '') + options FROM @ErtekelesModoktmp
SET @ErtekelesModOptionList = ISNULL(@ErtekelesModOptionList, '')
DECLARE @csoportTipusokTemp TABLE (options nvarchar(MAX))
INSERT INTO @csoportTipusokTemp
SELECT '{"Selected":false,"Text":"' + ISNULL(C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}' from T_DICTIONARYITEMBASE where C_TYPE like '%CsoportTipus%' and C_INTEZMENYID = @intezmenyID and C_TANEVID = @tanevID and TOROLT = 'F' order by C_VALUE
DECLARE @csoportTipusList nVARCHAR(MAX)
SELECT @csoportTipusList = COALESCE(@csoportTipusList + ', ', '') + options FROM @csoportTipusokTemp
SET @csoportTipusList = ISNULL(@csoportTipusList, '')
INSERT INTO @TEMP_RENDSZERBEALLITAS (C_BEALLITASTIPUS, C_ERTEKTIPUS, C_ALAPERTEK, C_ERTEK, SERIAL, CREATOR, C_INTEZMENYID, C_TANEVID)
VALUES
(1666, 1699, '{"Id":"Tanulo_sajatos_nevelesi_igenyenek_szocialis_es_tanugyi_adatainak_kezelese","Value":true}', '{"Id":"Tanulo_sajatos_nevelesi_igenyenek_szocialis_es_tanugyi_adatainak_kezelese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1667, 1699, '{"Id":"Tanulo_vallasi_adatainak_kezelese","Value":"false"}', '{"Id":"Tanulo_vallasi_adatainak_kezelese","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1818, 1699, '{"Id":"Tanulo_sportoloi_adatainak_kezelese","Value":"false"}', '{"Id":"Tanulo_sportoloi_adatainak_kezelese","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1668, 1699, '{"Id":"Tanulok_osztalyok_kozotti_atsorolasa_eseten_a_csoportbontasokbol_valo_kilepteteset_is_automatikusan_elvegezze_a_program","Value":"true"}', '{"Id":"Tanulok_osztalyok_kozotti_atsorolasa_eseten_a_csoportbontasokbol_valo_kilepteteset_is_automatikusan_elvegezze_a_program","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1669, 1699, '{"Id":"A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben","Value":"true"}', '{"Id":"A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1670, 1699, '{"Id":"A_tanulok_ertekeleseinel_az_ertekelesek_sulyszamainak_megjelenitese","Value":"true"}', '{"Id":"A_tanulok_ertekeleseinel_az_ertekelesek_sulyszamainak_megjelenitese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1671, 1699, '{"Id":"Pedagogusok_sajat_orarendjeiket_modosithatjak_az_elektronikus_naploban","Value":"false"}', '{"Id":"Pedagogusok_sajat_orarendjeiket_modosithatjak_az_elektronikus_naploban","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1672, 1698, '{"Id":"A_haladasi_naplo_csak_az_alabbiak_szerint_toltheto_ki_utolag_naplozni_","Options":[{"Selected":true,"Text":"Akármit felvehet","Value":"1"},{"Selected":false,"Text":"Csak tantárgyfelosztás alapján","Value":"2"},{"Selected":false,"Text":"Semmit","Value":"3"}]}', '{"Id":"A_haladasi_naplo_csak_az_alabbiak_szerint_toltheto_ki_utolag_naplozni_","Options":[{"Selected":true,"Text":"Akármit felvehet","Value":"1"},{"Selected":false,"Text":"Csak tantárgyfelosztás alapján","Value":"2"},{"Selected":false,"Text":"Semmit","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(1673, 1699, '{"Id":"A_haladasi_naploba_orankent_csak_egy_tanora_rogzitheto","Value":"true"}', '{"Id":"A_haladasi_naploba_orankent_csak_egy_tanora_rogzitheto","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1674, 1699, '{"Id":"Elmaradt_tanitasi_ora_rogzitesenek_tiltasa","Value":"false"}', '{"Id":"Elmaradt_tanitasi_ora_rogzitesenek_tiltasa","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1675, 1699, '{"Id":"Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban","Value":"false"}', '{"Id":"Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1676, 1699, '{"Id":"A_tanarok_csak_a_sajat_tantargyfelosztasukban_szereplo_osztalyok_csoportok_tanuloit_ertekelhetik","Value":"true"}', '{"Id":"A_tanarok_csak_a_sajat_tantargyfelosztasukban_szereplo_osztalyok_csoportok_tanuloit_ertekelhetik","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1677, 1699, '{"Id":"Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait","Value":"false"}', '{"Id":"Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1678, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1679, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1680, 1699, '{"Id":"Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait","Value":"false"}', 0 ,1, @intezmenyID, @tanevID),
(1764, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1681, 1699, '{"Id":"Ertekelesnel_a_naplojegyek_atlaga_megjelenik","Value":"true"}', '{"Id":"Ertekelesnel_a_naplojegyek_atlaga_megjelenik","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1682, 1698, '{"Id":"Magantanulo_oralatogatas_aloli_mentessegenek_kezelese","Options":[{"Selected":true,"Text":"Nem kell megjelennie","Value":"1"},{"Selected":false,"Text":"Csak gyakorlaton","Value":"2"},{"Selected":false,"Text":"Minden órán","Value":"3"}]}', '{"Id":"Magantanulo_oralatogatas_aloli_mentessegenek_kezelese","Options":[{"Selected":true,"Text":"Nem kell megjelennie","Value":"1"},{"Selected":false,"Text":"Csak gyakorlaton","Value":"2"},{"Selected":false,"Text":"Minden órán","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(1683, 1699, '{"Id":"Az_iskolaerdeku_tavollet_tipusu_igazolasok_beleszamitanak_a_tanulo_osszes_mulasztasaba","Value":"true"}', '{"Id":"Az_iskolaerdeku_tavollet_tipusu_igazolasok_beleszamitanak_a_tanulo_osszes_mulasztasaba","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1684, 1699, '{"Id":"Osztalyfonok_szamara_tiltott_a_mulasztasi_adatok_modositasa","Value":"false"}', '{"Id":"Osztalyfonok_szamara_tiltott_a_mulasztasi_adatok_modositasa","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1685, 1699, '{"Id":"A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata","Value":"true"}', '{"Id":"A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(2882, 2884, '{"Id":"Az_elektronikus_naplo_megjelenesenek_kezdoidopontja","Time":"07:00:00"}', '{"Id":"Az_elektronikus_naplo_megjelenesenek_kezdoidopontja","Time":"07:00:00"}', 0, 1, @intezmenyID, @tanevID),
(2883, 2884, '{"Id":"Az_elektronikus_naplo_megjelenesenek_zaroidopontja","Time":"18:00:00"}', '{"Id":"Az_elektronikus_naplo_megjelenesenek_zaroidopontja","Time":"18:00:00"}', 0, 1, @intezmenyID, @tanevID),
(2874, 2886, '{"Id":"Szakszeru_helyettesites_eseten_az_elszamolt_oraszam","Value":"1"}', '{"Id":"Szakszeru_helyettesites_eseten_az_elszamolt_oraszam","Value":"1"}', 0, 1, @intezmenyID, @tanevID),
(2875, 2886, '{"Id":"Nem_szakszeru_felugyelet_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.5"}', '{"Id":"Nem_szakszeru_felugyelet_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.5"}', 0, 1, @intezmenyID, @tanevID),
(2876, 2886, '{"Id":"Oraosszevonasos_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.3"}', '{"Id":"Oraosszevonasos_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.3"}', 0, 1, @intezmenyID, @tanevID),
(2877, 1699, '{"Id":"Lehet_e_helyettesites_tulora","Value":"false"}', '{"Id":"Lehet_e_helyettesites_tulora","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(3006, 1699, '{"Id":"Tanar_vehet_e_fel_orat_maganak","Value":"true"}', '{"Id":"Tanar_vehet_e_fel_orat_maganak","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3015, 1699, '{"Id":"Lehet_orat_felvenni_TTF_nelkul","Value":"true"}', '{"Id":"Lehet_orat_felvenni_TTF_nelkul","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3037, 1699, '{"Id":"Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato","Value":"true"}', '{"Id":"Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3039, 2886, '{"Id":"Egy_statuszra_juto_kotelezo_oraszam","Value":"22"}', '{"Id":"Egy_statuszra_juto_kotelezo_oraszam","Value":"22"}', 0, 1, @intezmenyID, @tanevID),
(2885, 1698, '{"Id":"Tanulo_felhasznaloi_nev_generalas_modja","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', '{"Id":"Tanulo_felhasznaloi_nev_generalas_modja","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3074, 1699, '{"Id":"helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando","Value":"false"}', '{"Id":"helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando","Value":"false"}', 0, 1,@intezmenyID,@tanevID),
(3075, 1699, '{"Id":"tanitasiOra_sorszamozas_mod","Value":"true"}', '{"Id":"tanitasiOra_sorszamozas_mod","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3076, 1696, '{"Id":"Ertekeles_datumanak_minimuma","Date":"' + @evElsoNapja + '"}', '{"Id":"Ertekeles_datumanak_minimuma","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(5222, 1697, '{"Id":"Ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"TTF","Value":"1"},{"Selected":false,"Text":"Osztályfőnök","Value":"2"},{"Selected":false,"Text":"Bárki","Value":"3"}]}', '{"Id":"Ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"TTF","Value":"1"},{"Selected":false,"Text":"Osztályfőnök","Value":"2"},{"Selected":false,"Text":"Bárki","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3078, 1699, '{"Id":"tanitasiOra_sorszamozas_csoportbontas","Value":"true"}', '{"Id":"tanitasiOra_sorszamozas_csoportbontas","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3079, 1697, '{"Id":"Havi_vagy_heti_naplozaras","Options":[{"Selected":false,"Text":"Havi","Value":"1"},{"Selected":false,"Text":"Heti","Value":"2"},{"Selected":true,"Text":"Nincs megadva","Value":"3"}]}', '{"Id":"Havi_vagy_heti_naplozaras","Options":[{"Selected":false,"Text":"Havi","Value":"1"},{"Selected":false,"Text":"Heti","Value":"2"},{"Selected":true,"Text":"Nincs megadva","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3080, 2886 ,'{"Id":"Naplozaras_havi_ertek","Value":"28"}', '{"Id":"Naplozaras_havi_ertek","Value":"28"}', 0, 1, @intezmenyID, @tanevID),
(3081, 2886, '{"Id":"Naplozaras_heti_ertek","Value":"6"}' , '{"Id":"Naplozaras_heti_ertek","Value":"6"}', 0, 1, @intezmenyID, @tanevID),
(3082, 1696, '{"Id":"Naplozaras_eves_datuma","Date":"' + @evElsoNapja + '"}', '{"Id":"Naplozaras_eves_datuma","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(3083, 2884, '{"Id":"Nem_kotott_munkaido_megjelenesenek_kezdoidopontja","Time":"10:00:00"}', '{"Id":"Nem_kotott_munkaido_megjelenesenek_kezdoidopontja","Time":"10:00:00"}', 0, 1, @intezmenyID, @tanevID),
(3084, 2884, '{"Id":"Nem_kotott_munkaido_megjelenesenek_zaroidopontja","Time":"15:00:00"}', '{"Id":"Nem_kotott_munkaido_megjelenesenek_zaroidopontja","Time":"15:00:00"}', 0, 1, @intezmenyID, @tanevID),
(5223, 1697, '{"Id":"Magatartas_szorgalom_ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"Osztályfőnök","Value":"1"},{"Selected":false,"Text":"TTF","Value":"2"}]}', '{"Id":"Magatartas_szorgalom_ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"Osztályfőnök","Value":"1"},{"Selected":false,"Text":"TTF","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(5225, 1698, '{"Id":"Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}','{"Id":"Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5226, 1698, '{"Id":"Gondviselo_felhasznalonev_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', '{"Id":"Gondviselo_felhasznalonev_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5227, 1698, '{"Id":"Gondviselo_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}','{"Id":"Gondviselo_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5261, 1698, '{"Id":"Napirend_felvitelel_utkozes_figyeles","Options":[{"Selected":true,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":false,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', '{"Id":"Napirend_felvitelel_utkozes_figyeles","Options":[{"Selected":true,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":false,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5436, 1699, '{"Id":"Osztalyfonok_ertekeles_osszes_targybol","Value":false}', '{"Id":"Osztalyfonok_ertekeles_osszes_targybol","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(5437, 1699, '{"Id":"Ora_sorszamozasat_naplozo_pedagogus_eldontheti","Value":true}', '{"Id":"Ora_sorszamozasat_naplozo_pedagogus_eldontheti","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7362, 1696, '{"Id":"I_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @I_negyedevDatum + '"}', '{"Id":"I_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @I_negyedevDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(7363, 1696, '{"Id":"II_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @II_negyedevDatum + '"}', '{"Id":"II_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @II_negyedevDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(7364, 1696, '{"Id":"III_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @III_negyedevDatum + '"}', '{"Id":"III_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @III_negyedevDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(7365, 1696, '{"Id":"IV_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @IV_negyedevDatum + '"}', '{"Id":"IV_Negyedeves_jegyek_megjelenesenek_datuma","Date":"' + @IV_negyedevDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5438, 1696, '{"Id":"Felevi_jegyek_megjelenesenek_datuma","Date":"' + @felevVegeDatum + '"}', '{"Id":"Felevi_jegyek_megjelenesenek_datuma","Date":"' + @felevVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5439, 1696, '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma","Date":"' + @evVegeDatum + '"}', '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma","Date":"' + @evVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5440, 1696, '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma_vegzos","Date":"' + @evVegeDatum + '"}', '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma_vegzos","Date":"' + @evVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5441, 5442, '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + @optionList + ']}', '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + @optionList + ']}', 0, 1, @intezmenyID, @tanevID),
(5449, 1698, '{"Id":"Naplozaskor_mulasztas_szazalek_szamitas","Options":[{"Selected":true,"Text":"Egész éves óraszám alapján","Value":"1"},{"Selected":false,"Text":"Megtartott óraszám alapján","Value":"2"}]}', '{"Id":"Naplozaskor_mulasztas_szazalek_szamitas","Options":[{"Selected":true,"Text":"Egész éves óraszám alapján","Value":"1"},{"Selected":false,"Text":"Megtartott óraszám alapján","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(6717, 1699, '{"Id":"Naplozas_terem_befogadokepesseg","Value":true}', '{"Id":"Naplozas_terem_befogadokepesseg","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6764, 5442, '{"Id":"Tanorahoz_tartozo_csoportok","Options":[' + @csoportTipusList + ']}', '{"Id":"Tanorahoz_tartozo_csoportok","Options":[' + @csoportTipusList + ']}', 0, 1, @intezmenyID, @tanevID),
(6765, 1699, '{"Id":"Tanulo_Egy_Tanev_Egy_Evfolyam","Value":true}', '{"Id":"Tanulo_Egy_Tanev_Egy_Evfolyam","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6766, 1699, '{"Id":"Naplo_Tanulo_Aktualis_Osztaly_Ertekelesei_Mulasztasai","Value":true}', '{"Id":"Naplo_Tanulo_Aktualis_Osztaly_Ertekelesei_Mulasztasai","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6767, 1699, '{"Id":"Gondviselo_Auto_Email","Value":false}', '{"Id":"Gondviselo_Auto_Email","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(6768, 1699, '{"Id":"Feljegyzes_Osszes_Osztaly","Value":true}', '{"Id":"Feljegyzes_Osszes_Osztaly","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6769, 1699, '{"Id":"Csoportvezeto_Tanulo_Adat_Modositas","Value":true}', '{"Id":"Csoportvezeto_Tanulo_Adat_Modositas","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6770, 1699, '{"Id":"Csoportvezeto_Tanora_Celu_Csoportok","Value":false}', '{"Id":"Csoportvezeto_Tanora_Celu_Csoportok","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(6830, 1699, '{"Id":"SuccessFeedBack_Disable","Value":false}', '{"Id":"SuccessFeedBack_Disable","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(6854, 1699, '{"Id":"Magatartas_Szorgalom_Ertekeles_Csak_Ofokent","Value":true}', '{"Id":"Magatartas_Szorgalom_Ertekeles_Csak_Ofokent","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6941, 1698, '{"Id":"Teremutkozes_figyeles","Options":[{"Selected":false,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":true,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', '{"Id":"Teremutkozes_figyeles","Options":[{"Selected":false,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":true,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(7094, 1699, '{"Id":"Diak_altali_hazifeladatok_rogzitese","Value":true}', '{"Id":"Diak_altali_hazifeladatok_rogzitese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7106, 1696, '{"Id":"Osszefuggo_gyakorlat_kezd_datum","Date":"' + @osszefuggoGyakorlatKezdDatum + '"}', '{"Id":"Osszefuggo_gyakorlat_kezd_datum","Date":"' + @osszefuggoGyakorlatKezdDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(7107, 1696, '{"Id":"Osszefuggo_gyakorlat_veg_datum","Date":"' + @osszefuggoGyakorlatVegDatum + '"}', '{"Id":"Osszefuggo_gyakorlat_veg_datum","Date":"' + @osszefuggoGyakorlatVegDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(7108, 1699, '{"Id":"Osszefuggo_gyakorlat_egyedi_rogzites","Value":"false"}', '{"Id":"Osszefuggo_gyakorlat_egyedi_rogzites","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(7130, 2886 ,'{"Id":"Ervenyes_tanitasi_nap_oraszam","Value":"3"}', '{"Id":"Ervenyes_tanitasi_nap_oraszam","Value":"3"}', 0, 1, @intezmenyID, @tanevID),
(7131, 1698, '{"Id":"Ertekelesek_Mulasztasok_Feljegyzesek_Kezelese_Osztalyvaltas_Eseten","Options":[{"Selected":false,"Text":"Semelyiket","Value":"0"},{"Selected":true,"Text":"Csak a közös tárgyakét(feljegyzéseknél mindegyiket)","Value":"1"},{"Selected":false,"Text":"Mindegyiket","Value":"2"}]}', '{"Id":"Ertekelesek_Mulasztasok_Feljegyzesek_Kezelese_Osztalyvaltas_Eseten","Options":[{"Selected":false,"Text":"Semelyiket","Value":"0"},{"Selected":true,"Text":"Csak a közös tárgyakét(feljegyzéseknél mindegyiket)","Value":"1"},{"Selected":false,"Text":"Mindegyiket","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(7132, 1698, '{"Id":"Ertekelesek_Mulasztasok_Feljegyzesek_Kezelese_Evfolyamvaltas_Eseten","Options":[{"Selected":true,"Text":"Semelyiket","Value":"0"},{"Selected":false,"Text":"Csak a közös tárgyakét(feljegyzéseknél mindegyiket)","Value":"1"},{"Selected":false,"Text":"Mindegyiket","Value":"2"}]}', '{"Id":"Ertekelesek_Mulasztasok_Feljegyzesek_Kezelese_Evfolyamvaltas_Eseten","Options":[{"Selected":true,"Text":"Semelyiket","Value":"0"},{"Selected":false,"Text":"Csak a közös tárgyakét(feljegyzéseknél mindegyiket)","Value":"1"},{"Selected":false,"Text":"Mindegyiket","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(7360, 5442, '{"Id":"Tanar_Feluleten_Orarend_Lathatosag","Options":[{"Selected":false,"Text":"Tanári órarendek","Value":"TanariOrarendKereso"}, {"Selected":false,"Text":"Osztály órarendek","Value":"OsztalyOrarendKereso"}, {"Selected":false,"Text":"Terem órarendek","Value":"TeremOrarendKereso"}]}', '{"Id":"Tanar_Feluleten_Orarend_Lathatosag","Options":[{"Selected":false,"Text":"Tanári órarendek","Value":"TanariOrarendKereso"}, {"Selected":false,"Text":"Osztály órarendek","Value":"OsztalyOrarendKereso"}, {"Selected":false,"Text":"Terem órarendek","Value":"TeremOrarendKereso"}]}', 0, 1, @intezmenyID, @tanevID),
(7361, 1699, '{"Id":"Tanora_Tema_Az_Ellenorzoben","Value":"true"}', '{"Id":"Tanora_Tema_Az_Ellenorzoben","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7375, 1699, '{"Id":"Csokkentett_gondviselok_kezelese","Value":"true"}', '{"Id":"Csokkentett_gondviselok_kezelese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7380, 1697, '{"Id":"Ertekelesek_megjelenese_az_ellenorzo_modulban","Options":[{"Selected":true,"Text":"Nincs késletetés","Value":"0"},{"Selected":false,"Text":"6 óra","Value":"6"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', '{"Id":"Ertekelesek_megjelenese_az_ellenorzo_modulban","Options":[{"Selected":true,"Text":"Nincs késletetés","Value":"0"},{"Selected":false,"Text":"6 óra","Value":"6"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', 0, 1, @intezmenyID, @tanevID),
(7563, 1699, '{"Id":"Osztalyatlag_megjelenitese_az_ellenorzo_feluleten","Value":"true"}', '{"Id":"Osztalyatlag_megjelenitese_az_ellenorzo_feluleten","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7564, 1699, '{"Id":"Fogadoorak_megjelenitese","Value":true}', '{"Id":"Fogadoorak_megjelenitese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7565, 1697, '{"Id":"Default_Feladat_Kategoria","Options":[{"Selected":false,"Text":"Minden","Value":"-1"},{"Selected":true,"Text":"Alapképzés","Value":"7553"},{"Selected":false,"Text":"Alapfokú művészetoktatás","Value":"7555"},{"Selected":false,"Text":"EGYMI","Value":"7717"},{"Selected":false,"Text":"Kollégium","Value":"7556"}]}', '{"Id":"Default_Feladat_Kategoria","Options":[{"Selected":false,"Text":"Minden","Value":"-1"},{"Selected":true,"Text":"Alapképzés","Value":"7553"},{"Selected":false,"Text":"Alapfokú művészetoktatás","Value":"7555"},{"Selected":false,"Text":"EGYMI","Value":"7717"},{"Selected":false,"Text":"Kollégium","Value":"7556"}]}', 0, 1, @intezmenyID, @tanevID),
(7568, 1699, '{"Id":"Egyeni_Csoportok_Automatikus_Letrehozasa","Value":"true"}', '{"Id":"Egyeni_Csoportok_Automatikus_Letrehozasa","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7650, 2884, '{"Id":"Fogado_Ora_Kezdoidopontja","Time":"10:00:00"}', '{"Id":"Fogado_Ora_Kezdoidopontja","Time":"10:00:00"}', 0, 1, @intezmenyID, @tanevID),
(7651, 2884, '{"Id":"Fogado_Ora_Zaroidopontja","Time":"18:00:00"}', '{"Id":"Fogado_Ora_Zaroidopontja","Time":"18:00:00"}', 0, 1, @intezmenyID, @tanevID),
(7661, 1697, '{"Id":"Napi_Szamonkeresi_Limit","Options":[{"Selected":true,"Text":"Nincs megadva","Value":"0"},{"Selected":false,"Text":"1","Value":"1"},{"Selected":false,"Text":"2","Value":"2"},{"Selected":false,"Text":"3","Value":"3"},{"Selected":false,"Text":"4","Value":"4"},{"Selected":false,"Text":"5","Value":"5"},{"Selected":false,"Text":"6","Value":"6"},{"Selected":false,"Text":"7","Value":"7"},{"Selected":false,"Text":"8","Value":"8"},{"Selected":false,"Text":"9","Value":"9"},{"Selected":false,"Text":"10","Value":"10"}]}', '{"Id":"Napi_Szamonkeresi_Limit","Options":[{"Selected":true,"Text":"Nincs megadva","Value":"0"},{"Selected":false,"Text":"1","Value":"1"},{"Selected":false,"Text":"2","Value":"2"},{"Selected":false,"Text":"3","Value":"3"},{"Selected":false,"Text":"4","Value":"4"},{"Selected":false,"Text":"5","Value":"5"},{"Selected":false,"Text":"6","Value":"6"},{"Selected":false,"Text":"7","Value":"7"},{"Selected":false,"Text":"8","Value":"8"},{"Selected":false,"Text":"9","Value":"9"},{"Selected":false,"Text":"10","Value":"10"}]}', 0, 1, @intezmenyID, @tanevID),
(7662, 5442, '{"Id":"Ertekeles_Modok_Beallitasa_Napi_Limithez","Options":[' + @ErtekelesModOptionList + ']}', '{"Id":"Ertekeles_Modok_Beallitasa_Napi_Limithez","Options":[' + @ErtekelesModOptionList + ']}', 0, 1, @intezmenyID, @tanevID),
(7663, 1698, '{"Id":"Limit_Figyelmeztetesi_Tiltasi_Beallitas","Options":[{"Selected":false,"Text":"Napi limiten túli számonkérés rögzítése nem lehetséges","Value":"1"},{"Selected":true,"Text":"Figyelmeztető ablak","Value":"2"},{"Selected":false,"Text":"Napi limiten túli számonkérés rögzítése lehetséges","Value":"3"}]}', '{"Id":"Limit_Figyelmeztetesi_Tiltasi_Beallitas","Options":[{"Selected":false,"Text":"Napi limiten túli számonkérés rögzítése nem lehetséges","Value":"1"},{"Selected":true,"Text":"Figyelmeztető ablak","Value":"2"},{"Selected":false,"Text":"Napi limiten túli számonkérés rögzítése lehetséges","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(7680, 5442, '{"Id":"Ertekeleseknel_Megjeleno_Specialis_Gombok_Lathatosaga","Options":[{"Selected":true,"Text":"-","Value":"1"},{"Selected":true,"Text":"5D","Value":"2"},{"Selected":false,"Text":"5K","Value":"3"},{"Selected":true,"Text":"MT","Value":"4"}]}', '{"Id":"Ertekeleseknel_Megjeleno_Specialis_Gombok_Lathatosaga","Options":[{"Selected":true,"Text":"-","Value":"1"},{"Selected":true,"Text":"5D","Value":"2"},{"Selected":false,"Text":"5K","Value":"3"},{"Selected":true,"Text":"MT","Value":"4"}]}', 0, 1, @intezmenyID, @tanevID),
(7683, 1698, '{"Id":"Foglalkozasok_Rogzitese_Hetvegere","Options":[{"Selected":true,"Text":"Csak hétköznap (H-P)","Value":"1"},{"Selected":false,"Text":"Hétköznap és + minden szombat (H-Sz)","Value":"2"},{"Selected":false,"Text":"Minden nap (H-V)","Value":"3"}]}', '{"Id":"Foglalkozasok_Rogzitese_Hetvegere","Options":[{"Selected":true,"Text":"Csak hétköznap (H-P)","Value":"1"},{"Selected":false,"Text":"Hétköznap és + minden szombat (H-Sz)","Value":"2"},{"Selected":false,"Text":"Minden nap (H-V)","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(7699, 1699, '{"Id":"Osztalyfonok_kiegeszitheti_osztalyaba_jaro_tanulok_ki_vagy_atsorolsasi_zaradekat","Value":"false"}', '{"Id":"Osztalyfonok_kiegeszitheti_osztalyaba_jaro_tanulok_ki_vagy_atsorolsasi_zaradekat","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(7700, 1699, '{"Id":"Osztalyfonok_Modosithatjae_Tanulok_Mulasztasi_Adatait","Value":"true"}', '{"Id":"Osztalyfonok_Modosithatjae_Tanulok_Mulasztasi_Adatait","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7707, 2886, '{"Id":"Szakszeru_helyettesites_Szazalekos_Ertek_Osszegbe","Value":"100"}', '{"Id":"Szakszeru_helyettesites_Szazalekos_Ertek_Osszegbe","Value":"100"}', 0, 1, @intezmenyID, @tanevID),
(7708, 2886, '{"Id":"Nem_Szakszeru_Helyettesites_Szazalekos_Ertek_Osszegbe","Value":"100"}', '{"Id":"Nem_Szakszeru_Helyettesites_Szazalekos_Ertek_Osszegbe","Value":"100"}', 0, 1, @intezmenyID, @tanevID),
(7709, 2886, '{"Id":"Oraosszevonas_Szazalekos_Ertek_Osszegbe","Value":"100"}', '{"Id":"Oraosszevonas_Szazalekos_Ertek_Osszegbe","Value":"100"}', 0, 1, @intezmenyID, @tanevID),
(7710, 2886, '{"Id":"Osszevont_Felugyelet_Szazalekos_Ertek_Osszegbe","Value":"100"}', '{"Id":"Osszevont_Felugyelet_Szazalekos_Ertek_Osszegbe","Value":"100"}', 0, 1, @intezmenyID, @tanevID),
(7718, 1698, '{"Id":"Csoportvezetok_Igazolasi_Jogosultsaga","Options":[{"Selected":true,"Text":"Nem igazolhatnak","Value":"1"},{"Selected":false,"Text":"Csak igazoltra állíthatnak","Value":"2"},{"Selected":false,"Text":"Bármit beállíthatnak","Value":"3"}]}','{"Id":"Csoportvezetok_Igazolasi_Jogosultsaga","Options":[{"Selected":true,"Text":"Nem igazolhatnak","Value":"1"},{"Selected":false,"Text":"Csak igazoltra állíthatnak","Value":"2"},{"Selected":false,"Text":"Bármit beállíthatnak","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(7770, 2886, '{"Id":"Bukas_Veszelyre_Figyelmeztetes_Hatara","Value":"2"}', '{"Id":"Bukas_Veszelyre_Figyelmeztetes_Hatara","Value":"2"}', 0, 1, @intezmenyID, @tanevID),
(7771, 1699, '{"Id":"Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat","Value":"false"}', '{"Id":"Szakgimnaziumok_Alapkezpeseskent_Tudjak_Kezelni_osztalyokat_Tanulokat","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
/*Értesítések*/
(1690, 1696, '{"Id":"Ertesites_bukasra_allo_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-05-02"}', '{"Id":"Ertesites_bukasra_allo_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-05-02"}', 0, 1, @intezmenyID, @tanevID),
(1691, 1696, '{"Id":"Ertesites_bukasra_allo_vegzos_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-04-02"}', '{"Id":"Ertesites_bukasra_allo_vegzos_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-04-02"}', 0, 1, @intezmenyID, @tanevID),
(1687, 1696, '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_idopont","Date":"' + @evElsoNapja + '"}', '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_idopont","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(1686, 1695, '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_esetek","Options":[{"Selected":true,"Text":"Tanítás nélküli munkanap","Value":"1387"},{"Selected":false,"Text":"Tanítási nap ","Value":"1385"},{"Selected":false,"Text":"Munkaszüneti nap ","Value":"1386"}]}', '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_esetek","Options":[{"Selected":true,"Text":"Tanítás nélküli munkanap","Value":"1387"},{"Selected":false,"Text":"Tanítási nap ","Value":"1385"},{"Selected":false,"Text":"Munkaszüneti nap ","Value":"1386"}]}', 0, 1, @intezmenyID, @tanevID),
(1688, 1698, '{"Id":"Erdemjegy_beiras_ertesites_kesleltetese","Options":[{"Selected":true,"Text":"0 óra","Value":"0"},{"Selected":false,"Text":"4 óra","Value":"4"},{"Selected":false,"Text":"8 óra","Value":"8"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', '{"Id":"Erdemjegy_beiras_ertesites_kesleltetese","Options":[{"Selected":true,"Text":"0 óra","Value":"0"},{"Selected":false,"Text":"4 óra","Value":"4"},{"Selected":false,"Text":"8 óra","Value":"8"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', 0, 1, @intezmenyID, @tanevID),
(1689, 1698, '{"Id":"Ertesites_hianyzo_orabeirasrol_kesleltetese","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_hianyzo_orabeirasrol_kesleltetese","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1692, 1698, '{"Id":"Ertesites_nyilt_naprol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_nyilt_naprol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1693, 1698, '{"Id":"Ertesites_oralatogatasrol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":true,"Text":"3 nap","Value":"3"},{"Selected":false,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_oralatogatasrol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":true,"Text":"3 nap","Value":"3"},{"Selected":false,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1755, 1699, '{"Id":"Adminisztrator_ertesitese_orarendi_tanulo_utkozesrol","Value":"true"}', '{"Id":"Adminisztrator_ertesitese_orarendi_tanulo_utkozesrol","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6852, 1699, '{"Id":"Intezmeny_rovid_nevenek_beallitasa","Value":"true"}', '{"Id":"Intezmeny_rovid_nevenek_beallitasa","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(7746, 1699, '{"Id":"Lazar_Ervin_Program_kezelese","Value":"false"}', '{"Id":"Lazar_Ervin_Program_kezelese","Value":"false"}', 0, 1, @intezmenyID, @tanevID)
INSERT INTO dbo.T_RENDSZERBEALLITAS (C_BEALLITASTIPUS, C_ERTEKTIPUS, C_ALAPERTEK, C_ERTEK, SERIAL, CREATOR, C_INTEZMENYID, C_TANEVID)
SELECT trb.C_BEALLITASTIPUS, trb.C_ERTEKTIPUS, trb.C_ALAPERTEK, trb.C_ERTEK, trb.SERIAL, trb.CREATOR, trb.C_INTEZMENYID, trb.C_TANEVID
FROM @TEMP_RENDSZERBEALLITAS trb
LEFT JOIN dbo.T_RENDSZERBEALLITAS rb ON rb.C_BEALLITASTIPUS = trb.C_BEALLITASTIPUS AND rb.C_INTEZMENYID = trb.C_INTEZMENYID AND trb.C_TANEVID = rb.C_TANEVID
WHERE rb.C_BEALLITASTIPUS IS NULL
END

View File

@@ -0,0 +1,349 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
@pTanevId INT,
@pOsztalyId INT,
@pIntezmenyId INT,
@pErtekelestipusaId INT,
@pLezaroNaptipusId INT,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pTanoraiDicseretTipusId INT = 1536, -- Tanórai dicséret
@pFelszereleshianyTipusId INT = 6324, -- Felszereléshiány
@pHaziFeladatHianyTipusId INT = 6325, -- Házi feladat hiány
@pAtsoroltTanuloAdatok INT = 1,
@pElmeletgyakorlat BIT = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE @ElsoFelveVege INT = 1400
DECLARE @IneVege INT = 1403
DECLARE @IIIneVege INT = 1404
DECLARE @UtolsoTanitasiNap INT = 1395
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
DECLARE @kesespercHianyzashoz INT = 45
DECLARE @kesespercGyakHianyzashoz INT = 45
DECLARE @iskolaErdekuParam INT = 1683;
--Iskolaerdeku tavollet szamit
DECLARE @iskolaErdekuSzamit BIT = [dbo].fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
--Osztaly jellemzo
DECLARE @keresztFeleves BIT = (SELECT IIF(C_KERESZTFELEVES = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
DECLARE @vegzosEvfolyamu BIT = (SELECT IIF(C_VEGZOSEVFOLYAM = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
--Osztalyjellemzok alapjan a lezaro naptipus csereje
SET @pLezaroNaptipusId = (
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
)
CREATE TABLE #aktualisOsztalyCsoportok (OSZTALYCSOPORTID INT);
CREATE TABLE #osztalyTanulok (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
CREATE TABLE #szurtErtekeles (
T_TANULOERTEKELES_ID INT PRIMARY KEY, C_TANULOID INT, ERTEKELES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELES_SZOVEG_MEGJEGYZES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, C_ERTEKELESDATUM DATETIME,
C_TANTARGYID INT, TANTARGY_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, T_TANTARGY_C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT, C_OSZTALYCSOPORTID INT
);
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, C_TANULOID INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT, HOZOTTIGAZOLTMULTASZTASOK_SZAMA INT, HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA INT);
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
);
IF @pAtsoroltTanuloAdatok = 0
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
--WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
ELSE IF @pAtsoroltTanuloAdatok = 1
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
--WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
ELSE
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
-- TANULÓK
INSERT INTO #osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM)
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId;
-- OSZTÁLY
SELECT T_OSZTALY_OSSZES.ID, C_NEV, C_VEGZOSEVFOLYAM, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV, C_OSZTALYNAPLOMEGNYITASA, C_OSZTALYNAPLOZARASA, C_OSZTALYFONOKID
FROM T_OSZTALY_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
LEFT JOIN T_FELHASZNALO_OSSZES ON T_OSZTALY_OSSZES.C_OSZTALYFONOKID = T_FELHASZNALO_OSSZES.ID
INNER JOIN T_FELADATELLATASIHELY_OSSZES ON T_FELADATELLATASIHELY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID
WHERE T_OSZTALYCSOPORT_OSSZES.ID = @pOsztalyId;
--TANULÓK LISTA
SELECT T_FELHASZNALO_OSSZES.ID AS C_TANULOID, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS TANULONEV, T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE, T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO AS OKTATASIAZONOSITO, BELEPESDATUM, KILEPESDATUM
FROM T_FELHASZNALO_OSSZES
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_FELHASZNALO_OSSZES.ID
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV;
-- ÉRTÉKELÉS
INSERT INTO #szurtErtekeles (T_TANULOERTEKELES_ID, C_TANULOID, ERTEKELES, ERTEKELES_SZOVEG_MEGJEGYZES, C_ERTEKELESDATUM, C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN, C_OSZTALYCSOPORTID)
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId), TanuloId
,COALESCE(CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)),
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
ErtekelesSzazalek)
,COALESCE(ErtekelesSzoveg, ErtekelesTema, ''), Datum,TantargyId, COALESCE(TantargyNevNyomtatvanyban, TantargyNev) AS TANTARGY_NEV, TARGYKATEG.C_NAME, TARGYKATEG.C_VALUE, FotargyE, Altantargy, OsztalyCsoportId
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
-- TANTÁRGYAK (TANTÁRGYFELOSZTÁS, ÉRTÉKELÉS)
SELECT DISTINCT C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT C_TANTARGYID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN #aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND (TANTARGY.C_FOTARGYE = 'T' OR C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
UNION
SELECT DISTINCT C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE AS C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN AS C_ALTANTARGYKENTNYOMTATVANYBAN
FROM #szurtErtekeles
WHERE (@pAtsoroltTanuloAdatok = 2 OR C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok))
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
-- ÉRTÉKELÉS lista
SELECT *
FROM #szurtErtekeles;
--MAGATARTÁS-SZORGALOM
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID, TanuloId AS C_TANULOID,
COALESCE(CAST(MagatartasOsztalyzatValue AS NVARCHAR(MAX)), CAST(MagatartasErtekOsztalyzatkent AS NVARCHAR(MAX)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat, MagatartasErtek,
COALESCE(CAST(SzorgalomOsztalyzatValue AS NVARCHAR(MAX)), CAST(SzorgalomErtekOsztalyzatkent AS NVARCHAR(MAX)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat, SzorgalomErtek,
ErtekelesSzoveg AS C_ERTEKELESSZOVEG, Datum AS C_ERTEKELESDATUM, 'F' AS TOROLT
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
WHERE TantargyId IS NULL AND (@pAtsoroltTanuloAdatok > 0 OR OsztalyCsoportId IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok));
--MULASZTÁS
CREATE TABLE #Tanulok (TanuloId int)
CREATE TABLE #Tipusok (Tipus_Char CHAR(1),Igazolt CHAR(1), Tipus INT, Gyakorlati CHAR(1))
INSERT INTO #Tipusok (Tipus_Char,Igazolt,Tipus,Gyakorlati)VALUES
('H','T',1500,'T'),('H','F',1500,'T'),('K','T',1499,'T'),('K','F',1499,'T'),
('H','T',1500,'F'),('H','F',1500,'F'),('K','T',1499,'F'),('K','F',1499,'F')
INSERT INTO #Tanulok
SELECT DISTINCT
tcs.C_TANULOID
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI,KESESPERC,MULASZTASOK_SZAMA, HOZOTTIGAZOLTMULTASZTASOK_SZAMA, HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA)
SELECT Tipus_Char, Tipus,Igazolt,TanuloId, Gyakorlati,0,0,0,0
FROM #Tanulok CROSS APPLY #Tipusok
UPDATE szm SET
KESESPERC = m.KesesPercben
,MULASZTASOK_SZAMA = m.MULASZTASOK_SZAMA
,HOZOTTIGAZOLTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'T',hianyzas.HOZOTTIGAZOLTHIANYZAS,0),0)
,HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'F',hianyzas.HOZOTTIGAZOLATLANHIANYZAS,0),0)
FROM #szurtMulasztas szm
LEFT JOIN
( SELECT m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati,SUM(ISNULL(KesesPercben,0)) as KesesPercben, ISNULL(COUNT(m.Tipusa),0) AS MULASZTASOK_SZAMA
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, @idoszakVege, DEFAULT) m
WHERE m.Igazolt IS NOT NULL AND m.Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
GROUP BY m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati
) m ON m.Gyakorlati = szm.C_GYAKORLATI AND m.Tipusa = szm.C_TIPUS AND m.Igazolt = szm.C_IGAZOLT AND m.TanuloId = szm.C_TANULOID
LEFT JOIN (
SELECT
tcs.C_TANULOID
,SUM(tta.C_HOZOTTIGAZOLTHIANYZAS) as HOZOTTIGAZOLTHIANYZAS
,SUM(tta.C_HOZOTTIGAZOLATLANHIANYZAS ) as HOZOTTIGAZOLATLANHIANYZAS
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId
AND tcs.C_TANEVID = @pTanevId
AND tcs.C_BELEPESDATUM < @idoszakVege
AND tcs.TOROLT = 'F'
GROUP BY tcs.C_TANULOID
) as hianyzas on hianyzas.C_TANULOID = szm.C_TANULOID AND szm.TIPUS_CHAR = 'H' AND szm.C_GYAKORLATI = 'F'
IF @pElmeletgyakorlat=0
BEGIN
SELECT
szm.TIPUS_CHAR,
szm.C_TIPUS,
szm.C_IGAZOLT,
szm.C_TANULOID,
szm.KESESPERC,
szm.KESESORA,
ISNULL(szm.MULASZTASOK_SZAMA,0) +
IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
AS MULASZTASOK_SZAMA,
IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
AS HOZOTTMULASZTASOK_SZAMA
FROM (
SELECT
TIPUS_CHAR,
C_TIPUS,
C_IGAZOLT,
C_TANULOID,
SUM(KESESPERC) AS KESESPERC,
SUM(KESESPERC)/@kesespercHianyzashoz AS KESESORA,
SUM(ISNULL(MULASZTASOK_SZAMA,0)) AS MULASZTASOK_SZAMA,
SUM(HOZOTTIGAZOLTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLTMULTASZTASOK_SZAMA,
SUM(HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA
FROM #szurtMulasztas
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID) AS szm
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
;
SELECT C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(KESESPERC)/@kesespercHianyzashoz AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
UNION ALL
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
) AS KM
GROUP BY C_IGAZOLT, C_TANULOID
ORDER BY C_TANULOID, C_IGAZOLT DESC;
END
ELSE
BEGIN
SELECT
szm.TIPUS_CHAR,
szm.C_TIPUS,
szm.C_IGAZOLT,
szm.C_TANULOID,
szm.KESESPERC,
szm.KESESORA,
ISNULL(szm.MULASZTASOK_SZAMA,0) +
IIF(szm.TIPUS_CHAR = 'K' OR szm.C_GYAKORLATI = 'T',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
AS MULASZTASOK_SZAMA,
IIF(szm.TIPUS_CHAR = 'K',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
AS HOZOTTMULASZTASOK_SZAMA,
szm.C_GYAKORLATI
FROM (
SELECT
TIPUS_CHAR,
C_TIPUS,
C_IGAZOLT,
C_TANULOID,
KESESPERC,
KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS KESESORA,
MULASZTASOK_SZAMA,
C_GYAKORLATI
FROM #szurtMulasztas ) AS szm
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = szm.C_TANULOID AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
SELECT C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
UNION ALL
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
) AS KM
GROUP BY C_IGAZOLT, C_TANULOID, C_GYAKORLATI
ORDER BY C_TANULOID, C_IGAZOLT DESC;
END
--TANÓRAI FELJEGYZÉSEK
SELECT C_TANULOID, SUM(IIF(C_TIPUS = @pTanoraiDicseretTipusId, 1, 0)) AS TanoraiDicseret, SUM(IIF(C_TIPUS = @pFelszereleshianyTipusId, 1, 0)) AS FelszerelesHiany, SUM(IIF(C_TIPUS = @pHaziFeladatHianyTipusId, 1, 0)) AS HaziFeladatHiany, 'F' AS TOROLT
FROM T_TANULOESEMENY_OSSZES AS TANULOESEMENY
INNER JOIN T_TANITASIORA_OSSZES AS TANITASIORA ON TANITASIORA.ID = TANULOESEMENY.C_TANITASIORAID
INNER JOIN T_TANULO_TANULOESEMENY AS TANULO_TANULOE ON TANULO_TANULOE.C_TANULOESEMENYID = TANULOESEMENY.ID
INNER JOIN T_DICTIONARYITEMBASE AS TIPUS ON TIPUS.ID = TANULOESEMENY.C_TIPUS AND TIPUS.C_TANEVID = TANULOESEMENY.C_TANEVID
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = TANULO_TANULOE.C_TANULOID
INNER JOIN #aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
LEFT JOIN T_OSZTALY_OSSZES AS OSZTALY ON OSZTALY.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
WHERE TANULOESEMENY.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND TANULOESEMENY.C_TANEVID = @pTanevId AND C_TANITASIORAID IS NOT NULL
AND TANITASIORA.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok)
GROUP BY C_TANULOID
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
SELECT C_TANULOID, [D] AS Dicseret, [K] AS Kituno
FROM (
SELECT C_TANULOID, T_TANULOERTEKELES_ID, LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
FROM #szurtErtekeles
WHERE
ERTEKELES = '5'
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(ERTEKELES_SZOVEG_MEGJEGYZES,CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) IN ( 'Dicséret', 'Kitűnő' )
) AS s
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
ORDER BY C_TANULOID
END
GO

View File

@@ -0,0 +1,199 @@
DROP PROCEDURE IF EXISTS sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika]
@pTanevId INT,
@pErtekelestipusaId INT,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pLezaroNaptipusId INT,
@pAtsoroltTanuloAdatok INT = 1
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ElsoFelveVege INT = 1400
DECLARE @IneVege INT = 1403
DECLARE @IIIneVege INT = 1404
DECLARE @UtolsoTanitasiNap INT = 1395
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
DECLARE @osztalyok TABLE(OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
DECLARE @osztalyokCsoportokErtekeles TABLE (TECHNIKAIID NVARCHAR(MAX), OSZTALYCSOPORTID INT, OSZTALYCSOPORTNEV NVARCHAR(MAX), SORREND INT, TANTARGYID INT, TANTARGYNEV NVARCHAR(MAX), AKTUALISLETSZAM INT, ATLAG FLOAT);
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT TANTARGYAK.ID AS TANTARGYID, COALESCE(TANTARGYAK.C_NEVNYOMTATVANYBAN, TANTARGYAK.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, TANTARGYAK.C_FOTARGYE, TANTARGYAK.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANTARGY_OSSZES AS TANTARGYAK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGYAK.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = TANTARGYAK.C_TANEVID
WHERE TANTARGYAK.TOROLT = 'F' AND TANTARGYAK.C_TANEVID = @pTanevId
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) + '_' + CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) AS TECHNIKAIID, OSZTALYCSOPORT.ID AS OSZTALYID, OSZTALYCSOPORT.C_NEV AS NEV,
OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AS EVFOLYAM, EVFOLYAM.C_ORDER AS SORREND, (SELECT COUNT(TanuloId) FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OSZTALYCSOPORT.ID, 0)) AS AKTUALISLETSZAM,
C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM,
ROW_NUMBER() OVER(ORDER BY EVFOLYAM.C_ORDER ASC, OSZTALYCSOPORT.C_NEV ASC) AS Row#
,@pTanevId TanevId
,OSZTALY.C_OSZTALYFONOKID OsztalyfonokId
,OSZTALYCSOPORT.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,OSZTALY.C_TANTERVID TantervId
,OSZTALY.C_KEPZESIFORMA KepzesiForma
,OSZTALY.C_AGAZAT Agazat
,OSZTALY.C_SZAKMACSOPORT SzakmaCsoport
,OSZTALY.C_SZAKKEPESITES Szakkepesites
,OSZTALY.C_RESZSZAKKEPESITES Reszszakkepesites
,OSZTALYCSOPORT.C_KERESZTFELEVES OJCSJKeresztfeleves
,OSZTALYCSOPORT.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,OSZTALY.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,OSZTALY.C_NEMZETISEGI OJNemzetisegi
,OSZTALY.C_KETTANNYELVU OJKettannyelvu
,OSZTALY.C_NYELVIELOKESZITO OJNyelviElokeszito
,OSZTALY.C_LOGOPEDIAI OJLogopediai
,OSZTALY.C_SPORT OJSportOsztaly
,OSZTALY.C_AJPROGRAM OJAranyJanosProgram
,OSZTALY.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
INTO #tempOsztalyok
FROM T_OSZTALY_OSSZES AS OSZTALY
JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALY.ID = OSZTALYCSOPORT.ID AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
JOIN T_DICTIONARYITEMBASE_OSSZES AS EVFOLYAM ON EVFOLYAM.ID = OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AND EVFOLYAM.TOROLT = 'F' AND EVFOLYAM.C_TANEVID = OSZTALY.C_ALTANEVID
WHERE OSZTALYCSOPORT.TOROLT = 'F' AND OSZTALY.C_ALTANEVID = @pTanevId
ORDER BY Row#;
DECLARE @pOsztalyId INT = 0;
DECLARE @sorrend INT = 0;
DECLARE @keresztFeleves BIT = 0;
DECLARE @vegzosEvfolyamu BIT = 0;
WHILE (1 = 1)
BEGIN
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#, @keresztFeleves = IIF(KERESZTFELEVES = 'T', 1, 0), @vegzosEvfolyamu = IIF(VEGZOSEVFOLYAM = 'T', 1, 0)
FROM #tempOsztalyok
WHERE @sorrend < Row#
ORDER BY Row#;
IF @@ROWCOUNT = 0
BEGIN
BREAK;
END
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
DECLARE @pKezdeteOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END)
)
DECLARE @pLezaroOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
)
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
);
INSERT INTO @osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES
INNER JOIN (
SELECT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID, tcs.C_BELEPESDATUM, tcs.C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId AND ocs.TOROLT='F'
WHERE tcs.TOROLT = 'F' AND tcs.C_BELEPESDATUM < @idoszakVege
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
);
INSERT INTO @osztalyokCsoportokErtekeles(TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, SORREND, TANTARGYID, TANTARGYNEV, AKTUALISLETSZAM, ATLAG)
SELECT CAST(@pOsztalyId AS nvarchar(MAX)) + '_' + CAST(OsztalyCsoportId AS nvarchar(MAX)) AS TechnikaiId, OsztalyCsoportId, OSZTALYCSOPORT.C_NEV + (IIF(CSOPORT.ID IS NOT NULL, ' (' + (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) + ')', '')) AS OsztalyCsoportNev, @sorrend,
TantargyId, TantargyNev,
(SELECT COUNT(TanuloId) FROM (
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OsztalyCsoportId, 0)
INTERSECT
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 0)) AS T) AS Aktualisletszam,
AVG(CAST (ErtekelesOsztalyzatValue AS float)) AS Atlag
FROM fnGetDokumentumErtekelesekOsztalyonkent(@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, 1, DEFAULT) AS ERTEKELESEK
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = OsztalyCsoportId AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.ID
WHERE IsMagatartasSzorgalom = 'F'
GROUP BY OsztalyCsoportId, OSZTALYCSOPORT.C_NEV, TantargyId, TantargyNev, CSOPORT.ID
END
SELECT *
FROM (
SELECT DISTINCT TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, AKTUALISLETSZAM, SORREND
FROM @osztalyokCsoportokErtekeles
UNION
SELECT TECHNIKAIID, OSZTALYID AS OSZTALYCSOPORTID, NEV AS OSZTALYCSOPORTNEV, AKTUALISLETSZAM, Row# AS SORREND
FROM #tempOsztalyok
) AS OSZTALYOKCSOPORTOK
ORDER BY SORREND, OSZTALYCSOPORTNEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT *
FROM @osztalyokCsoportokErtekeles;
select OSZTALYID AS OsztalyId
,EVFOLYAM AS EvfolyamTipusa
,FeladatEllatasiHelyId
,KepzesiForma
,OsztalyfonokId
,TantervId
,OJAranyJanosProgram
,OJCSJKeresztfeleves
,OJGyogypedagogiai
,OJKettannyelvu
,OJLogopediai
,OJNemzetisegi
,OJNyelviElokeszito
,OJSportOsztaly
,OJTechnikaiOsztaly
,SzakmaCsoport
,Agazat
,Szakkepesites
,Reszszakkepesites from #tempOsztalyok;
select cs.ID CsoportId
,cs.C_CSOPORTVEZETOID as Csoportvezeto
,cs.C_TIPUSA as CsoportTipus
,ocs.C_KERESZTFELEVES as OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
from T_CSOPORT_OSSZES cs
inner join @osztalyokCsoportokErtekeles ocse on ocse.OSZTALYCSOPORTID = cs.iD
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = cs.ID;
IF OBJECT_ID('tempdb..#tempOsztalyok') IS NOT NULL DROP TABLE #tempOsztalyok
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
END
GO

View File

@@ -0,0 +1,394 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
@pTanevId INT,
@pIntezmenyId INT,
@pErtekelestipusaId INT,
@pLezaroNaptipusId INT,
@pTanoraiCsoportTipusIds INT = 1034,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pNemMulasztaIgazolasTipusIds INT = 1532, -- Iskola érdekű távollét
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pAtsoroltTanuloAdatok INT = 1,
@pElmeletgyakorlat BIT = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE @ElsoFelveVege INT = 1400
DECLARE @IneVege INT = 1403
DECLARE @IIIneVege INT = 1404
DECLARE @UtolsoTanitasiNap INT = 1395
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
CREATE TABLE #osztalyoktanoraicsoportok (OSZTALYCSOPORTID INT PRIMARY KEY, C_TIPUSA INT, C_VEGZOSEVFOLYAM CHAR(1));
CREATE TABLE #osztalycsoportok (OSZTALYCSOPORTID INT PRIMARY KEY);
CREATE TABLE #aktualisOsztalyCsoportok (OSZTALYCSOPORTID INT);
CREATE TABLE #osztalyTanulok (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
CREATE TABLE #tantargyak (TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
CREATE TABLE #osztalyok (OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
CREATE TABLE #osztalyokTanulokszama (OSZTALYID INT, TANULOKSZAMA INT);
CREATE TABLE #osztalyokErtekeles (OSZTALYID INT, TANTARGYID INT, ATLAG FLOAT);
CREATE TABLE #osztalyokMagszorg (OSZTALYID INT, MAGATLAG FLOAT, SZORGATLAG FLOAT);
CREATE TABLE #osztalyokMulasztas (OSZTALYID INT, TIPUS_CHAR CHAR(1), C_TIPUS INT, C_IGAZOLT CHAR(1), MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1), DESCR CHAR(3));
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1), C_TIPUS INT , C_IGAZOLT CHAR(1), C_TANULOID INT, C_GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT);
-- OSZTÁLYOK ÉS TANÓRAI CSOPORTOK
INSERT INTO #osztalyoktanoraicsoportok (OSZTALYCSOPORTID, C_TIPUSA, C_VEGZOSEVFOLYAM) (
SELECT T_OSZTALYCSOPORT_OSSZES.ID, C_TIPUSA, C_VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES
LEFT JOIN T_CSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_CSOPORT_OSSZES.ID
LEFT JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
WHERE ( C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)) OR T_OSZTALY_OSSZES.ID IS NOT NULL)
AND C_TANEVID = @pTanevId
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
);
-- TANTÁRGYAK
INSERT INTO #tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT T_TANTARGY_OSSZES.ID AS TANTARGYID, COALESCE(T_TANTARGY_OSSZES.C_NEVNYOMTATVANYBAN, T_TANTARGY_OSSZES.C_NEV) AS TANTARGY_NEV, TARGYKAT.C_NAME AS TARGYKATEGORIA_NEV, TARGYKAT.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, T_TANTARGY_OSSZES.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANTARGY_OSSZES
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKAT ON TARGYKAT.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA AND TARGYKAT.C_TANEVID = T_TANTARGY_OSSZES.C_TANEVID
WHERE T_TANTARGY_OSSZES.TOROLT = 'F' AND T_TANTARGY_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANTARGY_OSSZES.C_TANEVID = @pTanevId
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
-- OSZTÁLYOK
SELECT T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV AS NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AS EVFOLYAM, EVFOLYAMTIPUS.C_ORDER AS SORREND,
C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM,
ROW_NUMBER() OVER(ORDER BY EVFOLYAMTIPUS.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC) AS Row#
,@pTanevId TanevId
,T_OSZTALY_OSSZES.C_OSZTALYFONOKID OsztalyfonokId
,T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,T_OSZTALY_OSSZES.C_TANTERVID TantervId
,T_OSZTALY_OSSZES.C_KEPZESIFORMA KepzesiForma
,T_OSZTALY_OSSZES.C_AGAZAT Agazat
,T_OSZTALY_OSSZES.C_SZAKMACSOPORT SzakmaCsoport
,T_OSZTALY_OSSZES.C_SZAKKEPESITES Szakkepesites
,T_OSZTALY_OSSZES.C_RESZSZAKKEPESITES Reszszakkepesites
,T_OSZTALYCSOPORT_OSSZES.C_KERESZTFELEVES OJCSJKeresztfeleves
,T_OSZTALYCSOPORT_OSSZES.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,T_OSZTALY_OSSZES.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,T_OSZTALY_OSSZES.C_NEMZETISEGI OJNemzetisegi
,T_OSZTALY_OSSZES.C_KETTANNYELVU OJKettannyelvu
,T_OSZTALY_OSSZES.C_NYELVIELOKESZITO OJNyelviElokeszito
,T_OSZTALY_OSSZES.C_LOGOPEDIAI OJLogopediai
,T_OSZTALY_OSSZES.C_SPORT OJSportOsztaly
,T_OSZTALY_OSSZES.C_AJPROGRAM OJAranyJanosProgram
,T_OSZTALY_OSSZES.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
INTO #tempOsztalyok
FROM T_OSZTALYCSOPORT_OSSZES
JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
JOIN T_DICTIONARYITEMBASE_OSSZES AS EVFOLYAMTIPUS ON EVFOLYAMTIPUS.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND EVFOLYAMTIPUS.TOROLT = 'F' AND EVFOLYAMTIPUS.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId
AND T_TANEV_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @pTanevId
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
ORDER BY Row#;
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL
DROP TABLE #tempMulasztas;
CREATE TABLE #tempMulasztas (
ID INT IDENTITY(1,1) PRIMARY KEY,
TIPUS_CHAR CHAR(1), TIPUS INT, IGAZOLT CHAR(1), TANULOID NVARCHAR(20), GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT, OSZTALYCSOPORTID INT, DATUM DATETIME);
DROP TABLE IF EXISTS #csopTip
CREATE TABLE #csopTip (ID int)
INSERT INTO #csopTip(ID)
SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId)
INSERT INTO #tempMulasztas(TIPUS_CHAR, TIPUS, IGAZOLT, TANULOID, GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA, OSZTALYCSOPORTID, DATUM)
SELECT
IIF(C_TIPUS = @pMulasztasTipusIdKeses, 'K', 'H')
,tm.C_TIPUS
,tm.C_IGAZOLT
,tm.C_ORATANULOIID
,tgy.C_GYAKORLATI
,SUM(tm.C_KESESPERCBEN)
,COUNT(tm.ID) AS MULASZTASOK_SZAMA
,tao.C_OSZTALYCSOPORTID
,tao.C_DATUM
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.C_TANEVID = @pTanevId
AND tao.TOROLT = 'F'
AND tao.C_MEGTARTOTT = 'T'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tcs.C_OSZTALYCSOPORTID = tao.C_OSZTALYCSOPORTID
AND tcs.TOROLT = 'F'
AND tao.C_DATUM BETWEEN tcs.C_BELEPESDATUM AND ISNULL(tcs.C_KILEPESDATUM, GETDATE())
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F'
INNER JOIN #csopTip csop ON csop.ID=tao.C_OSZTALYCSOPORTID
WHERE tm.C_TIPUS IN (1499,1500)
AND (@iskolaErdekuSzamit = 1 OR ISNULL(C_IGAZOLASTIPUSA,0)<>1533)
AND tm.TOROLT = 'F' AND tm.C_IGAZOLT IS NOT NULL
AND tm.C_TANEVID = @pTanevId
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, tao.C_OSZTALYCSOPORTID, C_DATUM
DECLARE @pOsztalyId INT = 0;
DECLARE @sorrend INT = 0;
DECLARE @keresztFeleves BIT = 0;
DECLARE @vegzosEvfolyamu BIT = 0;
WHILE (1 = 1)
BEGIN
TRUNCATE TABLE #szurtMulasztas;
TRUNCATE TABLE #osztalycsoportok;
TRUNCATE TABLE #aktualisOsztalyCsoportok;
TRUNCATE TABLE #osztalyTanulok;
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#, @keresztFeleves = IIF(KERESZTFELEVES = 'T', 1, 0), @vegzosEvfolyamu = IIF(VEGZOSEVFOLYAM = 'T', 1, 0)
FROM #tempOsztalyok
WHERE @sorrend < Row#
ORDER BY Row#;
IF @@ROWCOUNT = 0
BEGIN
BREAK;
END
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
DECLARE @pKezdeteOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END)
)
DECLARE @pLezaroOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
)
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
);
INSERT INTO #osztalycsoportok (OSZTALYCSOPORTID) (
SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyId)
WHERE (ID IN (SELECT T_OSZTALY_OSSZES.ID FROM T_OSZTALY_OSSZES
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
) OR ID IN (SELECT ID FROM T_CSOPORT WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))))
);
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID) (
SELECT ID FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT T_OSZTALY_OSSZES.ID FROM T_OSZTALY_OSSZES INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))))
);
-- TANULÓK
INSERT INTO #osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
);
--TANULÓK LISTA
INSERT INTO #osztalyokTanulokszama (OSZTALYID, TANULOKSZAMA)
SELECT @pOsztalyId AS OSZTALYID, COUNT(T_FELHASZNALO_OSSZES.ID) AS TANULOKSZAMA
FROM T_FELHASZNALO_OSSZES
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_FELHASZNALO_OSSZES.ID;
--ÉRTÉKELÉS LISTA
IF OBJECT_ID('tempdb..#tempOsztalyErtekelesek') IS NOT NULL
DROP TABLE #tempOsztalyErtekelesek;
SELECT * INTO #tempOsztalyErtekelesek FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
INSERT INTO #osztalyokErtekeles (OSZTALYID, TANTARGYID, ATLAG)
SELECT @pOsztalyId AS OSZTALYID, TantargyId, ROUND(AVG(CAST(ErtekelesOsztalyzatValue AS FLOAT)), 2) AS ATLAG
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T') AND ErtekelesOsztalyzatValue IS NOT NULL
GROUP BY TantargyId;
--MAGATARTAS-SZORGALOM LISTA
INSERT INTO #osztalyokMagszorg (OSZTALYID, MAGATLAG, SZORGATLAG)
SELECT @pOsztalyId AS OSZTALYID, ROUND(AVG(CAST(COALESCE(MagatartasOsztalyzatValue, MagatartasErtekOsztalyzatkent) AS FLOAT)), 2) AS MAGATLAG, ROUND(AVG(CAST(COALESCE(SzorgalomOsztalyzatValue, SzorgalomErtekOsztalyzatkent) AS FLOAT)), 2) AS SZORGATLAG
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
WHERE TantargyId IS NULL AND COALESCE(MagatartasOsztalyzatValue, MagatartasErtekOsztalyzatkent) IS NOT NULL AND COALESCE(SzorgalomOsztalyzatValue, SzorgalomErtekOsztalyzatkent) IS NOT NULL ;
--MULASZTÁS
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA)
SELECT TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI, SUM(KESESPERC), SUM(MULASZTASOK_SZAMA)
FROM #tempMulasztas AS TanuloMulasztas
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.TANULOID
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = TanuloMulasztas.TanuloId
WHERE TANULO.BelepesDatum <= DATUM
AND (TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= DATUM)
AND (IIF(@pAtsoroltTanuloAdatok > 0, 1, 0) = 1 OR (OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT))))
AND (@idoszakEleje IS NULL OR DATUM >= @idoszakEleje)
AND (@idoszakVege IS NULL OR DATUM <= @idoszakVege)
GROUP BY TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
CREATE TABLE #OsztalyHozottMulasztas (OsztalyID INT, HozottIgazolt INT, HozottIgazolatlan INT)
INSERT INTO #OsztalyHozottMulasztas (OsztalyID, HozottIgazolt, HozottIgazolatlan)
SELECT
o.ID
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID= o.ID AND ocs.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
LEFT JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
WHERE C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
GROUP BY o.ID
IF @pElmeletgyakorlat=0
BEGIN
INSERT INTO #osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, 'F' AS C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + 'F' AS DESCR
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(KESESPERC) AS KESESPERC, SUM(KESESPERC)/45 AS KESESORA, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
) AS T_SUM_MULASZTAS
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
END
ELSE
BEGIN
INSERT INTO #osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + C_GYAKORLATI
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
) AS T_SUM_MULASZTAS
GROUP BY TIPUS_CHAR, C_TIPUS, C_GYAKORLATI, C_IGAZOLT
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
END
END
UPDATE om SET MULASZTASOK_SZAMA = MULASZTASOK_SZAMA + IIF(om.DESCR = 'HTF',hm.HozottIgazolt, IIF(om.DESCR = 'HFF',hm.HozottIgazolatlan,0)) FROM #osztalyokMulasztas om LEFT JOIN #OsztalyHozottMulasztas hm ON hm.OsztalyID = om.OSZTALYID
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @colsHeader AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);
SELECT OSZTALYID, TANTARGYID, ATLAG
INTO #tempErtekeles
FROM #osztalyokErtekeles;
SELECT OSZTALYID, MAGATLAG, SZORGATLAG
INTO #tempMagSzorgErtekeles
FROM #osztalyokMagszorg;
SELECT OSZTALYID, TANULOKSZAMA
INTO #tempTanulokszama
FROM #osztalyokTanulokszama;
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID) + ' AS ' + QUOTENAME(TANTARGYAK.TANTARGY_NEV),
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID)
FROM (
SELECT DISTINCT TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_SORSZAM
FROM #tantargyak
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SET @query =
'SELECT NEV AS [Osztályok], TANULOILETSZAM.TANULOKSZAMA AS [Tanulók száma], MAGSZORGERTEKELES.MAGATLAG AS [Magatartás átlag], MAGSZORGERTEKELES.SZORGATLAG AS [Szorgalom átlag], ' + @colsHeader + '
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
LEFT JOIN (
SELECT OSZTALYID AS E_OSZTALYID, TANTARGYID, ATLAG
FROM #tempErtekeles
) AS ERTEKELES ON ERTEKELES.E_OSZTALYID = OSZTALYOK.OSZTALYID
PIVOT (
MAX(ATLAG)
FOR TANTARGYID IN (' + @cols + ')
) AS PIVOTTABLE
LEFT JOIN #tempTanulokszama AS TANULOILETSZAM ON PIVOTTABLE.OSZTALYID = TANULOILETSZAM.OSZTALYID
LEFT JOIN (
SELECT OSZTALYID AS MSZE_OSZTALYID, MAGATLAG, SZORGATLAG
FROM #tempMagSzorgErtekeles
) AS MAGSZORGERTEKELES ON PIVOTTABLE.OSZTALYID = MAGSZORGERTEKELES.MSZE_OSZTALYID
ORDER BY Row#';
execute(@query);
SELECT * INTO #tempForPivotMulasztas
FROM #osztalyokMulasztas;
IF @pElmeletgyakorlat=0
BEGIN
SET @cols = 'HTF,KTF,HFF,KFF'
SET @colsHeader = 'HTF AS [Igazolt hiányzás],KTF AS [Igazolt késés (óra)],HFF AS [Igazolatlan hiányzás],KFF AS [Igazolatlan késés (óra)]'
END
ELSE
BEGIN
SET @cols = 'HTF,KTF,HFF,KFF,HTT,KTT,HFT,KFT'
SET @colsHeader = 'HTF AS [Elméleti igazolt hiányzás],KTF AS [Elméleti igazolt késés (óra)],HFF AS [Elméleti igazolatlan hiányzás],KFF AS [Elméleti igazolatlan késés (óra)],HTT AS [Gyakorlati igazolt hiányzás],KTT AS [Gyakorlati igazolt késés (óra)],HFT AS [Gyakorlati igazolatlan hiányzás],KFT AS [Gyakorlati igazolatlan késés (óra)]'
END
SET @query =
'SELECT ' + @colsHeader + '
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
LEFT JOIN (
SELECT OSZTALYID AS M_OSZTALYID, MULASZTASOK_SZAMA, DESCR
FROM #tempForPivotMulasztas
) AS MULASZTAS ON MULASZTAS.M_OSZTALYID = OSZTALYOK.OSZTALYID
PIVOT (
MAX(MULASZTASOK_SZAMA)
FOR DESCR IN (' + @cols + ')
) AS PIVOTTABLE
ORDER BY Row#';
execute(@query);
select OSZTALYID AS OsztalyId
,EVFOLYAM AS EvfolyamTipusa
,FeladatEllatasiHelyId
,KepzesiForma
,OsztalyfonokId
,TantervId
,OJAranyJanosProgram
,OJCSJKeresztfeleves
,OJGyogypedagogiai
,OJKettannyelvu
,OJLogopediai
,OJNemzetisegi
,OJNyelviElokeszito
,OJSportOsztaly
,OJTechnikaiOsztaly
,SzakmaCsoport
,Agazat
,Szakkepesites
,Reszszakkepesites from #tempOsztalyok;
DROP TABLE IF EXISTS #tempOsztalyok
DROP TABLE IF EXISTS #tempTanulokszama
DROP TABLE IF EXISTS #tempErtekeles
DROP TABLE IF EXISTS #tempForPivotMulasztas
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
DROP TABLE IF EXISTS #tempMulasztas;
END
GO

View File

@@ -0,0 +1,307 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
@pTanevId INT,
@pIntezmenyId INT,
@pErtekelestipusaId INT,
@pLezaroNaptipusId INT,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pAtsoroltTanuloAdatok INT = 1,
@pElmeletgyakorlat BIT = 0
AS
BEGIN
SET NOCOUNT ON;
--Const
DECLARE @ElsoFelveVege INT = 1400
DECLARE @IneVege INT = 1403
DECLARE @IIIneVege INT = 1404
DECLARE @UtolsoTanitasiNap INT = 1395
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
DECLARE @oid int, @onev nvarchar(50), @okf char(1), @ovegz char(1)
DECLARE osztaly_cursor CURSOR FOR
SELECT T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV AS NEV, C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES
JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId AND T_TANEV_OSSZES.TOROLT = 'F' AND T_TANEV_OSSZES.ID = @pTanevId
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
ORDER BY T_DICTIONARYITEMBASE_OSSZES.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC;
CREATE TABLE #osztalyTanulok (TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT PRIMARY KEY, OSZTALYID INT, TANULONEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, OKTATASIAZONOSITO NVARCHAR(MAX), OSZTALYNEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, BELEPESDATUM DATE, KILEPESDATUM DATE);
CREATE TABLE #tantargyak (TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT);
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT);
CREATE TABLE #szurtErtekeles (
T_TANULOERTEKELES_ID INT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, ERTEKELES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELES_SZOVEG_MEGJEGYZES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, C_ERTEKELESDATUM DATETIME,
TANTARGYID INT, TANTARGY_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, T_TANTARGY_C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT, C_OSZTALYCSOPORTID INT
);
CREATE TABLE #szurtMagszorg (T_TANULOERTEKELES_ID INT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, MagatartasOsztalyzat NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, MagatartasErtek NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, SzorgalomOsztalyzat NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, SzorgalomErtek NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELESSZOVEG NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELESDATUM DATETIME, TOROLT CHAR(1) COLLATE DATABASE_DEFAULT);
CREATE TABLE #szurtMulasztasRes (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, KESESPERC INT, KESESORA INT, MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT);
CREATE TABLE #szurtMulasztasOsszesRes (C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT);
INSERT INTO #tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT TANTARGYAK.ID AS TANTARGYID, COALESCE(TANTARGYAK.C_NEVNYOMTATVANYBAN, TANTARGYAK.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, TANTARGYAK.C_FOTARGYE, TANTARGYAK.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANTARGY_OSSZES AS TANTARGYAK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGYAK.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = TANTARGYAK.C_TANEVID
WHERE TANTARGYAK.TOROLT = 'F' AND TANTARGYAK.C_TANEVID = @pTanevId
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
DROP TABLE IF EXISTS #tempMulasztas;
CREATE TABLE #tempMulasztas (
ID INT IDENTITY(1,1) PRIMARY KEY,
TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, TIPUS INT, IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT, OSZTALYCSOPORTID INT, DATUM DATETIME);
DROP TABLE IF EXISTS #csopTip
CREATE TABLE #csopTip (ID int)
INSERT INTO #csopTip(ID)
SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId)
INSERT INTO #tempMulasztas(TIPUS_CHAR, TIPUS, IGAZOLT, TANULOID, GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA, OSZTALYCSOPORTID, DATUM)
SELECT
IIF(C_TIPUS = @pMulasztasTipusIdKeses, 'K', 'H')
,tm.C_TIPUS
,tm.C_IGAZOLT
,tm.C_ORATANULOIID
,tgy.C_GYAKORLATI
,SUM(tm.C_KESESPERCBEN)
,COUNT(tm.ID) AS MULASZTASOK_SZAMA
,tao.C_OSZTALYCSOPORTID
,tao.C_DATUM
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.C_TANEVID = @pTanevId
AND tao.TOROLT = 'F'
AND tao.C_MEGTARTOTT = 'T'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tcs.C_OSZTALYCSOPORTID = tao.C_OSZTALYCSOPORTID
AND tcs.TOROLT = 'F'
AND tao.C_DATUM BETWEEN tcs.C_BELEPESDATUM AND ISNULL(tcs.C_KILEPESDATUM, GETDATE())
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID AND tgy.TOROLT='F'
INNER JOIN #csopTip csop ON csop.ID=tao.C_OSZTALYCSOPORTID
WHERE tm.C_TIPUS IN (1499,1500)
AND (@iskolaErdekuSzamit = 1 OR ISNULL(C_IGAZOLASTIPUSA,0)<>1533)
AND tm.TOROLT = 'F' AND tm.C_IGAZOLT IS NOT NULL
AND tm.C_TANEVID = @pTanevId
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, tao.C_OSZTALYCSOPORTID, C_DATUM
OPEN osztaly_cursor
FETCH NEXT FROM osztaly_cursor
INTO @oid, @onev, @okf, @ovegz
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @keresztFeleves BIT = (SELECT IIF(@okf = 'T', 1, 0))
DECLARE @vegzosEvfolyamu BIT = (SELECT IIF(@ovegz = 'T', 1, 0))
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
DECLARE @pKezdeteOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
END)
)
DECLARE @pLezaroOsztalyNaptipusId INT = (
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
CASE
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
END)
)
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @oid)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @oid)
ORDER BY C_OSZTALYCSOPORTID DESC),
GETDATE())
);
INSERT INTO #osztalyTanulok (TANULOID, OSZTALYID, TANULONEV, OKTATASIAZONOSITO, OSZTALYNEV, BELEPESDATUM, KILEPESDATUM)
SELECT DISTINCT CAST(TANCSOPORT.C_OSZTALYCSOPORTID AS NVARCHAR) + '_' + CAST(FELHASZNALO.ID AS NVARCHAR) /*AS OSZTALYTANULOID, FELHASZNALO.ID*/ AS TANULOID, TANCSOPORT.C_OSZTALYCSOPORTID AS OSZTALYID, C_NYOMTATASINEV, C_OKTATASIAZONOSITO, C_NEV, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_NEV, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = TANULOCSOPORT.C_OSZTALYCSOPORTID
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @oid AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege AND (@keresztFeleves = 0 OR TANULOCSOPORT.C_BELEPESDATUM >= @idoszakEleje)
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @oid AND FELHASZNALO.C_TANEVID = @pTanevId;
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
SELECT * INTO #tempOsztalyErtekelesek FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @oid, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
INSERT INTO #szurtErtekeles (T_TANULOERTEKELES_ID, TANULOID, ERTEKELES, ERTEKELES_SZOVEG_MEGJEGYZES, C_ERTEKELESDATUM, TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN, C_OSZTALYCSOPORTID)
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId), CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloId AS NVARCHAR)
,COALESCE(CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)),
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
ErtekelesSzazalek)
,COALESCE(ErtekelesSzoveg, ErtekelesTema, ''), Datum, TantargyId, TantargyNevZarojellel, TARGYKATEG.C_NAME, TARGYKATEG.C_VALUE, FotargyE, Altantargy, OsztalyCsoportId
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
--MAGATARTÁS-SZORGALOM
INSERT INTO #szurtMagszorg (T_TANULOERTEKELES_ID, TANULOID, MagatartasOsztalyzat, MagatartasErtek, SzorgalomOsztalyzat, SzorgalomErtek, ERTEKELESSZOVEG, ERTEKELESDATUM, TOROLT)
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID, CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloId AS NVARCHAR) AS TANULOID,
COALESCE(CAST(MagatartasOsztalyzatValue AS NVARCHAR(MAX)), CAST(MagatartasErtekOsztalyzatkent AS NVARCHAR(MAX)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat, MagatartasErtek,
COALESCE(CAST(SzorgalomOsztalyzatValue AS NVARCHAR(MAX)), CAST(SzorgalomErtekOsztalyzatkent AS NVARCHAR(MAX)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat, SzorgalomErtek,
ErtekelesSzoveg AS C_ERTEKELESSZOVEG, Datum AS C_ERTEKELESDATUM, 'F' AS TOROLT
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
WHERE TantargyId IS NULL;
--MULASZTÁS
DROP TABLE IF EXISTS #HozottMulasztas
CREATE TABLE #HozottMulasztas (OsztalyId_TanuloID NVARCHAR(20) COLLATE DATABASE_DEFAULT, HozottIgazolt INT, HozottIgazolatlan INT)
INSERT INTO #HozottMulasztas (OsztalyId_TanuloID, HozottIgazolt, HozottIgazolatlan)
SELECT
CAST(o.ID AS NVARCHAR) + '_' + CAST(tcs.C_TANULOID AS NVARCHAR)
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID= o.ID AND ocs.TOROLT = 'F'
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
WHERE C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
GROUP BY tcs.C_TANULOID, o.ID
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA)
SELECT TIPUS_CHAR, TIPUS, IGAZOLT, CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloMulasztas.TANULOID AS NVARCHAR), GYAKORLATI, SUM(KESESPERC), SUM(MULASZTASOK_SZAMA)
FROM #tempMulasztas AS TanuloMulasztas
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @oid, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.TANULOID
WHERE TANULO.BelepesDatum <= DATUM
AND (TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= DATUM)
AND (IIF(@pAtsoroltTanuloAdatok > 0, 1, 0) = 1 OR (OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@oid, @pTanevId, DEFAULT))))
AND (@idoszakEleje IS NULL OR DATUM >= @idoszakEleje)
AND (@idoszakVege IS NULL OR DATUM <= @idoszakVege)
GROUP BY TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI
IF @pElmeletgyakorlat=0
BEGIN
INSERT INTO #szurtMulasztasRes
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(KESESPERC) AS KESESPERC, SUM(KESESPERC)/45 AS KESESORA, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, 'F'
FROM #szurtMulasztas
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
INSERT INTO #szurtMulasztasOsszesRes
SELECT C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, 'F'
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(KESESPERC)/45 AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
UNION ALL
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
) AS KM
GROUP BY C_IGAZOLT, TANULOID
ORDER BY TANULOID, C_IGAZOLT DESC;
END
ELSE
BEGIN
INSERT INTO #szurtMulasztasRes
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
INSERT INTO #szurtMulasztasOsszesRes
SELECT C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM (
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'K'
UNION ALL
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI
FROM #szurtMulasztas
WHERE TIPUS_CHAR = 'H'
) AS KM
GROUP BY C_IGAZOLT, TANULOID, C_GYAKORLATI
ORDER BY TANULOID, C_IGAZOLT DESC;
END
FETCH NEXT FROM osztaly_cursor
INTO @oid, @onev, @okf, @ovegz
END
CLOSE osztaly_cursor;
DEALLOCATE osztaly_cursor;
UPDATE szm SET MULASZTASOK_SZAMA = ISNULL(MULASZTASOK_SZAMA,0) +
IIF(szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'T' AND szm.C_GYAKORLATI = 'F',hm.HozottIgazolt, IIF(szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'F' AND szm.C_GYAKORLATI = 'F',hm.HozottIgazolatlan,0))
FROM #szurtMulasztasRes szm LEFT JOIN #HozottMulasztas hm ON hm.OsztalyId_TanuloID = szm.TANULOID
INSERT INTO #szurtMulasztasRes (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI)
SELECT 'H',@pMulasztasTipusIdHianyzas, 'T', hm.OsztalyId_TanuloID, hm.HozottIgazolt, 'F' FROM #HozottMulasztas hm
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
WHERE szm.TANULOID IS NULL AND hm.OsztalyId_TanuloID IS NOT NULL
INSERT INTO #szurtMulasztasRes (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI)
SELECT 'H',@pMulasztasTipusIdHianyzas, 'F', hm.OsztalyId_TanuloID, hm.HozottIgazolatlan, 'F' FROM #HozottMulasztas hm
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
WHERE (szm.TANULOID IS NULL OR NOT EXISTS (SELECT TOP 1 TANULOID FROM #szurtMulasztasRes szm2 WHERE szm2.TANULOID = hm.OsztalyId_TanuloID AND szm2.C_IGAZOLT='F' AND szm2.TIPUS_CHAR = 'H' AND szm2.C_GYAKORLATI = 'F') ) AND hm.OsztalyId_TanuloID IS NOT NULL
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO, OSZTALYNEV, FORMAT(BELEPESDATUM, 'yyyy.MM.dd', 'hu-HU') + ' - ' + ISNULL (FORMAT(KILEPESDATUM, 'yyyy.MM.dd', 'hu-HU'), '') AS BESOROLASA, OSZTALYID
FROM #osztalyTanulok
ORDER BY OSZTALYNEV, TANULONEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_SORSZAM
FROM #tantargyak
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT * FROM #szurtErtekeles
SELECT * FROM #szurtMagszorg
SELECT * FROM #szurtMulasztasRes
SELECT * FROM #szurtMulasztasOsszesRes
SELECT TANULOID, [D] AS Dicseret, [K] AS Kituno
FROM (
SELECT TANULOID, T_TANULOERTEKELES_ID, LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
FROM #szurtErtekeles
WHERE
ERTEKELES = '5'
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(ERTEKELES_SZOVEG_MEGJEGYZES,CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) IN ( 'Dicséret', 'Kitűnő' )
) AS s
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
ORDER BY TANULOID
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
DROP TABLE IF EXISTS #tempMulasztas;
END
GO

View File

@@ -0,0 +1,182 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
END
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
@pTanevId INT,
@pOsztalyId INT,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pMegtartottVagyMegtarthato INT = 1,
@pAtsoroltTanuloAdatok INT = 1,
@tanitasiHetekSzamaVegzos INT,
@tanitasiHetekSzamaNemVegzos INT,
@isAltantargyBeszamitasa BIT
AS
BEGIN
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = GETDATE();
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
IF @pAtsoroltTanuloAdatok = 0
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE IF @pAtsoroltTanuloAdatok = 1
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND TANTARGY.C_GYAKORLATI = 'T'
UNION
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANITASIORA_OSSZES
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok) AND TANTARGY.C_GYAKORLATI = 'T'
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
FROM @osztalyTanulok
ORDER BY TANULONEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
IF @pMegtartottVagyMegtarthato = 1
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
END
ELSE
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok)
END
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
FROM #tempMulasztas
WHERE Gyakorlati = 'T'
GROUP BY TanuloId, TantargyId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
FROM #tempTanorak
WHERE Gyakorlati = 'T'
) AS MegtartottOrak
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
ORDER BY TanuloId, TantargyId
SELECT MegtartottOrak.TanuloId, MegtartottOrak.Gyakorlati,
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, Gyakorlati
FROM #tempMulasztas
WHERE Gyakorlati = 'T'
GROUP BY TanuloId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Tanuloid, Gyakorlati, SUM(Orakszama) as Orakszama
FROM #tempTanorak
WHERE Gyakorlati = 'T'
GROUP BY Tanuloid, Gyakorlati
) AS MegtartottOrak
ON
MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
ORDER BY TanuloId
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END;
GO

View File

@@ -0,0 +1,160 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
END
GO
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
@pTanevId INT,
@pOsztalyId INT,
@pMulasztasTipusIdKeses INT = 1499,
@pMulasztasTipusIdHianyzas INT = 1500,
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
@pMegtartottVagyMegtarthato INT = 1,
@pAtsoroltTanuloAdatok INT = 1,
@tanitasiHetekSzamaVegzos INT = 32,
@tanitasiHetekSzamaNemVegzos INT = 36,
@isAltantargyBeszamitasa BIT
AS
BEGIN
DECLARE @iskolaErdekuParam INT = 1683;
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
DECLARE @idoszakEleje DATE = (
SELECT ISNULL(
(SELECT TOP 1 C_DATUM
FROM T_TANEVRENDJE_OSSZES
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
ORDER BY C_OSZTALYCSOPORTID DESC),
(SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
);
DECLARE @idoszakVege DATE = GETDATE();
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
INNER JOIN (
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
IF @pAtsoroltTanuloAdatok = 0
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE IF @pAtsoroltTanuloAdatok = 1
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
END
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM (
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
UNION
SELECT DISTINCT C_TANTARGYID AS ID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_TANITASIORA_OSSZES
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok)
) AS TANTARGYAK
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
FROM @osztalyTanulok
ORDER BY TANULONEV;
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
FROM @tantargyak;
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
IF @pMegtartottVagyMegtarthato = 1
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
END
ELSE
BEGIN
INSERT INTO #tempTanorak
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok)
END
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
IIF(ISNULL(Orakszama,0) = 0, 0, CAST(Mulasztasokszam AS float) / Orakszama) AS MulasztasArany,
IIF(ISNULL(Orakszama,0) = 0, 0 ,CAST(Mulasztasokszam AS float) / Orakszama * 100) AS MulasztasSzazalek,
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
FROM (
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
FROM #tempMulasztas
GROUP BY TanuloId, TantargyId, Gyakorlati
) AS Mulasztasok
INNER JOIN (
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
FROM #tempTanorak
) AS MegtartottOrak
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
INNER JOIN T_FELHASZNALO ON T_FELHASZNALO.ID = MegtartottOrak.TanuloId
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
-- Osztály adatok az iktatáshoz
SELECT
f.C_NYOMTATASINEV Osztalyfonok
,f.ID OsztalyfonokId
,ocs.C_NEV Osztalynev
,@pOsztalyId OsztalyId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
END;
GO

View File

@@ -0,0 +1,129 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_SetSystemSettingsDefaultData') IS NOT NULL
BEGIN
DROP PROCEDURE [sp_SetSystemSettingsDefaultData]
END
GO
CREATE PROCEDURE [sp_SetSystemSettingsDefaultData]
@intezmenyID int,
@tanevID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TEMP_RENDSZERBEALLITAS TABLE (
C_BEALLITASTIPUS INT not null,
C_ERTEKTIPUS INT not null,
C_ALAPERTEK NVARCHAR(MAX) null,
C_ERTEK NVARCHAR(MAX) not null,
SERIAL INT null,
CREATOR INT null,
C_INTEZMENYID INT not null,
C_TANEVID INT not null
)
--SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE d WHERE C_TYPE = 'NapTipus'
DECLARE @felevVegeDatum nvarchar(50) = (SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1400 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID)
DECLARE @evVegeDatum nvarchar(50) = (SELECT FORMAT(C_DATUM, 'yyyy-MM-dd') FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID)
DECLARE @evElsoNapja nvarchar(50) = (SELECT FORMAT(C_KEZDONAP, 'yyyy-MM-dd') FROM T_TANEV_OSSZES WHERE ID = @tanevID AND TOROLT = 'F')
SET @felevVegeDatum = ISNULL(@felevVegeDatum, '2000-01-01')
SET @evVegeDatum = ISNULL(@evVegeDatum, '2000-01-01')
SET @evElsoNapja = ISNULL(@evElsoNapja, '2000-09-01')
DECLARE @tmp TABLE (options nvarchar(MAX))
INSERT INTO @tmp
SELECT '{"Selected":false,"Text":"' + ISNULL(C_NAME,'') + '","Value":"' + CAST(ISNULL(ID,'') as nvarchar(10)) + '"}' from T_DICTIONARYITEMBASE_OSSZES where C_TYPE like '%MunkakorTipus%' and C_INTEZMENYID = @intezmenyID and C_TANEVID = @tanevID and TOROLT = 'F' order by C_VALUE
DECLARE @optionList nVARCHAR(MAX)
SELECT @optionList = COALESCE(@optionList + ', ', '') + options FROM @tmp
SET @optionList = ISNULL(@optionList, '')
INSERT INTO @TEMP_RENDSZERBEALLITAS (C_BEALLITASTIPUS, C_ERTEKTIPUS, C_ALAPERTEK, C_ERTEK, SERIAL, CREATOR, C_INTEZMENYID, C_TANEVID)
VALUES
(1666, 1699, '{"Id":"Tanulo_sajatos_nevelesi_igenyenek_szocialis_es_tanugyi_adatainak_kezelese","Value":true}', '{"Id":"Tanulo_sajatos_nevelesi_igenyenek_szocialis_es_tanugyi_adatainak_kezelese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1667, 1699, '{"Id":"Tanulo_vallasi_adatainak_kezelese","Value":"false"}', '{"Id":"Tanulo_vallasi_adatainak_kezelese","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1818, 1699, '{"Id":"Tanulo_sportoloi_adatainak_kezelese","Value":"false"}', '{"Id":"Tanulo_sportoloi_adatainak_kezelese","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1668, 1699, '{"Id":"Tanulok_osztalyok_kozotti_atsorolasa_eseten_a_csoportbontasokbol_valo_kilepteteset_is_automatikusan_elvegezze_a_program","Value":"true"}', '{"Id":"Tanulok_osztalyok_kozotti_atsorolasa_eseten_a_csoportbontasokbol_valo_kilepteteset_is_automatikusan_elvegezze_a_program","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1669, 1699, '{"Id":"A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben","Value":"true"}', '{"Id":"A_felhasznalok_nem_valtoztathatjak_meg_a_jelszavukat_az_elektronikus_ellenorzoben","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1670, 1699, '{"Id":"A_tanulok_ertekeleseinel_az_ertekelesek_sulyszamainak_megjelenitese","Value":"true"}', '{"Id":"A_tanulok_ertekeleseinel_az_ertekelesek_sulyszamainak_megjelenitese","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1671, 1699, '{"Id":"Pedagogusok_sajat_orarendjeiket_modosithatjak_az_elektronikus_naploban","Value":"false"}', '{"Id":"Pedagogusok_sajat_orarendjeiket_modosithatjak_az_elektronikus_naploban","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1672, 1698, '{"Id":"A_haladasi_naplo_csak_az_alabbiak_szerint_toltheto_ki_utolag_naplozni_","Options":[{"Selected":true,"Text":"Akármit felvehet","Value":"1"},{"Selected":false,"Text":"Csak tantárgyfelosztás alapján","Value":"2"},{"Selected":false,"Text":"Semmit","Value":"3"}]}', '{"Id":"A_haladasi_naplo_csak_az_alabbiak_szerint_toltheto_ki_utolag_naplozni_","Options":[{"Selected":true,"Text":"Akármit felvehet","Value":"1"},{"Selected":false,"Text":"Csak tantárgyfelosztás alapján","Value":"2"},{"Selected":false,"Text":"Semmit","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(1673, 1699, '{"Id":"A_haladasi_naploba_orankent_csak_egy_tanora_rogzitheto","Value":"true"}', '{"Id":"A_haladasi_naploba_orankent_csak_egy_tanora_rogzitheto","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1674, 1699, '{"Id":"Elmaradt_tanitasi_ora_rogzitesenek_tiltasa","Value":"false"}', '{"Id":"Elmaradt_tanitasi_ora_rogzitesenek_tiltasa","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1675, 1699, '{"Id":"Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban","Value":"false"}', '{"Id":"Pedagogusok_csak_az_eloirt_helyettesiteseiket_regisztralhatjak_a_haladasi_naploban","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1676, 1699, '{"Id":"A_tanarok_csak_a_sajat_tantargyfelosztasukban_szereplo_osztalyok_csoportok_tanuloit_ertekelhetik","Value":"true"}', '{"Id":"A_tanarok_csak_a_sajat_tantargyfelosztasukban_szereplo_osztalyok_csoportok_tanuloit_ertekelhetik","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1677, 1699, '{"Id":"Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait","Value":"false"}', '{"Id":"Osztalyfonok_modosithatja_osztalyaba_jaro_tanulok_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1678, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_szocialis_tanugyi_es_SNI_BTM_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1679, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_zaradekat","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1680, 1699, '{"Id":"Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_kezelheti_az_osztalyaba_jaro_tanulok_vallasi_adatait","Value":"false"}', 0 ,1, @intezmenyID, @tanevID),
(1764, 1699, '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait","Value":"false"}', '{"Id":"Osztalyfonok_megtekintheti_modosithatja_osztalyaba_jaro_tanulok_sportoloi_adatait","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1681, 1699, '{"Id":"Ertekelesnel_a_naplojegyek_atlaga_megjelenik","Value":"true"}', '{"Id":"Ertekelesnel_a_naplojegyek_atlaga_megjelenik","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1682, 1698, '{"Id":"Magantanulo_oralatogatas_aloli_mentessegenek_kezelese","Options":[{"Selected":true,"Text":"Nem kell megjelennie","Value":"1"},{"Selected":false,"Text":"Csak gyakorlaton","Value":"2"},{"Selected":false,"Text":"Minden órán","Value":"3"}]}', '{"Id":"Magantanulo_oralatogatas_aloli_mentessegenek_kezelese","Options":[{"Selected":true,"Text":"Nem kell megjelennie","Value":"1"},{"Selected":false,"Text":"Csak gyakorlaton","Value":"2"},{"Selected":false,"Text":"Minden órán","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(1683, 1699, '{"Id":"Az_iskolaerdeku_tavollet_tipusu_igazolasok_beleszamitanak_a_tanulo_osszes_mulasztasaba","Value":"true"}', '{"Id":"Az_iskolaerdeku_tavollet_tipusu_igazolasok_beleszamitanak_a_tanulo_osszes_mulasztasaba","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(1684, 1699, '{"Id":"Osztalyfonok_szamara_tiltott_a_mulasztasi_adatok_modositasa","Value":"false"}', '{"Id":"Osztalyfonok_szamara_tiltott_a_mulasztasi_adatok_modositasa","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(1685, 1699, '{"Id":"A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata","Value":"true"}', '{"Id":"A_foglalkozasok_mulasztasi_adatai_megadasanal_a_parhuzamos_orakkal_valo_utkozes_vizsgalata","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(2882, 2884, '{"Id":"Az_elektronikus_naplo_megjelenesenek_kezdoidopontja","Time":"07:00:00"}', '{"Id":"Az_elektronikus_naplo_megjelenesenek_kezdoidopontja","Time":"07:00:00"}', 0, 1, @intezmenyID, @tanevID),
(2883, 2884, '{"Id":"Az_elektronikus_naplo_megjelenesenek_zaroidopontja","Time":"18:00:00"}', '{"Id":"Az_elektronikus_naplo_megjelenesenek_zaroidopontja","Time":"18:00:00"}', 0, 1, @intezmenyID, @tanevID),
(2874, 2886, '{"Id":"Szakszeru_helyettesites_eseten_az_elszamolt_oraszam","Value":"1"}', '{"Id":"Szakszeru_helyettesites_eseten_az_elszamolt_oraszam","Value":"1"}', 0, 1, @intezmenyID, @tanevID),
(2875, 2886, '{"Id":"Nem_szakszeru_felugyelet_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.5"}', '{"Id":"Nem_szakszeru_felugyelet_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.5"}', 0, 1, @intezmenyID, @tanevID),
(2876, 2886, '{"Id":"Oraosszevonasos_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.3"}', '{"Id":"Oraosszevonasos_helyettesites_eseten_az_elszamolt_oraszam","Value":"0.3"}', 0, 1, @intezmenyID, @tanevID),
(2877, 1699, '{"Id":"Lehet_e_helyettesites_tulora","Value":"false"}', '{"Id":"Lehet_e_helyettesites_tulora","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(3006, 1699, '{"Id":"Tanar_vehet_e_fel_orat_maganak","Value":"true"}', '{"Id":"Tanar_vehet_e_fel_orat_maganak","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3015, 1699, '{"Id":"Lehet_orat_felvenni_TTF_nelkul","Value":"true"}', '{"Id":"Lehet_orat_felvenni_TTF_nelkul","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3037, 1699, '{"Id":"Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato","Value":"true"}', '{"Id":"Foglalkozasnal_csak_osztaly_es_tanora_jellegu_csoport_allithato","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3039, 2886, '{"Id":"Egy_statuszra_juto_kotelezo_oraszam","Value":"22"}', '{"Id":"Egy_statuszra_juto_kotelezo_oraszam","Value":"22"}', 0, 1, @intezmenyID, @tanevID),
(2885, 1698, '{"Id":"Tanulo_felhasznaloi_nev_generalas_modja","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', '{"Id":"Tanulo_felhasznaloi_nev_generalas_modja","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3074, 1699, '{"Id":"helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando","Value":"false"}', '{"Id":"helyettesites_eseten_felugyelet_alapertelmezetten_sorszamozando","Value":"false"}', 0, 1,@intezmenyID,@tanevID),
(3075, 1699, '{"Id":"tanitasiOra_sorszamozas_mod","Value":"true"}', '{"Id":"tanitasiOra_sorszamozas_mod","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3076, 1696, '{"Id":"Ertekeles_datumanak_minimuma","Date":"' + @evElsoNapja + '"}', '{"Id":"Ertekeles_datumanak_minimuma","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(5222, 1697, '{"Id":"Ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"TTF","Value":"1"},{"Selected":false,"Text":"Osztályfőnök","Value":"2"},{"Selected":false,"Text":"Bárki","Value":"3"}]}', '{"Id":"Ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"TTF","Value":"1"},{"Selected":false,"Text":"Osztályfőnök","Value":"2"},{"Selected":false,"Text":"Bárki","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3078, 1699, '{"Id":"tanitasiOra_sorszamozas_csoportbontas","Value":"true"}', '{"Id":"tanitasiOra_sorszamozas_csoportbontas","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(3079, 1697, '{"Id":"Havi_vagy_heti_naplozaras","Options":[{"Selected":false,"Text":"Havi","Value":"1"},{"Selected":false,"Text":"Heti","Value":"2"},{"Selected":true,"Text":"Nincs megadva","Value":"3"}]}', '{"Id":"Havi_vagy_heti_naplozaras","Options":[{"Selected":false,"Text":"Havi","Value":"1"},{"Selected":false,"Text":"Heti","Value":"2"},{"Selected":true,"Text":"Nincs megadva","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(3080, 2886 ,'{"Id":"Naplozaras_havi_ertek","Value":"28"}', '{"Id":"Naplozaras_havi_ertek","Value":"28"}', 0, 1, @intezmenyID, @tanevID),
(3081, 2886, '{"Id":"Naplozaras_heti_ertek","Value":"6"}' , '{"Id":"Naplozaras_heti_ertek","Value":"6"}', 0, 1, @intezmenyID, @tanevID),
(3082, 1696, '{"Id":"Naplozaras_eves_datuma","Date":"' + @evElsoNapja + '"}', '{"Id":"Naplozaras_eves_datuma","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(3083, 2884, '{"Id":"Nem_kotott_munkaido_megjelenesenek_kezdoidopontja","Time":"10:00:00"}', '{"Id":"Nem_kotott_munkaido_megjelenesenek_kezdoidopontja","Time":"10:00:00"}', 0, 1, @intezmenyID, @tanevID),
(3084, 2884, '{"Id":"Nem_kotott_munkaido_megjelenesenek_zaroidopontja","Time":"15:00:00"}', '{"Id":"Nem_kotott_munkaido_megjelenesenek_zaroidopontja","Time":"15:00:00"}', 0, 1, @intezmenyID, @tanevID),
(5223, 1697, '{"Id":"Magatartas_szorgalom_ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"Osztályfőnök","Value":"1"},{"Selected":false,"Text":"TTF","Value":"2"}]}', '{"Id":"Magatartas_szorgalom_ertekelesek_oldalon_levo_keresok_alapertelemezett_feltoltese_ezek_alapjan","Options":[{"Selected":true,"Text":"Osztályfőnök","Value":"1"},{"Selected":false,"Text":"TTF","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(5225, 1698, '{"Id":"Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}','{"Id":"Tanuloi_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5226, 1698, '{"Id":"Gondviselo_felhasznalonev_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', '{"Id":"Gondviselo_felhasznalonev_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Oktatási azonosító alapján","Value":"1"},{"Selected":false,"Text":"Kréta kód alapján","Value":"2"},{"Selected":false,"Text":"Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5227, 1698, '{"Id":"Gondviselo_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}','{"Id":"Gondviselo_jelszavak_generalasa_az_alabbi_ertek_alapjan","Options":[{"Selected":true,"Text":"Születési dátum","Value":"1"},{"Selected":false,"Text":"Véletlenszerű","Value":"2"},{"Selected":false,"Text":" Egyéni","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5261, 1698, '{"Id":"Napirend_felvitelel_utkozes_figyeles","Options":[{"Selected":true,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":false,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', '{"Id":"Napirend_felvitelel_utkozes_figyeles","Options":[{"Selected":true,"Text":"Ütközés nem lehetséges","Value":"1"},{"Selected":false,"Text":"Figyelmeztetés","Value":"2"},{"Selected":false,"Text":"Ütközés lehetséges","Value":"3"}]}', 0, 1, @intezmenyID, @tanevID),
(5436, 1699, '{"Id":"Osztalyfonok_ertekeles_osszes_targybol","Value":false}', '{"Id":"Osztalyfonok_ertekeles_osszes_targybol","Value":"false"}', 0, 1, @intezmenyID, @tanevID),
(5437, 1699, '{"Id":"Ora_sorszamozasat_naplozo_pedagogus_eldontheti","Value":true}', '{"Id":"Ora_sorszamozasat_naplozo_pedagogus_eldontheti","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(5438, 1696, '{"Id":"Felevi_jegyek_megjelenesenek_datuma","Date":"' + @felevVegeDatum + '"}', '{"Id":"Felevi_jegyek_megjelenesenek_datuma","Date":"' + @felevVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5439, 1696, '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma","Date":"' + @evVegeDatum + '"}', '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma","Date":"' + @evVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5440, 1696, '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma_vegzos","Date":"' + @evVegeDatum + '"}', '{"Id":"Ev_vegi_jegyek_megjelenesenek_datuma_vegzos","Date":"' + @evVegeDatum + '"}', 0, 1, @intezmenyID, @tanevID),
(5441, 5442, '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + @optionList + ']}', '{"Id":"Alkalmazottak_lathatjak_a_diakok_adatait","Options":[' + @optionList + ']}', 0, 1, @intezmenyID, @tanevID),
(5449, 1698, '{"Id":"Naplozaskor_mulasztas_szazalek_szamitas","Options":[{"Selected":true,"Text":"Egész éves óraszám alapján","Value":"1"},{"Selected":false,"Text":"Megtartott óraszám alapján","Value":"2"}]}', '{"Id":"Naplozaskor_mulasztas_szazalek_szamitas","Options":[{"Selected":true,"Text":"Egész éves óraszám alapján","Value":"1"},{"Selected":false,"Text":"Megtartott óraszám alapján","Value":"2"}]}', 0, 1, @intezmenyID, @tanevID),
(6717, 1699, '{"Id":"Naplozas_terem_befogadokepesseg","Value":true}', '{"Id":"Naplozas_terem_befogadokepesseg","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
/*Értesítések*/
(1690, 1696, '{"Id":"Ertesites_bukasra_allo_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-05-02"}', '{"Id":"Ertesites_bukasra_allo_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-05-02"}', 0, 1, @intezmenyID, @tanevID),
(1691, 1696, '{"Id":"Ertesites_bukasra_allo_vegzos_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-04-02"}', '{"Id":"Ertesites_bukasra_allo_vegzos_tanulokrol","Date":"' + LEFT(@evVegeDatum, 4) + '-04-02"}', 0, 1, @intezmenyID, @tanevID),
(1687, 1696, '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_idopont","Date":"' + @evElsoNapja + '"}', '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_idopont","Date":"' + @evElsoNapja + '"}', 0, 1, @intezmenyID, @tanevID),
(1686, 1695, '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_esetek","Options":[{"Selected":true,"Text":"Tanítás nélküli munkanap","Value":"1387"},{"Selected":false,"Text":"Tanítási nap ","Value":"1385"},{"Selected":false,"Text":"Munkaszüneti nap ","Value":"1386"}]}', '{"Id":"Ertesites_Tanev_rendi_valtoztatasrol_esetek","Options":[{"Selected":true,"Text":"Tanítás nélküli munkanap","Value":"1387"},{"Selected":false,"Text":"Tanítási nap ","Value":"1385"},{"Selected":false,"Text":"Munkaszüneti nap ","Value":"1386"}]}', 0, 1, @intezmenyID, @tanevID),
(1688, 1698, '{"Id":"Erdemjegy_beiras_ertesites_kesleltetese","Options":[{"Selected":true,"Text":"0 óra","Value":"0"},{"Selected":false,"Text":"4 óra","Value":"4"},{"Selected":false,"Text":"8 óra","Value":"8"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', '{"Id":"Erdemjegy_beiras_ertesites_kesleltetese","Options":[{"Selected":true,"Text":"0 óra","Value":"0"},{"Selected":false,"Text":"4 óra","Value":"4"},{"Selected":false,"Text":"8 óra","Value":"8"},{"Selected":false,"Text":"12 óra","Value":"12"},{"Selected":false,"Text":"24 óra","Value":"24"}]}', 0, 1, @intezmenyID, @tanevID),
(1689, 1698, '{"Id":"Ertesites_hianyzo_orabeirasrol_kesleltetese","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_hianyzo_orabeirasrol_kesleltetese","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1692, 1698, '{"Id":"Ertesites_nyilt_naprol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_nyilt_naprol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":false,"Text":"3 nap","Value":"3"},{"Selected":true,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1693, 1698, '{"Id":"Ertesites_oralatogatasrol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":true,"Text":"3 nap","Value":"3"},{"Selected":false,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', '{"Id":"Ertesites_oralatogatasrol","Options":[{"Selected":false,"Text":"Soha","Value":"-1"},{"Selected":true,"Text":"3 nap","Value":"3"},{"Selected":false,"Text":"7 nap","Value":"7"},{"Selected":false,"Text":"14 nap","Value":"14"}]}', 0, 1, @intezmenyID, @tanevID),
(1755, 1699, '{"Id":"Adminisztrator_ertesitese_orarendi_tanulo_utkozesrol","Value":"true"}', '{"Id":"Adminisztrator_ertesitese_orarendi_tanulo_utkozesrol","Value":"true"}', 0, 1, @intezmenyID, @tanevID),
(6852, 1699, '{"Id":"Intezmeny_rovid_nevenek_beallitasa","Value":"true"}', '{"Id":"Intezmeny_rovid_nevenek_beallitasa","Value":"true"}', 0, 1, @intezmenyID, @tanevID)
INSERT INTO dbo.T_RENDSZERBEALLITAS_OSSZES (C_BEALLITASTIPUS, C_ERTEKTIPUS, C_ALAPERTEK, C_ERTEK, SERIAL, CREATOR, C_INTEZMENYID, C_TANEVID)
SELECT trb.C_BEALLITASTIPUS, trb.C_ERTEKTIPUS, trb.C_ALAPERTEK, trb.C_ERTEK, trb.SERIAL, trb.CREATOR, trb.C_INTEZMENYID, trb.C_TANEVID
FROM @TEMP_RENDSZERBEALLITAS trb
LEFT JOIN dbo.T_RENDSZERBEALLITAS_OSSZES rb ON rb.C_BEALLITASTIPUS = trb.C_BEALLITASTIPUS AND rb.C_INTEZMENYID = trb.C_INTEZMENYID AND trb.C_TANEVID = rb.C_TANEVID
WHERE rb.C_BEALLITASTIPUS IS NULL
END

View File

@@ -0,0 +1,78 @@
DROP PROCEDURE IF EXISTS uspGetBukasokSzama
GO
CREATE PROCEDURE uspGetBukasokSzama
@pTanevId int
,@pTanarId int
,@pDarab int
,@pBukasAtlag float
AS BEGIN
SET NOCOUNT ON;
DECLARE
@pBelepesDatum date
,@pKilepesDatum date
,@pUtolsoTanitasDatum date
SELECT
@pBelepesDatum = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_UTOLSOTANITASINAP END)
,@pKilepesDatum = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_KEZDONAP END)
,@pUtolsoTanitasDatum = tanev.C_UTOLSOTANITASINAP
FROM T_TANEV_OSSZES tanev
WHERE tanev.TOROLT = 'F'
AND tanev.ID = @pTanevId
SELECT TOP (@pDarab)
fh.C_NYOMTATASINEV AS Nev
,ocs.C_NEV AS Osztaly
,COUNT(ertekeles.C_TANTARGYID) AS TantargyakSzama
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON f.C_OSZTALYCSOPORTID = ocs.ID
AND ocs.C_TANEVID = f.C_TANEVID
AND ocs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
AND tcs.C_BELEPESDATUM <= @pBelepesDatum
AND (tcs.C_KILEPESDATUM > @pKilepesDatum OR tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @pUtolsoTanitasDatum)
AND tcs.C_TANEVID = f.C_TANEVID
AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES fh ON tcs.C_TANULOID = fh.ID
AND fh.C_TANEVID = f.C_TANEVID
AND fh.TOROLT = 'F'
INNER JOIN (
SELECT
te.C_TANULOID
,te.C_OSZTALYCSOPORTID
,te.C_TANTARGYID
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN T_OSZTALYZATTIPUS_OSSZES ot ON te.C_ERTEKELESOSZTALYZATID = ot.ID
AND ot.C_ALTANEVID = te.C_TANEVID
AND ot.TOROLT = 'F'
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON ot.ID = d.ID
AND d.C_TANEVID = te.C_TANEVID
AND d.TOROLT = 'F'
LEFT JOIN T_TANARIATLAGSULY_OSSZES ta ON te.C_ERTEKELESMODID = ta.C_ERTEKELESMODID
AND ta.C_TANEVID = te.C_TANEVID
AND ta.TOROLT = 'F'
AND te.C_ERTEKELESOSZTALYZATID IS NOT NULL
WHERE te.C_TANEVID = @pTanevId
AND te.TOROLT = 'F'
GROUP BY
te.C_TANULOID
,te.C_OSZTALYCSOPORTID
,te.C_TANTARGYID
HAVING ROUND(SUM(CAST(d.C_VALUE AS float) * CAST(ISNULL(ta.C_SULY, 100) AS float) / 100) / SUM(CAST(ISNULL(ta.C_SULY, 100) AS float) / 100), 2) < @pBukasAtlag
) ertekeles ON ertekeles.C_TANULOID = fh.ID
AND ertekeles.C_OSZTALYCSOPORTID = f.C_OSZTALYCSOPORTID
AND ertekeles.C_TANTARGYID = f.C_TANTARGYID
WHERE f.C_TANEVID = @pTanevId
AND f.TOROLT = 'F'
AND f.C_TANARID = @pTanarId
GROUP BY
fh.C_NYOMTATASINEV
,ocs.C_NEV
ORDER BY
fh.C_NYOMTATASINEV
,ocs.C_NEV
END
GO

View File

@@ -0,0 +1,110 @@
DROP PROCEDURE IF EXISTS uspGetHianyzokEsJelenlevokSzama
GO
CREATE PROCEDURE uspGetHianyzokEsJelenlevokSzama
@pTanevId INT
,@pMinOraszam INT
AS
BEGIN
SET NOCOUNT ON
CREATE TABLE #NaptariNap (
Datum datetime
,OsztalyId int
,IsTanitasiNap char(1)
,Nap int
,Honap nvarchar(20)
,PRIMARY KEY (Datum, OsztalyId)
)
DECLARE @DateFrom datetime, @DateTo datetime
SELECT @DateFrom = tv.C_KEZDONAP, @DateTo = tv.C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES tv WHERE ID = @pTanevId
INSERT INTO #NaptariNap
SELECT
tr.Datum
,tr.OsztalyId
,ISNULL(tro.IsTanitasiNap, tr.IsTanitasiNap) AS IsTanitasiNap
,tr.Nap
,tr.Honap
FROM (
SELECT
nn.C_NAPDATUMA AS Datum
,o.ID AS OsztalyId
,IIF(nt.C_ISTANORAI = 'F' AND nt.C_ISTANORANKIVULI = 'F', 'F', 'T') AS IsTanitasiNap
,DAY(C_NAPDATUMA) AS Nap
,FORMAT(nn.C_NAPDATUMA, 'MMMM', 'HU-hu') as Honap
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_OSZTALY_OSSZES o ON o.TOROLT = 'F' AND o.C_ALTANEVID = @pTanevId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INNER JOIN T_NAPTIPUS_OSSZES nt ON nt.ID = nn.C_NAPTIPUSA AND nt.C_ALTANEVID = nn.C_TANEVID AND nn.C_INTEZMENYID = nt.C_ALINTEZMENYID AND nt.TOROLT = 'F'
WHERE nn.C_NAPDATUMA BETWEEN @DateFrom AND @DateTo AND nn.C_TANEVID = @pTanevId
AND nn.TOROLT = 'F'
) tr
LEFT JOIN (
SELECT
nn.C_NAPDATUMA AS Datum
,o.ID AS OsztalyId
,IIF(nt.C_ISTANORAI = 'F' AND nt.C_ISTANORANKIVULI = 'F', 'F', 'T') AS IsTanitasiNap
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
INNER JOIN T_OSZTALY_OSSZES o ON ocstr.C_OSZTALYCSOPORTID = o.ID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
INNER JOIN T_NAPTIPUS_OSSZES nt ON nt.ID = tr.C_NAPTIPUSA AND nt.C_ALTANEVID = tr.C_TANEVID AND nt.TOROLT = 'F'
WHERE nn.C_TANEVID = @pTanevId
AND nn.TOROLT = 'F'
) tro ON tr.Datum = tro.Datum AND tr.OsztalyId = tro.OsztalyId
SELECT
nn.Datum
,nn.Honap AS Honap
,nn.Nap
,nn.OsztalyId
,ocs.C_NEV AS OsztalyNev
,nn.IsTanitasiNap
,lsz.Letszam
,IIF(h.Hianyzas IS NULL AND IsTanitasiNap = 'T', 0, h.Hianyzas) AS Hianyzas
FROM #NaptariNap nn
LEFT JOIN (
SELECT nn.Datum, nn.OsztalyId, COUNT(1) AS Letszam
FROM #NaptariNap nn
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = nn.OsztalyId
AND nn.Datum >= tcs.C_BELEPESDATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > nn.Datum)
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT = 'F'
WHERE nn.IsTanitasiNap = 'T'
GROUP BY nn.Datum, nn.OsztalyId
) lsz ON lsz.Datum = nn.Datum AND lsz.OsztalyId = nn.OsztalyId
LEFT JOIN (
SELECT x.C_DATUM AS Datum, tcs.C_OSZTALYCSOPORTID AS OsztalyId, SUM(CNT) AS Hianyzas
FROM (
SELECT tn.C_DATUM, mu.C_ORATANULOIID, COUNT(DISTINCT C_ORATANULOIID) AS CNT
FROM T_TANULOMULASZTAS_OSSZES mu
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = mu.C_TANITASIORAKID
WHERE mu.C_TIPUS = 1500
AND mu.C_TANEVID = @pTanevId
AND tn.C_TANEVID = @pTanevId
AND mu.TOROLT = 'F'
AND tn.TOROLT = 'F'
GROUP BY tn.C_DATUM, mu.C_ORATANULOIID
HAVING COUNT(1) >= @pMinOraszam
) x
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = x.C_ORATANULOIID
AND x.C_DATUM >= tcs.C_BELEPESDATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > x.C_DATUM)
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID
AND o.C_ALTANEVID = @pTanevId
AND o.TOROLT = 'F'
GROUP BY x.C_DATUM, tcs.C_OSZTALYCSOPORTID
) h ON h.Datum = nn.Datum AND h.OsztalyId = nn.OsztalyId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = nn.OsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F'
ORDER BY nn.Datum, nn.OsztalyId
END
GO

View File

@@ -0,0 +1,134 @@
DROP PROCEDURE IF EXISTS uspGetKiirtHelyettesitesek
GO
CREATE PROCEDURE uspGetKiirtHelyettesitesek
@pIntezmenyId int
,@pTanevId int
,@pTanarId int
,@pDarab int
AS BEGIN
SET NOCOUNT ON;
DECLARE
@pIdoszakKezdete datetime
,@pIdoszakVege datetime
CREATE TABLE #OrarendiOrak (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TeremNev nvarchar (255)
,TeremId int
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
)
SELECT
@pIdoszakKezdete = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_KEZDONAP END)
,@pIdoszakVege = tanev.C_UTOLSOTANITASINAP
FROM T_TANEV_OSSZES tanev
WHERE tanev.TOROLT = 'F'
AND tanev.ID = @pTanevId
AND tanev.C_INTEZMENYID = @pIntezmenyId
INSERT INTO #OrarendiOrak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,TeremId
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
)
EXEC sp_GetOrarend
@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pIdoszakKezdete = @pIdoszakKezdete
,@pIdoszakVege = @pIdoszakVege
,@pTanarId = @pTanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = NULL
SELECT TOP (@pDarab)
orak.Id AS Id
,CONVERT(nvarchar (25), OraKezdete, 102) AS Datum
,IIF(orak.CsengetesiRendID IS NOT NULL, orak.Oraszam, N'-') AS Oraszam
,orak.OsztalyNev AS OsztalyCsoport
,orak.TargyNev AS Tantargy
FROM #OrarendiOrak orak
WHERE orak.OraTipus = N'OrarendiOra'
AND orak.OraKezdete <= @pIdoszakVege
AND orak.OraVege >= @pIdoszakKezdete
AND orak.HelyettesitoTanarID = @pTanarId
ORDER BY orak.OraKezdete ASC
END
GO

View File

@@ -0,0 +1,54 @@
DROP PROCEDURE IF EXISTS uspGetMulasztasokSzama
GO
CREATE PROCEDURE uspGetMulasztasokSzama
@pTanevId int
,@pTanarId int
,@pDarab int
AS BEGIN
SET NOCOUNT ON;
DECLARE
@pBelepesDatum date
,@pKilepesDatum date
,@pUtolsoTanitasDatum date
SELECT
@pBelepesDatum = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_UTOLSOTANITASINAP END)
,@pKilepesDatum = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_KEZDONAP END)
,@pUtolsoTanitasDatum = tanev.C_UTOLSOTANITASINAP
FROM T_TANEV_OSSZES tanev
WHERE tanev.TOROLT = 'F'
AND tanev.ID = @pTanevId
SELECT TOP (@pDarab)
tn.C_DATUM AS MulasztasDatuma
,FORMAT(tn.C_DATUM, 'dddd','hu-HU') AS MulasztasNapja
,COUNT(tm.C_ORATANULOIID) AS MulasztasokSzama
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_TANULOMULASZTAS_OSSZES tm ON tm.C_TANITASIORAKID = tn.ID
AND tm.TOROLT = 'F'
AND tm.C_TANEVID = tn.C_TANEVID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tcs.TOROLT = 'F'
AND tcs.C_TANEVID = tn.C_TANEVID
AND tcs.C_BELEPESDATUM <= @pBelepesDatum
AND (tcs.C_KILEPESDATUM > @pKilepesDatum OR tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @pUtolsoTanitasDatum)
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID
AND o.TOROLT = 'F'
AND o.C_ALTANEVID = tn.C_TANEVID
AND (o.C_OSZTALYFONOKID = @pTanarId OR o.C_OFOHELYETTESID = @pTanarId)
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID
AND cs.TOROLT = 'F'
AND cs.C_ALTANEVID = tn.C_TANEVID
AND cs.C_CSOPORTVEZETOID = @pTanarId
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @pTanevId
AND COALESCE(o.ID, cs.ID) IS NOT NULL
GROUP BY
tn.C_DATUM
ORDER BY
tn.C_DATUM DESC
END
GO

View File

@@ -0,0 +1,674 @@
DROP PROCEDURE IF EXISTS uspGetNapkozisNaplo
GO
CREATE PROCEDURE uspGetNapkozisNaplo
@tanevId int
,@intezmenyId int
,@csoportId int
,@iskolaErdekuSzamit bit
AS BEGIN
SET NOCOUNT ON;
DECLARE
@elsonap date
,@utolsonap date
,@FelevVege date
,@datum date = GETDATE()
CREATE TABLE #OraSorszam (
TanitasioraId int PRIMARY KEY
,OraSorszam int
)
--Tanulók adatai, elérhetőségei
CREATE TABLE #tanulok (
Id int
,TanuloCsoportId int
,Nev nvarchar (max)
,Osztaly nvarchar (max)
,OsztalyId int
,Sorszam nvarchar (max)
,beirasiSorszam nvarchar (max)
,Torzslapszam nvarchar (max)
,Allampolgarsaga nvarchar (max)
,DiakIg nvarchar (max)
,SzulHely nvarchar (max)
,SzulIdo nvarchar (max)
,Anyja nvarchar (max)
,Taj nvarchar (max)
,OktAzon nvarchar (max)
,Kilepes nvarchar (max)
,Kepzes nvarchar (max)
,TanuloCimTipus nvarchar (max)
,TanuloCim nvarchar (max)
,TanuloEmail nvarchar (max)
,szoc nvarchar (max)
,BelepesDatum datetime
)
DECLARE @Mulasztasok TABLE (
IgazoltE nvarchar (1)
,Tanulo int
,Tipus int
)
DECLARE @GondViseloCimTable TABLE (
GondviseloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
DECLARE @EmailCimTableTemp TABLE (
FelhasznaloId int
,EmailCim nvarchar (max)
,GondviseloId int
)
DECLARE @EmailCimGondviseloTable TABLE (
GondviseloId int
,EmailCim nvarchar (max)
)
DECLARE @TelefonTableTemp TABLE (
FelhasznaloId int
,Telefon nvarchar (max)
,GondviseloId int
)
DECLARE @GondviseloTelefonTable TABLE (
GondviseloId int
,Telefon nvarchar (max)
)
SELECT TOP 1
@FelevVege = tr.C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
WHERE tr.C_NAPTIPUSA = 1400
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
INSERT INTO #tanulok (
Id
,TanuloCsoportId
,Nev
,Osztaly
,OsztalyId
,Sorszam
,beirasiSorszam
,Torzslapszam
,Allampolgarsaga
,DiakIg
,SzulHely
,SzulIdo
,Anyja
,Taj
,OktAzon
,Kilepes
,Kepzes
,TanuloCimTipus
,TanuloCim
,TanuloEmail
,szoc
,BelepesDatum
)
SELECT DISTINCT
tanulok.TanuloId AS Id
,tanulok.TanuloCsoportId
,IIF(KilepesDatum IS NOT NULL, f.C_NYOMTATASINEV + ' (kilépett)', f.C_NYOMTATASINEV) AS Nev
,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) AS Osztaly
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(t.Id) AS OsztalyId
,tta.C_NAPLOSORSZAM AS NaploSorszam
,tta.C_BEIRASINAPLOSORSZAM AS beirasiSorszam
,tta.C_TORZSLAPSZAM AS TorzsLapSzam
,Allampolgarsaga.C_NAME AS Allampolgarsag
,t.C_DIAKIGAZOLVANYSZAM AS DiakIg
,f.C_SZULETESIHELY AS SzulHely
,FORMAT(f.c_szuletesidatum, 'yyyy.MM.dd.') AS SzulIdo
,f.C_ANYJANEVE AS Anyja
,f.C_TAJSZAM AS Taj
,f.C_OKTATASIAZONOSITO AS OktAzon
,FORMAT(KilepesDatum, 'yyyy.MM.dd.') AS Kilepes
,tt.c_nev AS Kepzes
,cim.Tipus
,cim.cim
,email.c_emailcim AS TanuloEmail
,STUFF(
IIF(tta.C_MAGANTANULO = 'T', ', Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME, '-') + ')', '')
+ IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '')
+ IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '')
+ IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', ''), 1, 2, ''
) AS szoc
,tanulok.BelepesDatum AS BelepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.TanuloId
AND f.torolt = 'F'
INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId, DEFAULT) tta ON tta.TanuloId = t.ID
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID
AND tt.TOROLT = 'F'
AND tt.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga
AND Allampolgarsaga.C_TANEVID = @tanevId
AND Allampolgarsaga.TOROLT = 'F'
LEFT JOIN (
SELECT DISTINCT
TanuloId AS TanuloId
,cimTipusa.C_NAME AS Tipus
,STUFF(
(
SELECT DISTINCT
CAST(Btemp.Cim AS nvarchar(max)) + char(13) + char(10)
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) btemp
WHERE temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1, 0, ''
) AS Cim
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS cimTipusa ON cimTipusa.Id = temp.CimTipusa
AND cimTipusa.C_TANEVID = @tanevId
AND cimTipusa.TOROLT = 'F'
WHERE temp.CimTipusa = 907
) AS cim ON cim.TanuloId = tanulok.TanuloId
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = f.id
AND tel.c_gondviseloid IS NULL
AND tel.torolt = 'F'
AND tel.c_alapertelmezett = 'T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = tanulok.TanuloId
AND email.c_gondviseloid IS NULL
AND email.torolt = 'F'
AND email.c_alapertelmezett = 'T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
AND MagantanulosagOka.C_TANEVID = f.C_TANEVID
AND MagantanulosagOka.TOROLT = 'F'
--Kezdőoldal
SELECT
ia.c_nev AS IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
,ia.c_omkod AS OMKOD
,ia.c_igazgatoneve AS IntezmenyVezeto
,ocs.c_nev AS NapkozisCsoport
,IIF(LEN(ocs.c_nev) > 17, SUBSTRING(ocs.c_nev, 1, 17) + '...', ocs.c_nev) AS RovidNev
,ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
,ISNULL(cs.c_csoportnaploleiras, '-') AS CsoportNaploLeiras
,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') AS Megnyitas
,ISNULL(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'), '-') AS Lezaras
,ocs.ID AS NapkozisCsoportId
,f.ID AS CsoportVezetoId
,ISNULL(ocs.C_EVFOLYAMTIPUSA,1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,cs.C_TIPUSA AS CsoportTipusa
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id
AND ocs.c_tanevid = @tanevid
AND ocs.id = @csoportId
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE i.id = @intezmenyid
AND ia.c_tanevid = @tanevid
--Csoportot vezette
SELECT
ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE cs.id = @csoportId
AND cs.c_altanevid = @tanevid
AND cs.c_alintezmenyid = @intezmenyid
--Tanulók
SELECT DISTINCT
Nev
,Osztaly
,OktAzon
,OsztalyId
,BelepesDatum
FROM #tanulok
ORDER BY
Nev
--Naplóhetek
SELECT TOP 1
@elsonap = t.C_KEZDONAP
FROM T_TANEV_OSSZES t
WHERE t.ID = @tanevId
AND t.TOROLT = 'F'
IF (
SELECT
c_osztalycsoportid
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
AND tr.c_naptipusa = 1395
WHERE c_osztalycsoportid = @csoportid
) IS NULL
SELECT TOP 1
@utolsonap = tr.c_datum
FROM t_tanevrendje_osszes tr
WHERE c_naptipusa = 1395
AND c_tanevid = @tanevId
AND c_intezmenyid = @intezmenyId
AND torolt = 'F'
AND c_osszescsoportravonatkozik = 'T'
ELSE
SELECT TOP 1
@utolsonap = tr.c_datum
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
AND tr.c_naptipusa = 1395
WHERE c_osztalycsoportid = @csoportid
SELECT
nn.C_HETSORSZAMA AS Het
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') AS HetEleje
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') AS HetVege
FROM T_NAPTARINAP_OSSZES nn
WHERE nn.C_NAPDATUMA BETWEEN @elsoNap AND @utolsoNap
AND nn.C_HETNAPJA BETWEEN 1407 AND 1413
AND nn.TOROLT = 'F'
AND nn.c_tanevId = @tanevId
GROUP BY
nn.C_HETSORSZAMA
ORDER BY
MIN(nn.C_NAPDATUMA)
--Tanuló adatok
SELECT
*
FROM #tanulok
ORDER BY
Nev
SELECT
DATEPART(MONTH, Datum) AS Honap
,TantargyId AS Id
,Igazolt AS IgazoltE
,TanuloId AS TanuloId
,TanuloCsoportId AS TanuloCsoportId
,IgazolasTipusa AS IgazolasTipus
,Datum AS Datum
,Tipusa AS Tipus
,KesesPercben AS KesesPercben
,HetSorszama AS HetSorszama
,Oraszam AS Oraszam
,CAST(DATEPART(MONTH, Datum) AS nvarchar (10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat
,C_GYAKORLATI AS isGyakorlat
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
SELECT
ta.TanuloId AS Id
,ta.TanuloCsoportId
,ta.Sorszam
,ta.TorzslapSzam
,ta.OktAzon
,ta.TajSzam
,ta.AnyjaNeve
,ta.SzulHely
,ta.SzulIdo
,ta.SocAdat
,ta.Kepzes
,ta.TanuloNeve
,ta.Allampolgarsaga
,ta.DiakIgazolvanySzam
,ta.KilepesDatum
,ta.BeirasiNaploSorszam
,ta.AdottOsztaly AS Osztaly
,ta.AdottOsztalyId AS OsztalyId
,CONVERT(DATE, LEFT(ta.BelepesDatum, LEN(ta.BelepesDatum) - 1), 102) AS BelepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @csoportId
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
,@isReszletesMulasztasok = 0
--Napló
SELECT DISTINCT
nn.c_hetsorszama AS Het
,d.c_name AS Nap
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma
AND tao.c_osztalycsoportid = @csoportid
AND tao.torolt = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = nn.c_hetnapja
AND d.C_TANEVID = @tanevId
AND d.TOROLT = 'F'
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid
AND fog.c_tanevid = @tanevid
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.c_tanarid
AND f.torolt = 'F'
WHERE nn.c_napdatuma >= @elsonap
AND nn.c_napdatuma <= @utolsonap
ORDER BY
nn.c_hetsorszama
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
INSERT INTO #OraSorszam (
TanitasioraId
,OraSorszam
)
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId
,@datum = @datum
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
SELECT DISTINCT
tao.C_ORASZAM AS Oraszam
,tao.C_HETSORSZAMA AS Het
,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
,CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS DatumKezdettel
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) AS Tanar
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
,tao.C_TANTARGYID AS TantargyId
,tao.C_MEGTARTOTT AS Megtartott
,tao.C_TEMA AS Tema
,OraSorszam
,C_ORAKEZDETE
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID
AND fog.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID
AND f.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = tao.C_HELYETTESITOTANARID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
LEFT JOIN (
SELECT DISTINCT
OraSorszam
,TanitasioraId
FROM #OraSorszam
) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id
WHERE tao.C_OSZTALYCSOPORTID = @csoportid
AND tao.TOROLT = 'F'
ORDER BY
tao.C_ORAKEZDETE
,tao.C_ORASZAM
SELECT
*
FROM #megtartottOrak
--Napló mulasztás
SELECT
C_HETSORSZAMA AS Het
,C_NYOMTATASINEV AS Tanulo
,MAX([1]) AS Hetfo
,MAX([2]) AS Kedd
,MAX([3]) AS Szerda
,MAX([4]) AS Csutortok
,MAX([5]) AS Pentek
,MAX([6]) AS Szombat
FROM (
SELECT
C_HETSORSZAMA
,C_NYOMTATASINEV
,[0]
,[1]
,[2]
,[3]
,[4]
,[5]
,[6]
FROM (
SELECT DISTINCT
n.C_NAPTARINAPID
,DATEPART(dw, n.C_DATUM) AS NAP
,t.C_NYOMTATASINEV
,n.C_HETSORSZAMA
,'[' + STUFF(
(
SELECT
', ' + CAST(OraSorszam AS varchar(3)) + IIF(tm.C_TIPUS = 1499, '(k)', '')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
LEFT JOIN (
SELECT DISTINCT
OraSorszam
,TanitasioraId
FROM #OraSorszam
) AS oraSorszam ON oraSorszam.TanitasioraId = o.Id
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.C_TANEVID = @tanevId
AND tm.torolt = 'F'
AND tm.c_intezmenyId = @intezmenyId
AND o.c_tanevId = @tanevId
AND o.C_OSZTALYCSOPORTID = @csoportId
AND o.TOROLT = 'F'
ORDER BY
o.C_NAPTARINAPID
,o.C_ORASZAM
FOR XML PATH(''), TYPE
) .value
('.', 'varchar(max)'), 1, 2, ''
) + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID
AND m.torolt = 'F'
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
WHERE n.C_TANEVID = @tanevId
AND m.C_TANEVID = @tanevId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
AND n.C_OSZTALYCSOPORTID = @csoportId
AND n.TOROLT = 'F'
GROUP BY
n.C_NAPTARINAPID
,C_ORATANULOIID
,C_NYOMTATASINEV
,n.C_HETSORSZAMA
,n.C_DATUM
) AS SUB PIVOT(MAX(HIANYZAS) FOR NAP IN(
[0]
,[1]
,[2]
,[3]
,[4]
,[5]
,[6])) AS PivotTable
) AS ASD
GROUP BY
C_HETSORSZAMA
,C_NYOMTATASINEV
ORDER BY
C_HETSORSZAMA
--Tanuló feljegyzései
SELECT
tte.C_TANULOID AS Tanulo
,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
,d.C_NAME AS Tipus
,te.C_TARTALOM AS Feljegyzes
,f.C_NYOMTATASINEV AS Feljegyzo
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS
AND d.C_TANEVID = @tanevId
AND d.TOROLT = 'F'
WHERE C_OSZTALYCSOPORTID = @csoportId
AND te.TOROLT = 'F'
AND C_TIPUS <> 1534
INSERT INTO @GondViseloCimTable (
GondviseloId
,Cim
,Cimtipusa
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(Btemp.Cim AS nvarchar (max)) + char(13) + char(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
)
,cimTipusa.C_NAME
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO @EmailCimTableTemp (
FelhasznaloId
,EmailCim
,GondviseloId
)
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
INSERT INTO @EmailCimGondviseloTable (
GondviseloId
,EmailCim
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.EmailCim AS nvarchar (max)) + char(13) + char(10)
FROM @EmailCimTableTemp btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
) Email
FROM @EmailCimTableTemp temp
WHERE GondviseloId IS NOT NULL
INSERT INTO @TelefonTableTemp (
FelhasznaloId
,Telefon
,GondviseloId
)
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
INSERT INTO @GondviseloTelefonTable (
GondviseloId
,Telefon
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.Telefon AS nvarchar (max)) + char(13) + char(10)
FROM @TelefonTableTemp btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
)
FROM @TelefonTableTemp temp
WHERE GondviseloId IS NOT NULL
/*gondviselő elérhetőségei */
SELECT DISTINCT
Gondviselok.TanuloId AS TanuloId
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
,cim.Cimtipusa AS C_CIMTIPUSA
,cim.cim AS C_OSSZETETTCIM
,telefon.telefon AS C_TELEFONSZAM
,email.emailcim AS C_EMAILCIM
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselok
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
ORDER BY cim.Cimtipusa
--megtartott órák száma
SELECT
COUNT(mo.TantargyId) AS TantargyOraszam
,mo.Tantargynev AS TantargyNev
INTO #megtartottOrakSzama
FROM #megtartottOrak mo
WHERE mo.Megtartott = 'T'
GROUP BY
mo.TantargyId
,mo.TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
,STUFF(
(
SELECT DISTINCT
', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
FROM #megtartottOrakSzama btmp
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
) AS Tantargyak
FROM #megtartottOrakSzama tmp
-- Csoport tanárai
SELECT
targy.C_NEV AS TargyNev
,tanar.C_NYOMTATASINEV AS TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM T_FELHASZNALO_OSSZES tanar
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID
AND f.TOROLT='F'
AND f.C_OSZTALYCSOPORTID = @csoportId
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID
AND targy.TOROLT='F'
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
AND targykategoria.TOROLT = 'F'
AND targykategoria.C_TANEVID = @tanevId
WHERE tanar.TOROLT = 'F'
AND tanar.C_INTEZMENYID = @intezmenyid
AND tanar.c_tanevId = @tanevId
GROUP BY
C_ORDER
,targy.C_NEV
,tanar.C_NYOMTATASINEV
,tanar.ID
,tanar.C_OKTATASIAZONOSITO
ORDER BY
C_ORDER
,targy.C_NEV
,tanar.C_NYOMTATASINEV
END
GO

View File

@@ -0,0 +1,152 @@
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrakSzama
GO
CREATE PROCEDURE uspGetNemNaplozottOrakSzama
@pTanevId int
,@pIntezmenyId int
,@pFeladatKategoriaId int = null
AS BEGIN
SET NOCOUNT ON
CREATE TABLE #OsztalyCsoportok (
Id INT
,IsVegzos CHAR(1)
,IdoszakKezdete DATETIME
,IdoszakVege DATETIME
,INDEX IX1 CLUSTERED(Id, IdoszakKezdete, IdoszakVege)
)
CREATE TABLE #NaptariNapok (
Datum DATETIME
,HetirendId INT
,HetNapjaId INT
,OsztalyCsoportId INT
,CsengetesiRendId INT
,IsEgyediNap CHAR(1) COLLATE DATABASE_DEFAULT
,PRIMARY KEY CLUSTERED (OsztalyCsoportId, Datum, HetNapjaId, HetirendId)
)
DECLARE
@IdoszakKezdete DATETIME
,@IdoszakVege DATETIME = GETDATE()
,@VegzosUtolsoTanitasiNap DATETIME
SELECT
@IdoszakKezdete = tv.C_KEZDONAP
FROM T_TANEV_OSSZES tv WHERE ID = @pTanevId
SELECT
@VegzosUtolsoTanitasiNap = MIN(C_DATUM)
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395) AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
INSERT INTO #OsztalyCsoportok (
Id
,IsVegzos
,IdoszakKezdete
,IdoszakVege
)
SELECT
ID As Id
,C_VEGZOSEVFOLYAM AS IsVegzos
,@IdoszakKezdete AS IdoszakKezdete
,IIF(C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @IdoszakVege) AS IdoszakVege
FROM T_OSZTALYCSOPORT_OSSZES
WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId
AND (C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
UPDATE ocs
SET
ocs.IdoszakVege = NewVegeDatum
FROM #OsztalyCsoportok ocs
INNER JOIN (
SELECT
MIN(tr.C_DATUM) + 1 AS NewVegeDatum
,ocstr.C_OSZTALYCSOPORTID
FROM T_TANEVRENDJE_OSSZES tr
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603) AND tr.TOROLT = 'F' AND tr.C_TANEVID = @pTanevId
GROUP BY ocstr.C_OSZTALYCSOPORTID
) x ON x.C_OSZTALYCSOPORTID = ocs.Id
WHERE ocs.IsVegzos = 'T'
INSERT INTO #NaptariNapok (
Datum
,HetirendId
,HetNapjaId
,OsztalyCsoportId
,CsengetesiRendId
,IsEgyediNap
)
SELECT
nn.Datum
,ISNULL(tr.HetirendId, nn.HetirendId) AS HetirendId
,ISNULL(tr.HetNapjaId, nn.HetNapjaId) AS HetNapjaId
,nn.OsztalyCsoportId
,ISNULL(tr.CsengetesiRendId, nn.CsengetesiRendId) AS CsengetesiRendId
,COALESCE(tr.IsEgyediNap, nn.IsEgyediNap, 'F')
FROM (
SELECT
nn.C_NAPDATUMA AS Datum
,nn.C_HETIREND AS HetirendId
,nn.C_HETNAPJA AS HetNapjaId
,nn.C_ORARENDINAP AS OrarendiNap
,ocs.ID AS OsztalyCsoportId
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
,tr.C_EGYEDINAP AS IsEgyediNap
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN #OsztalyCsoportok ocs ON ocs.IdoszakKezdete <= nn.C_NAPDATUMA AND ocs.IdoszakVege > nn.C_NAPDATUMA
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
WHERE nn.TOROLT = 'F' AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
) nn
LEFT JOIN (
SELECT
nn.C_NAPDATUMA AS Datum
,tr.C_HETIREND AS HetirendId
,tr.C_HETNAPJA AS HetNapjaId
,tr.C_ORARENDINAP AS OrarendiNap
,ocstr.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
,tr.C_EGYEDINAP AS IsEgyediNap
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
INNER JOIN #OsztalyCsoportok ocs ON ocs.Id = ocstr.C_OSZTALYCSOPORTID AND ocs.IdoszakKezdete <= nn.C_NAPDATUMA AND ocs.IdoszakVege > nn.C_NAPDATUMA
WHERE nn.TOROLT = 'F' AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId AND nn.C_NAPDATUMA >= @IdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
) tr ON nn.Datum = tr.datum AND nn.OsztalyCsoportId = tr.OsztalyCsoportId
WHERE (ISNULL(tr.OrarendiNap, nn.OrarendiNap) = 'T')
SELECT
ora.Tanar
,ora.TanarOktAzon
,ora.Honap
,COUNT(*) AS Darab
FROM (
SELECT
COALESCE(helyettes.C_NYOMTATASINEV, tanar.C_NYOMTATASINEV) AS Tanar
,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
,FORMAT(nn.Datum, 'MM') AS Honap
,nn.Datum
-- egy napon lehet t<>bb <20>ra
,oo.C_ORASZAM
-- egy <20>r<EFBFBD>ban lehet t<>bb csoportnak <20>ra
,oo.C_OSZTALYCSOPORTID
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN #OsztalyCsoportok ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID
INNER JOIN #NaptariNapok nn ON nn.HetnapjaId = oo.C_HETNAPJA AND ocs.ID = nn.OsztalyCsoportId AND nn.Datum >= oo.C_ORAERVENYESSEGKEZDETE
AND ((nn.Datum < oo.C_ORAERVENYESSEGVEGE) OR (oo.C_ORAERVENYESSEGKEZDETE = oo.C_ORAERVENYESSEGVEGE AND nn.Datum = oo.C_ORAERVENYESSEGKEZDETE))
AND (oo.C_HETIREND = 1554 OR nn.HetirendId = oo.C_HETIREND) AND oo.C_EGYEDINAP = nn.IsEgyediNap
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = oo.C_TANARID AND tanar.C_TANEVID = oo.C_TANEVID AND tanar.TOROLT = 'F'
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hisz ON oo.ID = hisz.C_HELYETTESITETTORARENDID AND hisz.C_HELYETTESITESNAPJA = nn.Datum AND hisz.C_TANEVID = oo.C_TANEVID AND hisz.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON hisz.C_HELYETTESTANAROKID = helyettes.ID AND helyettes.C_TANEVID = oo.C_TANEVID AND helyettes.TOROLT = 'F'
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = ISNULL(nn.CsengetesiRendId, oo.C_CSENGETESIRENDID) AND csro.C_ORASZAM = oo.C_ORASZAM AND csro.TOROLT = 'F'
LEFT JOIN T_TANITASIORA_OSSZES tt ON tt.C_DATUM = nn.Datum AND tt.C_HETNAPJA = oo.C_HETNAPJA AND ((tt.C_CSENGETESIRENDID IS NULL AND tt.C_ORAKEZDETE = (nn.Datum + oo.C_ORAKEZDETE)
AND tt.C_ORAVEGE = (nn.Datum + oo.C_ORAVEGE)) OR (tt.C_CSENGETESIRENDID IS NOT NULL AND tt.C_ORASZAM = oo.C_ORASZAM)) AND tt.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
AND tt.C_TANTARGYID = oo.C_TANTARGYID AND tt.C_TANARID = oo.C_TANARID
WHERE oo.TOROLT = 'F' AND oo.C_TANEVID = @pTanevId AND (nn.Datum + oo.C_ORAKEZDETE) <= @IdoszakVege AND (nn.Datum + oo.C_ORAVEGE) >= @IdoszakKezdete
AND ((oo.C_CSENGETESIRENDID IS NOT NULL AND csro.C_CSENGETESIRENDID IS NOT NULL) OR (oo.C_CSENGETESIRENDID IS NULL AND csro.C_CSENGETESIRENDID IS NULL)) AND tt.ID IS NULL
) ora
GROUP BY ora.Tanar, ora.TanarOktAzon, ora.Honap
END
GO

View File

@@ -0,0 +1,133 @@
DROP PROCEDURE IF EXISTS uspGetUtolsoBeNemIrtOrak
GO
CREATE PROCEDURE uspGetUtolsoBeNemIrtOrak
@pIntezmenyId int
,@pTanevId int
,@pTanarId int
,@pDarab int
AS BEGIN
SET NOCOUNT ON;
DECLARE
@pIdoszakKezdete datetime
,@pIdoszakVege datetime
CREATE TABLE #OrarendiOrak (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TeremNev nvarchar (255)
,TeremId int
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
)
SELECT
@pIdoszakKezdete = tanev.C_KEZDONAP
,@pIdoszakVege = (CASE WHEN tanev.C_AKTIV = 'T' THEN GETDATE() ELSE tanev.C_UTOLSOTANITASINAP END)
FROM T_TANEV_OSSZES tanev
WHERE tanev.TOROLT = 'F'
AND tanev.ID = @pTanevId
AND tanev.C_INTEZMENYID = @pIntezmenyId
INSERT INTO #OrarendiOrak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,TeremId
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
)
EXEC sp_GetOrarend
@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pIdoszakKezdete = @pIdoszakKezdete
,@pIdoszakVege = @pIdoszakVege
,@pTanarId = @pTanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = NULL
SELECT TOP (@pDarab)
orak.Id AS Id
,CONVERT(nvarchar(25), OraKezdete, 102) AS Datum
,IIF(orak.CsengetesiRendID IS NOT NULL, orak.Oraszam, N'-') AS Oraszam
,orak.OsztalyNev AS OsztalyCsoport
,orak.TargyNev AS Tantargy
FROM #OrarendiOrak orak
WHERE orak.OraTipus = N'OrarendiOra'
AND orak.OraKezdete <= @pIdoszakVege
AND orak.OraVege >= @pIdoszakKezdete
ORDER BY orak.OraKezdete DESC
END
GO