149 lines
No EOL
4.4 KiB
Transact-SQL
149 lines
No EOL
4.4 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspGetNemMegtartottOrakSzamaByHet
|
|
|
|
GO
|
|
CREATE PROCEDURE uspGetNemMegtartottOrakSzamaByHet
|
|
@pFeladatKategoriaId INT = NULL,
|
|
@pIntezmenyId INT,
|
|
@pTanevId INT,
|
|
@pOsztalyId INT,
|
|
@pHetSorszam INT,
|
|
@pFeladatEllatasiHelyId INT = NULL
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @pCsakOrarendiOrak BIT = 0
|
|
DECLARE @pIdoszakKezdete DATETIME = (SELECT MIN(C_HETKEZDONAPJA) FROM T_NAPTARIHET nh WHERE nh.C_INTEZMENYID = @pIntezmenyId AND nh.C_TANEVID = @pTanevId AND nh.TOROLT = 'F')
|
|
DECLARE @pIdoszakVege DATETIME = GETDATE()
|
|
|
|
DECLARE
|
|
@sql nvarchar(max)
|
|
,@OrarendSql nvarchar(max)
|
|
,@selectSql nvarchar(max)
|
|
,@whereSql nvarchar(max)
|
|
,@orderSql nvarchar(max) = ''
|
|
|
|
SET @OrarendSql = N'
|
|
CREATE TABLE #OrarendTable
|
|
(
|
|
Id int
|
|
,Datum datetime
|
|
,HetNapja int
|
|
,HetSorszam int
|
|
,OraKezdete datetime
|
|
,OraVege datetime
|
|
,Oraszam int
|
|
,TargyNev nvarchar(300)
|
|
,CsengetesiRendID int
|
|
,OsztalyNev nvarchar(255)
|
|
,TanarNev nvarchar(255)
|
|
,OraTipus nvarchar(200)
|
|
,HelyettesitoTanarID int
|
|
,HelyettesitoTanarNev nvarchar(255)
|
|
,TanarID int
|
|
,OsztCsopId int
|
|
,IsEgyediNap char(1)
|
|
)
|
|
|
|
INSERT INTO #OrarendTable
|
|
(
|
|
Id
|
|
,Datum
|
|
,HetNapja
|
|
,HetSorszam
|
|
,OraKezdete
|
|
,OraVege
|
|
,Oraszam
|
|
,TargyNev
|
|
,CsengetesiRendID
|
|
,OsztalyNev
|
|
,TanarNev
|
|
,OraTipus
|
|
,HelyettesitoTanarID
|
|
,HelyettesitoTanarNev
|
|
,TanarID
|
|
,OsztCsopId
|
|
,IsEgyediNap
|
|
)
|
|
EXEC sp_GetOrarend
|
|
@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pIdoszakKezdete = @pIdoszakKezdete
|
|
,@pIdoszakVege = @pIdoszakVege
|
|
,@pTanarId = NULL
|
|
,@pIsHelyettesitesNelkul = 0
|
|
,@pOsztalyCsoportId = @pOsztalyId
|
|
,@pTanuloId = NULL
|
|
,@pTantargyId = NULL
|
|
,@pTeremId = NULL
|
|
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
|
|
,@pIsNapirend = NULL
|
|
,@pOszlopok=N''Id,Datum,HetNapja,HetSorszam,OraKezdete,OraVege,Oraszam,TargyNev,CsengetesiRendID,OsztalyNev,TanarNev,OraTipus,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,OsztCsopId,IsEgyediNap'''
|
|
|
|
SET @selectSql = N'
|
|
SELECT DISTINCT
|
|
tmp.Id AS Id
|
|
,tmp.HetSorszam AS HetSzama
|
|
,tmp.Datum AS Datum
|
|
,tmp.HetNapja AS HetNapja
|
|
,tmp.Oraszam AS Oraszam
|
|
,tmp.OsztalyNev AS OsztalyNev
|
|
,tmp.TargyNev AS TargyNev
|
|
,ISNULL(tmp.HelyettesitoTanarNev, tmp.TanarNev) AS TanarNev
|
|
,tmp.OraKezdete AS OraKezdete
|
|
,tmp.OraVege AS OraVege
|
|
,tmp.CsengetesiRendID AS CsengetesiRend
|
|
,tmp.IsEgyediNap as IsEgyediNap
|
|
,IIF(tmp.HelyettesitoTanarNev IS NOT NULL, ISNULL(helyetesitoTanar.C_OKTATASIAZONOSITO, ''-''), ISNULL(tanar.C_OKTATASIAZONOSITO, ''-'')) as TanarOktatasiAzonosito
|
|
FROM #OrarendTable tmp
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tmp.OsztCsopId = ocs.ID
|
|
INNER JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = tmp.TanarID AND tanar.TOROLT = ''F''
|
|
INNER JOIN T_ALKALMAZOTT_OSSZES alkalmazott ON alkalmazott.ID = tanar.ID and alkalmazott.TOROLT = ''F''
|
|
LEFT JOIN (
|
|
T_FELHASZNALO_OSSZES helyetesitoTanar
|
|
INNER JOIN T_ALKALMAZOTT_OSSZES helyettesitoAlkalmazott ON helyettesitoAlkalmazott.ID = helyetesitoTanar.ID and helyettesitoAlkalmazott.TOROLT = ''F''
|
|
) ON helyetesitoTanar.ID = tmp.HelyettesitoTanarID AND helyetesitoTanar.TOROLT = ''F''
|
|
'
|
|
|
|
SET @whereSql = N'
|
|
WHERE tmp.OraTipus = ''OrarendiOra''
|
|
AND tmp.HetSorszam = @pHetSorszam
|
|
AND tmp.OraVege < GETDATE()'
|
|
|
|
IF @pFeladatKategoriaId IS NOT NULL BEGIN
|
|
SET @whereSql += N'
|
|
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
|
|
END
|
|
|
|
IF @pFeladatEllatasiHelyId IS NOT NULL BEGIN
|
|
SET @whereSql += N'
|
|
AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId'
|
|
END
|
|
|
|
SET @orderSql = N'
|
|
ORDER BY tmp.Datum ASC,tmp.Oraszam ASC'
|
|
|
|
SET @sql = @OrarendSql + @selectSql + @whereSql + @orderSql
|
|
|
|
EXEC sp_executesql @sql, N'
|
|
@pIntezmenyId INT
|
|
,@pTanevId INT
|
|
,@pIdoszakKezdete DATETIME
|
|
,@pIdoszakVege DATETIME
|
|
,@pOsztalyId INT
|
|
,@pCsakOrarendiOrak BIT
|
|
,@pHetSorszam INT
|
|
,@pFeladatKategoriaId INT
|
|
,@pFeladatEllatasiHelyId INT'
|
|
,@pIntezmenyId = @pIntezmenyId
|
|
,@pTanevId = @pTanevId
|
|
,@pIdoszakKezdete = @pIdoszakKezdete
|
|
,@pIdoszakVege = @pIdoszakVege
|
|
,@pOsztalyId = @pOsztalyId
|
|
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
|
|
,@pHetSorszam = @pHetSorszam
|
|
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
|
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
|
|
END
|
|
GO |