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

View file

@ -0,0 +1,118 @@
DROP FUNCTION IF EXISTS fnGetDokumentumMulasztasokOsztalyonkentReszletes
GO
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (
@tanevId int
,@osztalyCsoportId int
,@iskolaErdekuSzamit bit
,@csakKivlasztottOsztalyCsoport bit = 0
,@atsoroltTanuloMulasztas bit = 1
,@idoszakEleje date = NULL
,@idoszakVege date = NULL
,@csakTanoraiCelu int = 1
)
RETURNS @result TABLE (
TanuloId int
,TanuloCsoportId int
,OsztalyCsoportId int
,OsztalyCsoportNev nvarchar (255)
,Tipusa int
,Igazolt char (1)
,IgazolasTipusa int
,KesesPercben int null
,Datum datetime
,Oraszam nvarchar (255)
,OraszamWithOrakezdeteVege nvarchar (255)
,TantargyId int
,TantargyNev nvarchar (255)
,HetSorszama int
,Gyakorlati char(1)
,Tanorai char(1)
,RENDEZ1 int
,RENDEZ2 nvarchar(255)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(255)
)
AS BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @defaultCsengetesiRendId int
DECLARE @tanoraiCsoportok TABLE(
OsztalyCsoportId int
)
SELECT @defaultCsengetesiRendId = ID
FROM T_CSENGETESIREND_OSSZES csr
WHERE csr.TOROLT='F'
AND csr.C_AKTIV = 'T'
AND csr.C_TANEVID = @tanevId
INSERT INTO @tanoraiCsoportok(OsztalyCsoportId)
SELECT
ID
FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)
INSERT INTO @result
SELECT
tm.C_ORATANULOIID AS TanuloId
,tcs.ID AS TanuloCsoportId
,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,ocs.C_NEV AS OsztalyCsoportNev
,tm.C_TIPUS AS Tipusa
,tm.C_IGAZOLT AS Igazolt
,tm.C_IGAZOLASTIPUSA AS IgazolasTipusa
,tm.C_KESESPERCBEN AS KesesPercben
,tao.C_DATUM AS Datum
,IIF(tao.C_CSENGETESIRENDORAID IS NULL,
(SELECT
ISNULL(MAX(csro.C_ORASZAM), 0)
FROM T_CSENGETESIRENDORA_OSSZES csro
WHERE csro.TOROLT = 'F'
AND csro.C_CSENGETESIRENDID = @defaultCsengetesiRendId
AND CONVERT(nvarchar(5), C_KEZDETE, 108) <= CONVERT(nvarchar(5), C_ORAKEZDETE, 108)
),tao.C_ORASZAM) as Oraszam
,IIF(tao.C_CSENGETESIRENDORAID IS NULL, CONCAT(CONVERT(nvarchar(5), tao.C_ORAKEZDETE, 108), '-',
CONVERT(nvarchar(5), tao.C_ORAVEGE, 108)), CAST(tao.C_ORASZAM AS nvarchar(5))) AS OraszamWithOrakezdeteVege
,tao.C_TANTARGYID AS TantargyId
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS TantargyNev
,tao.C_HETSORSZAMA AS HetSorszama
,tgy.C_GYAKORLATI AS Gyakorlati
,IIF(tanorai.OsztalyCsoportId IS NULL, 'F', 'T') AS Tanorai
,IIF(tgy.C_FOTARGYID IS NULL,ISNULL(dibtgykat.C_ORDER, 10000),ISNULL(dibftgykat.C_ORDER, 10000)) AS RENDEZ1
,COALESCE(ftgy.C_NEVNYOMTATVANYBAN, ftgy.C_NEV, tgy.C_NEV) AS RENDEZ2
,ISNULL(tgy.C_FOTARGYID, tgy.ID) AS RENDEZ3
,tgy.C_FOTARGYID AS RENDEZ4
,ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) AS RENDEZ5
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
AND tao.TOROLT='F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tm.C_ORATANULOIID
AND tcs.TOROLT = 'F'
AND tao.C_DATUM >= tcs.C_BELEPESDATUM
AND tao.C_DATUM < ISNULL(tcs.C_KILEPESDATUM, GETDATE())
AND tcs.C_OSZTALYCSOPORTID=@osztalyCsoportId
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = tao.C_TANTARGYID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibtgykat ON dibtgykat.Id = tgy.C_TARGYKATEGORIA
AND dibtgykat.TOROLT = 'F'
AND dibtgykat.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES ftgy ON tgy.C_FOTARGYID = ftgy.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibftgykat ON dibftgykat.ID = ftgy.C_TARGYKATEGORIA
AND dibftgykat.TOROLT = 'F'
AND dibftgykat.C_TANEVID = ftgy.C_TANEVID
LEFT JOIN @tanoraiCsoportok tanorai ON tanorai.OsztalyCsoportId = ocs.ID
WHERE tm.C_TIPUS BETWEEN 1499 AND 1500
AND tm.TOROLT = 'F'
AND (@csakTanoraiCelu = 0 OR tanorai.OsztalyCsoportId IS NOT NULL)
AND (@iskolaErdekuSzamit = 1 OR (tm.C_IGAZOLASTIPUSA IS NULL OR tm.C_IGAZOLASTIPUSA <> 1533))
AND (@atsoroltTanuloMulasztas = 1 OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu))))
AND (@csakKivlasztottOsztalyCsoport = 0 OR tao.C_OSZTALYCSOPORTID = @osztalyCsoportId)
AND (@idoszakEleje IS NULL OR tao.C_DATUM >= @idoszakEleje)
AND (@idoszakVege IS NULL OR tao.C_DATUM <= @idoszakVege)
RETURN
END
GO

