kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetKapcsolodoOsztalycsoportokByTanar.sql
2024-03-13 00:33:46 +01:00

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