85 lines
4.1 KiB
Transact-SQL
85 lines
4.1 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloAktualisanTanultTantargyai]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetTanuloAktualisanTanultTantargyai]
|
|
@tanuloId int
|
|
,@magatartas nvarchar(max)
|
|
,@szorgalom nvarchar(max)
|
|
,@tantargyIds nvarchar (max)
|
|
,@oktatasiNevelesiFeladatId int = null
|
|
AS
|
|
SET NOCOUNT ON;
|
|
|
|
SELECT
|
|
CASE
|
|
WHEN ertekeles.C_TANTARGYID IS NULL AND ertekeles.IsMagatartas > '' AND ertekeles.IsSzorgalom > '' THEN CONCAT(@magatartas, ', ', @szorgalom)
|
|
WHEN ertekeles.C_TANTARGYID IS NULL AND ertekeles.IsMagatartas > '' THEN @magatartas
|
|
WHEN ertekeles.C_TANTARGYID IS NULL AND ertekeles.IsSzorgalom > '' THEN @szorgalom
|
|
WHEN ertekeles.C_TANTARGYID IS NULL THEN CAST(foglalkozas.C_TANTARGYID AS NVARCHAR(max))
|
|
ELSE CAST(ertekeles.C_TANTARGYID AS NVARCHAR(max))
|
|
END AS TantargyUid,
|
|
IIF(foglalkozas.C_TANTARGYID IS NOT NULL, 'T', 'F') AS TTFBol,
|
|
IIF(ertekeles.C_TANTARGYID IS NOT NULL OR ertekeles.IsMagatartas > '' OR ertekeles.IsSzorgalom > '', 'T', 'F') AS ErtekelesBol,
|
|
tantargy.C_NEV AS Nev,
|
|
tantargy.C_TARGYKATEGORIA AS TargykategoriaId,
|
|
db.C_NAME AS TargyKategoriaNev,
|
|
tantargy.C_FOTARGYE AS IsFotargy,
|
|
tantargy.C_FOTARGYID AS FotargyId,
|
|
tantargy.C_SORSZAM AS SorSzam,
|
|
fotargy.C_TARGYKATEGORIA AS FotargyKategoriaId,
|
|
fotargy.C_NEV AS FotargyNev
|
|
FROM (
|
|
SELECT DISTINCT
|
|
tcs.C_TANULOID,
|
|
f.C_TANTARGYID,
|
|
tcs.C_TANEVID,
|
|
tcs.C_INTEZMENYID
|
|
FROM T_FOGLALKOZAS f
|
|
INNER JOIN T_TANULOCSOPORT tcs on tcs.C_OSZTALYCSOPORTID = f.C_OSZTALYCSOPORTID
|
|
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
|
|
AND ocs.TOROLT = 'F'
|
|
AND ocs.C_TANEVID = tcs.C_TANEVID
|
|
INNER JOIN T_FELADATELLATASIHELY feh ON ocs.C_FELADATELLATASIHELYID = feh.ID
|
|
AND feh.TOROLT = 'F'
|
|
AND feh.C_TANEVID = tcs.C_TANEVID
|
|
WHERE f.TOROLT = 'F'
|
|
AND tcs.TOROLT = 'F'
|
|
AND GETDATE() >= tcs.C_BELEPESDATUM
|
|
AND (tcs.C_KILEPESDATUM IS NULL OR GETDATE() <= tcs.C_KILEPESDATUM)
|
|
AND (@oktatasiNevelesiFeladatId IS NULL OR feh.C_OKTATASINEVELESIFELADATTIPUS = @oktatasiNevelesiFeladatId)
|
|
AND (@tantargyIds IS NULL OR f.C_TANTARGYID IN (SELECT value FROM STRING_SPLIT(@tantargyIds, ',')))
|
|
AND tcs.C_TANULOID = @tanuloId
|
|
) foglalkozas
|
|
FULL JOIN (
|
|
SELECT DISTINCT
|
|
te.C_TANULOID,
|
|
te.C_TANTARGYID,
|
|
CONCAT(te.C_MAGATARTASERTEKID, te.C_MAGATARTASOSZTALYZATID, te.C_MAGATARTASSZOVEG, te.C_MAGATARTASSZOVEGFORMAZOTT) AS IsMagatartas,
|
|
CONCAT(te.C_SZORGALOMERTEKID, te.C_SZORGALOMOSZTALYZATID, te.C_SZORGALOMSZOVEG, te.C_SZORGALOMSZOVEGFORMAZOTT) AS IsSzorgalom,
|
|
te.C_TANEVID,
|
|
te.C_INTEZMENYID
|
|
FROM T_TANULOERTEKELES te
|
|
INNER JOIN T_ERTEKELESTIPUS ertip ON ertip.ID = te.C_TIPUSID AND ertip.TOROLT = 'F' AND ertip.C_ALTANEVID = te.C_TANEVID
|
|
WHERE te.TOROLT = 'F'
|
|
AND ertip.C_ISEGYSZERADHATO = 'F'
|
|
AND (@tantargyIds IS NULL OR te.C_TANTARGYID IN (SELECT value FROM STRING_SPLIT(@tantargyIds, ',')))
|
|
AND te.C_TANULOID = @tanuloId
|
|
) ertekeles ON foglalkozas.C_TANULOID = ertekeles.C_TANULOID
|
|
AND foglalkozas.C_TANTARGYID = ertekeles.C_TANTARGYID
|
|
AND foglalkozas.C_TANEVID = ertekeles.C_TANEVID
|
|
AND foglalkozas.C_INTEZMENYID = foglalkozas.C_INTEZMENYID
|
|
|
|
INNER JOIN T_TANTARGY tantargy ON COALESCE(foglalkozas.C_TANTARGYID, ertekeles.C_TANTARGYID) = tantargy.ID
|
|
AND COALESCE(foglalkozas.C_TANEVID, ertekeles.C_TANEVID) = tantargy.C_TANEVID
|
|
AND COALESCE(foglalkozas.C_INTEZMENYID, ertekeles.C_INTEZMENYID) = tantargy.C_INTEZMENYID
|
|
|
|
LEFT JOIN T_TANTARGY fotargy ON tantargy.C_FOTARGYID = fotargy.ID
|
|
AND tantargy.C_TANEVID = fotargy.C_TANEVID
|
|
AND tantargy.C_INTEZMENYID = fotargy.C_INTEZMENYID
|
|
|
|
LEFT JOIN T_DICTIONARYITEMBASE db ON tantargy.C_TARGYKATEGORIA = db.ID
|
|
AND tantargy.C_TANEVID = db.C_TANEVID
|
|
AND tantargy.C_INTEZMENYID = db.C_INTEZMENYID
|
|
|
|
ORDER BY 1, 2
|
|
GO
|