163 lines
7.5 KiB
Transact-SQL
163 lines
7.5 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS [dbo].[uspGetFelmentesAdatok]
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[uspGetFelmentesAdatok]
|
|
@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pFelmentesId INT = NULL
|
|
,@pTanuloNeve NVARCHAR(255) = NULL
|
|
,@pOsztalyId INT = NULL
|
|
,@pTantargyId INT = NULL
|
|
,@pFelmentesKezdeteTol DATETIME = NULL
|
|
,@pFelmentesKezdeteIg DATETIME = NULL
|
|
,@pFelmentesVegeTol DATETIME = NULL
|
|
,@pFelmentesVegeIg DATETIME = NULL
|
|
,@pIsTanoraLatogatasaAloliFelmentes BIT = NULL
|
|
,@pIsErtekelesAloliFelmentes BIT = NULL
|
|
,@pIsSzovegesenErtekelheto BIT = NULL
|
|
,@pFelmentesOka NVARCHAR(4000) = NULL
|
|
,@pRogzitesDatumaTol DATETIME = NULL
|
|
,@pRogzitesDatumaIg DATETIME = NULL
|
|
,@pFelmentesRogzitoje NVARCHAR(255) = NULL
|
|
,@pUtolsoModositasTol DATETIME = NULL
|
|
,@pUtolsoModositasIg DATETIME = NULL
|
|
,@pUtolsoModosito NVARCHAR(255) = NULL
|
|
,@pIsFelmentesTorolt BIT = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@evaluationDate DATETIME = GETDATE()
|
|
,@staticSql NVARCHAR(MAX) = ''
|
|
,@sql NVARCHAR(MAX) = ''
|
|
,@isTanoraLatogatasaAloliFelmentes CHAR(1) = IIF(@pIsTanoraLatogatasaAloliFelmentes = 1, 'T', 'F')
|
|
,@isErtekelesAloliFelmentes CHAR(1) = IIF(@pIsErtekelesAloliFelmentes = 1, 'T', 'F')
|
|
,@isSzovegesenErtekelheto CHAR(1) = IIF(@pIsSzovegesenErtekelheto = 1, 'T', 'F')
|
|
,@isFelmentesTorolt CHAR(1) = IIF(@pIsFelmentesTorolt = 1, 'T', 'F')
|
|
|
|
SET @staticSql = N'
|
|
SELECT
|
|
tm.ID AS FelmentesId
|
|
,tm.TOROLT AS IsFelmentesTOROLT
|
|
,felt.C_NYOMTATASINEV AS TanuloNev
|
|
,osztaly.OsztalyNev AS OsztalyNev
|
|
,ttgy.ID AS TantargyId
|
|
,ttgy.C_NEV AS TantargyNev
|
|
,tm.C_KEZDETE AS FelmentesKezdete
|
|
,tm.C_VEGE AS FelmentesVege
|
|
,tm.C_ORAMENTESITES AS IsTanoraLatogatasaAloliFelmentes
|
|
,tm.C_ERTEKELESMENTESITES AS IsErtekelesAloliFelmentes
|
|
,tm.C_SZOVEGESENERTEKELHETO AS IsSzovegesenErtekelheto
|
|
,tm.C_MENTESSEGOKA AS FelmentesOka
|
|
,tm.C_FELMENTESROGZITESIDOPONTJA AS RogzitesDatuma
|
|
,ISNULL(felc.C_NYOMTATASINEV, N''Nincs adat'') AS FelmentesRogzitoje
|
|
,tm.C_UTOLSOMODOSITASIDOPONTJA AS UtolsoModositas
|
|
,ISNULL(felm.C_NYOMTATASINEV, N''Nincs adat'') AS UtolsoModosito
|
|
FROM
|
|
T_TANULOMENTESSEG_OSSZES AS tm
|
|
INNER JOIN T_TANULO_OSSZES AS t ON t.TOROLT = ''F'' AND tm.C_TANULOID = t.ID AND tm.C_INTEZMENYID = t.C_ALINTEZMENYID AND tm.C_TANEVID = t.C_ALTANEVID
|
|
INNER JOIN T_FELHASZNALO_OSSZES AS felt ON felt.TOROLT = ''F'' AND t.ID = felt.ID AND t.C_ALINTEZMENYID = felt.C_INTEZMENYID AND t.C_ALTANEVID = felt.C_TANEVID
|
|
CROSS APPLY dbo.fnGetTanuloOsztalyString(t.ID, @evaluationDate, NULL, 1, 0, @pOsztalyId) AS osztaly
|
|
INNER JOIN T_TANTARGY_OSSZES AS ttgy ON ttgy.TOROLT = ''F'' AND tm.C_TANTARGYID = ttgy.ID AND tm.C_INTEZMENYID = ttgy.C_INTEZMENYID AND ttgy.C_TANEVID = tm.C_TANEVID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES AS felc ON felc.ID = tm.C_FELMENTESROGZITOTANARID AND tm.C_INTEZMENYID = felc.C_INTEZMENYID AND tm.C_TANEVID = felc.C_TANEVID
|
|
LEFT JOIN T_FELHASZNALO_OSSZES AS felm ON felm.ID = tm.C_UTOLSOMODOSITOTANARID AND tm.C_INTEZMENYID = felm.C_INTEZMENYID AND tm.C_TANEVID = felm.C_TANEVID
|
|
WHERE
|
|
tm.C_INTEZMENYID = @pIntezmenyId
|
|
AND tm.C_TANEVID = @pTanevId
|
|
AND osztaly.OsztalyNev IS NOT NULL';
|
|
|
|
IF @pFelmentesId IS NOT NULL
|
|
BEGIN
|
|
|
|
SET @sql = @staticSql + ' AND tm.ID = @pFelmentesId';
|
|
|
|
EXECUTE sp_executesql
|
|
@stmt = @sql
|
|
,@params = N'
|
|
@evaluationDate DATETIME
|
|
,@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pFelmentesId INT
|
|
,@pOsztalyId INT'
|
|
,@evaluationDate = @evaluationDate
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pFelmentesId = @pFelmentesId
|
|
,@pOsztalyId = NULL;
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
SET @sql = CONCAT(
|
|
@staticSql
|
|
, IIF(@pTanuloNeve > N'', N' AND felt.C_NYOMTATASINEV LIKE N''%'' + @pTanuloNeve + N''%''', NULL)
|
|
, IIF(@pTantargyId IS NOT NULL, N' AND ttgy.ID = @pTantargyId', NULL)
|
|
, IIF(@pFelmentesKezdeteTol IS NOT NULL, N' AND (tm.C_KEZDETE IS NULL OR tm.C_KEZDETE >= @pFelmentesKezdeteTol)', NULL)
|
|
, IIF(@pFelmentesKezdeteIg IS NOT NULL, N' AND (tm.C_KEZDETE IS NULL OR tm.C_KEZDETE <= @pFelmentesKezdeteIg)', NULL)
|
|
, IIF(@pFelmentesVegeTol IS NOT NULL, N' AND (tm.C_VEGE IS NULL OR tm.C_VEGE >= @pFelmentesVegeTol)', NULL)
|
|
, IIF(@pFelmentesVegeIg IS NOT NULL, N' AND (tm.C_VEGE IS NULL OR tm.C_VEGE <= @pFelmentesVegeIg)', NULL)
|
|
, IIF(@pIsTanoraLatogatasaAloliFelmentes IS NOT NULL, N' AND tm.C_ORAMENTESITES = @pIsTanoraLatogatasaAloliFelmentes', NULL)
|
|
, IIF(@pIsErtekelesAloliFelmentes IS NOT NULL, N' AND tm.C_ERTEKELESMENTESITES = @pIsErtekelesAloliFelmentes', NULL)
|
|
, IIF(@pIsSzovegesenErtekelheto IS NOT NULL, N' AND tm.C_SZOVEGESENERTEKELHETO = @pIsSzovegesenErtekelheto', NULL)
|
|
, IIF(@pFelmentesOka > N'', N' AND tm.C_MENTESSEGOKA LIKE N''%'' + @pFelmentesOka + N''%''', NULL)
|
|
, IIF(@pRogzitesDatumaTol IS NOT NULL, N' AND (tm.C_FELMENTESROGZITESIDOPONTJA IS NULL OR tm.C_FELMENTESROGZITESIDOPONTJA >= @pRogzitesDatumaTol)', NULL)
|
|
, IIF(@pRogzitesDatumaIg IS NOT NULL, N' AND (tm.C_FELMENTESROGZITESIDOPONTJA IS NULL OR tm.C_FELMENTESROGZITESIDOPONTJA < @pRogzitesDatumaIg)', NULL)
|
|
, IIF(@pFelmentesRogzitoje > N'', N' AND felc.C_NYOMTATASINEV LIKE N''%'' + @pFelmentesRogzitoje + N''%''', NULL)
|
|
, IIF(@pUtolsoModositasTol IS NOT NULL, N' AND (tm.C_UTOLSOMODOSITASIDOPONTJA IS NULL OR tm.C_UTOLSOMODOSITASIDOPONTJA >= @pUtolsoModositasTol)', NULL)
|
|
, IIF(@pUtolsoModositasIg IS NOT NULL, N' AND (tm.C_UTOLSOMODOSITASIDOPONTJA IS NULL OR tm.C_UTOLSOMODOSITASIDOPONTJA < @pUtolsoModositasIg)', NULL)
|
|
, IIF(@pUtolsoModosito > N'', N' AND felm.C_NYOMTATASINEV LIKE N''%'' + @pUtolsoModosito + N''%''', NULL)
|
|
, IIF(@pIsFelmentesTorolt IS NOT NULL, N' AND tm.TOROLT = @pIsFelmentesTorolt', NULL)
|
|
);
|
|
|
|
EXECUTE sp_executesql
|
|
@stmt = @sql
|
|
,@params = N'
|
|
@evaluationDate DATETIME
|
|
,@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pTanuloNeve NVARCHAR(255)
|
|
,@pOsztalyId INT
|
|
,@pTantargyId INT
|
|
,@pFelmentesKezdeteTol DATETIME
|
|
,@pFelmentesKezdeteIg DATETIME
|
|
,@pFelmentesVegeTol DATETIME
|
|
,@pFelmentesVegeIg DATETIME
|
|
,@pIsTanoraLatogatasaAloliFelmentes CHAR(1)
|
|
,@pIsErtekelesAloliFelmentes CHAR(1)
|
|
,@pIsSzovegesenErtekelheto CHAR(1)
|
|
,@pFelmentesOka NVARCHAR(4000)
|
|
,@pRogzitesDatumaTol DATETIME
|
|
,@pRogzitesDatumaIg DATETIME
|
|
,@pFelmentesRogzitoje NVARCHAR(255)
|
|
,@pUtolsoModositasTol DATETIME
|
|
,@pUtolsoModositasIg DATETIME
|
|
,@pUtolsoModosito NVARCHAR(255)
|
|
,@pIsFelmentesTorolt CHAR(1)'
|
|
,@evaluationDate = @evaluationDate
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pTanuloNeve = @pTanuloNeve
|
|
,@pOsztalyId = @pOsztalyId
|
|
,@pTantargyId = @pTantargyId
|
|
,@pFelmentesKezdeteTol = @pFelmentesKezdeteTol
|
|
,@pFelmentesKezdeteIg = @pFelmentesKezdeteIg
|
|
,@pFelmentesVegeTol = @pFelmentesVegeTol
|
|
,@pFelmentesVegeIg = @pFelmentesVegeIg
|
|
,@pIsTanoraLatogatasaAloliFelmentes = @isTanoraLatogatasaAloliFelmentes
|
|
,@pIsErtekelesAloliFelmentes = @isErtekelesAloliFelmentes
|
|
,@pIsSzovegesenErtekelheto = @isSzovegesenErtekelheto
|
|
,@pFelmentesOka = @pFelmentesOka
|
|
,@pRogzitesDatumaTol = @pRogzitesDatumaTol
|
|
,@pRogzitesDatumaIg = @pRogzitesDatumaIg
|
|
,@pFelmentesRogzitoje = @pFelmentesRogzitoje
|
|
,@pUtolsoModositasTol = @pUtolsoModositasTol
|
|
,@pUtolsoModositasIg = @pUtolsoModositasIg
|
|
,@pUtolsoModosito = @pUtolsoModosito
|
|
,@pIsFelmentesTorolt = @isFelmentesTorolt;
|
|
|
|
END
|
|
|
|
END
|
|
GO
|