215 lines
8.3 KiB
Transact-SQL
215 lines
8.3 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez
|
|
@intezmenyId int
|
|
,@tanevId int
|
|
,@osztalyCsoportId int
|
|
,@csakKivalasztottOsztalyCsoport bit
|
|
,@osztalyzatTipusTypeID int = 44
|
|
,@magatartasErtekelesTipusTypeID int = 50
|
|
,@szorgalomErtekelesTipusTypeID int = 51
|
|
,@pIsKellKapcsolodoOsztalyCsoportok bit = 0
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@evfolyamTipusId int = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
|
|
,@elsoNap datetime
|
|
,@utolsoNap datetime
|
|
|
|
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
|
|
|
|
SELECT @elsoNap = C_KEZDONAP, @utolsoNap = C_UTOLSONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F'
|
|
|
|
CREATE TABLE #kapcsolodoOsztalycsoportok (OsztalyCsoportId INT PRIMARY KEY)
|
|
IF @pIsKellKapcsolodoOsztalyCsoportok = 1
|
|
BEGIN
|
|
INSERT INTO #kapcsolodoOsztalycsoportok (OsztalyCsoportId)
|
|
SELECT
|
|
OsztalyCsoportok.Id
|
|
FROM fnGetDokumentumKapcsolodoOsztalyCsoportokByDateRange (@osztalyCsoportId, @ElsoNap, @utolsoNap, @intezmenyId, @tanevId) OsztalyCsoportok
|
|
INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) TanoraiCeluOsztalyCsoportok on TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO #kapcsolodoOsztalycsoportok (OsztalyCsoportId)
|
|
VALUES (@osztalyCsoportId)
|
|
END
|
|
|
|
CREATE TABLE #KapcsopodoTantargy(
|
|
ID int
|
|
,C_FOTARGYID int
|
|
,C_NEV nvarchar(255)
|
|
,C_NEVNYOMTATVANYBAN nvarchar(255)
|
|
,C_TARGYKATEGORIA int
|
|
,C_INTEZMENYID int
|
|
,C_TANEVID int
|
|
,C_SORSZAM int
|
|
)
|
|
|
|
INSERT INTO #KapcsopodoTantargy
|
|
SELECT
|
|
kt.ID
|
|
,kt.C_FOTARGYID
|
|
,kt.C_NEV
|
|
,t.C_NEVNYOMTATVANYBAN
|
|
,kt.C_TARGYKATEGORIA
|
|
,kt.C_INTEZMENYID
|
|
,kt.C_TANEVID
|
|
,t.C_SORSZAM
|
|
FROM dbo.fnGetKapcsolodoTantargyak(@intezmenyId, @tanevId, NULL) AS kt
|
|
INNER JOIN T_TANTARGY_OSSZES AS t ON t.ID = kt.ID AND t.TOROLT = 'F';
|
|
|
|
-- Összeszedjük minden tanuló-tanulócsoporthoz a tárgyakat
|
|
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_TANULOID, C_TANULOCSOPORTID, C_INTEZMENYID, C_TANEVID)
|
|
AS (
|
|
-- TTF-es tárgyak
|
|
SELECT
|
|
Foglalkozas.C_TANTARGYID
|
|
,Tantargy.C_FOTARGYID
|
|
,f.ID AS c_tanuloid
|
|
,tcsOsztaly.ID AS C_TANULOCSOPORTID
|
|
,Tantargy.C_INTEZMENYID
|
|
,Tantargy.C_TANEVID
|
|
FROM T_FOGLALKOZAS_OSSZES Foglalkozas
|
|
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_INTEZMENYID = Foglalkozas.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = Foglalkozas.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = Foglalkozas.C_TANTARGYID
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = Foglalkozas.C_OSZTALYCSOPORTID
|
|
AND tcs.TOROLT = 'F'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
|
|
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcsOsztaly ON tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND tcsOsztaly.C_TANULOID = f.ID
|
|
AND tcsOsztaly.TOROLT = 'F'
|
|
INNER JOIN #kapcsolodoOsztalycsoportok kapcsolodoOsztalycsoportok ON kapcsolodoOsztalycsoportok.OsztalyCsoportId = Foglalkozas.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
(tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM > tcs.C_BELEPESDATUM)
|
|
AND Foglalkozas.C_INTEZMENYID = @intezmenyId
|
|
AND Foglalkozas.C_TANEVID = @tanevId
|
|
AND Foglalkozas.TOROLT = 'F'
|
|
|
|
UNION
|
|
-- ttf-ben nem szereplő tárgyak
|
|
SELECT
|
|
OrarendiOra.C_TANTARGYID
|
|
,Tantargy.C_FOTARGYID
|
|
,f.ID AS C_TANULOID
|
|
,tcsOsztaly.ID AS C_TANULOCSOPORTID
|
|
,Tantargy.C_INTEZMENYID
|
|
,Tantargy.C_TANEVID
|
|
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
|
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_INTEZMENYID = OrarendiOra.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = OrarendiOra.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = OrarendiOra.C_TANTARGYID
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = OrarendiOra.C_OSZTALYCSOPORTID
|
|
AND (tcs.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
|
|
AND tcs.TOROLT = 'F'
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
|
|
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES tcsOsztaly ON tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND (tcsOsztaly.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
|
|
AND tcsOsztaly.C_TANULOID = f.ID
|
|
AND tcsOsztaly.TOROLT = 'F'
|
|
WHERE
|
|
(tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM > tcs.C_BELEPESDATUM)
|
|
AND OrarendiOra.C_INTEZMENYID = @intezmenyId
|
|
AND OrarendiOra.C_TANEVID = @tanevId
|
|
AND OrarendiOra.TOROLT = 'F'
|
|
AND OrarendiOra.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
|
|
UNION
|
|
-- Értékelést kapott tárgyak
|
|
SELECT DISTINCT
|
|
TanuloErtekeles.TantargyId
|
|
,TanuloErtekeles.FotargyId
|
|
,TanuloErtekeles.TanuloId
|
|
,TanuloErtekeles.TanuloCsoportId AS C_TANULOCSOPORTID
|
|
,@intezmenyId
|
|
,@tanevId
|
|
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, DEFAULT, DEFAULT, @csakKivalasztottOsztalyCsoport, DEFAULT, DEFAULT, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID) AS TanuloErtekeles
|
|
)
|
|
|
|
SELECT
|
|
NULL
|
|
,NULL
|
|
,'Magatartás'
|
|
,''
|
|
,0
|
|
,f.ID
|
|
,tcs.ID
|
|
,0
|
|
,0
|
|
,''
|
|
,0
|
|
,0
|
|
,''
|
|
,@intezmenyId
|
|
,@tanevId
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
WHERE
|
|
tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND tcs.TOROLT = 'F'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
NULL
|
|
,NULL
|
|
,'Szorgalom'
|
|
,''
|
|
,0
|
|
,f.ID
|
|
,tcs.ID
|
|
,0
|
|
,1
|
|
,''
|
|
,0
|
|
,0
|
|
,''
|
|
,@intezmenyId
|
|
,@tanevId
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
|
WHERE
|
|
tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
|
AND tcs.TOROLT = 'F'
|
|
|
|
UNION ALL
|
|
|
|
SELECT DISTINCT
|
|
KapcsopodoTantargy.ID
|
|
,KapcsopodoTantargy.C_FOTARGYID
|
|
,KapcsopodoTantargy.C_NEV
|
|
,KapcsopodoTantargy.C_NEVNYOMTATVANYBAN
|
|
,KapcsopodoTantargy.C_TARGYKATEGORIA
|
|
,tantargy_CTE.c_tanuloId
|
|
,tantargy_CTE.c_tanulocsoportid
|
|
,KapcsopodoTantargy.C_SORSZAM
|
|
,CASE WHEN KapcsopodoTantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END RENDEZ1
|
|
,ISNULL(ISNULL(Fotargy.C_NEVNYOMTATVANYBAN, Fotargy.C_NEV), ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV)) AS RENDEZ2
|
|
,ISNULL(KapcsopodoTantargy.C_FOTARGYID, KapcsopodoTantargy.ID) AS RENDEZ3
|
|
,KapcsopodoTantargy.C_FOTARGYID AS RENDEZ4
|
|
,ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV) AS RENDEZ5
|
|
,KapcsopodoTantargy.C_INTEZMENYID
|
|
,KapcsopodoTantargy.C_TANEVID
|
|
FROM tantargy_CTE
|
|
INNER JOIN #KapcsopodoTantargy KapcsopodoTantargy ON tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
|
|
LEFT JOIN T_TANTARGY_OSSZES Fotargy ON Fotargy.C_INTEZMENYID = tantargy_CTE.C_INTEZMENYID
|
|
AND Fotargy.C_TANEVID = tantargy_CTE.C_TANEVID
|
|
AND Fotargy.TOROLT = 'F'
|
|
AND Fotargy.ID = tantargy_CTE.C_FOTARGYID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = KapcsopodoTantargy.C_TARGYKATEGORIA
|
|
AND TargyKategoriaDictionary.TOROLT = 'F'
|
|
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = Fotargy.C_TARGYKATEGORIA
|
|
AND FotargyKategoriaDictionary.TOROLT = 'F'
|
|
AND FotargyKategoriaDictionary.C_TANEVID = Fotargy.C_TANEVID
|
|
END
|
|
GO
|
|
|