init
This commit is contained in:
+302
@@ -0,0 +1,302 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTanulo
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTanulo
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pTanarId int
|
||||
,@pTanuloId int
|
||||
,@pDatum date = NULL
|
||||
,@pAmiFeladatIds NVARCHAR(255)
|
||||
,@pOktatasiNevelesiFeladatId int = NULL
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
IF @pDatum IS NULL
|
||||
SET @pDatum = CONVERT(date, GETDATE())
|
||||
|
||||
DECLARE
|
||||
@evfolyamTipusId int
|
||||
,@sql nvarchar (max)
|
||||
|
||||
SELECT TOP (1)
|
||||
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
|
||||
FROM
|
||||
fnGetTanuloOsztaly(@pTanuloId, @pDatum, NULL, 0, @pOktatasiNevelesiFeladatId) tanuloOsztaly
|
||||
ORDER BY
|
||||
tanuloOsztaly.BelepesDatuma DESC
|
||||
|
||||
SET @sql = N'
|
||||
CREATE TABLE #KapcsopodoTantargyak (
|
||||
ID int
|
||||
,C_FOTARGYID int
|
||||
,C_NEV nvarchar (255)
|
||||
,C_TARGYKATEGORIA int
|
||||
,C_TANEVID int
|
||||
)
|
||||
|
||||
CREATE TABLE #Tantargyak (
|
||||
ID int
|
||||
,C_FOTARGYID int
|
||||
,C_NEV nvarchar (255)
|
||||
,C_TARGYKATEGORIA int
|
||||
,C_TANEVID int
|
||||
)
|
||||
|
||||
INSERT INTO #KapcsopodoTantargyak (
|
||||
ID
|
||||
,C_FOTARGYID
|
||||
,C_NEV
|
||||
,C_TARGYKATEGORIA
|
||||
,C_TANEVID
|
||||
)
|
||||
SELECT
|
||||
kapcsolodoTargy.ID
|
||||
,kapcsolodoTargy.C_FOTARGYID
|
||||
,kapcsolodoTargy.C_NEV
|
||||
,kapcsolodoTargy.C_TARGYKATEGORIA
|
||||
,kapcsolodoTargy.C_TANEVID
|
||||
FROM fnGetKapcsolodoTantargyak(@pIntezmenyId, @pTanevId, NULL) kapcsolodoTargy
|
||||
|
||||
CREATE TABLE #OsztalyCsoportIdList (
|
||||
ID int PRIMARY KEY
|
||||
)
|
||||
INSERT INTO #OsztalyCsoportIdList (
|
||||
ID
|
||||
)
|
||||
SELECT
|
||||
OsztalyCsoport.ID
|
||||
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
|
||||
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID AND Osztaly.TOROLT = ''F''
|
||||
AND Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = ''F''
|
||||
AND OsztalyCsoport.ID = Osztaly.ID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = OsztalyCsoport.C_FELADATELLATASIHELYID
|
||||
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
|
||||
WHERE TanuloCsoport.C_TANEVID = @pTanevId
|
||||
AND TanuloCsoport.TOROLT = ''F''
|
||||
AND TanuloCsoport.C_TANULOID = @pTanuloId
|
||||
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
||||
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
INSERT INTO #Tantargyak (
|
||||
ID
|
||||
,C_FOTARGYID
|
||||
,C_NEV
|
||||
,C_TARGYKATEGORIA
|
||||
,C_TANEVID
|
||||
)
|
||||
SELECT
|
||||
NULL
|
||||
,NULL
|
||||
,''Magatartás/Szorgalom''
|
||||
,0
|
||||
,@pTanevID;
|
||||
|
||||
WITH tantargy_CTE (
|
||||
C_TANTARGYID
|
||||
,C_FOTARGYID
|
||||
,C_TANEVID
|
||||
) AS
|
||||
(
|
||||
SELECT
|
||||
Foglalkozas.C_TANTARGYID
|
||||
,Tantargy.C_FOTARGYID
|
||||
,Tantargy.C_TANEVID
|
||||
FROM T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = Foglalkozas.C_TANEVID AND Tantargy.TOROLT = ''F''
|
||||
AND Tantargy.ID = Foglalkozas.C_TANTARGYID
|
||||
INNER JOIN #OsztalyCsoportIdList OsztalyCsoport ON OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
|
||||
WHERE Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = ''F''
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
OrarendiOra.C_TANTARGYID
|
||||
,Tantargy.C_FOTARGYID
|
||||
,Tantargy.C_TANEVID
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = OrarendiOra.C_TANEVID AND Tantargy.TOROLT = ''F''
|
||||
AND Tantargy.ID = OrarendiOra.C_TANTARGYID
|
||||
INNER JOIN #OsztalyCsoportIdList OsztalyCsoport ON OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
WHERE OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = ''F''
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
TanuloErtekeles.C_TANTARGYID
|
||||
,Tantargy.C_FOTARGYID
|
||||
,Tantargy.C_TANEVID
|
||||
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
||||
LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID AND Tantargy.TOROLT = ''F''
|
||||
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
||||
'
|
||||
|
||||
IF @pOktatasiNevelesiFeladatId IN (SELECT value FROM STRING_SPLIT(@pAmiFeladatIds, ','))
|
||||
BEGIN
|
||||
SET @sql += N'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
||||
AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
||||
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
|
||||
'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @sql += N'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
||||
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
||||
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanuloCsoport.TOROLT = ''F''
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
|
||||
AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
|
||||
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
||||
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
|
||||
'
|
||||
END
|
||||
|
||||
SET @sql += N'
|
||||
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
|
||||
AND TanuloErtekeles.TOROLT = ''F''
|
||||
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
||||
'
|
||||
|
||||
IF @pOktatasiNevelesiFeladatId IN (SELECT value FROM STRING_SPLIT(@pAmiFeladatIds, ','))
|
||||
SET @sql += N'
|
||||
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
|
||||
'
|
||||
ELSE
|
||||
SET @sql += N'
|
||||
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
)
|
||||
|
||||
INSERT INTO #Tantargyak (
|
||||
ID
|
||||
,C_FOTARGYID
|
||||
,C_NEV
|
||||
,C_TARGYKATEGORIA
|
||||
,C_TANEVID
|
||||
)
|
||||
SELECT DISTINCT
|
||||
KapcsopolodoTantargy.ID
|
||||
,KapcsopolodoTantargy.C_FOTARGYID
|
||||
,KapcsopolodoTantargy.C_NEV
|
||||
,KapcsopolodoTantargy.C_TARGYKATEGORIA
|
||||
,KapcsopolodoTantargy.C_TANEVID
|
||||
FROM tantargy_CTE
|
||||
INNER JOIN #KapcsopodoTantargyak KapcsopolodoTantargy ON tantargy_CTE.C_TANTARGYID = KapcsopolodoTantargy.ID OR tantargy_CTE.C_FOTARGYID = KapcsopolodoTantargy.ID
|
||||
|
||||
--NOTE: Azért kell a DISTINCT, ha ugyanoda ki-/besorolgatják a tanulót!
|
||||
SELECT DISTINCT
|
||||
@pTanuloId AS TanuloId
|
||||
,Tantargy.ID AS TantargyId
|
||||
,Tantargy.C_NEV AS TantargyNev
|
||||
,TanuloErtekeles.ID AS ID
|
||||
,TanuloErtekeles.C_DATUM AS Datum
|
||||
,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
|
||||
,TanuloErtekeles.C_TIPUSID AS TipusId
|
||||
,TanuloErtekeles.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
|
||||
,IIF(TanuloErtekeles.ID IS NULL, NULL, CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END) AS Modosithato
|
||||
,TanuloErtekeles.CREATED AS Created
|
||||
,IIF(TanuloErtekeles.C_ISMAGATARTASSZORGALOM IS NOT NULL, TanuloErtekeles.C_ISMAGATARTASSZORGALOM, IIF(Tantargy.ID IS NOT NULL, ''F'', ''T'')) AS IsMagatartasSzorgalom
|
||||
,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
|
||||
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
|
||||
,TanariAtlagSuly.C_SULY AS Suly
|
||||
,TanuloErtekeles.C_ERTEKELESSZOVEG AS ErtekelesSzoveg
|
||||
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV AS ErtekelesSzovegRovidNev
|
||||
,TanuloErtekeles.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
|
||||
,TanuloErtekeles.C_ERTEKELESMODID AS ErtekelesModId
|
||||
,TanuloErtekeles.C_ERTEKELESTEMA AS ErtekelesTema
|
||||
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId
|
||||
,TanuloErtekeles.C_MAGATARTASSZOVEG AS MagatartasSzoveg
|
||||
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV AS MagatartasSzovegRovidNev
|
||||
,TanuloErtekeles.C_MAGATARTASERTEKID AS MagatartasErtekId
|
||||
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId
|
||||
,TanuloErtekeles.C_SZORGALOMSZOVEG AS SzorgalomSzoveg
|
||||
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV AS SzorgalomSzovegRovidNev
|
||||
,TanuloErtekeles.C_SZORGALOMERTEKID AS SzorgalomErtekId
|
||||
,Tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
|
||||
,Fotargy.ID AS FotargyId
|
||||
,Fotargy.C_NEV AS FotargyNev
|
||||
,Fotargy.C_TARGYKATEGORIA AS FotargyTantargyKategoriaId
|
||||
FROM #Tantargyak Tantargy
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
TanuloErtekeles.*
|
||||
,FelhasznaloErtekelo.C_NYOMTATASINEV
|
||||
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
||||
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = ''F''
|
||||
AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
|
||||
'
|
||||
|
||||
IF @pOktatasiNevelesiFeladatId IN (SELECT value FROM STRING_SPLIT(@pAmiFeladatIds, ','))
|
||||
SET @sql += N'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
||||
AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
||||
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
|
||||
'
|
||||
ELSE
|
||||
SET @sql += N'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = ''F''
|
||||
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
||||
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanuloCsoport.TOROLT = ''F''
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID = Osztaly.ID
|
||||
AND TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
|
||||
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES FeladatEllatasiHely ON FeladatEllatasiHely.ID = Osztaly.C_FELADATELLATASIHELYID
|
||||
AND (FeladatEllatasiHely.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasiNevelesiFeladatId OR @pOktatasiNevelesiFeladatId IS NULL)
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
|
||||
AND TanuloErtekeles.TOROLT = ''F''
|
||||
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
||||
'
|
||||
|
||||
IF @pOktatasiNevelesiFeladatId IN (SELECT value FROM STRING_SPLIT(@pAmiFeladatIds, ','))
|
||||
SET @sql += N'
|
||||
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
|
||||
'
|
||||
ELSE
|
||||
SET @sql += N'
|
||||
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
) AS TanuloErtekeles ON (TanuloErtekeles.C_TANTARGYID = Tantargy.ID OR (TanuloErtekeles.C_TANTARGYID IS NULL AND Tantargy.ID IS NULL))
|
||||
LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.C_TANEVID = Tantargy.C_TANEVID AND TanariAtlagSuly.TOROLT = ''F''
|
||||
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
|
||||
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
||||
LEFT JOIN T_TANTARGY_OSSZES Fotargy ON Fotargy.C_TANEVID = Tantargy.C_TANEVID AND Fotargy.TOROLT = ''F''
|
||||
AND Fotargy.ID = Tantargy.C_FOTARGYID
|
||||
'
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pTanarId int
|
||||
,@pTanuloId int
|
||||
,@evfolyamTipusId int
|
||||
,@pDatum date
|
||||
,@pOktatasiNevelesiFeladatId int
|
||||
'
|
||||
,@pIntezmenyId = @pIntezmenyId
|
||||
,@pTanevId = @pTanevId
|
||||
,@pTanarId = @pTanarId
|
||||
,@pTanuloId = @pTanuloId
|
||||
,@evfolyamTipusId = @evfolyamTipusId
|
||||
,@pDatum = @pDatum
|
||||
,@pOktatasiNevelesiFeladatId = @pOktatasiNevelesiFeladatId
|
||||
|
||||
END
|
||||
GO
|
||||
Reference in New Issue
Block a user