This commit is contained in:
2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
-- =============================================
-- Description: <Ellenőrizzuk, hogy a tanulóknak van-e már egyszer adható tanuló értékelése, ha nincs akkor true, ha van akkor false>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS [dbo].[uspCheckTanuloListEgyszerAdhatoTanuloErtekelesValidation]
GO
CREATE PROCEDURE [dbo].[uspCheckTanuloListEgyszerAdhatoTanuloErtekelesValidation]
@pTanuloErtekelesList XML
,@pTipusId INT
,@pTantargyId INT = NULL
,@pDatum DATE = NULL
,@pFeladatKategoriaId INT
,@pAmiKategoriaId INT
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 @TempTanuloErtekelesList TABLE (C_TANULOID INT, ID INT)
INSERT INTO @TempTanuloErtekelesList
SELECT DISTINCT
C_TANULOID = tanuloErtekeles.value('(./tanuloId)[1]', 'INT')
,ID = tanuloErtekeles.value('(./id)[1]', 'INT')
FROM @pTanuloErtekelesList.nodes('tanuloErtekelesList') AS tanuloErtekelesList(tanuloErtekeles)
IF EXISTS (
SELECT 1
FROM
T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN
T_OSZTALYCSOPORT_OSSZES Osztaly ON
Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
AND Osztaly.C_EVFOLYAMTIPUSA = IIF(@pFeladatKategoriaId = @pAmiKategoriaId, NULL, (SELECT EvfolyamTipusId FROM dbo.fnGetTanuloOsztaly(TanuloErtekeles.C_TANULOID, @pDatum, @pFeladatKategoriaId, 1)))
LEFT JOIN
@TempTanuloErtekelesList TanuloErtekelesToEdit ON
TanuloErtekeles.C_TANULOID = TanuloErtekelesToEdit.C_TANULOID
WHERE
TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TIPUSID = @pTipusId
AND TanuloErtekeles.C_TANULOID = TanuloErtekelesToEdit.C_TANULOID
AND (TanuloErtekelesToEdit.ID IS NULL OR
TanuloErtekeles.ID != TanuloErtekelesToEdit.ID)
AND (@pTantargyId IS NOT NULL AND @pTantargyId = TanuloErtekeles.C_TANTARGYID OR
@pTantargyId IS NULL AND TanuloErtekeles.C_TANTARGYID IS NULL)
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
UNION ALL
SELECT 1
FROM
T_TANULOERTEKELES_OSSZES TanuloErtekeles
INNER JOIN T_OSZTALYCSOPORT_OSSZES Osztaly ON
Osztaly.ID = TanuloErtekeles.C_OSZTALYCSOPORTID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
LEFT JOIN
@TempTanuloErtekelesList TanuloErtekelesToEdit ON
TanuloErtekeles.C_TANULOID = TanuloErtekelesToEdit.C_TANULOID
WHERE
TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TIPUSID = @pTipusId
AND TanuloErtekeles.C_TANULOID = TanuloErtekelesToEdit.C_TANULOID
AND (TanuloErtekelesToEdit.ID IS NULL OR
TanuloErtekeles.ID != TanuloErtekelesToEdit.ID)
AND (@pTantargyId IS NOT NULL AND @pTantargyId = TanuloErtekeles.C_TANTARGYID OR
@pTantargyId IS NULL AND TanuloErtekeles.C_TANTARGYID IS NULL)
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
)
SELECT 1
ELSE
SELECT 0
END
GO

View File

