260 lines
8.6 KiB
Transact-SQL
260 lines
8.6 KiB
Transact-SQL
-- =============================================
|
|
-- Description: <Előszedjük a tanuló étrékeléseket tanuló alapján>
|
|
-- =============================================
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByTanulo]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByTanulo]
|
|
@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pTanarId INT
|
|
,@pTanuloId INT
|
|
,@pDatum DATE = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
IF @pDatum IS NULL
|
|
SET @pDatum = CONVERT(DATE, GETDATE())
|
|
|
|
DECLARE @evfolyamTipusId INT = (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(@pTanuloId, @pDatum))
|
|
|
|
CREATE TABLE #KapcsopodoTantargyak(
|
|
ID INT
|
|
,C_FOTARGYID INT
|
|
,C_NEV NVARCHAR(255)
|
|
,C_TARGYKATEGORIA INT
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
)
|
|
INSERT INTO
|
|
#KapcsopodoTantargyak
|
|
SELECT *
|
|
FROM
|
|
fnGetKapcsolodoTantargyak(@pIntezmenyId, @pTanevId, NULL)
|
|
|
|
CREATE TABLE #OsztalyCsoportIdList(
|
|
ID INT PRIMARY KEY
|
|
)
|
|
INSERT INTO
|
|
#OsztalyCsoportIdList (ID)
|
|
SELECT
|
|
OsztalyCsoport.ID
|
|
FROM
|
|
T_TANULOCSOPORT_OSSZES TanuloCsoport
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
|
OsztalyCsoport.C_INTEZMENYID = TanuloCsoport.C_INTEZMENYID
|
|
AND OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID
|
|
AND OsztalyCsoport.TOROLT = 'F'
|
|
AND OsztalyCsoport.ID = TanuloCsoport.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
TanuloCsoport.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloCsoport.C_TANEVID = @pTanevId
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
AND TanuloCsoport.C_TANULOID = @pTanuloId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= GETDATE()
|
|
AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= GETDATE())
|
|
|
|
CREATE TABLE #Tantargyak(
|
|
ID INT
|
|
,C_FOTARGYID INT
|
|
,C_NEV NVARCHAR(255)
|
|
,C_TARGYKATEGORIA INT
|
|
,C_INTEZMENYID INT
|
|
,C_TANEVID INT
|
|
);
|
|
--NOTE: A Magatartást/Szorgalmat beszúrjuk mint tantárgy
|
|
INSERT INTO
|
|
#Tantargyak (ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID)
|
|
SELECT DISTINCT
|
|
NULL,
|
|
NULL,
|
|
'Magatartás/Szorgalom',
|
|
0,
|
|
@pIntezmenyId,
|
|
@pTanevID;
|
|
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_INTEZMENYID, C_TANEVID)
|
|
AS (
|
|
SELECT
|
|
Foglalkozas.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
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
|
|
#OsztalyCsoportIdList OsztalyCsoport ON
|
|
OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
|
AND Foglalkozas.C_TANEVID = @pTanevId
|
|
AND Foglalkozas.TOROLT = 'F'
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
OrarendiOra.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
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
|
|
#OsztalyCsoportIdList OsztalyCsoport ON
|
|
OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
|
WHERE
|
|
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
|
AND OrarendiOra.C_TANEVID = @pTanevId
|
|
AND OrarendiOra.TOROLT = 'F'
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
TanuloErtekeles.C_TANTARGYID,
|
|
Tantargy.C_FOTARGYID,
|
|
Tantargy.C_INTEZMENYID,
|
|
Tantargy.C_TANEVID
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
|
INNER JOIN
|
|
T_TANTARGY_OSSZES Tantargy ON
|
|
Tantargy.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Tantargy.TOROLT = 'F'
|
|
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
|
Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
|
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND Osztaly.TOROLT = 'F'
|
|
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
|
WHERE
|
|
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
|
|
AND TanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
|
|
)
|
|
INSERT INTO
|
|
#Tantargyak (ID, C_FOTARGYID, C_NEV, C_TARGYKATEGORIA, C_INTEZMENYID, C_TANEVID)
|
|
SELECT DISTINCT
|
|
KapcsopodoTantargy.ID,
|
|
KapcsopodoTantargy.C_FOTARGYID,
|
|
KapcsopodoTantargy.C_NEV,
|
|
KapcsopodoTantargy.C_TARGYKATEGORIA,
|
|
KapcsopodoTantargy.C_INTEZMENYID,
|
|
KapcsopodoTantargy.C_TANEVID
|
|
FROM
|
|
tantargy_CTE
|
|
INNER JOIN
|
|
#KapcsopodoTantargyak KapcsopodoTantargy ON
|
|
tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID
|
|
OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
|
|
|
|
SELECT
|
|
TanuloErtekeles.C_TANULOID TanuloId
|
|
,Tantargy.ID TantargyId
|
|
|
|
,Tantargy.C_NEV TantargyNev
|
|
|
|
,TanuloErtekeles.ID ID
|
|
,TanuloErtekeles.C_DATUM Datum
|
|
,TanuloErtekeles.C_TIPUSID TipusId
|
|
,FelhasznaloErtekelo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
|
|
,IIF(TanuloErtekeles.ID IS NULL, --
|
|
NULL, --
|
|
CASE --
|
|
WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId --
|
|
THEN 'T' --
|
|
ELSE 'F' --
|
|
END --
|
|
) Modosithato
|
|
,IIF(TanuloErtekeles.C_ISMAGATARTASSZORGALOM IS NOT NULL, --
|
|
TanuloErtekeles.C_ISMAGATARTASSZORGALOM, --
|
|
IIF (Tantargy.ID IS NOT NULL, 'F', 'T') --
|
|
) IsMagatartasSzorgalom
|
|
|
|
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
|
|
,TanariAtlagSuly.C_SULY Suly
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
|
|
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
|
|
,TanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
|
|
,TanuloErtekeles.C_ERTEKELESMODID ErtekelesModId
|
|
,TanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
|
|
|
|
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
|
|
,TanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
|
|
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
|
|
,TanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
|
|
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
|
|
,TanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
|
|
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
|
|
,TanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
|
|
|
|
,Tantargy.C_TARGYKATEGORIA TantargyKategoriaId
|
|
,Fotargy.ID FotargyId
|
|
,Fotargy.C_NEV FotargyNev
|
|
,Fotargy.C_TARGYKATEGORIA FotargyTantargyKategoriaId
|
|
FROM
|
|
#Tantargyak Tantargy
|
|
LEFT JOIN
|
|
T_TANULOERTEKELES_OSSZES TanuloErtekeles ON
|
|
TanuloErtekeles.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND TanuloErtekeles.C_TANEVID = Tantargy.C_TANEVID
|
|
AND TanuloErtekeles.TOROLT = 'F'
|
|
AND (TanuloErtekeles.C_TANTARGYID = Tantargy.ID OR (TanuloErtekeles.C_TANTARGYID IS NULL AND Tantargy.ID IS NULL))
|
|
AND TanuloErtekeles.C_TANULOID = @pTanuloId
|
|
LEFT JOIN
|
|
T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
|
Osztaly.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND Osztaly.C_TANEVID = Tantargy.C_TANEVID
|
|
AND Osztaly.TOROLT = 'F'
|
|
AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
|
LEFT JOIN
|
|
T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON
|
|
FelhasznaloErtekelo.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND FelhasznaloErtekelo.C_TANEVID = Tantargy.C_TANEVID
|
|
AND FelhasznaloErtekelo.TOROLT = 'F'
|
|
AND FelhasznaloErtekelo.ID = TanuloErtekeles.C_ERTEKELOID
|
|
LEFT JOIN
|
|
T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON
|
|
TanariAtlagSuly.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND TanariAtlagSuly.C_TANEVID = Tantargy.C_TANEVID
|
|
AND TanariAtlagSuly.TOROLT = 'F'
|
|
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
|
|
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
|
|
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
|
LEFT JOIN
|
|
T_TANTARGY_OSSZES Fotargy ON
|
|
Fotargy.C_INTEZMENYID = Tantargy.C_INTEZMENYID
|
|
AND Fotargy.C_TANEVID = Tantargy.C_TANEVID
|
|
AND Fotargy.TOROLT = 'F'
|
|
AND Fotargy.ID = Tantargy.C_FOTARGYID
|
|
|
|
END
|
|
|
|
|
|
GO
|
|
|