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,447 @@
DROP PROCEDURE IF EXISTS [dbo].[sp_GetDokumentumErtekelesek]
GO
CREATE PROCEDURE [dbo].[sp_GetDokumentumErtekelesek]
@osztalyId int,
@tanevId int,
@ertekelesTipus int,
@isBizonyitvany int = 0,
@nyomtatvanyNyelvEnum int = 0,
@isMuveszetOktatasi bit = 0,
@tanitasiHetekSzamaVegzos int = 32,
@tanitasiHetekSzamaNemVegzos int = 36,
@isAltantargyBeszamitasa bit = 0
AS
BEGIN
SET NOCOUNT ON;
--PRINT 'Osztályhoz tartozó tanulók'
CREATE TABLE #Tanulo (
TanuloId int
,TanuloCsoportId int
,BelepesDatum date
,KilepesDatum date
,PRIMARY KEY (TanuloId, TanuloCsoportId, BelepesDatum)
)
INSERT INTO #Tanulo
SELECT
C_TANULOID AS TanuloId
,ID AS TanuloCsoportId
,C_BELEPESDATUM AS BelepesDatum
,ISNULL(C_KILEPESDATUM, '21000101') AS KilepesDatum
FROM T_TANULOCSOPORT_OSSZES tanuloCsoport
WHERE C_OSZTALYCSOPORTID = @osztalyId
AND C_TANEVID = @tanevId
AND TOROLT = 'F'
DECLARE
@defaultFeladatKategoriaId int = 7553
,@nyelvesitettMagatartasNev nvarchar(max) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'MAGATARTAS' WHEN 1 THEN 'Betragen' WHEN 2 THEN 'Conduct' END
,@nyelvesitettSzorgalomNev nvarchar(max) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'SZORGALOM' WHEN 1 THEN 'Fleiss' WHEN 2 THEN 'Effort' END
CREATE TABLE #Oraszamok (
TanuloId int
,Tantargy int
,Oraszam float
,INDEX IX_1 CLUSTERED (TanuloId, Tantargy)
)
INSERT INTO #Oraszamok
SELECT TanuloId, TantargyId, Oraszam
FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevId, @osztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
IF @isMuveszetOktatasi = 0 BEGIN
SELECT
x.TANULOID
,x.TanuloCsoportId
,x.TARGY
,x.Jegyzet
,REPLACE(Ertekeles, '(', ' (') AS Ertekeles
,x.ErtekelesValue
,REPLACE(ErtekelesJegyzettel, '(', ' (') AS ErtekelesJegyzettel
,x.Oraszam
,x.RENDEZ1
,x.RENDEZ2
,x.RENDEZ3
,x.RENDEZ4
,x.RENDEZ5
FROM (
SELECT
er.C_TANULOID AS TANULOID
,dk.TanuloCsoportId AS TANULOCSOPORTID
,@nyelvesitettMagatartasNev AS TARGY
,NULL AS Jegyzet
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, mag.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASERTEKID, @tanevId))), ISNULL(er.C_MAGATARTASSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, mao.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASOSZTALYZATID, @tanevId)))) AS Ertekeles
,NULL AS ErtekelesValue
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, mag.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASERTEKID, @tanevId))), ISNULL(er.C_MAGATARTASSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, mao.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_MAGATARTASOSZTALYZATID, @tanevId)))) AS ErtekelesJegyzettel
,NULL AS Oraszam
,-2 AS RENDEZ1
,NULL AS RENDEZ2
,NULL AS RENDEZ3
,NULL AS RENDEZ4
,NULL AS RENDEZ5
FROM T_TANULOERTEKELES_OSSZES er
INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = er.C_TANULOID
AND tcs.C_OSZTALYCSOPORTID = @osztalyId
AND tcs.C_BELEPESDATUM <= er.C_DATUM
AND (tcs.C_KILEPESDATUM >= er.C_DATUM OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = er.C_TANULOID
AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= er.C_DATUM
AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= er.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mao ON mao.ID = er.C_MAGATARTASOSZTALYZATID AND mao.C_TANEVID = er.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES mag ON mag.ID = er.C_MAGATARTASERTEKID AND mag.C_TANEVID = er.C_TANEVID
WHERE KilepesDatum > er.C_DATUM
AND (er.C_MAGATARTASERTEKID IS NOT NULL OR er.C_MAGATARTASSZOVEGFORMAZOTT IS NOT NULL OR er.C_MAGATARTASOSZTALYZATID IS NOT NULL)
AND er.C_TANEVID = @tanevId
AND er.TOROLT = 'F'
AND er.C_ISMAGATARTASSZORGALOM = 'T'
AND er.C_TIPUSID = @ertekelesTipus
-- AND er.C_OSZTALYCSOPORTID IN (SELECT ID FROM @kapcsolodoOcsID)
UNION ALL
SELECT
er.C_TANULOID AS TANULOID
,dk.TanuloCsoportId AS TanuloCsoportId
,@nyelvesitettSzorgalomNev AS TARGY
,NULL AS Jegyzet
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMERTEKID , @tanevId))), ISNULL(er.C_SZORGALOMSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMOSZTALYZATID, @tanevId)))) AS Ertekeles
,NULL AS ErtekelesValue
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMERTEKID, @tanevId))), ISNULL(er.C_SZORGALOMSZOVEGFORMAZOTT, IIF(@nyomtatvanyNyelvEnum = 0, szg.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_SZORGALOMOSZTALYZATID, @tanevId)))) AS ErtekelesJegyzettel
,NULL AS Oraszam
,-1 AS RENDEZ1
,NULL AS RENDEZ2
,NULL AS RENDEZ3
,NULL AS RENDEZ4
,NULL AS RENDEZ5
FROM T_TANULOERTEKELES_OSSZES er
INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = er.C_TANULOID
AND tcs.C_OSZTALYCSOPORTID = @osztalyId
AND tcs.C_BELEPESDATUM <= er.C_DATUM
AND (tcs.C_KILEPESDATUM >= er.C_DATUM OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = er.C_TANULOID
AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= er.C_DATUM
AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= er.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szo ON szo.ID = er.C_SZORGALOMOSZTALYZATID AND szo.C_TANEVID = er.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szg ON szg.ID = er.C_SZORGALOMERTEKID AND szg.C_TANEVID = er.C_TANEVID
WHERE dk.KilepesDatum > er.C_DATUM
AND (er.C_SZORGALOMERTEKID IS NOT NULL OR er.C_SZORGALOMSZOVEGFORMAZOTT IS NOT NULL OR er.C_SZORGALOMOSZTALYZATID IS NOT NULL)
AND er.C_TANEVID = @tanevId
AND er.TOROLT = 'F'
AND er.C_ISMAGATARTASSZORGALOM = 'T'
AND er.C_TIPUSID = @ertekelesTipus
--- AND TipusId = @ertekelesTipus --????
UNION ALL
SELECT
er.C_TANULOID AS TANULOID
,dk.TanuloCsoportId AS TanuloCsoportId
,CASE
WHEN @nyomtatvanyNyelvEnum = 0 THEN
ISNULL(tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
WHEN @nyomtatvanyNyelvEnum = 1 THEN
COALESCE(tgy.C_NEMETNEV, tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
WHEN @nyomtatvanyNyelvEnum = 2 THEN
COALESCE(tgy.C_ANGOLNEV, tgy.C_NEVNYOMTATVANYBAN, tgy.C_NEV)
END AS TARGY
,er.C_ERTEKELESTEMA AS Jegyzet
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, jegy.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_ERTEKELESOSZTALYZATID, @tanevId))), ISNULL(er.C_ERTEKELESSZOVEGFORMAZOTT, CONVERT(nvarchar(max),er.C_ERTEKELESSZAZALEK))) AS Ertekeles
,jegy.C_VALUE AS ErtekelesValue
,CASE
WHEN tgy.C_TARGYKATEGORIA = 7688 AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL THEN
CASE er.C_ERTEKELESOSZTALYZATID
WHEN 1502 THEN 'Hanyag(2)'
WHEN 1503 THEN 'Változó(3)'
WHEN 1504 THEN 'Jó(4)'
WHEN 1505 THEN 'Példás(5)'
END
ELSE ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, jegy.C_NAME, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, er.C_ERTEKELESOSZTALYZATID, @tanevId))), ISNULL(er.C_ERTEKELESSZOVEGFORMAZOTT, CONVERT(nvarchar(max),er.C_ERTEKELESSZAZALEK))) + IIF(er.C_ERTEKELESTEMA IS NULL, '', ' * ' + er.C_ERTEKELESTEMA)
END AS ErtekelesJegyzettel
,Oraszam AS Oraszam
,CASE WHEN tgy.C_FOTARGYID IS NULL THEN ISNULL(kat.C_ORDER, 10000) ELSE ISNULL(fokat.C_ORDER, 10000) END as RENDEZ1
,COALESCE(fotgy.C_NEVNYOMTATVANYBAN, fotgy.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_TANULOERTEKELES_OSSZES er
INNER JOIN #Tanulo dk ON dk.TanuloId = er.C_TANULOID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = er.C_TANULOID
AND tcs.C_OSZTALYCSOPORTID = @osztalyId
AND tcs.C_BELEPESDATUM <= er.C_DATUM
AND (tcs.C_KILEPESDATUM >= er.C_DATUM OR tcs.C_KILEPESDATUM IS NULL)
AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES ocs ON ocs.C_TANULOID = er.C_TANULOID
AND ocs.C_OSZTALYCSOPORTID = er.C_OSZTALYCSOPORTID
AND ocs.C_BELEPESDATUM <= er.C_DATUM
AND (ocs.C_KILEPESDATUM >= er.C_DATUM OR ocs.C_KILEPESDATUM IS NULL)
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @tanevId
LEFT JOIN #Oraszamok OraszamTable ON OraszamTable.Tantargy = er.C_TANTARGYID
AND OraszamTable.TanuloId = er.C_TANULOID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.ID = er.C_ERTEKELESOSZTALYZATID
AND jegy.C_TANEVID = er.C_TANEVID
AND jegy.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = er.C_TANTARGYID AND tgy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES kat ON kat.ID = tgy.C_TARGYKATEGORIA
AND kat.TOROLT = 'F'
AND kat.C_TANEVID = tgy.C_TANEVID
LEFT JOIN T_TANTARGY_OSSZES fotgy ON tgy.C_FOTARGYID = fotgy.ID AND fotgy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES fokat ON kat.ID = fotgy.C_TARGYKATEGORIA
AND fokat.TOROLT = 'F'
AND fokat.C_TANEVID = fotgy.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES o ON er.C_OSZTALYCSOPORTID = o.ID AND o.C_FELADATKATEGORIAID = 7553
LEFT JOIN (
SELECT cs.ID
FROM T_CSOPORT_OSSZES cs
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA AND cst.C_ALTANEVID = cs.C_ALTANEVID AND cst.C_ISTANORAICELU = 'T'
) cs ON cs.ID = er.C_OSZTALYCSOPORTID
WHERE er.C_TIPUSID = @ertekelesTipus
AND dk.KilepesDatum > er.C_DATUM
AND (tgy.C_FOTARGYE = 'T' OR tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
AND tgy.C_TARGYKATEGORIA <> 1248
AND er.C_ISMAGATARTASSZORGALOM = 'F'
AND er.TOROLT = 'F'
AND (cs.ID IS NOT NULL OR er.C_OSZTALYCSOPORTID = @osztalyId)
) x
END
ELSE BEGIN -- A művészeti csoportos lekérdezés maradt a régi, elvileg nem használják már, mert ott az ami, de azért ez nagy bizonyossággal nem jelenthető ki.
CREATE TABLE #ErtekelesekTemp (
ErtekelesId int primary key NOT NULL
,Datum date
,TipusId int
,ErtekelesSzoveg nvarchar(max)
,ErtekelesSzovegFormazott nvarchar(max)
,ErtekelesSzovegRovidNev nvarchar(3)
,ErtekelesOsztalyzatId int
,ErtekelesOsztalyzatValue int
,ErtekelesOsztalyzatNev nvarchar(max)
,ErtekelesSzazalek nvarchar(max)
,MagatartasOsztalyzatId int
,MagatartasOsztalyzatValue int
,MagatartasOsztalyzatNev nvarchar(max)
,MagatartasSzoveg nvarchar(max)
,MagatartasSzovegFormazott nvarchar(max)
,MagatartasSzovegRovidNev nvarchar(3)
,MagatartasErtekId int
,MagatartasErtek nvarchar(max)
,MagatartasErtekOsztalyzatkent int
,SzorgalomOsztalyzatId int
,SzorgalomOsztalyzatValue int
,SzorgalomOsztalyzatNev nvarchar(max)
,SzorgalomSzoveg nvarchar(max)
,SzorgalomSzovegFormazott nvarchar(max)
,SzorgalomSzovegRovidNev nvarchar(3)
,SzorgalomErtekId int
,SzorgalomErtek nvarchar(max)
,SzorgalomErtekOsztalyzatkent int
,TanuloId int
,OsztalyCsoportId int
,TantargyId int
,TantargyNevZarojellel nvarchar(max)
,TantargyNevNyomtatvanyban nvarchar(max)
,TantargyNev nvarchar(max)
,TantargyAngolNev nvarchar(max)
,TantargyNemetNev nvarchar(max)
,TargyKategoriaId int
,FotargyE char(1)
,Altantargy char(1)
,FotargyId int
,ErtekelesTema nvarchar(max)
,ErtekeloId int
,ErtekelesModjaId int
,IsMagatartasSzorgalom char(1)
,Jeloles nvarchar(max)
,JelolesAndErtekelesTema nvarchar(max)
,RENDEZ1 int
,RENDEZ2 nvarchar(max)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(max)
)
INSERT INTO #ErtekelesekTemp
SELECT
ErtekelesId
,Datum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegFormazott
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatValue
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegFormazott
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,MagatartasErtekOsztalyzatkent
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatValue
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegFormazott
,SzorgalomSzovegRovidNev
,SzorgalomErtekId
,SzorgalomErtek
,SzorgalomErtekOsztalyzatkent
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNevNyomtatvanyban
,TantargyNev
,NULL
,NULL
,TargyKategoriaId
,FotargyE
,Altantargy
,FotargyId
,ErtekelesTema
,ErtekeloId
,ErtekelesModjaId
,IsMagatartasSzorgalom
,Jeloles
,JelolesAndErtekelesTema
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2)
CREATE TABLE #temp (
TANULOID int
,TANULOCSOPORTID int
,TARGY nvarchar(max)
,Jegyzet nvarchar(max)
,Ertekeles nvarchar(max)
,ErtekelesValue int
,ErtekelesJegyzettel nvarchar(max)
,Oraszam FLOAT
,RENDEZ1 int
,RENDEZ2 nvarchar(max)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(max)
)
INSERT INTO #temp
SELECT
ErtekelesTemp.TanuloId AS TANULOID
,TanuloTable.TanuloCsoportId AS TanuloCsoportId
,@nyelvesitettMagatartasNev AS TARGY
,NULL
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId))))
,NULL
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId, @tanevId))), ISNULL(MagatartasSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId, @tanevId)))) AS ErtekelesJegyzettel
,NULL AS Oraszam
,-2
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND (MagatartasErtek IS NOT NULL OR MagatartasSzovegFormazott IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
AND TipusId = @ertekelesTipus --????
INSERT INTO #TEMP
SELECT
ErtekelesTemp.TanuloId AS TANULOID
,TanuloTable.TanuloCsoportId AS TanuloCsoportId
,@nyelvesitettSzorgalomNev AS TARGY
,NULL
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId))))
,NULL
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId, @tanevId))), ISNULL(SzorgalomSzovegFormazott, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId, @tanevId)))) AS ErtekelesJegyzettel
,NULL AS Oraszam
,-1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
WHERE (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzovegFormazott IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
AND TipusId = @ertekelesTipus --????
INSERT INTO #TEMP
SELECT
ErtekelesTemp.TanuloId AS TANULOID
,TanuloTable.TanuloCsoportId AS TanuloCsoportId
,CASE
WHEN @nyomtatvanyNyelvEnum = 0 THEN
ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
WHEN @nyomtatvanyNyelvEnum = 1 THEN
ISNULL(TantargyNemetNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
WHEN @nyomtatvanyNyelvEnum = 2 THEN
ISNULL(TantargyAngolNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
END AS TARGY
,ErtekelesTemp.ErtekelesTema
,ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(nvarchar(max),ErtekelesTemp.ErtekelesSzazalek)))
,ErtekelesTemp.ErtekelesOsztalyzatValue
,CASE
WHEN TargyKategoriaId = 7688 AND ErtekelesOsztalyzatId IS NOT NULL THEN
CASE
WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1502 THEN 'Hanyag(2)'
WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1503 THEN 'Változó(3)'
WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1504 THEN 'Jó(4)'
WHEN ErtekelesTemp.ErtekelesOsztalyzatId = 1505 THEN 'Példás(5)'
END
ELSE ISNULL(CONVERT(nvarchar(max), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId, @tanevId))), ISNULL(ErtekelesTemp.ErtekelesSzovegFormazott, CONVERT(nvarchar(max),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema)
END AS ErtekelesJegyzettel
,Oraszam AS Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN #Tanulo TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
LEFT JOIN #Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
WHERE ErtekelesTemp.TipusId = @ertekelesTipus
AND (ErtekelesTemp.FotargyE = 'T' OR ErtekelesTemp.Altantargy = 'T')
AND (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND ErtekelesTemp.TargyKategoriaId <> 1248
AND ErtekelesTemp.isMagatartasSzorgalom = 'F'
SELECT
TANULOID
,TanuloCsoportId
,TARGY
,Jegyzet
,REPLACE(Ertekeles, '(', ' (') AS Ertekeles
,ErtekelesValue
,REPLACE(ErtekelesJegyzettel, '(', ' (') AS ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #temp
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
END
END
GO

View file

@ -0,0 +1,191 @@
DROP PROCEDURE IF EXISTS [uspGetDolgozatErtekelesAtlag]
GO
CREATE PROCEDURE [uspGetDolgozatErtekelesAtlag]
@pIntezmenyId int
,@pTanevId int
,@pOsztalyCsoportId int
,@pTantargyId int
,@pTanarId int
,@pErtekelesTema nvarchar(255)
,@pAtlagTol float
,@pAtlagIg float
,@pErdemjegy5Tol int
,@pErdemjegy5Ig int
,@pErdemjegy4Tol int
,@pErdemjegy4Ig int
,@pErdemjegy3Tol int
,@pErdemjegy3Ig int
,@pErdemjegy2Tol int
,@pErdemjegy2Ig int
,@pErdemjegy1Tol int
,@pErdemjegy1Ig int
,@pNemIrtDolgozatotTol int
,@pNemIrtDolgozatotIg int
,@pSzuperOsztalyfonok int
,@pDatum datetime
AS BEGIN
SET NOCOUNT ON;
DECLARE @preSql NVARCHAR(MAX), @mainSql NVARCHAR(MAX), @sql NVARCHAR(MAX)
SET @pErtekelesTema = REPLACE(@pErtekelesTema, ' ', '')
SET @preSql = IIF(@pSzuperOsztalyfonok = 1, N'', N'
CREATE TABLE #OsztalyCsoportokTantargyak (
OsztalyCsoportId INT
,OsztalyCsoportNev nvarchar(255)
,TantargyId INT
,PRIMARY KEY(OsztalyCsoportId,TantargyId)
)
INSERT INTO #OsztalyCsoportokTantargyak (
OsztalyCsoportId
,OsztalyCsoportNev
,TantargyId
)
EXEC uspGetTanarAltalErtekelhetoCsoportokTantargyak
@pTanarId
,@pTanevId
,@pDatum
')
SET @mainSql = N'
SELECT
sub.Datum
,sub.OsztalyCsoport
,sub.OsztalyCsoportId
,sub.ErtekelesTema
,tgy.C_NEV AS TantargyNev
,sub.TantargyId
,sub.ErtekelesModId
,sub.Erdemjegy1
,sub.Erdemjegy2
,sub.Erdemjegy3
,sub.Erdemjegy4
,sub.Erdemjegy5
,sub.Cnt IrtakDolgozatot
,(letszam.Letszam - sub.Cnt) NemIrtakDolgozatot
,CONVERT(nvarchar(255), sub.Cnt) + ''/'' + CONVERT(nvarchar(255), letszam.Letszam) AS IrtakDolgozatotArany
,ROUND(Total / CAST(Cnt AS Float), 2) AS Atlag
,letszam.Letszam
FROM (
SELECT
s.C_DATUM AS Datum
,s.OsztalyCsoportNev AS OsztalyCsoport
,s.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,s.C_ERTEKELESTEMA AS ErtekelesTema
,s.C_TANTARGYID AS TantargyId
,s.C_ERTEKELESMODID AS ErtekelesModId
,s.[1501] AS Erdemjegy1
,s.[1502] AS Erdemjegy2
,s.[1503] AS Erdemjegy3
,s.[1504] AS Erdemjegy4
,s.[1505] AS Erdemjegy5
,s.[1501] + s.[1502] + s.[1503] + s.[1504] + s.[1505] AS Cnt
,s.[1501] + s.[1502] * 2 + s.[1503] * 3 + s.[1504] * 4 + s.[1505] * 5 AS Total
FROM (
SELECT
er.C_DATUM
,er.C_OSZTALYCSOPORTID
,er.C_ERTEKELESTEMA
,er.C_TANTARGYID
,er.C_ERTEKELESOSZTALYZATID
,er.C_ERTEKELESMODID
,ocs.C_NEV AS OsztalyCsoportNev
FROM T_TANULOERTEKELES_OSSZES er
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID AND ocs.TOROLT=''F''
WHERE er.C_ERTEKELESMODID IN (1507, 1508)
AND er.C_TANEVID = @pTanevId
AND er.C_ISMAGATARTASSZORGALOM = ''F''
AND er.TOROLT = ''F''
AND er.C_ERTEKELESTEMA IS NOT NULL
AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL
' + IIF(@pSzuperOsztalyfonok = 1, N'', N'AND (EXISTS(SELECT 1 FROM #OsztalyCsoportokTantargyak ocst WHERE ocst.OsztalyCsoportId = er.C_OSZTALYCSOPORTID AND ocst.TantargyId = er.C_TANTARGYID))') + N'
' + IIF(@pTantargyId IS NULL, N'', N'AND er.C_TANTARGYID = @pTantargyId') + N'
' + IIF(@pErtekelesTema IS NULL, N'', N'AND REPLACE(er.C_ERTEKELESTEMA,'' '','''') LIKE ''%' + @pErtekelesTema + '%''') + N'
' + IIF(@pOsztalyCsoportId IS NULL, N'', N'AND er.C_OSZTALYCSOPORTID = @pOsztalyCsoportId') + N'
) x
PIVOT (COUNT(C_ERTEKELESOSZTALYZATID) FOR C_ERTEKELESOSZTALYZATID IN ([1501], [1502], [1503], [1504], [1505])
) s
WHERE 1 = 1' + '
' + IIF(@pErdemjegy5Tol IS NULL, N'', 'AND s.[1505] >= @pErdemjegy5Tol') + '
' + IIF(@pErdemjegy5Ig IS NULL, N'', 'AND s.[1505] <= @pErdemjegy5Ig') + '
' + IIF(@pErdemjegy4Tol IS NULL, N'', 'AND s.[1504] >= @pErdemjegy4Tol') + '
' + IIF(@pErdemjegy4Ig IS NULL, N'', 'AND s.[1504] <= @pErdemjegy4Ig') + '
' + IIF(@pErdemjegy3Tol IS NULL, N'', 'AND s.[1503] >= @pErdemjegy3Tol') + '
' + IIF(@pErdemjegy3Ig IS NULL, N'', 'AND s.[1503] <= @pErdemjegy3Ig') + '
' + IIF(@pErdemjegy2Tol IS NULL, N'', 'AND s.[1502] >= @pErdemjegy2Tol') + '
' + IIF(@pErdemjegy2Ig IS NULL, N'', 'AND s.[1502] <= @pErdemjegy2Ig') + '
' + IIF(@pErdemjegy1Tol IS NULL, N'', 'AND s.[1501] >= @pErdemjegy1Tol') + '
' + IIF(@pErdemjegy1Ig IS NULL, N'', 'AND s.[1501] <= @pErdemjegy1Ig') + '
) sub
INNER JOIN T_TANTARGY_OSSZES tgy ON sub.TantargyId = tgy.ID AND tgy.TOROLT=''F''
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dTantargy ON tgy.C_TARGYKATEGORIA = dTantargy.ID AND dTantargy.C_TANEVID = @pTanevId AND dTantargy.TOROLT=''F''
INNER JOIN (
SELECT nn.C_NAPDATUMA, tcs.C_OSZTALYCSOPORTID, COUNT(1) AS Letszam
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA >= tcs.C_BELEPESDATUM
AND (nn.C_NAPDATUMA <= tcs.C_KILEPESDATUM OR tcs.C_KILEPESDATUM IS NULL)
AND nn.TOROLT=''F''
WHERE nn.C_TANEVID = @pTanevId
' + IIF(@pOsztalyCsoportId IS NULL, N'', N'AND tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId') + N'
AND tcs.C_TANEVID = @pTanevId
AND tcs.TOROLT=''F''
GROUP BY nn.C_NAPDATUMA, tcs.C_OSZTALYCSOPORTID
) letszam ON letszam.C_NAPDATUMA = sub.Datum
AND letszam.C_OSZTALYCSOPORTID = OsztalyCsoportId' + '
' + IIF(@pNemIrtDolgozatotTol IS NULL, N'', N'AND (letszam.Letszam - sub.Cnt) >= @pNemIrtDolgozatotTol') + '
' + IIF(@pNemIrtDolgozatotIg IS NULL, N'', N'AND (letszam.Letszam - sub.Cnt) <= @pNemIrtDolgozatotIg') + '
' + IIF(@pAtlagTol IS NULL, N'', N'AND ROUND(Total / CAST(Cnt AS Float), 2) >= @pAtlagTol') + '
' + IIF(@pAtlagIg IS NULL, N'', N'AND ROUND(Total / CAST(Cnt AS Float), 2) <= @pAtlagIg') + '
'
SET @sql = CONCAT(@preSql, @mainSql)
EXEC sp_executesql @sql, N'
@pIntezmenyId int
,@pTanevId int
,@pOsztalyCsoportId int
,@pTantargyId int
,@pTanarId int
,@pErtekelesTema nvarchar(255)
,@pAtlagTol float
,@pAtlagIg float
,@pErdemjegy5Tol int
,@pErdemjegy5Ig int
,@pErdemjegy4Tol int
,@pErdemjegy4Ig int
,@pErdemjegy3Tol int
,@pErdemjegy3Ig int
,@pErdemjegy2Tol int
,@pErdemjegy2Ig int
,@pErdemjegy1Tol int
,@pErdemjegy1Ig int
,@pNemIrtDolgozatotTol int
,@pNemIrtDolgozatotIg int
,@pSzuperOsztalyfonok int
,@pDatum datetime'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTantargyId = @pTantargyId
,@pTanarId = @pTanarId
,@pErtekelesTema = @pErtekelesTema
,@pAtlagTol = @pAtlagTol
,@pAtlagIg = @pAtlagIg
,@pErdemjegy5Tol = @pErdemjegy5Tol
,@pErdemjegy5Ig = @pErdemjegy5Ig
,@pErdemjegy4Tol = @pErdemjegy4Tol
,@pErdemjegy4Ig = @pErdemjegy4Ig
,@pErdemjegy3Tol = @pErdemjegy3Tol
,@pErdemjegy3Ig = @pErdemjegy3Ig
,@pErdemjegy2Tol = @pErdemjegy2Tol
,@pErdemjegy2Ig = @pErdemjegy2Ig
,@pErdemjegy1Tol = @pErdemjegy1Tol
,@pErdemjegy1Ig = @pErdemjegy1Ig
,@pNemIrtDolgozatotTol = @pNemIrtDolgozatotTol
,@pNemIrtDolgozatotIg = @pNemIrtDolgozatotIg
,@pSzuperOsztalyfonok = @pSzuperOsztalyfonok
,@pDatum = @pDatum
END
GO

View file

@ -0,0 +1,41 @@
DROP PROCEDURE IF EXISTS uspGetTanarAltalErtekelhetoCsoportokTantargyak
GO
CREATE PROCEDURE uspGetTanarAltalErtekelhetoCsoportokTantargyak
@pTanarId int
,@pTanevId int
,@pDatum date
AS
BEGIN
SET NOCOUNT ON;
--Minden, ahol ő az osztályfőnök
SELECT
ocs.ID AS OsztalyCsoportId
,ocs.C_NEV
,f.C_TANTARGYID AS TantargyId
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_TANULOCSOPORT tcsocs ON tcsocs.C_OSZTALYCSOPORTID = ocs.ID AND tcsocs.TOROLT='F'
AND @pDatum >= tcsocs.C_BELEPESDATUM
AND (tcsocs.C_KILEPESDATUM IS NULL OR tcsocs.C_KILEPESDATUM >= @pDatum)
INNER JOIN T_TANULOCSOPORT tcso ON tcso.C_TANULOID = tcsocs.C_TANULOID AND tcso.TOROLT='F'
AND @pDatum >= tcso.C_BELEPESDATUM
AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM >= @pDatum)
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocso ON ocso.ID = tcso.C_OSZTALYCSOPORTID AND ocso.C_FELADATKATEGORIAID = ocs.C_FELADATKATEGORIAID AND ocso.TOROLT='F'
INNER JOIN T_OSZTALY_OSSZES o ON o.ID=ocso.ID AND o.TOROLT='F' AND o.C_OSZTALYFONOKID = @pTanarId
INNER JOIN T_FOGLALKOZAS_OSSZES f ON ocs.ID = f.C_OSZTALYCSOPORTID AND f.TOROLT = 'F'
WHERE ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @pTanevId
UNION
--Minden, ahol ő a tanár
SELECT
ocs.ID AS OsztalyCsoportId
,ocs.C_NEV
,f.C_TANTARGYID AS TantargyId
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = f.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
WHERE f.TOROLT = 'F'
AND f.C_TANARID = @pTanarId
AND ocs.C_TANEVID = @pTanevId
ORDER BY C_NEV
END
GO