Files
kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20171130222042_KRETA_4399/sp_GetOsztalyOrarendOsszes.sql
2024-03-13 00:33:46 +01:00

84 lines
2.4 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetOsztalyOrarendOsszes]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetOsztalyOrarendOsszes]
END
GO
CREATE PROCEDURE [dbo].[sp_GetOsztalyOrarendOsszes]
@tanevID INT
,@intezmenyId INT
,@aktivTanevId INT
,@isEgyebFoglalkozasok BIT
AS
BEGIN
SET NOCOUNT ON;
SELECT DISTINCT
ia.C_NEV as intezmeny
,m.C_NEV as mukodesihely
,d.C_NAME as oktatasiNevelesiFeladatTipus
,ISNULL(ia.C_VAROS + ', ', '') + dbo.fnGetDokumentumDatumFormatum(GETDATE()) AS kelt
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID=I.ID AND ia.C_TANEVID = @tanevid
INNER JOIN T_MUKODESIHELY_OSSZES m ON ia.C_INTEZMENYID = m.C_INTEZMENYID AND m.TOROLT = 'F' AND m.C_TANEVID = @tanevID
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON m.ID = f.C_MUKODESIHELYID AND f.TOROLT = 'F' AND f.C_TANEVID = @tanevID
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.id = f.C_OKTATASINEVELESIFELADATTIPUS
WHERE
i.id = @intezmenyId
AND I.TOROLT = 'F'
DECLARE @tabla TABLE (osztalyId INT, Ora INT, HetirendId INT, Hetfo NVARCHAR(MAX), Kedd NVARCHAR(MAX), Szerda NVARCHAR(MAX), Csutortok NVARCHAR(MAX), Pentek NVARCHAR(MAX), Szombat NVARCHAR(MAX), Hetirend NVARCHAR(MAX),Osztalynev NVARCHAR(MAX))
SELECT
ocs.Id OsztalyId
,ocs.C_NEV OsztalyNev
INTO #Osztalyok
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.Id=o.Id
WHERE
ocs.TOROLT='F'
AND ocs.C_TANEVID = @tanevID
AND ocs.C_INTEZMENYID = @intezmenyId
DECLARE kurzor CURSOR FOR
SELECT OsztalyId FROM #Osztalyok
DECLARE @OsztalyId int
OPEN kurzor
FETCH NEXT FROM kurzor INTO @OsztalyId
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT INTO @tabla
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok
FETCH NEXT FROM kurzor INTO @OsztalyId
END
CLOSE kurzor
DEALLOCATE kurzor
SELECT
OsztalyId
,OsztalyNev
,Hetirend
FROM #Osztalyok Osztalyok
CROSS JOIN (SELECT DISTINCT Hetirend FROM @tabla) Hetirend (Hetirend)
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.Id = Osztalyok.OsztalyId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA AND EvfolyamTipusa.C_TANEVID = @tanevId
ORDER BY C_ORDER, C_NEV
SELECT
OsztalyokOrarendje.*
FROM @tabla OsztalyokOrarendje
ORDER BY Ora
END
GO