316 lines
10 KiB
Transact-SQL
316 lines
10 KiB
Transact-SQL
-- =============================================
|
|
-- Description: <Előszedjük a tanuló értékeléseket a megadott paraméterek alapján>
|
|
-- =============================================
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesListDataSet
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetTanuloErtekelesListDataSet
|
|
@pTanevId INT
|
|
,@pTanuloId INT = NULL
|
|
,@pOsztalyCsoportId INT = NULL
|
|
,@pCsoportTipusId INT = NULL
|
|
,@pTantargyId INT = NULL
|
|
,@pErtekeloId INT = NULL
|
|
,@pOsztalyzatId INT = NULL
|
|
,@pErtekelesModId INT = NULL
|
|
,@pTipusId INT = NULL
|
|
,@pDatumTol DATETIME = NULL
|
|
,@pDatumIg DATETIME = NULL
|
|
,@pRogzitesDatumTol DATETIME = NULL
|
|
,@pRogzitesDatumIg DATETIME = NULL
|
|
,@pErtekelesSzoveg NVARCHAR(MAX) = NULL
|
|
,@pErtekelesTema NVARCHAR(255) = NULL
|
|
,@pKellKapcsolodoCsoportok char = 'F'
|
|
AS
|
|
BEGIN
|
|
|
|
-- SET NOCOUNT ON added to prevent extra result sets frominterfering with SELECT statements.
|
|
SET NOCOUNT ON;
|
|
|
|
--NOTE: A végén lévő konkatenálás miatt kell mindenova NVARCHAR(MAX). Ha 4000-eket használunk elszáll!
|
|
DECLARE
|
|
@sql NVARCHAR(MAX)
|
|
,@preSelectSql NVARCHAR(MAX) = ''
|
|
,@selectSql NVARCHAR(MAX)
|
|
,@joinSql NVARCHAR(MAX)
|
|
,@whereSql NVARCHAR(MAX)
|
|
,@postSelectSql NVARCHAR(MAX) = ''
|
|
|
|
SET @selectSql = N'
|
|
SELECT DISTINCT
|
|
tanuloErtekeles.ID ID
|
|
,tanuloErtekeles.C_DATUM Datum
|
|
,tanuloErtekeles.C_ROGZITESDATUM RogzitesDatum
|
|
,tanuloErtekeles.C_TIPUSID TipusId
|
|
,tanuloErtekeles.C_ISERTESITESELKULDVE IsErtesitesElkuldve
|
|
,tanuloErtekeles.C_ERTEKELESMODID ErtekelesModId
|
|
,tanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
|
|
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
|
|
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
|
|
,tanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
|
|
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom
|
|
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
|
|
,tanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
|
|
,tanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
|
|
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
|
|
,tanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
|
|
,tanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
|
|
,tanuloErtekeles.CREATED Created
|
|
,ISNULL(tanariAtlagSuly.C_SULY, 100) ErtekelesSuly
|
|
,tantargy.ID TantargyId
|
|
,ISNULL(tantargy.C_NEV, ''Magatartás/Szorgalom'') TantargyNev
|
|
,tantargy.C_TARGYKATEGORIA TantargyKategoriaId
|
|
,fotargy.ID FotargyId
|
|
,fotargy.C_NEV FotargyNev
|
|
,fotargy.C_TARGYKATEGORIA FotargyTantargyKategoriaId
|
|
,tanuloFelhasznalo.ID TanuloId
|
|
,tanuloFelhasznalo.C_NYOMTATASINEV TanuloNev
|
|
,IIF(tanuloFelhasznalo.C_NEVSORREND = ''T'', --
|
|
tanuloFelhasznalo.C_UTONEV + '' '' + tanuloFelhasznalo.C_VEZETEKNEV, --
|
|
tanuloFelhasznalo.C_VEZETEKNEV + '' '' + tanuloFelhasznalo.C_UTONEV) TanuloNevElotagNelkul
|
|
,ertekeloFelhasznalo.ID ErtekeloId
|
|
,ertekeloFelhasznalo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
|
|
,IIF(ertekeloFelhasznalo.C_NEVSORREND = ''T'', --
|
|
ertekeloFelhasznalo.C_UTONEV + '' '' + ertekeloFelhasznalo.C_VEZETEKNEV, --
|
|
ertekeloFelhasznalo.C_VEZETEKNEV + '' '' + ertekeloFelhasznalo.C_UTONEV) ErtekeloNyomtatasiNevElotagNelkul
|
|
,osztalyCsoport.C_NEV OsztalyCsoportNev
|
|
,rogziteskoriTanuloOsztaly.ID RogziteskoriTanuloOsztalyId
|
|
,rogziteskoriTanuloOsztaly.C_EVFOLYAMTIPUSA RogziteskoriTanuloOsztalyEvfolyamTipusId
|
|
FROM
|
|
T_TANULOERTEKELES_OSSZES tanuloErtekeles'
|
|
|
|
SET @joinSql = N'
|
|
LEFT JOIN
|
|
T_TANARIATLAGSULY_OSSZES tanariAtlagSuly ON
|
|
tanariAtlagSuly.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND tanariAtlagSuly.TOROLT = ''F''
|
|
AND tanariAtlagSuly.C_ERTEKELESMODID = tanuloErtekeles.C_ERTEKELESMODID
|
|
LEFT JOIN
|
|
T_TANTARGY_OSSZES tantargy ON
|
|
tantargy.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND tantargy.TOROLT = ''F''
|
|
AND tantargy.ID = tanuloErtekeles.C_TANTARGYID
|
|
LEFT JOIN
|
|
T_TANTARGY_OSSZES fotargy ON
|
|
fotargy.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND fotargy.TOROLT = ''F''
|
|
AND fotargy.ID = tantargy.C_FOTARGYID
|
|
LEFT JOIN
|
|
T_OSZTALYCSOPORT_OSSZES rogziteskoriTanuloOsztaly ON
|
|
rogziteskoriTanuloOsztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
|
AND rogziteskoriTanuloOsztaly.TOROLT = ''F''
|
|
AND rogziteskoriTanuloOsztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
|
INNER JOIN
|
|
T_FELHASZNALO_OSSZES tanuloFelhasznalo ON
|
|
tanuloFelhasznalo.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND tanuloFelhasznalo.TOROLT = ''F''
|
|
AND tanuloFelhasznalo.ID = tanuloErtekeles.C_TANULOID
|
|
INNER JOIN
|
|
T_FELHASZNALO_OSSZES ertekeloFelhasznalo ON
|
|
ertekeloFelhasznalo.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND ertekeloFelhasznalo.TOROLT = ''F''
|
|
AND ertekeloFelhasznalo.ID = tanuloErtekeles.C_ERTEKELOID
|
|
INNER JOIN
|
|
T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
|
|
osztalyCsoport.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND osztalyCsoport.TOROLT = ''F''
|
|
AND osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID'
|
|
|
|
SET @whereSql = N'
|
|
WHERE
|
|
tanuloErtekeles.C_TANEVID = @pTanevId
|
|
AND tanuloErtekeles.TOROLT = ''F'''
|
|
|
|
IF @pTanuloId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_TANULOID = @pTanuloId'
|
|
END
|
|
|
|
IF @pOsztalyCsoportId IS NOT NULL
|
|
BEGIN
|
|
|
|
|
|
SET @preSelectSql += N'
|
|
CREATE TABLE #OsztalyCsoportIdList(
|
|
ID INT PRIMARY KEY
|
|
)
|
|
INSERT INTO
|
|
#OsztalyCsoportIdList (ID)'
|
|
|
|
IF(@pKellKapcsolodoCsoportok = 'T')
|
|
BEGIN
|
|
|
|
SET @preSelectSql +='SELECT
|
|
ID
|
|
FROM
|
|
fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId)'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SET @preSelectSql += N'
|
|
VALUES (@pOsztalyCsoportId) '
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET @joinSql += N'
|
|
LEFT JOIN
|
|
T_TANULOCSOPORT_OSSZES tanuloCsoport ON
|
|
tanuloCsoport.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND tanuloCsoport.TOROLT = ''F''
|
|
AND tanuloCsoport.C_TANULOID = tanuloFelhasznalo.ID
|
|
AND tanuloCsoport.C_BELEPESDATUM <= GETDATE()
|
|
AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= GETDATE())'
|
|
|
|
SET @whereSql += N'
|
|
AND osztalyCsoport.ID IN (SELECT ID FROM #OsztalyCsoportIdList)
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM
|
|
T_TANULOCSOPORT_OSSZES tanuloCsoport
|
|
WHERE
|
|
tanuloCsoport.C_TANEVID = tanuloErtekeles.C_TANEVID
|
|
AND tanuloCsoport.TOROLT = ''F''
|
|
AND tanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
|
AND tanuloCsoport.C_TANULOID = tanuloFelhasznalo.ID
|
|
)'
|
|
|
|
SET @postSelectSql += N'
|
|
DROP TABLE IF EXISTS #OsztalyCsoportIdList'
|
|
END
|
|
|
|
IF @pCsoportTipusId IS NOT NULL
|
|
BEGIN
|
|
SET @joinSql += N'
|
|
LEFT JOIN
|
|
T_CSOPORT_OSSZES csoport ON
|
|
csoport.C_ALTANEVID = tanuloErtekeles.C_TANEVID
|
|
AND csoport.TOROLT = ''F''
|
|
AND csoport.ID = osztalyCsoport.ID'
|
|
|
|
SET @whereSql += N'
|
|
AND csoport.C_TIPUSA = @pCsoportTipusId'
|
|
END
|
|
|
|
IF @pTantargyId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND tantargy.ID = @pTantargyId'
|
|
END
|
|
|
|
IF @pErtekeloId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND ertekeloFelhasznalo.ID = @pErtekeloId'
|
|
END
|
|
|
|
IF @pOsztalyzatId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND (tanuloErtekeles.C_ERTEKELESOSZTALYZATID = @pOsztalyzatId OR
|
|
tanuloErtekeles.C_MAGATARTASOSZTALYZATID = @pOsztalyzatId OR
|
|
tanuloErtekeles.C_SZORGALOMOSZTALYZATID = @pOsztalyzatId)'
|
|
END
|
|
|
|
IF @pErtekelesModId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_ERTEKELESMODID = @pErtekelesModId'
|
|
END
|
|
|
|
IF @pTipusId IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_TIPUSID = @pTipusId'
|
|
END
|
|
|
|
IF @pDatumTol IS NOT NULL
|
|
BEGIN
|
|
--NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_DATUM >= @pDatumTol'
|
|
END
|
|
|
|
IF @pDatumIg IS NOT NULL
|
|
BEGIN
|
|
--NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_DATUM <= @pDatumIg'
|
|
END
|
|
|
|
IF @pRogzitesDatumTol IS NOT NULL
|
|
BEGIN
|
|
--NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_ROGZITESDATUM >= @pRogzitesDatumTol'
|
|
END
|
|
|
|
IF @pRogzitesDatumIg IS NOT NULL
|
|
BEGIN
|
|
--NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_ROGZITESDATUM <= @pRogzitesDatumIg'
|
|
END
|
|
|
|
IF @pErtekelesSzoveg IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND (tanuloErtekeles.C_ERTEKELESSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
|
|
tanuloErtekeles.C_MAGATARTASSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
|
|
tanuloErtekeles.C_SZORGALOMSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'')'
|
|
END
|
|
|
|
IF @pErtekelesTema IS NOT NULL
|
|
BEGIN
|
|
SET @whereSql += N'
|
|
AND tanuloErtekeles.C_ERTEKELESTEMA LIKE ''%'' + @pErtekelesTema + ''%'''
|
|
END
|
|
|
|
SET @sql = @preSelectSql + @selectSql + @joinSql + @whereSql + @postSelectSql
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pTanevId INT
|
|
,@pTanuloId INT = NULL
|
|
,@pOsztalyCsoportId INT = NULL
|
|
,@pCsoportTipusId INT = NULL
|
|
,@pTantargyId INT = NULL
|
|
,@pErtekeloId INT = NULL
|
|
,@pOsztalyzatId INT = NULL
|
|
,@pErtekelesModId INT = NULL
|
|
,@pTipusId INT = NULL
|
|
,@pDatumTol DATETIME = NULL
|
|
,@pDatumIg DATETIME = NULL
|
|
,@pRogzitesDatumTol DATETIME = NULL
|
|
,@pRogzitesDatumIg DATETIME = NULL
|
|
,@pErtekelesSzoveg NVARCHAR(MAX) = NULL
|
|
,@pErtekelesTema NVARCHAR(255) = NULL'
|
|
,@pTanevId = @pTanevId
|
|
,@pTanuloId = @pTanuloId
|
|
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
|
,@pCsoportTipusId = @pCsoportTipusId
|
|
,@pTantargyId = @pTantargyId
|
|
,@pErtekeloId = @pErtekeloId
|
|
,@pOsztalyzatId = @pOsztalyzatId
|
|
,@pErtekelesModId = @pErtekelesModId
|
|
,@pTipusId = @pTipusId
|
|
,@pDatumTol = @pDatumTol
|
|
,@pDatumIg = @pDatumIg
|
|
,@pRogzitesDatumTol = @pRogzitesDatumTol
|
|
,@pRogzitesDatumIg = @pRogzitesDatumIg
|
|
,@pErtekelesSzoveg = @pErtekelesSzoveg
|
|
,@pErtekelesTema = @pErtekelesTema
|
|
|
|
END
|
|
|
|
|
|
GO
|
|
|