SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[dbo].[sp_PedagogusNemBejegyzettOrai]') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai] END GO CREATE PROCEDURE [dbo].[sp_PedagogusNemBejegyzettOrai] @tanevID INT, @mindenHeten INT, @tanarID INT AS BEGIN SET NOCOUNT ON; DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402) DECLARE @OsztalyCsoportokTanevRendje TABLE (OsztalyCsoportId INT, Datum DATE, isOrarendiNap NVARCHAR(1)) INSERT INTO @OsztalyCsoportokTanevRendje SELECT C_OSZTALYCSOPORTID ,C_DATUM ,C_ORARENDINAP FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID WHERE TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.C_ORARENDINAP = 'F' SELECT CONVERT(NVARCHAR(10),ROW_NUMBER() OVER (ORDER BY Napdatuma ))+'.' COLUMN440 ,FORMAT(Napdatuma, 'yyyy.MM.dd.') COLUMN273 ,Oraszam COLUMN274 ,OsztalyNev COLUMN673 ,TanarNev COLUMN456 ,TantargyNev COLUMN252 ,TeremNev COLUMN2477 ,Hetirend COLUMN4252 FROM ( SELECT naptar.C_NAPDATUMA Napdatuma ,oo.C_ORASZAM Oraszam ,ocs.C_NEV OsztalyNev ,f.C_NYOMTATASINEV TanarNev ,t.C_NEV TantargyNev ,ter.C_NEV TeremNev ,d.C_NAME Hetirend FROM T_ORARENDIORA_OSSZES oo INNER JOIN T_NAPTARINAP_OSSZES naptar ON ((naptar.C_NAPDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE> naptar.C_NAPDATUMA) OR (naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA=oo.C_ORAERVENYESSEGVEGE)) AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = @mindenHeten) AND oo.C_HETNAPJA=naptar.C_HETNAPJA AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401)) LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = naptar.C_NAPDATUMA AND tr.C_TANEVID = naptar.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T' LEFT JOIN @OsztalyCsoportokTanevRendje OsztalyCsoportokTanevRendje ON OsztalyCsoportokTanevRendje.Datum = naptar.C_NAPDATUMA AND OsztalyCsoportokTanevRendje.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE AND naptar.C_NAPDATUMA=tao.C_DATUM AND tao.TOROLT='F' LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = oo.C_TANARID INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID INNER JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID INNER JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE_OSSZES) d ON d.ID=oo.C_HETIREND WHERE oo.C_TANEVID=@tanevId AND oo.TOROLT='F' AND oo.C_TANARID = @tanarID AND naptar.C_NAPDATUMA <= IIF(C_VEGZOSEVFOLYAM = 'T' AND @vegzosUtolsoNapDatuma < GETDATE(), @vegzosUtolsoNapDatuma, GETDATE()) AND tao.ID IS NULL AND hely.ID IS NULL AND oo.TOROLT='F' AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL) AND oo.C_CSENGETESIRENDORAID IS NOT NULL AND naptar.C_TANEVID = @tanevID AND (tr.C_ORARENDINAP = 'T' OR tr.C_ORARENDINAP IS NULL) AND (OsztalyCsoportokTanevRendje.isOrarendiNap = 'T' OR OsztalyCsoportokTanevRendje.isOrarendiNap IS NULL) UNION SELECT naptar.C_NAPDATUMA ,oo.C_ORASZAM ,ocs.C_NEV ,f.C_NYOMTATASINEV ,t.C_NEV ,ter.C_NEV ,d.C_NAME FROM T_HELYETTESITESIIDOSZAK_OSSZES hi INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = f.ID LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID LEFT JOIN T_TEREM_OSSZES ter ON ter.ID=oo.C_TEREMID LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID WHERE hi.C_HELYETTESITESNAPJA <= IIF(C_VEGZOSEVFOLYAM = 'T', @vegzosUtolsoNapDatuma, GETDATE()) AND hi.TOROLT='F' AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL) AND oo.C_CSENGETESIRENDORAID IS NOT NULL AND oo.TOROLT='F' AND hi.C_HELYETTESTANAROKID = @tanarID AND NOT EXISTS ( SELECT 1 FROM T_ORARENDIORA ooo JOIN T_TANITASIORA tao ON tao.C_ORARENDIORAGROUPID = ooo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN ooo.C_ORAERVENYESSEGKEZDETE AND ooo.C_ORAERVENYESSEGVEGE WHERE tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND ooo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F' ) )orak ORDER BY Napdatuma, Oraszam END GO