kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190821193105_KRETA2_832/uspGetTanuloErtekelesDataSetByTantargy.sql
2024-03-13 00:33:46 +01:00

142 lines
6.7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTantargy
GO
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTantargy
@pTanevId int
,@pTanarId int
,@pTantargyId int
,@pOsztalyCsoportId int
,@pDatum date = NULL
AS
BEGIN
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = CONVERT(date, GETDATE())
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList (
TanuloId int PRIMARY KEY
,EvfolyamTipusId int
)
CREATE TABLE #Mentessegek (
TanuloId int
,C_MENTESSEGOKA nvarchar (max)
,C_ERTEKELESMENTESITES char (1)
,C_SZOVEGESENERTEKELHETO char (1)
,RowNumber int
)
INSERT INTO #TanuloOsztalyEvfolyamTipusIdList (
TanuloId
,EvfolyamTipusId
)
SELECT
tanuloOsztalyList.C_TANULOID AS TanuloId
,tanuloOsztalyList.C_EVFOLYAMTIPUSA AS EvfolyamTipusId
FROM fnGetOsztalyCsoportTanuloOsztalyList(@pTanevId, @pOsztalyCsoportId, @pDatum) tanuloOsztalyList
INSERT INTO #Mentessegek (
TanuloId
,C_MENTESSEGOKA
,C_ERTEKELESMENTESITES
,C_SZOVEGESENERTEKELHETO
,RowNumber
)
SELECT
TanuloMentesseg.C_TANULOID
,TanuloMentesseg.C_MENTESSEGOKA
,TanuloMentesseg.C_ERTEKELESMENTESITES
,TanuloMentesseg.C_SZOVEGESENERTEKELHETO
,ROW_NUMBER() OVER (PARTITION BY TanuloMentesseg.C_TANULOID ORDER BY TanuloMentesseg.C_KEZDETE DESC) RowNumber
FROM T_TANULOMENTESSEG_OSSZES TanuloMentesseg
WHERE TanuloMentesseg.TOROLT = 'F'
AND TanuloMentesseg.C_TANEVID = @pTanevId
AND TanuloMentesseg.C_TANTARGYID = @pTantargyId
AND ((TanuloMentesseg.C_KEZDETE IS NULL OR TanuloMentesseg.C_KEZDETE <= @pDatum) AND (TanuloMentesseg.C_VEGE IS NULL OR TanuloMentesseg.C_VEGE <= @pDatum))
SELECT
FelhasznaloTanulo.ID AS TanuloId
,@pTantargyId AS TantargyId
,FelhasznaloTanulo.C_NYOMTATASINEV AS TanuloNev
,IIF(FelhasznaloTanulo.C_NEVSORREND = 'T', FelhasznaloTanulo.C_UTONEV + ' '+ FelhasznaloTanulo.C_VEZETEKNEV, FelhasznaloTanulo.C_VEZETEKNEV + ' ' + FelhasznaloTanulo.C_UTONEV) AS TanuloNevElotagNelkul
,FelhasznaloTanulo.C_ANYJANEVE AS AnyjaNeve
,FelhasznaloTanulo.C_SZULETESIDATUM AS SzuletesiIdo
,TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID AS OsztalyId
,OsztalyCsoport.C_NEV AS OsztalyNev
,TanuloMentesseg.C_MENTESSEGOKA AS MentessegOka
,TanuloMentesseg.C_ERTEKELESMENTESITES AS ErtkelesMentesseg
,TanuloMentesseg.C_SZOVEGESENERTEKELHETO AS SzovegesenErtekelheto
,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.C_ERTEKELOID = @pTanarId,'T','F') AS Modosithato
,TanuloErtekeles.C_ROGZITESDATUM AS Created
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM 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
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = TanuloCsoport.C_TANEVID AND Tanev.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloTanulo ON FelhasznaloTanulo.TOROLT = 'F' AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID
AND FelhasznaloTanulo.C_TANEVID = TanuloCsoport.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.TOROLT = 'F' AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
LEFT JOIN (
SELECT
TanuloErtekeles.*
,FelhasznaloErtekelo.C_NYOMTATASINEV
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
AND Osztaly.C_FELADATKATEGORIAID = @kategoriaId
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
AND FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID
INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA
WHERE TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANTARGYID = @pTantargyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
UNION
SELECT
TanuloErtekeles.*
,FelhasznaloErtekelo.C_NYOMTATASINEV
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.TOROLT = 'F' AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
AND Osztaly.C_FELADATKATEGORIAID = @kategoriaId
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.TOROLT = 'F' AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
AND FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID
INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA
WHERE TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANTARGYID = @pTantargyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.TOROLT = 'F' AND TanariAtlagSuly.C_TANEVID = TanuloCsoport.C_TANEVID
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
LEFT JOIN #Mentessegek TanuloMentesseg ON TanuloMentesseg.TanuloId = FelhasznaloTanulo.ID AND TanuloMentesseg.RowNumber = 1
WHERE TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= Tanev.C_UTOLSOTANITASINAP)
END
GO