@@ -0,0 +1,335 @@
-- =============================================
-- Description: <Előszedjük a tanuló értékeléseket főtárgy/altárgy alapján>
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
GO
CREATE PROCEDURE [dbo].[uspGetTanuloErtekelesDataSetByFotargyAltargy]
@pIntezmenyId INT
,@pTanevId INT
,@pTanarId INT
,@pTanuloId INT
,@pFotargyAltargyId INT
,@pDatum DATE = NULL
,@pFeladatKategoriaId INT
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 TOP (1)
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
FROM
fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, 0) tanuloOsztaly
ORDER BY
tanuloOsztaly.BelepesDatuma DESC
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
ID
,C_FOTARGYID
,C_NEV
,C_TARGYKATEGORIA
,C_INTEZMENYID
,C_TANEVID
FROM
fnGetKapcsolodoTantargyak(@pIntezmenyId, @pTanevId, @pFotargyAltargyId)
CREATE TABLE #OsztalyCsoportIdList (
ID INT PRIMARY KEY
)
INSERT INTO #OsztalyCsoportIdList (
ID
)
SELECT
OsztalyCsoport.ID
FROM
T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN
T_OSZTALY_OSSZES Osztaly ON
Osztaly.C_ALINTEZMENYID = TanuloCsoport.C_INTEZMENYID
AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
AND Osztaly.TOROLT = 'F'
AND Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
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 = Osztaly.ID
AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
WHERE
TanuloCsoport.C_INTEZMENYID = @pIntezmenyId
AND TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_TANULOID = @pTanuloId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
CREATE TABLE #Tantargyak (
ID INT
,C_FOTARGYID INT
,C_NEV NVARCHAR(255)
,C_TARGYKATEGORIA INT
,C_INTEZMENYID INT
,C_TANEVID INT
);
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_INTEZMENYID, C_TANEVID)
AS (
SELECT DISTINCT
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 DISTINCT
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 DISTINCT
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
INNER JOIN
T_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
AND 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
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
UNION ALL
--NOTE: ami-s értékelések miatt, ott nincs mentve C_ROGZITESKORITANULOOSZTALYID
SELECT DISTINCT
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
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
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS 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
WHERE
(KapcsopodoTantargy.ID <> @pFotargyAltargyId)
SELECT
@pTanuloId TanuloId
,Tantargy.ID TantargyId
,Tantargy.C_NEV TantargyNev
,TanuloErtekeles.ID ID
,TanuloErtekeles.C_DATUM Datum
,TanuloErtekeles.C_ROGZITESDATUM RogzitesDatum
,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
,TanuloErtekeles.CREATED Created
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom
,TanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve
,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
,Tantargy.C_TARGYKATEGORIA TantargyKategoriaId
,Fotargy.ID FotargyId
,Fotargy.C_NEV FotargyNev
,Fotargy.C_TARGYKATEGORIA FotargyTantargyKategoriaId
FROM
#Tantargyak Tantargy
LEFT JOIN(
SELECT
TanuloErtekeles.*
FROM
T_TANULOERTEKELES_OSSZES TanuloErtekeles
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
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
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
WHERE
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANULOID = @pTanuloId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
UNION ALL
--NOTE: AMI-s értékelések miatt! Ott nincs mentve C_ROGZITESKORITANULOOSZTALYID
SELECT
TanuloErtekeles.*
FROM
T_TANULOERTEKELES_OSSZES TanuloErtekeles
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_OSZTALYCSOPORTID
AND Osztaly.C_FELADATKATEGORIAID = @pFeladatKategoriaId
WHERE
TanuloErtekeles.C_INTEZMENYID = @pIntezmenyId
AND TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = 'F'
AND TanuloErtekeles.C_TANULOID = @pTanuloId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
) AS TanuloErtekeles ON
TanuloErtekeles.C_TANTARGYID = Tantargy.ID
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

View File

@@ -0,0 +1,116 @@
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByMagatartasSzorgalom
GO
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByMagatartasSzorgalom
@pTanevId int
,@pTanarId int
,@pOsztalyCsoportId int
,@pDatum date = NULL
,@pAmiKategoriaId int
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) 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
,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
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
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 TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
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

View File

@@ -0,0 +1,150 @@
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTantargy
GO
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTantargy
@pTanevId int
,@pTanarId int
,@pTantargyId int
,@pOsztalyCsoportId int
,@pDatum date = NULL
,@pAmiKategoriaId int
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
)
CREATE TABLE #Mentessegek (
TanuloId int
,C_MENTESSEGOKA nvarchar (max)
,C_ERTEKELESMENTESITES char (1)
,C_SZOVEGESENERTEKELHETO char (1)
,RowNumber 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) tanuloOsztalyList
END
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.C_TANEVID = @pTanevId
AND TanuloMentesseg.TOROLT = 'F'
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
,OsztalyCsoport.C_FELADATKATEGORIAID AS FeladatKategoriaId
,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.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
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 = @pTantargyId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS 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.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 = @pTantargyId
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
AND TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
) AS TanuloErtekeles ON TanuloErtekeles.C_TANULOID = TanuloCsoport.C_TANULOID
LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.C_TANEVID = TanuloCsoport.C_TANEVID AND TanariAtlagSuly.TOROLT = 'F'
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
LEFT JOIN #Mentessegek TanuloMentesseg ON TanuloMentesseg.TanuloId = FelhasznaloTanulo.ID AND TanuloMentesseg.RowNumber = 1
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

