This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,155 @@
-- =============================================
-- Author: Dőrr Tamás
-- Create date: 2017.12.14.
-- Description: -
-- =============================================
IF OBJECT_ID('dbo.sp_GetHazifeladatOrarend') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetHazifeladatOrarend
END
GO
CREATE PROCEDURE [dbo].[sp_GetHazifeladatOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @HaziFeladatok TABLE (
Id int
,ORARENDIID int --null
,Bontott char(1) --false
,Hetirend int --mindenhét null?
,HetNapja int --null
,ErvenyessegKezdete datetime --feladás dátuma
,ErvenyessegVege datetime --határidő
,OraKezdete datetime --feladás dátuma
,OraVege datetime --feladás dátuma
,Oraszam int
,TargyNev nvarchar(255)
,TargyNevForMobile nvarchar(255)
,TargykategoriaID int --null
,Megtartott char(1) --null
,CsengetesiRendOraID int --null
,MaxNapiOraszam int --null
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int --null
,MegjelenesOka nvarchar(255) --null
,TanarNev nvarchar(255)
,TeremNev nvarchar(255) --null
,OraTipus nvarchar(255) --hazifeladat tipusa id (9?)
,Hianyzas nvarchar(255) --null
,Keses nvarchar(255) --null
,Ures nvarchar(255) --null
,HelyettesitoTanarID int --null
,HelyettesitoTanarNev nvarchar(255) --null
,TanarID int
,AdminAltalKiirt char(1) --null
,GroupId int --null
,Tema nvarchar(255) --null
,TantargyId int
,OsztCsopId int
,HaziFeladatSzoveg nvarchar(max)
)
INSERT INTO @HaziFeladatok (
Id,ORARENDIID,Bontott,Hetirend,HetNapja,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,TargyNev
,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId
,MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID
,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId,HaziFeladatSzoveg
)
SELECT h.ID Id
,null ORARENDIID
,'F' Bontott
,null Hetirend --minden héten?
,null HetNapja
,h.C_FELADASDATUMA ErvenyessegKezdete
,h.C_HATARIDO ErvenyessegVege
,h.C_FELADASDATUMA OraKezdete
,h.C_FELADASDATUMA OraVege
,h.C_ORASZAM Oraszam
,ISNULL(t.C_ROVIDNEV, t.C_NEV) TargyNev
,COALESCE(t.C_ROVIDNEV, t.C_NEV) TargyNevForMobile
,NULL TargykategoriaID
,NULL Megtartott
,NULL CsengetesiRendOraID
,NULL MaxNapiOraszam
,ocs.C_NEV OsztalyNev
,NULL TanevRendOsztalyCsoportId
,NULL MegjelenesOka
,f.C_NYOMTATASINEV TanarNev
,NULL TeremNev
,'HaziFeladat' OraTipus
,NULL Hianyzas
,NULL Keses
,NULL Ures
,NULL HelyettesitoTanarID
,NULL HelyettesitoTanarNev
,h.C_FELHASZNALOID TanarID
,NULL AdminAltalKiirt
,NULL GroupId
,NULL Tema
,h.C_TANTARGYID TantargyId
,h.C_OSZTALYCSOPORTID OsztCsopId
,h.C_FELADATSZOVEGE HaziFeladatSzoveg
FROM T_HAZIFELADATOK h
INNER JOIN T_TANTARGY t ON t.id = h.C_TANTARGYID
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.id = h.C_OSZTALYCSOPORTID
INNER JOIN T_FELHASZNALO f ON f.id = h.C_FELHASZNALOID
DECLARE @orarendiOrakTanorak TABLE (
Id int
,ORARENDIID int
,Bontott char(1)
,Hetirend int
,HetNapja int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(255)
,TargyNevForMobile nvarchar(255)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(255)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(255)
,Hianyzas nvarchar(255)
,Keses nvarchar(255)
,Ures nvarchar(255)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(255)
,TantargyId int
,OsztCsopId int
)
BEGIN
INSERT INTO @orarendiOrakTanorak (
Id,ORARENDIID,Bontott,Hetirend,HetNapja,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,TargyNev
,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId
,MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID
,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId
) EXEC dbo.sp_GetOrarend @IntezmenyId, @TanevId, @IdoszakKezdete, @IdoszakVege, @TanarId, null, null, 0
END
INSERT INTO @HaziFeladatok
SELECT * ,NULL HaziFeladatSzoveg
FROM @orarendiOrakTanorak oot
WHERE NOT EXISTS (SELECT 1 FROM @HaziFeladatok h WHERE h.TanarID = oot.TanarID AND
h.TantargyId = oot.TantargyId AND
h.OsztCsopId = oot.OsztCsopId AND
h.Oraszam = oot.Oraszam)
SELECT * FROM @HaziFeladatok
END

View file

@ -0,0 +1,304 @@
-- =============================================
-- Author: Sólyom Péter
-- Create date: 2016.02.16.
-- Description: Órarend lekérdezése.
-- =============================================
IF OBJECT_ID('dbo.sp_GetOrarend') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetOrarend
END
GO
CREATE PROCEDURE [dbo].[sp_GetOrarend]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@OsztalyCsoportId int,
@TanuloId int,
@CsakOrarendiOrak bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE
@KezdoHet int = DATEPART( ISO_WEEK, @IdoszakKezdete),
@ZaroHet int = DATEPART( ISO_WEEK, @IdoszakVege);
SELECT Distinct
Datum,
ISNULL(TanevHetirend, NapHetirend) Hetirend,
ISNULL(TanevHetNapja, NapHetNapja) HetNapja,
OsztalyCsoportId
INTO #TEMPORARENDINAPOK
FROM (
SELECT
NAPTARINAP.Datum Datum,
NAPTARINAP.NapHetirend,
NAPTARINAP.NapHetNapja,
NAPTARINAP.TanevHetirend,
NAPTARINAP.TanevHetNapja,
NAPTARINAP.OsztalyCsoportId
FROM (
(
SELECT
C_NAPDATUMA Datum,
C_HETIREND NapHetirend,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), C_HETNAPJA) NapHetNapja,
null TanevHetirend,
null TanevHetNapja,
null OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES
WHERE (TOROLT = 'F' AND C_NAPDATUMA >= @IdoszakKezdete AND C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
tanevRendHetirend.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
union
(
SELECT
NAPTARINAP.C_NAPDATUMA Datum,
NAPTARINAP.C_HETIREND NapHetirend,
IIF(NAPTARINAP.C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_NAPDATUMA), NAPTARINAP.C_HETNAPJA) NapHetNapja,
NAPTARINAP.C_HETIREND TanevHetirend,
tanevRendHetirend.C_HETNAPJA TanevHetNapja,
tanevRendHetirend.C_OSZTALYCSOPORTID OsztalyCsoportId
FROM T_NAPTARINAP_OSSZES NAPTARINAP
inner JOIN (
SELECT
C_DATUM,
C_HETIREND,
T_OSZTALYCSOPORT_TANEVRENDJE.C_OSZTALYCSOPORTID,
IIF(C_HETNAPJA = 1407, dbo.fnGetHetNapja(C_DATUM), C_HETNAPJA) AS C_HETNAPJA
from T_TANEVRENDJE_OSSZES
inner Join T_OSZTALYCSOPORT_TANEVRENDJE on T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID = T_TANEVRENDJE_OSSZES.ID
WHERE TOROLT = 'F' AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId And TOROLT = 'F') tanevRendHetirend on tanevRendHetirend.C_DATUM = NAPTARINAP.C_NAPDATUMA
WHERE (TOROLT = 'F' AND NAPTARINAP.C_NAPDATUMA >= @IdoszakKezdete AND NAPTARINAP.C_NAPDATUMA < @IdoszakVege AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId)
)
) NAPTARINAP
) result
-- Vegzosok utolso tanitasi napja
DECLARE @VegzosUtolsoTanitasiNap_spGetOrarend DATETIME;
SELECT
@VegzosUtolsoTanitasiNap_spGetOrarend = C_DATUM
FROM T_TANEVRENDJE_OSSZES
WHERE
TOROLT = 'F'
AND C_TANEVID = (SELECT ID FROM T_TANEV_OSSZES WHERE TOROLT = 'F' AND C_AKTIV = 'T' AND C_INTEZMENYID = @IntezmenyId)
AND C_NAPTIPUSA = 1402 AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
DECLARE @tempCsoportok TABLE (CsoportID int PRIMARY KEY, Oka nvarchar(20))
IF @OsztalyCsoportId IS NOT NULL
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, OKA AS Oka
FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate(@OsztalyCsoportId,@IdoszakKezdete,@IdoszakVege)
END
ELSE
BEGIN
INSERT INTO @tempCsoportok (CsoportID, Oka)
SELECT ID as CsoportID, '' AS Oka
FROM T_OSZTALYCSOPORT_OSSZES WHERE C_TANEVID = @TanevId
END
-- Tanítási órák
SELECT
TANITASIORA.ID Id,
oo.ID ORARENDIID,
TANITASIORA.C_BONTOTT Bontott,
(
SELECT T_NAPTARINAP_OSSZES.C_HETIREND
FROM T_NAPTARINAP_OSSZES
WHERE T_NAPTARINAP_OSSZES.ID = TANITASIORA.C_NAPTARINAPID
) Hetirend,
TANITASIORA.C_HETNAPJA HetNapja,
CAST(null AS datetime) ErvenyessegKezdete,
CAST(null AS datetime) ErvenyessegVege,
TANITASIORA.C_ORAKEZDETE OraKezdete,
TANITASIORA.C_ORAVEGE OraVege,
TANITASIORA.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
COALESCE(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNevForMobile,
TARGY.C_TARGYKATEGORIA TargykategoriaID,
TANITASIORA.C_MEGTARTOTT Megtartott,
TANITASIORA.C_CSENGETESIRENDORAID CsengetesiRendOraID,
null as MaxNapiOraszam,
OSZTALY.C_NEV OsztalyNev,
CAST(null AS int) TanevRendOsztalyCsoportId,
tcs.OKA AS MegjelenesOka,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'TanitasiOra' OraTipus,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1500 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.hianyzas
THEN 'T'
ELSE 'F'
END AS Hianyzas,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1499 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.keses
THEN 'T'
ELSE 'F'
END AS Keses,
CASE WHEN (@TanuloId IS NOT NULL AND
(SELECT COUNT(1)
FROM T_TANULOMULASZTAS_OSSZES MULASZTAS
WHERE MULASZTAS.C_ORATANULOIID = @TanuloId
AND MULASZTAS.C_TANITASIORAKID = TANITASIORA.ID AND C_INTEZMENYID = @IntezmenyId AND C_TANEVID=@TanevId
AND MULASZTAS.C_TIPUS = 1817 AND MULASZTAS.TOROLT = 'F') > 0) --Kreta.Enums.MulasztasTipusEnum.ures
THEN 'T'
ELSE 'F'
END AS Ures,
TANITASIORA.C_HELYETTESITOTANARID HelyettesitoTanarID,
HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev,
TANAR.ID TanarID,
TANITASIORA.C_ADMINALTALKIIRT AdminAltalKiirt,
TANITASIORA.C_ORARENDIORAGROUPID GroupId,
TANITASIORA.C_TEMA as Tema,
TANITASIORA.C_TANTARGYID AS TantargyId,
TANITASIORA.C_OSZTALYCSOPORTID AS OsztCsopId
INTO #TEMPORAK
FROM T_TANITASIORA_OSSZES TANITASIORA
INNER JOIN @tempCsoportok tcs ON tcs.CsoportID = TANITASIORA.C_OSZTALYCSOPORTID
LEFT JOIN T_TANTARGY_OSSZES TARGY ON (TARGY.ID = TANITASIORA.C_TANTARGYID AND TARGY.C_INTEZMENYID = @IntezmenyId AND TARGY.C_TANEVID=@TanevId)
LEFT JOIN T_FELHASZNALO_OSSZES TANAR on TANITASIORA.C_TANARID = TANAR.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY on (TANITASIORA.C_OSZTALYCSOPORTID = OSZTALY.ID AND OSZTALY.C_INTEZMENYID = @IntezmenyId AND OSZTALY.C_TANEVID=@TanevId)
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = TANITASIORA.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR on TANITASIORA.C_HELYETTESITOTANARID = HELYETTESTANAR.ID
LEFT JOIN T_ORARENDIORA_OSSZES oo ON TANITASIORA.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND TANITASIORA.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
WHERE @CsakOrarendiOrak = 0
AND TANITASIORA.TOROLT='F' AND TANITASIORA.C_INTEZMENYID = @IntezmenyId AND TANITASIORA.C_TANEVID=@TanevId
AND TANITASIORA.C_CSENGETESIRENDORAID IS NOT NULL
AND (TANITASIORA.C_ORAKEZDETE >= @IdoszakKezdete
AND TANITASIORA.C_ORAVEGE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN DATEADD(DAY, 1, @VegzosUtolsoTanitasiNap_spGetOrarend) ELSE @IdoszakVege END))
AND (@TanarId IS NULL OR ( TANITASIORA.C_HELYETTESITOTANARID = @TanarId OR TANITASIORA.C_ORATULAJDONOSID = @TanarId OR TANITASIORA.C_TANARID = @TanarId ))
AND ( @TanuloId IS NULL OR EXISTS (
SELECT 1 FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE
TANCSOP.C_OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE())
AND TANCSOP.C_TANULOID = @TanuloId
)
)
-- Órarendi órák
INSERT INTO #TEMPORAK
SELECT
OrarendiOrak.Id, ORARENDIID, Bontott, Hetirend, HetNapja, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege,
Oraszam, TargyNev, TargyNevForMobile, TargykategoriaID, Megtartott, CsengetesiRendOraID, MaxNapiOraszam, OsztalyNev,TanevRendOsztalyCsoportId, MegjelenesOka, TanarNev, TeremNev, OraTipus, Hianyzas, Keses, Ures,
T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID HelyettesitoTanarID, HELYETTESTANAR.C_NYOMTATASINEV HelyettesitoTanarNev, TanarID,AdminAltalKiirt,GroupId, Tema,TantargyId,OsztCsopId
FROM (
SELECT
T_ORARENDIORA_OSSZES.ID Id,
T_ORARENDIORA_OSSZES.ID ORARENDIID,
T_ORARENDIORA_OSSZES.C_BONTOTT Bontott,
T_ORARENDIORA_OSSZES.C_HETIREND Hetirend,
T_ORARENDIORA_OSSZES.C_HETNAPJA HetNapja,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE ErvenyessegKezdete,
T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE ErvenyessegVege,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAKEZDETE), ORARENDINAPOK.DATUM)) OraKezdete,
DATEADD(HOUR, DATEPART(HOUR, T_ORARENDIORA_OSSZES.C_ORAVEGE), DATEADD(MINUTE, DATEPART(MINUTE, T_ORARENDIORA_OSSZES.C_ORAVEGE), ORARENDINAPOK.DATUM)) OraVege,
T_ORARENDIORA_OSSZES.C_ORASZAM Oraszam,
ISNULL(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNev,
COALESCE(TARGY.C_ROVIDNEV, targy.C_NEV) TargyNevForMobile,
TARGY.C_TARGYKATEGORIA TargykategoriaID,
'F' Megtartott,
T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID CsengetesiRendOraID,
(select max(csro.C_ORASZAM) from T_CSENGETESIRENDORA csro where csro.C_CSENGETESIRENDID IN
(select C_CSENGETESIRENDID from T_TANEVRENDJE where CAST(C_DATUM as date) = CAST(ORARENDINAPOK.DATUM as date))) as MaxNapiOraszam,
OSZTALY.C_NEV AS OsztalyNev,
ORARENDINAPOK.OsztalyCsoportId TanevRendOsztalyCsoportId,
tcs.OKA AS MegjelenesOka,
TANAR.C_NYOMTATASINEV TanarNev,
TEREM.C_NEV TeremNev,
'OrarendiOra' OraTipus,
'F' Hianyzas,
'F' Keses,
'F' Ures,
TANAR.ID TanarID,
'F' AdminAltalKiirt,
C_ORARENDIORAGROUPID GroupId,
NULL AS Tema,
T_ORARENDIORA_OSSZES.C_TANTARGYID AS TantargyId,
T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID AS OsztCsopId
FROM T_ORARENDIORA_OSSZES
INNER JOIN @tempCsoportok tcs ON tcs.CsoportID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
INNER JOIN #TEMPORARENDINAPOK ORARENDINAPOK ON (( T_ORARENDIORA_OSSZES.C_HETIREND = 1554 OR ORARENDINAPOK.HETIREND = T_ORARENDIORA_OSSZES.C_HETIREND ) AND ORARENDINAPOK.HETNAPJA = T_ORARENDIORA_OSSZES.C_HETNAPJA And (T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = ORARENDINAPOK.OsztalyCsoportId or ORARENDINAPOK.OsztalyCsoportId is null) )
LEFT JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = T_ORARENDIORA_OSSZES.C_TANTARGYID
LEFT JOIN T_FELHASZNALO_OSSZES TANAR ON TANAR.ID = T_ORARENDIORA_OSSZES.C_TANARID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES OSZTALY ON T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALY.ID
LEFT JOIN T_TEREM_OSSZES TEREM on (TEREM.id = T_ORARENDIORA_OSSZES.C_TEREMID AND TEREM.C_INTEZMENYID = @IntezmenyId AND TEREM.C_TANEVID=@TanevId)
WHERE
T_ORARENDIORA_OSSZES.TOROLT='F'
AND T_ORARENDIORA_OSSZES.C_CSENGETESIRENDORAID IS NOT NULL
AND T_ORARENDIORA_OSSZES.C_INTEZMENYID = @IntezmenyId
AND T_ORARENDIORA_OSSZES.C_TANEVID = @TanevId
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE >= @IdoszakKezdete
AND T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE <= (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND ORARENDINAPOK.DATUM BETWEEN @IdoszakKezdete AND (CASE WHEN OSZTALY.C_VEGZOSEVFOLYAM = 'T' AND @VegzosUtolsoTanitasiNap_spGetOrarend IS NOT NULL AND @IdoszakVege > @VegzosUtolsoTanitasiNap_spGetOrarend THEN @VegzosUtolsoTanitasiNap_spGetOrarend ELSE @IdoszakVege END)
AND (
(ORARENDINAPOK.DATUM >= T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM < T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
OR
(ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGKEZDETE AND ORARENDINAPOK.DATUM = T_ORARENDIORA_OSSZES.C_ORAERVENYESSEGVEGE)
)
AND (@TanuloId IS NULL OR EXISTS (
SELECT 1 FROM T_TANULOCSOPORT_OSSZES TANCSOP
WHERE
TANCSOP.C_OSZTALYCSOPORTID = T_ORARENDIORA_OSSZES.C_OSZTALYCSOPORTID
AND TANCSOP.TOROLT = 'F' AND TANCSOP.C_INTEZMENYID = @IntezmenyId AND TANCSOP.C_TANEVID=@TanevId
AND TANCSOP.C_BELEPESDATUM < GETDATE()
AND (TANCSOP.C_KILEPESDATUM IS NULL OR TANCSOP.C_KILEPESDATUM >= GETDATE())
AND TANCSOP.C_TANULOID = @TanuloId )
)
) OrarendiOrak
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES on (OrarendiOrak.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITETTORARENDID
And T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA >= @KezdoHet
And (T_HELYETTESITESIIDOSZAK_OSSZES.C_HETSORSZAMA <= @ZaroHet) And T_HELYETTESITESIIDOSZAK_OSSZES.TOROLT = 'F' AND DATEDIFF(DAY, OrarendiOrak.OraKezdete, T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESITESNAPJA) = 0
)
LEFT JOIN T_FELHASZNALO_OSSZES HELYETTESTANAR ON HELYETTESTANAR.ID = T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID
WHERE (@TanarId IS NULL OR OrarendiOrak.TanarID = @TanarId Or T_HELYETTESITESIIDOSZAK_OSSZES.C_HELYETTESTANAROKID = @TanarId)
AND NOT EXISTS (
SELECT 1 FROM #TEMPORAK TANORAK
WHERE TANORAK.GroupId = OrarendiOrak.GroupId
AND DATEDIFF(DAY, TANORAK.OraKezdete, OrarendiOrak.OraKezdete) = 0
AND DATEDIFF(DAY, TANORAK.OraVege, OrarendiOrak.OraVege) = 0
)
SELECT DISTINCT * FROM #TEMPORAK order by orakezdete
DROP TABLE #TEMPORAK
DROP TABLE #TEMPORARENDINAPOK
END