kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetTanuloErtekelesDataSetByMagatartasSzorgalom.sql
2024-03-13 00:33:46 +01:00

122 lines
6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByMagatartasSzorgalom
GO
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByMagatartasSzorgalom
@pTanevId int
,@pTanarId int
,@pOsztalyCsoportId int
,@pDatum date = NULL
,@pAmiKategoriaId int
,@pIsFromSzervezet bit = 0
AS
BEGIN
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = CONVERT(date, GETDATE())
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
CREATE TABLE #TanuloOsztalyEvfolyamTipusIdList (
TanuloId int PRIMARY KEY
,EvfolyamTipusId int
)
IF @feladatKategoriaId <> @pAmiKategoriaId
BEGIN
INSERT INTO #TanuloOsztalyEvfolyamTipusIdList (
TanuloId
,EvfolyamTipusId
)
SELECT
tanuloOsztalyList.C_TANULOID AS TanuloId
,tanuloOsztalyList.C_EVFOLYAMTIPUSA AS EvfolyamTipusId
FROM fnGetOsztalyCsoportTanuloOsztalyList(@pTanevId, @pOsztalyCsoportId, @feladatKategoriaId, @pDatum, @pIsFromSzervezet) tanuloOsztalyList
END
SELECT
FelhasznaloTanulo.ID AS TanuloId
,NULL 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
,OsztalyCsoport.C_FELADATKATEGORIAID AS FeladatKategoriaId
,OsztalyCsoport.C_NEV AS OsztalyNev
,FeladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
,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_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
,NULL AS AmiFotargyId
,NULL AS AmiTagozatId
,NULL AS AmiTantargyKotelezosegId
,NULL AS EvfolyamId
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.C_TANEVID = TanuloCsoport.C_TANEVID AND FelhasznaloTanulo.TOROLT = 'F'
AND FelhasznaloTanulo.ID = TanuloCsoport.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = 'F'
AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
INNER JOIN T_FELADATELLATASIHELY FeladatellatasiHely ON OsztalyCsoport.C_FELADATELLATASIHELYID = FeladatellatasiHely.ID
LEFT JOIN (
SELECT
TanuloErtekeles.*
,FelhasznaloErtekelo.C_NYOMTATASINEV
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID AND Osztaly.TOROLT = 'F'
AND Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
AND Osztaly.C_FELADATKATEGORIAID = @feladatKategoriaId
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F'
AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANTARGYID IS NULL
AND @feladatKategoriaId = @pAmiKategoriaId
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T'
UNION
SELECT
TanuloErtekeles.*
,FelhasznaloErtekelo.C_NYOMTATASINEV
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
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_FELADATKATEGORIAID = @feladatKategoriaId
INNER JOIN #TanuloOsztalyEvfolyamTipusIdList Evfolyam ON Evfolyam.TanuloId = TanuloErtekeles.C_TANULOID AND Evfolyam.EvfolyamTipusId = Osztaly.C_EVFOLYAMTIPUSA
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_FELHASZNALO_OSSZES FelhasznaloErtekelo ON FelhasznaloErtekelo.C_TANEVID = TanuloErtekeles.C_TANEVID AND FelhasznaloErtekelo.TOROLT = 'F'
AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANTARGYID IS NULL
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'T'
) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
WHERE TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
END
GO