View File

@@ -0,0 +1,298 @@
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDataSetByTanulo
GO
CREATE PROCEDURE uspGetTanuloErtekelesDataSetByTanulo
@pIntezmenyId int
,@pTanevId int
,@pTanarId int
,@pTanuloId int
,@pDatum date = NULL
,@pAmiKategoriaId int
,@pFeladatKategoriaId int = NULL
AS BEGIN
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = CONVERT(date, GETDATE())
DECLARE
@evfolyamTipusId int
,@sql nvarchar (max)
SELECT TOP (1)
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
FROM
fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, 0) tanuloOsztaly
ORDER BY
tanuloOsztaly.BelepesDatuma DESC
SET @sql = N'
CREATE TABLE #KapcsopodoTantargyak (
ID int
,C_FOTARGYID int
,C_NEV nvarchar (255)
,C_TARGYKATEGORIA int
,C_TANEVID int
)
CREATE TABLE #Tantargyak (
ID int
,C_FOTARGYID int
,C_NEV nvarchar (255)
,C_TARGYKATEGORIA int
,C_TANEVID int
)
INSERT INTO #KapcsopodoTantargyak (
ID
,C_FOTARGYID
,C_NEV
,C_TARGYKATEGORIA
,C_TANEVID
)
SELECT
kapcsolodoTargy.ID
,kapcsolodoTargy.C_FOTARGYID
,kapcsolodoTargy.C_NEV
,kapcsolodoTargy.C_TARGYKATEGORIA
,kapcsolodoTargy.C_TANEVID
FROM fnGetKapcsolodoTantargyak(@pIntezmenyId, @pTanevId, NULL) kapcsolodoTargy
CREATE TABLE #OsztalyCsoportIdList (
ID int PRIMARY KEY
)
INSERT INTO #OsztalyCsoportIdList (
ID
)
SELECT
OsztalyCsoport.ID
FROM T_TANULOCSOPORT_OSSZES TanuloCsoport
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID AND Osztaly.TOROLT = ''F''
AND Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.C_TANEVID = TanuloCsoport.C_TANEVID AND OsztalyCsoport.TOROLT = ''F''
AND OsztalyCsoport.ID = Osztaly.ID
AND (OsztalyCsoport.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
WHERE TanuloCsoport.C_TANEVID = @pTanevId
AND TanuloCsoport.TOROLT = ''F''
AND TanuloCsoport.C_TANULOID = @pTanuloId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (TanuloCsoport.C_KILEPESDATUM > @pDatum OR TanuloCsoport.C_KILEPESDATUM IS NULL)
'
SET @sql += N'
INSERT INTO #Tantargyak (
ID
,C_FOTARGYID
,C_NEV
,C_TARGYKATEGORIA
,C_TANEVID
)
SELECT
NULL
,NULL
,''Magatartás/Szorgalom''
,0
,@pTanevID;
WITH tantargy_CTE (
C_TANTARGYID
,C_FOTARGYID
,C_TANEVID
) AS
(
SELECT
Foglalkozas.C_TANTARGYID
,Tantargy.C_FOTARGYID
,Tantargy.C_TANEVID
FROM T_FOGLALKOZAS_OSSZES Foglalkozas
INNER JOIN T_TANTARGY_OSSZES Tantargy ON 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_TANEVID = @pTanevId
AND Foglalkozas.TOROLT = ''F''
UNION
SELECT
OrarendiOra.C_TANTARGYID
,Tantargy.C_FOTARGYID
,Tantargy.C_TANEVID
FROM T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN T_TANTARGY_OSSZES Tantargy ON 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_TANEVID = @pTanevId
AND OrarendiOra.TOROLT = ''F''
UNION
SELECT
TanuloErtekeles.C_TANTARGYID
,Tantargy.C_FOTARGYID
,Tantargy.C_TANEVID
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID AND Tantargy.TOROLT = ''F''
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
'
IF @pFeladatKategoriaId = @pAmiKategoriaId
BEGIN
SET @sql += N'
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 = @pFeladatKategoriaId
'
END
ELSE
BEGIN
SET @sql += N'
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 = @pFeladatKategoriaId
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
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
'
END
SET @sql += N'
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = ''F''
AND TanuloErtekeles.C_TANULOID = @pTanuloId
'
IF @pFeladatKategoriaId = @pAmiKategoriaId
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
'
ELSE
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
'
SET @sql += N'
)
INSERT INTO #Tantargyak (
ID
,C_FOTARGYID
,C_NEV
,C_TARGYKATEGORIA
,C_TANEVID
)
SELECT DISTINCT
KapcsopolodoTantargy.ID
,KapcsopolodoTantargy.C_FOTARGYID
,KapcsopolodoTantargy.C_NEV
,KapcsopolodoTantargy.C_TARGYKATEGORIA
,KapcsopolodoTantargy.C_TANEVID
FROM tantargy_CTE
INNER JOIN #KapcsopodoTantargyak KapcsopolodoTantargy ON tantargy_CTE.C_TANTARGYID = KapcsopolodoTantargy.ID OR tantargy_CTE.C_FOTARGYID = KapcsopolodoTantargy.ID
SELECT
@pTanuloId AS TanuloId
,Tantargy.ID AS TantargyId
,Tantargy.C_NEV AS TantargyNev
,TanuloErtekeles.ID AS ID
,TanuloErtekeles.C_DATUM AS Datum
,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
,TanuloErtekeles.C_TIPUSID AS TipusId
,FelhasznaloErtekelo.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
,IIF(TanuloErtekeles.ID IS NULL, NULL, CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END) AS Modosithato
,TanuloErtekeles.CREATED AS Created
,IIF(TanuloErtekeles.C_ISMAGATARTASSZORGALOM IS NOT NULL, TanuloErtekeles.C_ISMAGATARTASSZORGALOM, IIF(Tantargy.ID IS NOT NULL, ''F'', ''T'')) 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
,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
,Tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
,Fotargy.ID AS FotargyId
,Fotargy.C_NEV AS FotargyNev
,Fotargy.C_TARGYKATEGORIA AS FotargyTantargyKategoriaId
FROM #Tantargyak Tantargy
LEFT JOIN (
SELECT
TanuloErtekeles.*
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
'
IF @pFeladatKategoriaId = @pAmiKategoriaId
SET @sql += N'
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 = @pFeladatKategoriaId
'
ELSE
SET @sql += N'
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 = @pFeladatKategoriaId
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
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
'
SET @sql += N'
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = ''F''
AND TanuloErtekeles.C_TANULOID = @pTanuloId
'
IF @pFeladatKategoriaId = @pAmiKategoriaId
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
'
ELSE
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
'
SET @sql += N'
) AS TanuloErtekeles ON (TanuloErtekeles.C_TANTARGYID = Tantargy.ID OR (TanuloErtekeles.C_TANTARGYID IS NULL AND Tantargy.ID IS NULL))
INNER JOIN T_FELHASZNALO_OSSZES FelhasznaloErtekelo ON 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_TANEVID = Tantargy.C_TANEVID AND TanariAtlagSuly.TOROLT = ''F''
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
LEFT JOIN T_TANTARGY_OSSZES Fotargy ON Fotargy.C_TANEVID = Tantargy.C_TANEVID AND Fotargy.TOROLT = ''F''
AND Fotargy.ID = Tantargy.C_FOTARGYID
'
EXEC sp_executesql @sql, N'
@pIntezmenyId int
,@pTanevId int
,@pTanarId int
,@pTanuloId int
,@pFeladatKategoriaId int
,@evfolyamTipusId int
,@pDatum date
'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pTanarId = @pTanarId
,@pTanuloId = @pTanuloId
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@evfolyamTipusId = @evfolyamTipusId
,@pDatum = @pDatum
END
GO

