206 lines
8.3 KiB
Transact-SQL
206 lines
8.3 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspFeljegyzesekKereses
|
|
GO
|
|
|
|
CREATE PROCEDURE uspFeljegyzesekKereses
|
|
@pTanevId int = NULL
|
|
,@pIntezmenyId int = NULL
|
|
,@pOsztalyId int = NULL
|
|
,@OktNevKatTipus int = NULL
|
|
,@pFeladatEllatasiHelyId int = NULL
|
|
,@pTanuloId int = NULL
|
|
,@pOsztalyCsoportId int = NULL
|
|
,@pFeljegyzoId int = NULL
|
|
,@pTipus int = NULL
|
|
,@pDatumTol datetime = NULL
|
|
,@pDatumIg datetime = NULL
|
|
,@pIsElektronikusUzenet bit
|
|
,@pElektronikusUzenetTipusEnum int
|
|
,@pIsKellKapcsolodoCsoportok bit
|
|
,@pRogzitesDatumTol datetime = NULL
|
|
,@pRogzitesDatumIg datetime = NULL
|
|
,@pFeljegyzesSzovege nvarchar(max) = NULL
|
|
,@pSzervezetTipusId int = NULL
|
|
,@pSzervezetIdListString nvarchar(255) = NULL
|
|
,@pSzervezetNev nvarchar(255) = NULL
|
|
,@pSzervezetAzonosito nvarchar(255) = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@sql nvarchar(max)
|
|
,@whereSql nvarchar(max)
|
|
|
|
SET @sql = N'
|
|
SELECT
|
|
tanuloesemeny.ID AS ID
|
|
,tanuloesemeny.C_ESEMENYDATUMA AS Datum
|
|
,tanuloesemeny.C_MEGJEGYZES AS Megjegyzes
|
|
,tanuloesemeny.C_TARTALOM AS Tartalom
|
|
,tanuloesemeny.C_TIPUS AS Tipus
|
|
,tanuloesemeny.C_FELJEGYZOID AS FeljegyzoId
|
|
,tanuloesemeny.C_TANTARGYID AS TantargyId
|
|
,tanuloesemeny.C_ROGZITESDATUMA AS RogzitesDatuma
|
|
,TANULO.ID AS TanuloId
|
|
,TANULO.C_NYOMTATASINEV AS TanuloNev
|
|
,TANULO.C_SZULETESIDATUM AS SzuletesiDatum
|
|
,TANULO.C_OKTATASIAZONOSITO AS OktatasiAzonosito
|
|
,IIF(TANULO.C_NEVSORREND = ''T'', TANULO.C_UTONEV + '' '' + TANULO.C_VEZETEKNEV, TANULO.C_VEZETEKNEV + '' '' + TANULO.C_UTONEV) AS TanuloNevElotagNelkul
|
|
,FELJEGYZO.C_NYOMTATASINEV AS FeljegyzoNev
|
|
,IIF(FELJEGYZO.C_NEVSORREND = ''T'', FELJEGYZO.C_UTONEV + '' '' + FELJEGYZO.C_VEZETEKNEV, FELJEGYZO.C_VEZETEKNEV + '' '' + FELJEGYZO.C_UTONEV) AS FeljegyzoNevElotagNelkul
|
|
,ISNULL(ocs.ID, beirasOcs.ID) AS OsztalyCsoportId
|
|
,ISNULL(ocs.C_NEV, ISNULL(beirasOcs.C_NEV, ISNULL(rogzitesOcs.C_NEV, ''-''))) AS OsztalyCsoportNev
|
|
,STUFF((
|
|
SELECT '', '' + CAST(ocsop.C_NEV AS nvarchar(max))
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
INNER JOIN T_OSZTALY_OSSZES o on o.ID = tcs.C_OSZTALYCSOPORTID
|
|
AND o.TOROLT = ''F''
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocsop on ocsop.ID = o.ID
|
|
AND ocsop.TOROLT = ''F''
|
|
AND (@pFeladatEllatasiHelyId IS NULL OR ocsop.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId)
|
|
AND (@OktNevKatTipus IS NULL OR ocsop.C_FELADATKATEGORIAID = @OktNevKatTipus)
|
|
WHERE tcs.TOROLT = ''F''
|
|
AND tcs.C_TANULOID = T_TANULO_TANULOESEMENY.C_TANULOID
|
|
AND tcs.C_BELEPESDATUM <= tanuloesemeny.C_ESEMENYDATUMA AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tanuloesemeny.C_ESEMENYDATUMA)
|
|
FOR XML PATH ('''')), 1, 1, '''') AS OsztalyNev
|
|
,tanuloesemeny.C_TARGY AS Cim
|
|
FROM T_TANULOESEMENY_OSSZES AS tanuloesemeny
|
|
INNER JOIN T_TANULO_TANULOESEMENY ON tanuloesemeny.ID = T_TANULO_TANULOESEMENY.C_TANULOESEMENYID
|
|
LEFT JOIN (
|
|
SELECT
|
|
tanitasiora.ID AS TanitasioraId
|
|
,ocs.ID
|
|
,ocs.C_NEV
|
|
,ocs.C_FELADATELLATASIHELYID
|
|
,ocs.C_FELADATKATEGORIAID
|
|
,ocs.C_TANEVID
|
|
,ocs.C_INTEZMENYID
|
|
FROM T_TANITASIORA_OSSZES tanitasiora
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tanitasiora.C_OSZTALYCSOPORTID
|
|
AND ocs.TOROLT = ''F''
|
|
AND (@OktNevKatTipus IS NULL OR C_FELADATKATEGORIAID = @OktNevKatTipus)
|
|
AND (@pFeladatEllatasiHelyId IS NULL OR ocs.C_FELADATELLATASIHELYID= @pFeladatEllatasiHelyId)
|
|
) ocs on ocs.TanitasioraId = tanuloesemeny.C_TANITASIORAID
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES rogzitesOcs ON tanuloesemeny.C_ROGZITESKORIOSZTALYID = rogzitesOcs.ID
|
|
LEFT JOIN T_OSZTALYCSOPORT_OSSZES beirasOcs ON tanuloesemeny.C_BEIRASOSZTALYCSOPORTID = beirasOcs.ID
|
|
INNER JOIN T_FELHASZNALO_OSSZES TANULO ON TANULO.ID = T_TANULO_TANULOESEMENY.C_TANULOID
|
|
AND TANULO.TOROLT = ''F''
|
|
INNER JOIN T_FELHASZNALO_OSSZES FELJEGYZO ON FELJEGYZO.ID = tanuloesemeny.C_FELJEGYZOID
|
|
AND FELJEGYZO.TOROLT = ''F'''
|
|
|
|
SET @whereSql = N'
|
|
WHERE tanuloesemeny.TOROLT = ''F''
|
|
AND (@pFeladatEllatasiHelyId IS NULL OR COALESCE(ocs.C_FELADATELLATASIHELYID, rogzitesOcs.C_FELADATELLATASIHELYID, beirasOcs.C_FELADATELLATASIHELYID) = @pFeladatEllatasiHelyId)
|
|
AND (@OktNevKatTipus IS NULL OR ocs.C_FELADATKATEGORIAID = @OktNevKatTipus OR rogzitesOcs.C_FELADATKATEGORIAID = @OktNevKatTipus)
|
|
AND tanuloesemeny.C_INTEZMENYID = @pIntezmenyId
|
|
AND tanuloesemeny.C_TANEVID = @pTanevId'
|
|
|
|
IF (@pOsztalyId IS NOT NULL) SET @whereSql += N'
|
|
AND EXISTS(
|
|
SELECT 1
|
|
FROM T_TANULOCSOPORT_OSSZES tcs
|
|
WHERE tcs.C_TANULOID = T_TANULO_TANULOESEMENY.C_TANULOID
|
|
AND C_BELEPESDATUM <= tanuloesemeny.C_ESEMENYDATUMA
|
|
AND (C_KILEPESDATUM > tanuloesemeny.C_ESEMENYDATUMA OR C_KILEPESDATUM IS NULL)
|
|
AND C_OSZTALYCSOPORTID = @pOsztalyId)'
|
|
|
|
IF (@pTanuloId IS NOT NULL) SET @whereSql += N'
|
|
AND T_TANULO_TANULOESEMENY.C_TANULOID = @pTanuloId'
|
|
|
|
IF (@pOsztalyCsoportId IS NOT NULL)
|
|
SET @whereSql +=
|
|
IIF(@pIsKellKapcsolodoCsoportok = 1, N'
|
|
AND ISNULL(ocs.ID, beirasOcs.ID) IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))', N'
|
|
AND (ocs.ID = @pOsztalyCsoportId OR beirasOcs.ID = @pOsztalyCsoportId)')
|
|
|
|
IF (@pFeljegyzoId IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_FELJEGYZOID = @pFeljegyzoId'
|
|
|
|
IF (@pTipus IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_TIPUS = @pTipus'
|
|
|
|
IF (@pDatumTol IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_ESEMENYDATUMA >= @pDatumTol'
|
|
|
|
IF (@pDatumIg IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_ESEMENYDATUMA < @pDatumIg'
|
|
|
|
IF (@pRogzitesDatumTol IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_ROGZITESDATUMA >= @pRogzitesDatumTol'
|
|
|
|
IF (@pRogzitesDatumIg IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_ROGZITESDATUMA < @pRogzitesDatumIg'
|
|
|
|
IF (@pIsElektronikusUzenet = 1) SET @whereSql += N'
|
|
AND tanuloesemeny.C_TIPUS = @pElektronikusUzenetTipusEnum'
|
|
ELSE SET @whereSql += N'
|
|
AND tanuloesemeny.C_TIPUS <> @pElektronikusUzenetTipusEnum'
|
|
|
|
IF (@pFeljegyzesSzovege IS NOT NULL) SET @whereSql += N'
|
|
AND tanuloesemeny.C_TARTALOM LIKE ''%'' + @pFeljegyzesSzovege + ''%'''
|
|
|
|
IF @pSzervezetTipusId IS NOT NULL BEGIN
|
|
SET @sql += N'
|
|
LEFT JOIN T_CSOPORT_OSSZES cs on cs.C_ALTANEVID = ocs.C_TANEVID AND cs.C_ALINTEZMENYID = ocs.C_INTEZMENYID AND cs.TOROLT = ''F'' AND cs.ID = ocs.ID
|
|
INNER JOIN T_SZERVEZET_OSSZES sz ON sz.C_TANEVID = tanuloesemeny.C_TANEVID AND sz.C_INTEZMENYID = tanuloesemeny.C_INTEZMENYID AND sz.TOROLT = ''F'' AND sz.ID = cs.C_SZERVEZETID AND sz.C_TIPUS = @pSzervezetTipusId'
|
|
IF (@pSzervezetIdListString IS NOT NULL AND LEN(@pSzervezetIdListString) > 0) BEGIN
|
|
SET @whereSql += N'
|
|
AND sz.ID IN (' + @pSzervezetIdListString + ')'
|
|
END
|
|
IF @pSzervezetNev IS NOT NULL BEGIN
|
|
SET @whereSql += N'
|
|
AND sz.C_NEV LIKE ''%'' + @pSzervezetNev + ''%'''
|
|
END
|
|
IF @pSzervezetAzonosito IS NOT NULL BEGIN
|
|
SET @whereSql += N'
|
|
AND sz.C_AZONOSITO LIKE ''%'' + @pSzervezetAzonosito + ''%'''
|
|
END
|
|
END
|
|
|
|
SET @sql += @whereSql
|
|
|
|
EXEC sys.Sp_executesql @sql, N'
|
|
@pTanevId int = NULL
|
|
,@pIntezmenyId int = NULL
|
|
,@pOsztalyId int
|
|
,@OktNevKatTipus int
|
|
,@pFeladatEllatasiHelyId int
|
|
,@pTanuloId int
|
|
,@pOsztalyCsoportId int
|
|
,@pFeljegyzoId int
|
|
,@pTipus int
|
|
,@pDatumTol datetime
|
|
,@pDatumIg datetime
|
|
,@pIsElektronikusUzenet bit
|
|
,@pElektronikusUzenetTipusEnum int
|
|
,@pRogzitesDatumTol datetime
|
|
,@pRogzitesDatumIg datetime
|
|
,@pFeljegyzesSzovege nvarchar(max)
|
|
,@pSzervezetTipusId int = NULL
|
|
,@pSzervezetNev nvarchar(255) = NULL
|
|
,@pSzervezetAzonosito nvarchar(255) = NULL'
|
|
,@pTanevId
|
|
,@pIntezmenyId
|
|
,@pOsztalyId
|
|
,@OktNevKatTipus
|
|
,@pFeladatEllatasiHelyId
|
|
,@pTanuloId
|
|
,@pOsztalyCsoportId
|
|
,@pFeljegyzoId
|
|
,@pTipus
|
|
,@pDatumTol
|
|
,@pDatumIg
|
|
,@pIsElektronikusUzenet
|
|
,@pElektronikusUzenetTipusEnum
|
|
,@pRogzitesDatumTol
|
|
,@pRogzitesDatumIg
|
|
,@pFeljegyzesSzovege
|
|
,@pSzervezetTipusId = @pSzervezetTipusId
|
|
,@pSzervezetNev = @pSzervezetNev
|
|
,@pSzervezetAzonosito = @pSzervezetAzonosito
|
|
|
|
END
|
|
|
|
GO
|
|
|