View file

@ -0,0 +1,48 @@
DROP INDEX IF EXISTS T_CSOPORTTIPUS.NCI_CsoportTipus_AlTanevId_AlIntezmenyId
GO
CREATE INDEX NCI_CsoportTipus_AlTanevId_AlIntezmenyId
ON T_CSOPORTTIPUS (
C_ALTANEVID
,C_ALINTEZMENYID
)
WHERE C_ISTANORAICELU = 'T'
WITH (FILLFACTOR = 80)
-----------------------------
DROP INDEX IF EXISTS T_FOGLALKOZAS.NCI_Foglalkozas_IntezmenyId_TanevId_TantargyId_OsztalyCsoportId
GO
CREATE INDEX NCI_Foglalkozas_IntezmenyId_TanevId_TantargyId_OsztalyCsoportId
ON T_FOGLALKOZAS (
C_INTEZMENYID
,C_TANEVID
,C_TANTARGYID
,C_OSZTALYCSOPORTID
)
WHERE TOROLT = 'F'
WITH (FILLFACTOR = 80)
-----------------------------
DROP INDEX IF EXISTS T_TANEVRENDJE.NCI_TanevRendje_IntezmenyId_TanevId_NapTipusa
GO
CREATE INDEX NCI_TanevRendje_IntezmenyId_TanevId_NapTipusa
ON T_TANEVRENDJE (
C_INTEZMENYID
,C_TANEVID
,C_NAPTIPUSA
)
INCLUDE (C_DATUM)
WHERE TOROLT='F'
WITH (FILLFACTOR = 80)
-----------------------------
DROP INDEX IF EXISTS T_TANULOMULASZTAS.NCI_TanuloMulasztas_OraTanuloiId_Tipus_IntezmenyId_TanevId
GO
CREATE INDEX NCI_TanuloMulasztas_OraTanuloiId_Tipus_IntezmenyId_TanevId
ON T_TANULOMULASZTAS (
C_ORATANULOIID
,C_TIPUS
,C_INTEZMENYID
,C_TANEVID)
INCLUDE (C_TANITASIORAKID,C_IGAZOLASTIPUSA,C_IGAZOLT,C_KESESPERCBEN)
WHERE TOROLT = 'F'
WITH (FILLFACTOR = 80)
--dupla index
DROP INDEX IF EXISTS T_TANEVRENDJE.NCI_TanevRendje_TanevId_IntezmenyId_Datum

View file

