IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaByHet') IS NOT NULL BEGIN DROP PROCEDURE sp_GetNemMegtartottOrakSzamaByHet END GO CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaByHet @osztalyId INT ,@intezmenyId INT ,@tanevId INT ,@hetSorszam INT AS BEGIN DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402) DECLARE @vegzosOsztalyokCsoportok TABLE (osztalyId INT) INSERT INTO @vegzosOsztalyokCsoportok SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_VEGZOSEVFOLYAM = 'T' AND C_TANEVID = @tanevID AND TOROLT = 'F' DECLARE @aktualisHetHetirendje INT = (SELECT C_HETIREND FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA=@hetSorszam AND TOROLT='F' AND C_TANEVID=@tanevId) SELECT Id AS Id ,@hetSorszam AS HetSzama ,C_NAPDATUMA AS Datum ,C_HETNAPJA AS Hetnapja ,C_ORASZAM AS Oraszam ,C_NEV AS OsztalyNev ,tant AS TargyNev ,Nev AS TanarNev FROM ( SELECT DISTINCT oo.id ,naptar.C_NAPDATUMA ,naptar.C_HETNAPJA ,oo.C_ORASZAM ,ocs.C_NEV ,t.C_NEV tant ,ISNULL(fh.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Nev FROM T_ORARENDIORA_OSSZES oo INNER JOIN T_NAPTARINAP_OSSZES naptar ON ((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE) OR (naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE)) AND naptar.C_ORARENDINAP='T' AND (naptar.C_HETIREND = oo.C_HETIREND OR oo.C_HETIREND = 1554) 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_TANITASIORA_OSSZES tao ON naptar.C_NAPDATUMA=tao.C_DATUM AND oo.ID = tao.C_ORARENDIORAID 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 LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID LEFT JOIN T_FELHASZNALO_OSSZES fh ON hely.C_HELYETTESTANAROKID = f.ID 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_DICTIONARYITEMBASE_OSSZES d ON d.ID=oo.C_HETIREND AND d.C_TANEVID=oo.C_TANEVID AND d.C_INTEZMENYID=oo.C_INTEZMENYID WHERE oo.TOROLT='F' AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId)) AND naptar.C_NAPDATUMA <= IIF(@osztalyId IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok), @vegzosUtolsoNapDatuma, GETDATE()) AND tao.ID IS NULL AND hely.ID IS NULL AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL) AND oo.C_CSENGETESIRENDORAID IS NOT NULL AND naptar.C_TANEVID = @tanevId AND naptar.C_HETSORSZAMA=@hetSorszam UNION SELECT oo.id ,naptar.C_NAPDATUMA ,naptar.C_HETNAPJA ,oo.C_ORASZAM ,ocs.C_NEV ,t.C_NEV ,f.C_NYOMTATASINEV +' (' + fh.C_NYOMTATASINEV +')' 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 = fH.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 oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId)) AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA=1034) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) AND hi.TOROLT='F' AND naptar.C_HETSORSZAMA = @hetSorszam 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_HELYETTESITESNAPJA <= IIF(oo.C_OSZTALYCSOPORTID IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok), @vegzosUtolsoNapDatuma, GETDATE()) AND NOT EXISTS (SELECT 1 FROM T_TANITASIORA_OSSZES tao WHERE tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND tao.C_ORARENDIORAID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F') )a ORDER BY Datum, Oraszam END GO