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

93 lines
No EOL
2.9 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_HelyettesitesekKeresese]
GO
CREATE PROCEDURE [dbo].[sp_HelyettesitesekKeresese]
@IntezmenyId int,
@TanevId int,
@pHelyettesitettTanarId int,
@pHelyettesitesKezdete datetime,
@pHelyettesitesVege datetime
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #OrarendTable (
Id int
,ORARENDIID int
,Datum datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,Megtartott char(1)
,CsengetesiRendOraID int
,TeremNev nvarchar(255)
,TeremId int
,HelyettesitoTanarNev nvarchar(255)
,HelyettesitesId int
,TantargyId int
,OsztCsopId int
)
INSERT INTO #OrarendTable (
Id
,ORARENDIID
,Datum
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,Megtartott
,CsengetesiRendOraID
,TeremNev
,TeremId
,HelyettesitoTanarNev
,HelyettesitesId
,TantargyId
,OsztCsopId
)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @pHelyettesitesKezdete
,@pIdoszakVege = @pHelyettesitesVege
,@pTanarId = @pHelyettesitettTanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = NULL
,@pOszlopok = 'Id,ORARENDIID,Datum,OraKezdete,OraVege,Oraszam,TargyNev,Megtartott,CsengetesiRendOraID,TeremNev,TeremId,HelyettesitoTanarNev,HelyettesitesId,TantargyId,OsztCsopId'
SELECT
NEWID() as ID
,ot.Datum as HelyettesitettDatum
,ot.ORARENDIID as HelyettesitettOrarendiOraId
,IIF(ot.Oraszam = 0 AND ot.CsengetesiRendOraID IS NULL, NULL, ot.Oraszam) as HelyettesitettOraszam
,ot.CsengetesiRendOraID as HelyettesitettCsengetesiRendOraId
,ot.TantargyId as HelyettesitettTantargyID
,ot.Datum + CAST(CAST(ot.OraKezdete AS time) AS datetime) AS HelyettesitettOraKezdete
,ot.Datum + CAST(CAST(ot.OraVege AS time) AS datetime) AS HelyettesitettOraVege
,ot.TargyNev as HelyettesitettTantargy
,ocs.C_NEV as HelyettesitettOsztaly
,ot.OsztCsopId as HelyettesitettOsztalyId
,ocs.C_EVFOLYAMTIPUSA as HelyettesitettEvFolyamId
,ot.TeremNev as HelyettesitettTerem
,ot.TeremId as HelyettesitettTeremId
,ot.HelyettesitesId as HelyettesitesId
,IIF(ot.Megtartott = 'F' AND ot.Id != ot.ORARENDIID, 'Elmaradt óra', ot.HelyettesitoTanarNev) as HelyettesitoTanarNev
,ot.Megtartott as IsMegtartott
,hi.C_HELYETTESITESTIPUS as HelyettesitesTipusId
,IIF (ot.Id != ot.ORARENDIID, ot.Id, NULL) AS TanoraId
FROM #OrarendTable ot
JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = ot.OsztCsopId AND ocs.TOROLT = 'F'
LEFT JOIN T_HELYETTESITESIIDOSZAK hi ON hi.ID = ot.HelyettesitesId AND hi.TOROLT = 'F'
WHERE ot.Id = ot.ORARENDIID OR (ot.Megtartott ='F' AND ot.Id != ot.ORARENDIID)
ORDER BY HelyettesitettDatum, HelyettesitettOraszam
DROP TABLE #OrarendTable
END
GO