71 lines
2.5 KiB
Transact-SQL
71 lines
2.5 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetKapcsolodoOsztalycsoportokByTanar
|
|
GO
|
|
|
|
CREATE PROCEDURE uspGetKapcsolodoOsztalycsoportokByTanar
|
|
@pTanarId int
|
|
,@pMuveszetiAg int = NULL
|
|
,@pTipusId int
|
|
,@pTanevId int
|
|
,@pOsztalyKell bit = 1
|
|
,@pCsoportKell bit = 0
|
|
,@pTartottOraKell bit = 1
|
|
,@pOsztalyGroupName nvarchar(100) = NULL
|
|
,@pCsoportGroupName nvarchar(100) = NULL
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @feladatKategoriaId int = 7555
|
|
,@defaultEvfolyamId int
|
|
CREATE TABLE #kapcsolodoOsztalyCsoportok (ID int)
|
|
|
|
SELECT @defaultEvfolyamId = (SELECT TOP 1 ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_DICTIONARYTYPEID = @pTipusId AND C_VALUE = 1 AND TOROLT = 'F')
|
|
|
|
INSERT INTO #kapcsolodoOsztalyCsoportok (ID)
|
|
EXEC uspGetDokumentumTanarKapcsolodoOsztalyai
|
|
@pTanarId = @pTanarId
|
|
,@pTanevId = @pTanevId
|
|
,@pOsztalyKell = @pOsztalyKell
|
|
,@pCsoportKell = @pCsoportKell
|
|
,@pTartottOraKell = @pTartottOraKell
|
|
,@pFeladatKategoriaId = @feladatKategoriaId
|
|
|
|
SELECT DISTINCT
|
|
CASE WHEN ocs.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(ocs.C_NEV, 9) AS int)
|
|
ELSE 2147483647
|
|
END AS NumberOrder
|
|
,CASE WHEN LEFT(ocs.C_NEV, 1) BETWEEN '0' AND '9' AND ocs.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(ocs.C_NEV, 1, PATINDEX('%[^0-9]%', ocs.C_NEV) - 1),9) AS int)
|
|
ELSE 2147483647
|
|
END AS NumberAndTextOrder
|
|
,ocs.ID AS ID
|
|
,ocs.C_NEV AS Nev
|
|
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
|
|
,CASE WHEN @pOsztalyGroupName IS NOT NULL AND @pCsoportGroupName IS NOT NULL THEN
|
|
CASE WHEN o.ID IS NOT NULL THEN @pOsztalyGroupName
|
|
ELSE @pCsoportGroupName
|
|
END
|
|
ELSE
|
|
dib2.C_NAME
|
|
END AS GroupName
|
|
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
|
INNER JOIN #kapcsolodoOsztalyCsoportok kocs ON kocs.ID = ocs.ID
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib ON dib.ID = ISNULL(ocs.C_EVFOLYAMTIPUSA, @defaultEvfolyamId)
|
|
AND dib.TOROLT = 'F'
|
|
AND dib.C_TANEVID = ocs.C_TANEVID
|
|
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID
|
|
AND o.TOROLT = 'F'
|
|
AND o.C_ALTANEVID = ocs.C_TANEVID
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dib2 ON dib2.ID = ocs.C_MUVESZETIAGID
|
|
AND dib2.C_TANEVID = ocs.C_TANEVID
|
|
AND dib2.TOROLT='F'
|
|
WHERE ocs.TOROLT = 'F'
|
|
AND ocs.C_TANEVID = @pTanevId
|
|
AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
|
|
AND (@pMuveszetiAg IS NULL OR ocs.C_MUVESZETIAGID = @pMuveszetiAg)
|
|
ORDER BY
|
|
GroupName DESC
|
|
,NumberOrder ASC
|
|
,NumberAndTextOrder ASC
|
|
,Nev ASC
|
|
END
|
|
GO
|