View File

@@ -0,0 +1,157 @@
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesDetailDataSet
GO
CREATE PROCEDURE uspGetTanuloErtekelesDetailDataSet
@pTanevId int
,@pTanuloId int
,@pTantargyId int = NULL
,@pShowToroltElemek bit
,@pTanarId int = NULL
,@pErtekelesMegjelenesFajtaEnumTantargyId int
,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId int
,@pErtekelesMegjelenesFajtaId int
,@pDatum date = NULL
,@pAmiKategoriaId int
,@pFeladatKategoriaId int
AS BEGIN
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = CONVERT(date, GETDATE())
DECLARE
@evfolyamTipusId int
,@sql nvarchar (max)
SELECT TOP (1)
@evfolyamTipusId = tanuloOsztaly.EvfolyamTipusId
FROM
fnGetTanuloOsztaly(@pTanuloId, @pDatum, @pFeladatKategoriaId, 0) tanuloOsztaly
ORDER BY
tanuloOsztaly.BelepesDatuma DESC
SET @sql = N'
SELECT DISTINCT
TanuloErtekeles.ID AS ID
,TanuloErtekeles.C_DATUM AS Datum
,TanuloErtekeles.C_ROGZITESDATUM AS RogzitesDatum
,TanuloErtekeles.C_TIPUSID AS TipusId
,TanuloErtekeles.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
,TanuloErtekeles.C_TANORAID AS TanoraId
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
,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
,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
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
,TanuloErtekeles.CREATED AS Created
,TanuloErtekeles.TOROLT AS Torolt
,TanuloErtekeles.C_TANULOID AS TanuloId
,TanariAtlagSuly.C_SULY AS Suly
,Felhasznalo.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
,Tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
,CASE WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId THEN ''T'' ELSE ''F'' END AS Modosithato
FROM T_TANULOERTEKELES_OSSZES TanuloErtekeles
'
IF @pFeladatKategoriaId = @pAmiKategoriaId
BEGIN
--NOTE: Ha nincs osztály id, akkor AMI-s osztályról van szó és ott nem kell évfolyamszűrés!
SET @sql += N'
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 = @pFeladatKategoriaId
'
END
ELSE
BEGIN
SET @sql += N'
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 = @pFeladatKategoriaId
AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
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 = @pTanuloId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
'
END
SET @sql += N'
LEFT JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID AND Tantargy.TOROLT = ''F''
AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.C_TANEVID = TanuloErtekeles.C_TANEVID AND Felhasznalo.TOROLT = ''F''
AND Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
LEFT JOIN T_TANARIATLAGSULY_OSSZES TanariAtlagSuly ON TanariAtlagSuly.C_TANEVID = TanuloErtekeles.C_TANEVID AND TanariAtlagSuly.TOROLT = ''F''
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
AND TanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
WHERE TanuloErtekeles.C_TANEVID = @pTanevId
AND TanuloErtekeles.TOROLT = IIF(@pShowToroltElemek = 1, TanuloErtekeles.TOROLT, ''F'')
AND TanuloErtekeles.C_TANULOID = @pTanuloId'
IF @pFeladatKategoriaId = @pAmiKategoriaId
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
'
ELSE
SET @sql += N'
AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NOT NULL
'
SET @sql +=
CASE
WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId
THEN N'
AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId)
'
WHEN @pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId
THEN N'
AND (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL)
'
ELSE N'
AND ((TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''F'' AND TanuloErtekeles.C_TANTARGYID = @pTantargyId AND @pTantargyId IS NOT NULL)
OR (TanuloErtekeles.C_ISMAGATARTASSZORGALOM = ''T'' AND TanuloErtekeles.C_TANTARGYID IS NULL AND @pTantargyId IS NULL))
'
END
SET @sql += N'
ORDER BY
Datum DESC
,RogzitesDatum DESC
'
EXEC sp_executesql @sql, N'
@pTanevId int
,@pTanuloId int
,@pTantargyId int
,@pShowToroltElemek bit
,@pTanarId int
,@evfolyamTipusId int
,@pFeladatKategoriaId int
,@pDatum date
'
,@pTanevId = @pTanevId
,@pTanuloId = @pTanuloId
,@pTantargyId = @pTantargyId
,@pShowToroltElemek = @pShowToroltElemek
,@pTanarId = @pTanarId
,@evfolyamTipusId = @evfolyamTipusId
,@pFeladatKategoriaId= @pFeladatKategoriaId
,@pDatum = @pDatum
END
GO