@ -0,0 +1,483 @@
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
,@IneVege int = 1403
,@IIIneVege int = 1404
,@UtolsoTanitasiNap int = 1395
,@VegzosUtolsoTanitasiNap int = 1402
,@kesespercHianyzashoz int = 45
,@kesespercGyakHianyzashoz int = 45
,@iskolaErdekuParam int = 1683
,@idoszakEleje date
,@idoszakVege date
--Iskolaerdeku tavollet szamit
DECLARE
@iskolaErdekuSzamit bit = [dbo].fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId)
--Osztaly jellemzo
,@keresztFeleves bit = (SELECT IIF(C_KERESZTFELEVES = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
,@vegzosEvfolyamu bit = (SELECT IIF(C_VEGZOSEVFOLYAM = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
--Osztalyjellemzok alapjan a lezaro naptipus csereje
SET @pLezaroNaptipusId = (
SELECT CASE
WHEN @keresztFeleves = 0 AND @vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @VegzosUtolsoTanitasiNap
WHEN @keresztFeleves = 0 THEN @pLezaroNaptipusId
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)
,ERTEKELES_SZOVEG_MEGJEGYZES nvarchar(max)
,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)
,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
)
CREATE TABLE #Tanulok (
TanuloId int
)
CREATE TABLE #Tipusok (
Tipus_Char char(1)
,Igazolt char(1)
,Tipus int
,Gyakorlati char(1)
)
SELECT TOP 1 @idoszakEleje =
ISNULL(tr.C_DATUM,te.C_KEZDONAP)
FROM T_TANEV_OSSZES te
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_TANEVID = te.ID AND tr.TOROLT='F' AND tr.C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
AND (ocstr.C_OSZTALYCSOPORTID IS NULL OR ocstr.C_OSZTALYCSOPORTID = @pOsztalyId)
WHERE te.ID = @pTanevId
ORDER BY ocstr.C_OSZTALYCSOPORTID DESC
SELECT @idoszakVege= ISNULL(
(
SELECT TOP 1
C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
AND (ocstr.C_OSZTALYCSOPORTID IS NULL OR ocstr.C_OSZTALYCSOPORTID = @pOsztalyId)
WHERE tr.C_TANEVID = @pTanevId AND tr.C_NAPTIPUSA = @pLezaroNaptipusId AND tr.TOROLT = 'F'
ORDER BY ocstr.C_OSZTALYCSOPORTID DESC
)
,GETDATE()
)
IF @pAtsoroltTanuloAdatok IN (0,1)
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT ID
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
END
ELSE
BEGIN
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
SELECT KapcsOszt.ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege) KapcsOszt
WHERE (ID IN (
SELECT ID
FROM T_OSZTALY_OSSZES
UNION
SELECT ID
FROM T_CSOPORT_OSSZES
WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))
)
)
END
-- TANULÓK insert
INSERT INTO #osztalyTanulok (
TANULOID
,BELEPESDATUM
,KILEPESDATUM
)
SELECT
fh.ID
,tcs.C_BELEPESDATUM
,tcs.C_KILEPESDATUM
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT='F'
AND tcs.C_BELEPESDATUM < @idoszakVege
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @idoszakVege) AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId
WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @pTanevId
-- ÉRTÉKELÉS insert
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
,dib.C_NAME
,dib.C_VALUE
,FotargyE
,Altantargy
,OsztalyCsoportId
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ERTEKELESEK.TargyKategoriaId AND dib.C_TANEVID = @pTanevId
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
--MULASZTÁS insert
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 BETWEEN @pMulasztasTipusIdKeses AND @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
) hianyzas on hianyzas.C_TANULOID = szm.C_TANULOID
AND szm.TIPUS_CHAR = 'H'
AND szm.C_GYAKORLATI = 'F'
--==================== SELECTEK ==========================
-- OSZTÁLY
SELECT
o.ID
,ocs.C_NEV
,ocs.C_VEGZOSEVFOLYAM
,fh.C_NYOMTATASINEV
,o.C_OSZTALYNAPLOMEGNYITASA
,o.C_OSZTALYNAPLOZARASA
,o.C_OSZTALYFONOKID
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT='F'
LEFT JOIN T_FELHASZNALO_OSSZES fh ON o.C_OSZTALYFONOKID = fh.ID AND fh.TOROLT='F'
INNER JOIN T_FELADATELLATASIHELY_OSSZES felh ON felh.ID = ocs.C_FELADATELLATASIHELYID AND felh.TOROLT='F'
WHERE ocs.ID = @pOsztalyId
--TANULÓK LISTA
SELECT
fh.ID as C_TANULOID
,fh.C_NYOMTATASINEV as TANULONEV
,fh.C_ANYJANEVE as ANYJANEVE
,fh.C_OKTATASIAZONOSITO as OKTATASIAZONOSITO
,BELEPESDATUM as BELEPESDATUM
,KILEPESDATUM as KILEPESDATUM
FROM T_FELHASZNALO_OSSZES fh
INNER JOIN #osztalyTanulok AS ot ON ot.TANULOID = fh.ID
WHERE fh.TOROLT='F'
ORDER BY fh.C_NYOMTATASINEV;
-- 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
f.C_TANTARGYID
,COALESCE(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV) as TANTARGY_NEV
,dib.C_NAME as TARGYKATEGORIA_NEV
,dib.C_VALUE as TARGYKATEGORIA_SORSZAM
,tgy.C_FOTARGYE
,tgy.C_ALTANTARGYKENTNYOMTATVANYBAN
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN #aktualisOsztalyCsoportok ocs ON ocs.OSZTALYCSOPORTID = f.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = f.C_TANTARGYID AND tgy.C_TANEVID = @pTanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = tgy.C_TARGYKATEGORIA AND dib.C_TANEVID = @pTanevId AND dib.C_DICTIONARYTYPEID = 36 AND dib.TOROLT='F'
WHERE f.TOROLT = 'F' AND (tgy.C_FOTARGYE = 'T' OR tgy.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(6)), CAST(MagatartasErtekOsztalyzatkent AS nvarchar(6)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat
,MagatartasErtek
,COALESCE(CAST(SzorgalomOsztalyzatValue AS nvarchar(6)), CAST(SzorgalomErtekOsztalyzatkent AS nvarchar(6)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat
,SzorgalomErtek
,ErtekelesSzoveg AS C_ERTEKELESSZOVEG
,Datum AS C_ERTEKELESDATUM
,'F' AS TOROLT -- y tho?
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 stat
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
,ocs.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
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
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