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

View File

@@ -0,0 +1,58 @@
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_ORARENDIORA_TEREMID_ORAERVENYESSEGKEZDETE_ORAERVENYESSEGVEGE_INTEZMENYID_TANEVID') BEGIN
CREATE INDEX IX_ORARENDIORA_TEREMID_ORAERVENYESSEGKEZDETE_ORAERVENYESSEGVEGE_INTEZMENYID_TANEVID
ON T_ORARENDIORA (C_TEREMID, C_ORAERVENYESSEGKEZDETE, C_ORAERVENYESSEGVEGE, C_INTEZMENYID, C_TANEVID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_TANITASIORA_TEREMID_DATUM_INTEZMENYID_TANEVID_INC_CSENGETESIRENDID') BEGIN
CREATE INDEX IX_TANITASIORA_TEREMID_DATUM_INTEZMENYID_TANEVID_INC_CSENGETESIRENDID
ON T_TANITASIORA (C_TEREMID, C_DATUM, C_INTEZMENYID, C_TANEVID)
INCLUDE (C_CSENGETESIRENDID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_ORARENDIORA_TANTARGYID_ORAERVENYESSEGKEZDETE_ORAERVENYESSEGVEGE_INTEZMENYID_TANEVID') BEGIN
CREATE INDEX IX_ORARENDIORA_TANTARGYID_ORAERVENYESSEGKEZDETE_ORAERVENYESSEGVEGE_INTEZMENYID_TANEVID
ON T_ORARENDIORA (C_TANTARGYID, C_ORAERVENYESSEGKEZDETE, C_ORAERVENYESSEGVEGE, C_INTEZMENYID, C_TANEVID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_TANITASIORA_TANTARGYID_DATUM_INTEZMENYID_TANEVID_INC_CSENGETESIRENDID') BEGIN
CREATE INDEX IX_TANITASIORA_TANTARGYID_DATUM_INTEZMENYID_TANEVID_INC_CSENGETESIRENDID
ON T_TANITASIORA (C_TANTARGYID, C_DATUM, C_INTEZMENYID, C_TANEVID)
INCLUDE (C_CSENGETESIRENDID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_OSZTALYCSOPORT_TANEVID_INTEZMENYID_INC_NEV_VEGZOSEVFOLYAM') BEGIN
CREATE INDEX IX_OSZTALYCSOPORT_TANEVID_INTEZMENYID_INC_NEV_VEGZOSEVFOLYAM
ON T_OSZTALYCSOPORT (C_TANEVID, C_INTEZMENYID)
INCLUDE(C_NEV, C_VEGZOSEVFOLYAM)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_IGAZOLAS_TANULOID_KEZDETE_VEGE_INTEZMENYID_TANEVID') BEGIN
CREATE INDEX IX_IGAZOLAS_TANULOID_KEZDETE_VEGE_INTEZMENYID_TANEVID
ON T_IGAZOLAS (C_TANULOID, C_KEZDETE, C_VEGE, C_INTEZMENYID, C_TANEVID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_TANULOMENTESSEG_TANULOID_TANTARGYID_KEZDETE_VEGE_INTEZMENYID_TANEVID') BEGIN
CREATE INDEX IX_TANULOMENTESSEG_TANULOID_TANTARGYID_KEZDETE_VEGE_INTEZMENYID_TANEVID
ON T_TANULOMENTESSEG (C_TANULOID, C_TANTARGYID, C_KEZDETE, C_VEGE, C_INTEZMENYID, C_TANEVID)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_GONDVISELO_TANULOID_INTEZMENYID_TANEVID_INC_NEV') BEGIN
CREATE INDEX IX_GONDVISELO_TANULOID_INTEZMENYID_TANEVID_INC_NEV
ON T_GONDVISELO (C_TANULOID, C_INTEZMENYID, C_TANEVID)
INCLUDE (C_NEV)
WHERE TOROLT = 'F'
END
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE [name] = 'IX_TELEFON_GONDVISELOID_ALAPERTELMEZETT_INTEZMENYID_TANEVID_INC_TELEFONSZAM') BEGIN
CREATE INDEX IX_TELEFON_GONDVISELOID_ALAPERTELMEZETT_INTEZMENYID_TANEVID_INC_TELEFONSZAM
ON T_TELEFON (C_GONDVISELOID, C_ALAPERTELMEZETT, C_INTEZMENYID, C_TANEVID)
INCLUDE (C_TELEFONSZAM)
WHERE TOROLT = 'F'
END

View File

@@ -0,0 +1,88 @@
IF OBJECT_ID('[dbo].[sp_CheckTanarOra]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_CheckTanarOra]
END
GO
CREATE PROCEDURE [dbo].[sp_CheckTanarOra]
@tanarId int,
@start datetime,
@end datetime,
@IntezmenyId int,
@TanevId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @CsakOrarendiOrak BIT = 0; --tan<EFBFBD>r<EFBFBD>k is
DECLARE @IsNapirend BIT = 0; --csak <EFBFBD>rarendi (csenget<EFBFBD>si rendhez k<EFBFBD>t<EFBFBD>tt) <EFBFBD>ra
DECLARE @IdoszakKezdete DATETIME = CAST(@start AS DATE);
DECLARE @IdoszakVege DATETIME = CAST(DATEADD(DAY, 1, @end) AS DATE);
CREATE TABLE #OrarendTable (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,HelyettesitesId int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
,INDEX IX01 CLUSTERED (OraTipus, OraKezdete, OraVege)
)
INSERT INTO #OrarendTable (
Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,HetSorszam,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,CsengetesiRendID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = @tanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = @CsakOrarendiOrak
,@pIsNapirend = @IsNapirend
SELECT ORARENDIID AS C_ORARENDIORAID
FROM #OrarendTable
WHERE OraKezdete = @start
AND OraVege = @end
AND OraTipus = 'OrarendiOra'
END

View File

@@ -0,0 +1,248 @@
-- =============================================
-- 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;
CREATE TABLE #HaziFeladatok (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
,HaziFeladatSzoveg nvarchar(max)
)
INSERT INTO #HaziFeladatok (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,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
,h.C_FELADASDATUMA Datum
,'F' Bontott
,null Hetirend --minden héten?
,null HetNapja
,NULL HetSorszam
,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 CsengetesiRendID
,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
,f.ID 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_ROGZITOID
WHERE f.id = @TanarId
CREATE TABLE #OrarendiOrakTanorak (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
)
INSERT INTO #orarendiOrakTanorak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
)
EXEC dbo.sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = @TanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = NULL
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = 0 --utolsó paraméter: egyelőre csak órarendi (csengetési rendhez kötött) órák
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,182 @@
IF OBJECT_ID('[dbo].[sp_GetNaplozasMulasztasList]') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_GetNaplozasMulasztasList]
END
GO
CREATE PROCEDURE [dbo].[sp_GetNaplozasMulasztasList]
@date datetime
,@oraId int
,@targyId int
,@osztalyCsoportId int
,@pCsakMegtartott bit
,@pTanevElsoTanitasiNapja datetime
,@pTanevUtolsoTanitasiNapja datetime
,@pTanevid int
,@pIntezmenyId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hetekSzama int = 36
CREATE TABLE #TanuloCsoport (
C_TANULOID int
,C_OSZTALYCSOPORTID int
,C_BELEPESDATUM datetime
,C_KILEPESDATUM datetime
,CONSTRAINT PK_tmpTanuloCsoport PRIMARY KEY (C_TANULOID)
)
CREATE TABLE #TanuloRelevansCsoportjai (
C_TANULOID int
,C_OSZTALYCSOPORTID int
)
IF (SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT WHERE ID = @osztalyCsoportId) = 'T' BEGIN
SELECT @pTanevUtolsoTanitasiNapja = C_DATUM, @hetekSzama = 32
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = 'F'
AND C_TANEVID = @pTanevid
AND C_NAPTIPUSA = 1402
END
INSERT INTO #TanuloCsoport (C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM)
SELECT DISTINCT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID, tcs.C_BELEPESDATUM, ISNULL(tcs.C_KILEPESDATUM, @pTanevUtolsoTanitasiNapja) AS C_KILEPESDATUM
FROM T_TANULOCSOPORT tcs
WHERE tcs.torolt = 'F'
AND tcs.C_BELEPESDATUM <= @date AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @date)
AND tcs.c_osztalycsoportid = @osztalyCsoportId
INSERT INTO #TanuloRelevansCsoportjai (C_TANULOID, C_OSZTALYCSOPORTID)
SELECT DISTINCT tcs.C_TANULOID, tcs.C_OSZTALYCSOPORTID
FROM T_TANULOCSOPORT tcs
INNER JOIN #TanuloCsoport ttcs ON ttcs.C_TANULOID = tcs.C_TANULOID
INNER JOIN T_FOGLALKOZAS fog ON fog.C_TANTARGYID = @targyId AND fog.TOROLT = 'F' AND fog.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID
WHERE tcs.TOROLT = 'F'
AND tcs.C_BELEPESDATUM <= @date AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= @date)
CREATE TABLE #Feljegyzes (
tanuloid int
,tipus int
,id int
,CONSTRAINT PK_Feljegyzes PRIMARY KEY (tanuloid, tipus, id)
)
INSERT INTO #Feljegyzes
SELECT tte.C_TANULOID, te.C_TIPUS, te.ID
FROM T_TANULOESEMENY te
INNER JOIN T_TANULO_TANULOESEMENY tte on tte.C_TANULOESEMENYID = te.ID
WHERE te.C_TANITASIORAID = @oraId
AND te.TOROLT = 'F'
CREATE TABLE #Result (
TanuloId int
,Mulasztas int
,MegtartottOra int
,HatralevoOra int
,CONSTRAINT KP_Result PRIMARY KEY (TanuloId)
)
EXEC [uspGetOsztalycsoportTantargyiMulasztasai]
@pOsztalyId = @osztalyCsoportId
,@pTantargyId = @targyId
,@pTanevid = @pTanevid
,@pIntezmenyId = @pIntezmenyId
,@pCsakMegtartott = @pCsakMegtartott
SELECT
ID
,MulasztasId
,TanuloNev
,MulasztasTipus
,KesesIdo
,Oka
,MAX(ErtkelesMentesseg) AS ErtkelesMentesseg
,MAX(OraMentesseg) AS OraMentesseg
,MAX(SzovegesenErtekelheto) AS SzovegesenErtekelheto
,IsMagantanulo
,GondviseloNev
,GondviseloTelSzam
,MAX(Igazolt) Igazolt
,ISNULL(tmpHianyCnt, 0) AS MulasztasHianyCnt
,ISNULL(tmpOsszCnt, 0) AS MulasztasOsszCnt
,ISNULL(tmpMegtartottOraCnt, 0) AS MulasztasMegtartottCnt
,ISNULL(tmpHatralevoOraCnt, 0) AS MulasztasMegtarthatoCnt
,IIF(tmpOsszCnt = 0,0, ISNULL(CAST((CAST(tmpHianyCnt AS float) / CAST(tmpOsszCnt AS float)) * 100 AS int), 0)) AS MulasztasSzazalek
,IIF(Hazifeladat IS NOT NULL,'T','F') AS HaziFeladatHiany
,Hazifeladat AS HaziFeladatHianyId
,IIF(Felszereles IS NOT NULL,'T','F') AS FelszerelesHiany
,Felszereles AS FelszerelesHianyId
,IIF(Felment IS NOT NULL,'T','F') AS Felmentes
,Felment AS FelmentesId
,IIF(Dicseret IS NOT NULL,'T','F') AS TanoraiDicseret
,Dicseret AS TanoraiDicseretId
,RogzitettIgazolas AS RogzitettIgazolas
FROM (
SELECT
fh.ID AS ID
,mul.ID MulasztasId
,fh.C_NYOMTATASINEV + ' (' + FORMAT(fh.C_SZULETESIDATUM, 'yyyy.MM.dd.') + ')' TanuloNev
,isnull(mul.C_TIPUS, 1498) MulasztasTipus
,mul.C_KESESPERCBEN KesesIdo
,STUFF((
SELECT DISTINCT ' | ' + tm2.C_MENTESSEGOKA
FROM T_TANULOMENTESSEG tm2
WHERE tm2.C_TANULOID = tanulo.ID
AND tm2.C_TANTARGYID = tm.C_TANTARGYID
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,3,''
) AS Oka
,tm.C_ERTEKELESMENTESITES ErtkelesMentesseg
,tm.C_ORAMENTESITES OraMentesseg
,tm.C_SZOVEGESENERTEKELHETO SzovegesenErtekelheto
,tanulo.C_MAGANTANULO IsMagantanulo
,ISNULL(gondviselo.C_NEV,'-') as GondviseloNev
,ISNULL(telefon.C_TELEFONSZAM,'-') as GondviseloTelSzam
,mul.C_IGAZOLT as Igazolt
,ISNULL(r.MegtartottOra,0) + ISNULL(r.HatralevoOra,0) as tmpOsszCnt
,r.Mulasztas as tmpHianyCnt
,r.MegtartottOra as tmpMegtartottOraCnt
,r.HatralevoOra as tmpHatralevoOraCnt
,FeljegyzesHazifeladat.id as Hazifeladat
,FeljegyzesFelszereles.id as Felszereles
,FeljegyzesFelment.id as Felment
,FeljegyzesDicseret.id as Dicseret
,IIF(i.ID IS NOT NULL, 'T', 'F') as RogzitettIgazolas
FROM #TanuloCsoport tcs
INNER JOIN T_FELHASZNALO_OSSZES fh on fh.ID = tcs.C_TANULOID
INNER JOIN T_TANULO_OSSZES tanulo on tanulo.id = tcs.C_TANULOID and ( tanulo.C_SZAKMAIGYAKORLATON <> 'T' OR tanulo.C_SZAKMAIGYAKORLATON IS NULL) AND ( tanulo.C_JOGVISZONYATSZUNETELTETO <> 'T' OR tanulo.C_JOGVISZONYATSZUNETELTETO IS NULL)
OUTER APPLY (SELECT TOP 1 g.ID, g.C_NEV FROM T_GONDVISELO_OSSZES g WHERE tanulo.ID = g.C_TANULOID AND g.TOROLT = 'F' AND g.C_TANEVID = @pTanevid ORDER BY g.ID) gondviselo
OUTER APPLY (SELECT TOP 1 t.C_TELEFONSZAM FROM T_TELEFON_OSSZES t WHERE t.C_GONDVISELOID = gondviselo.ID AND t.TOROLT = 'F' ORDER BY t.C_ALAPERTELMEZETT DESC) telefon
LEFT JOIN T_TANULOMULASZTAS_OSSZES mul on mul.C_ORATANULOIID = fh.ID AND mul.C_TANITASIORAKID = @oraId AND mul.TOROLT = 'F'
LEFT JOIN T_TANULOMENTESSEG_OSSZES tm on fh.ID = tm.C_TANULOID and tm.TOROLT = 'F' AND tm.C_TANTARGYID = @targyId AND (@date BETWEEN ISNULL(tm.C_KEZDETE, @date) and isnull(tm.C_VEGE, @date))
LEFT JOIN T_IGAZOLAS_OSSZES i ON fh.ID = i.C_TANULOID AND i.TOROLT = 'F' AND (@date BETWEEN ISNULL(i.C_KEZDETE, @date) AND isnull(i.C_VEGE, @date))
LEFT JOIN #Result r ON r.TanuloId = fh.ID
LEFT JOIN #Feljegyzes FeljegyzesHazifeladat ON FeljegyzesHazifeladat.tanuloId = fh.ID AND FeljegyzesHazifeladat.tipus = 6325
LEFT JOIN #Feljegyzes FeljegyzesFelszereles ON FeljegyzesFelszereles.tanuloId = fh.ID AND FeljegyzesFelszereles.tipus = 6324
LEFT JOIN #Feljegyzes FeljegyzesFelment ON FeljegyzesFelment.tanuloId = fh.ID AND FeljegyzesFelment.tipus = 1542
LEFT JOIN #Feljegyzes FeljegyzesDicseret ON FeljegyzesDicseret.tanuloId = fh.ID AND FeljegyzesDicseret.tipus = 1536
) AS x
GROUP BY
ID,
MulasztasId,
TanuloNev,
MulasztasTipus,
IsMagantanulo,
Oka,
KesesIdo,
GondviseloNev,
GondviseloTelSzam,
tmpOsszCnt,
tmpHianyCnt,
tmpMegtartottOraCnt,
tmpHatralevoOraCnt,
Hazifeladat,
Felszereles,
Felment,
Dicseret,
RogzitettIgazolas
ORDER BY x.TanuloNev
IF OBJECT_ID('tempdb..#Result') IS NOT NULL BEGIN
DROP TABLE #Result
END
END

View File

@@ -0,0 +1,102 @@
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaByHet') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
END
GO
CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
@intezmenyId int,
@tanevId int,
@osztalyId int,
@hetSorszam int
AS
BEGIN
DECLARE @CsakOrarendiOrak bit = 0;
DECLARE @IdoszakKezdete datetime;
DECLARE @IdoszakVege datetime;
CREATE TABLE #OrarendTable (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,HelyettesitesId int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
)
SELECT
@IdoszakKezdete = nh.C_HETKEZDONAPJA
,@IdoszakVege = nh.C_HETUTOLSONAPJA
FROM T_NAPTARIHET nh
WHERE nh.C_INTEZMENYID = @intezmenyId
AND nh.C_TANEVID = @tanevId
AND nh.TOROLT = 'F'
AND nh.C_HETSORSZAMA = @hetSorszam
INSERT INTO #OrarendTable (
Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,HetSorszam,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,CsengetesiRendID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = NULL
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = @osztalyId
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = @CsakOrarendiOrak
,@pIsNapirend = NULL
SELECT DISTINCT
tmp.Id AS Id
,tmp.HetSorszam AS HetSzama
,tmp.Datum AS Datum
,tmp.HetNapja AS HetNapja
,tmp.Oraszam AS Oraszam
,tmp.OsztalyNev AS OsztalyNev
,tmp.TargyNev AS TargyNev
,ISNULL(tmp.HelyettesitoTanarNev, tmp.TanarNev) AS TanarNev
,tmp.OraKezdete AS OraKezdete
,tmp.OraVege AS OraVege
,tmp.CsengetesiRendID AS CsengetesiRend
FROM #OrarendTable tmp
WHERE tmp.OraTipus = 'OrarendiOra'
AND tmp.HetSorszam = @hetSorszam
AND tmp.OraVege < GETDATE()
END
GO

View File

@@ -0,0 +1,94 @@
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaPerHet') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaPerHet
END
GO
CREATE PROCEDURE [sp_GetNemMegtartottOrakSzamaPerHet]
@osztalyId INT,
@intezmenyId INT,
@tanevId INT
AS
BEGIN
DECLARE @CsakOrarendiOrak BIT = 0;
DECLARE @IdoszakKezdete DATETIME;
DECLARE @IdoszakVege DATETIME = GETDATE()
CREATE TABLE #OrarendTable (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,HelyettesitesId int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
)
SELECT
@IdoszakKezdete = nh.C_HETKEZDONAPJA
FROM T_NAPTARIHET nh
WHERE
nh.C_INTEZMENYID = @intezmenyId AND nh.C_TANEVID = @tanevId AND nh.TOROLT = 'F'
AND nh.C_HETSORSZAMA = 1
INSERT INTO #OrarendTable (
Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,HetSorszam,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,CsengetesiRendID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = NULL
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = @osztalyId
,@pTanuloId = NULL
,@pTantargyId = NULL
,@pTeremId = NULL
,@pCsakOrarendiOrak = @CsakOrarendiOrak
,@pIsNapirend = NULL
SELECT DISTINCT
tmp.HetSorszam AS HetSorszam
,COUNT(id) AS NemNaplozottOrakSzama
,@osztalyId AS OsztalyID
FROM #OrarendTable tmp
WHERE tmp.OraTipus = 'OrarendiOra'
AND tmp.OraVege < GETDATE()
GROUP BY tmp.HetSorszam
ORDER BY tmp.HetSorszam
END
GO

View File

@@ -0,0 +1,87 @@
IF OBJECT_ID('dbo.sp_GetNemNaplozottOrarendiOrak') IS NOT NULL BEGIN
DROP PROCEDURE dbo.sp_GetNemNaplozottOrarendiOrak
END
GO
CREATE PROCEDURE [dbo].[sp_GetNemNaplozottOrarendiOrak]
@IntezmenyId int,
@TanevId int,
@IdoszakKezdete datetime,
@IdoszakVege datetime,
@TanarId int,
@OsztalyCsoportId int,
@TantargyId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CsakOrarendiOrak bit = 0;
DECLARE @OrarendTable TABLE (
Id int
,ORARENDIID INT
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,HelyettesitesId int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
)
INSERT INTO @OrarendTable (
Id,ORARENDIID,Datum,Bontott,Hetirend,HetNapja,HetSorszam,ErvenyessegKezdete,ErvenyessegVege,OraKezdete,OraVege,Oraszam,
TargyNev,TargyNevForMobile,TargykategoriaID,Megtartott,CsengetesiRendOraID,CsengetesiRendID,MaxNapiOraszam,OsztalyNev,TanevRendOsztalyCsoportId,
MegjelenesOka,TanarNev,TeremNev,OraTipus,Hianyzas,Keses,Ures,HelyettesitoTanarID,HelyettesitoTanarNev,TanarID,AdminAltalKiirt,GroupId,Tema,TantargyId,OsztCsopId)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = @TanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = @OsztalyCsoportId
,@pTanuloId = NULL
,@pTantargyId = @TantargyId
,@pTeremId = NULL
,@pCsakOrarendiOrak = @CsakOrarendiOrak
,@pIsNapirend = NULL
SELECT DISTINCT
Id, ORARENDIID, Bontott, Hetirend, HetNapja,HetSorszam, ErvenyessegKezdete, ErvenyessegVege, OraKezdete, OraVege, IIF(tmp.CsengetesiRendID IS NOT NULL, tmp.Oraszam, NULL) as Oraszam,
TargyNev, TargyNevForMobile,
TargykategoriaID, Megtartott, CsengetesiRendOraID, CsengetesiRendID,MaxNapiOraszam, OsztalyNev, MegjelenesOka, TanarNev, TeremNev,
OraTipus, Hianyzas, Keses, Ures, HelyettesitoTanarID, HelyettesitoTanarNev, TanarID, HelyettesitesId, AdminAltalKiirt, GroupId, Tema, TantargyId,
OsztCsopId, IIF(tmp.HelyettesitoTanarID IS NOT NULL, tmp.TanarNev, NULL) as HelyettesitettPedagogusNev
FROM @OrarendTable tmp
WHERE tmp.OraTipus = 'OrarendiOra'
END
GO

View File

@@ -0,0 +1,463 @@
-- =============================================
-- Author: Telek Ákos
-- Create date: 2018.01.15.
-- 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]
@pIntezmenyId int
,@pTanevId int
,@pIdoszakKezdete datetime
,@pIdoszakVege datetime
,@pTanarId int = NULL
,@pIsHelyettesitesNelkul bit = 0
,@pOsztalyCsoportId int = NULL
,@pTanuloId int = NULL
,@pTantargyId int = NULL
,@pTeremId int = NULL
,@pCsakOrarendiOrak bit
,@pIsNapirend bit = 0 /*0 csak orarendi ora, 1 csak napirend, NULL mindkettő*/
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql nvarchar(max) = ''
/* Változók deklarálása */
SET @sql += N'
DECLARE
@KezdoHet int = DATEPART( ISO_WEEK, @pIdoszakKezdete)
,@ZaroHet int = DATEPART( ISO_WEEK, @pIdoszakVege);
DECLARE @VegzosUtolsoTanitasiNap datetime;
SELECT @VegzosUtolsoTanitasiNap = C_DATUM
FROM T_TANEVRENDJE_OSSZES
WHERE TOROLT = ''F''
AND C_TANEVID = @pTanevId
AND C_NAPTIPUSA = 1402
DECLARE @IsVegzosEvfolyam char(1)
'
/* A kapcsolódó osztálycsoportok összegyűjtése */
SET @sql += N'
CREATE TABLE #OsztalyCsoportok (
Id int PRIMARY KEY
,Nev nvarchar(255)
,Oka nvarchar(50)
,IsVegzos char(1)
,IdoszakVege datetime
,INDEX IX1 CLUSTERED(Id, Nev, IsVegzos)
);
IF @pOsztalyCsoportId IS NOT NULL BEGIN
SELECT @IsVegzosEvfolyam = C_VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT
WHERE ID = @pOsztalyCsoportId
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT kocs.ID, ocs.C_NEV, kocs.OKA, ocs.C_VEGZOSEVFOLYAM, IIF(ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM [dbo].fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege) kocs
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = kocs.ID AND ocs.TOROLT = ''F''
END
ELSE BEGIN
IF @pTanuloId IS NOT NULL BEGIN
SELECT @IsVegzosEvfolyam = ocs.C_VEGZOSEVFOLYAM
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
WHERE EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES o WHERE o.ID = ocs.ID)
AND tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT tcs.C_OSZTALYCSOPORTID, ocs.C_NEV, '''' AS Oka, @IsVegzosEvfolyam, IIF(@IsVegzosEvfolyam = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.TOROLT = ''F''
WHERE tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
END
--Performancia noveles miatt
ELSE IF @pTanarId IS NOT NULL
BEGIN
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT ID
,ocs.C_NEV
,''''
,ocs.C_VEGZOSEVFOLYAM
,IIF(ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM (
SELECT
oo.C_OSZTALYCSOPORTID
FROM T_ORARENDIORA_OSSZES oo
WHERE oo.C_TANARID = @pTanarId
AND oo.C_ORAERVENYESSEGKEZDETE <= @pIdoszakVege
AND oo.C_ORAERVENYESSEGVEGE >= @pIdoszakKezdete
AND oo.TOROLT = ''F''
UNION
SELECT
oo.C_OSZTALYCSOPORTID
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = hi.C_HELYETTESITETTORARENDID AND oo.TOROLT = ''F''
WHERE hi.C_HELYETTESTANAROKID = @pTanarId
AND hi.C_HELYETTESITESNAPJA >= @pIdoszakKezdete
AND hi.C_HELYETTESITESNAPJA <= @pIdoszakVege
AND hi.TOROLT = ''F''
UNION
SELECT
tno.C_OSZTALYCSOPORTID
FROM T_TANITASIORA tno
WHERE tno.C_HELYETTESITOTANARID = @pTanarId
AND tno.C_DATUM <= @pIdoszakVege
AND tno.C_DATUM >= @pIdoszakKezdete
AND tno.TOROLT = ''F''
UNION
SELECT
tno.C_OSZTALYCSOPORTID
FROM T_TANITASIORA tno
WHERE tno.C_TANARID = @pTanarId
AND tno.C_DATUM <= @pIdoszakVege
AND tno.C_DATUM >= @pIdoszakKezdete
AND tno.TOROLT = ''F''
) x
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = x.C_OSZTALYCSOPORTID
END
--Performancia noveles miatt
ELSE BEGIN
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakVege)
SELECT ID, C_NEV, '''' AS Oka, C_VEGZOSEVFOLYAM, IIF(C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
FROM T_OSZTALYCSOPORT_OSSZES
WHERE C_TANEVID = @pTanevId AND TOROLT = ''F''
END
END
'
/* A naptári napok összegyűjtése tanév rendje alapján */
SET @sql += N'
CREATE TABLE #NaptariNapok (
Datum datetime
,HetirendId int
,HetNapjaId int
,OrarendiNap char(1)
,OsztalyCsoportId int
,HetSorszam int
,CsengetesiRendId int
,PRIMARY KEY CLUSTERED (OsztalyCsoportId, Datum, HetirendId, HetNapjaId)
);
INSERT INTO #NaptariNapok (
Datum
,HetirendId
,HetNapjaId
,OrarendiNap
,OsztalyCsoportId
,HetSorszam
,CsengetesiRendId
) SELECT
nn.Datum
,ISNULL(tr.HetirendId, nn.HetirendId) AS HetirendId
,ISNULL(tr.HetNapjaId, nn.HetNapjaId) AS HetNapjaId
,ISNULL(tr.OrarendiNap, nn.OrarendiNap) AS OrarendiNap
,nn.OsztalyCsoportId
,ISNULL(tr.HetSorszam, nn.HetSorszam) AS HetSorszam
,ISNULL(tr.CsengetesiRendId, nn.CsengetesiRendId) AS CsengetesiRendId
FROM (
SELECT
nn.C_NAPDATUMA AS Datum
,nn.C_HETIREND AS HetirendId
,nn.C_HETNAPJA AS HetNapjaId
,nn.C_ORARENDINAP AS OrarendiNap
,ocs.ID AS OsztalyCsoportId
,nn.C_HETSORSZAMA AS HetSorszam
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''T''
CROSS JOIN #OsztalyCsoportok ocs
WHERE nn.TOROLT = ''F''
AND nn.C_NAPDATUMA >= @pIdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
) nn
LEFT JOIN (
SELECT
nn.C_NAPDATUMA AS Datum
,tr.C_HETIREND AS HetirendId
,tr.C_HETNAPJA AS HetNapjaId
,tr.C_ORARENDINAP AS OrarendiNap
,ocstr.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,nn.C_HETSORSZAMA AS HetSorszam
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
INNER JOIN #OsztalyCsoportok ocs ON ocs.Id = ocstr.C_OSZTALYCSOPORTID
WHERE nn.TOROLT = ''F''
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
AND nn.C_NAPDATUMA >= @pIdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
) tr ON nn.Datum = tr.datum AND nn.OsztalyCsoportId = tr.OsztalyCsoportId
WHERE ISNULL(tr.OrarendiNap, nn.OrarendiNap) = ''T''
'
/* Órarend lekérdezés */
IF @pCsakOrarendiOrak = 0 BEGIN
SET @sql += N'
CREATE TABLE #OrarendTable (
Id int
,ORARENDIID int
,Datum datetime
,Bontott char(1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraVege datetime
,Oraszam int
,TargyNev nvarchar(300)
,TargyNevForMobile nvarchar(300)
,TargykategoriaID int
,Megtartott char(1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar(255)
,TanevRendOsztalyCsoportId int
,MegjelenesOka nvarchar(300)
,TanarNev nvarchar(255)
,TeremNev nvarchar(255)
,OraTipus nvarchar(200)
,Hianyzas char(1)
,Keses char(1)
,Ures char(1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar(255)
,TanarID int
,AdminAltalKiirt char(1)
,GroupId int
,Tema nvarchar(max)
,TantargyId int
,OsztCsopId int
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
)
INSERT INTO #OrarendTable
'
END
SET @sql += N'
SELECT DISTINCT
oo.ID AS Id
,oo.ID AS ORARENDIID
,nn.Datum AS Datum
,oo.C_BONTOTT AS Bontott
,oo.C_HETIREND AS Hetirend
,oo.C_HETNAPJA AS HetNapja
,nn.HetSorszam AS HetSorszam
,oo.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete
,oo.C_ORAERVENYESSEGVEGE AS ErvenyessegVege
,nn.Datum + oo.C_ORAKEZDETE AS OraKezdete
,nn.Datum + oo.C_ORAVEGE AS OraVege
,oo.C_ORASZAM AS Oraszam
,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
,tt.C_TARGYKATEGORIA AS TargykategoriaID
,''F'' AS Megtartott
,csro.ID AS CsengetesiRendOraID
,csro.C_CSENGETESIRENDID AS CsengetesiRendID
,MAX(oo.C_ORASZAM) OVER() AS MaxNapiOraszam
,ocs.Nev AS OsztalyNev
,nn.OsztalyCsoportId AS TanevRendOsztalyCsoportId
,ocs.OKA AS MegjelenesOka
,tanar.C_NYOMTATASINEV AS TanarNev
,terem.C_NEV AS TeremNev
,''OrarendiOra'' AS OraTipus
,''F'' AS Hianyzas
,''F'' AS Keses
,''F'' AS Ures
,hisz.C_HELYETTESTANAROKID AS HelyettesitoTanarID
,helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev
,tanar.ID AS TanarID
,NULL AS AdminAltalKiirt
,oo.C_ORARENDIORAGROUPID AS GroupId
,NULL AS Tema
,oo.C_TANTARGYID AS TantargyId
,oo.C_OSZTALYCSOPORTID AS OsztCsopId
FROM T_ORARENDIORA_OSSZES oo
INNER JOIN #NaptariNapok nn ON (oo.C_HETIREND = 1554 OR nn.HetirendId = oo.C_HETIREND) AND nn.HetnapjaId = oo.C_HETNAPJA AND oo.C_OSZTALYCSOPORTID = nn.OsztalyCsoportId AND nn.Datum >= oo.C_ORAERVENYESSEGKEZDETE AND ((nn.Datum < oo.C_ORAERVENYESSEGVEGE) OR (oo.C_ORAERVENYESSEGKEZDETE = oo.C_ORAERVENYESSEGVEGE AND nn.Datum = oo.C_ORAERVENYESSEGVEGE))
INNER JOIN #OsztalyCsoportok ocs ON nn.OsztalyCsoportId = ocs.Id
LEFT JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = ISNULL(nn.CsengetesiRendId, oo.C_CSENGETESIRENDID) AND csro.C_ORASZAM = oo.C_ORASZAM AND csro.TOROLT = ''F''
INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = oo.C_TANTARGYID AND tt.TOROLT = ''F''
LEFT JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = oo.C_TANARID AND tanar.TOROLT = ''F''
LEFT JOIN T_TEREM_OSSZES terem ON terem.id = oo.C_TEREMID AND terem.TOROLT = ''F''
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hisz ON oo.ID = hisz.C_HELYETTESITETTORARENDID AND hisz.C_HELYETTESITESNAPJA = nn.Datum AND hisz.TOROLT = ''F''
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON hisz.C_HELYETTESTANAROKID = helyettes.ID AND helyettes.TOROLT = ''F''
WHERE oo.TOROLT = ''F''
' + CASE @pIsNapirend WHEN 1 THEN 'AND oo.C_CSENGETESIRENDID IS NULL ' WHEN 0 THEN 'AND oo.C_CSENGETESIRENDID IS NOT NULL AND csro.ID IS NOT NULL' ELSE 'AND ((oo.C_CSENGETESIRENDID IS NOT NULL AND csro.ID IS NOT NULL) OR oo.C_CSENGETESIRENDID IS NULL)' END + '
AND oo.C_INTEZMENYID = @pIntezmenyId
AND oo.C_TANEVID = @pTanevId
' + IIF(@pTanarId IS NULL, '', IIF(@pIsHelyettesitesNelkul = 0, 'AND (oo.C_TANARID = @pTanarId OR hisz.C_HELYETTESTANAROKID = @pTanarId)', 'AND oo.C_TANARID = @pTanarId')) + '
' + IIF(@pTantargyId IS NULL, '', 'AND oo.C_TANTARGYID = @pTantargyId') + '
' + IIF(@pTeremId IS NULL, '', 'AND oo.C_TEREMID = @pTeremId')
SET @sql += '
' + IIF(@pCsakOrarendiOrak = 0, '', 'ORDER BY OraKezdete') + '
'
IF @pCsakOrarendiOrak = 0 BEGIN
/* TanításiÓra lekérdezés */
SET @sql += N'
SELECT
ISNULL(tn.Id, oo.Id) AS Id
,ISNULL(tn.ORARENDIID, oo.ORARENDIID) AS ORARENDIID
,ISNULL(tn.Datum, oo.Datum) AS Datum
,ISNULL(tn.Bontott, oo.Bontott) AS Bontott
,oo.Hetirend AS Hetirend
,ISNULL(tn.HetNapja, oo.HetNapja) AS HetNapja
,ISNULL(tn.HetSorszam, oo.HetSorszam) AS HetSorszam
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegKezdete) AS ErvenyessegKezdete
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegVege) AS ErvenyessegVege
,ISNULL(tn.OraKezdete, oo.OraKezdete) AS OraKezdete
,ISNULL(tn.OraVege, oo.OraVege) AS OraVege
,ISNULL(tn.Oraszam, oo.Oraszam) AS Oraszam
,ISNULL(tn.TargyNev, oo.TargyNev) AS TargyNev
,ISNULL(tn.TargyNevForMobile, oo.TargyNevForMobile) AS TargyNevForMobile
,ISNULL(tn.TargykategoriaID, oo.TargykategoriaID) AS TargykategoriaID
,ISNULL(tn.Megtartott, oo.Megtartott) AS Megtartott
,ISNULL(tn.CsengetesiRendOraID, oo.CsengetesiRendOraID) AS CsengetesiRendOraID
,ISNULL(tn.CsengetesiRendID, oo.CsengetesiRendID) AS CsengetesiRendID
,ISNULL(tn.MaxNapiOraszam, oo.MaxNapiOraszam) AS MaxNapiOraszam
,ISNULL(tn.OsztalyNev, oo.OsztalyNev) AS OsztalyNev
,ISNULL(tn.TanevRendOsztalyCsoportId, oo.TanevRendOsztalyCsoportId) AS TanevRendOsztalyCsoportId
,ISNULL(tn.MegjelenesOka, oo.MegjelenesOka) AS MegjelenesOka
,ISNULL(tn.TanarNev, oo.TanarNev) AS TanarNev
,ISNULL(tn.TeremNev, oo.TeremNev) AS TeremNev
,ISNULL(tn.OraTipus, oo.OraTipus) AS OraTipus
,ISNULL(tn.Hianyzas, oo.Hianyzas) AS Hianyzas
,ISNULL(tn.Keses, oo.Keses) AS Keses
,ISNULL(tn.Ures, oo.Ures) AS Ures
,ISNULL(tn.HelyettesitoTanarID, oo.HelyettesitoTanarID) AS HelyettesitoTanarID
,ISNULL(tn.HelyettesitoTanarNev, oo.HelyettesitoTanarNev) AS HelyettesitoTanarNev
,ISNULL(tn.TanarID, oo.TanarID) AS TanarID
,ISNULL(tn.AdminAltalKiirt, oo.AdminAltalKiirt) AS AdminAltalKiirt
,ISNULL(tn.GroupId, oo.GroupId) AS GroupId
,tn.Tema AS Tema
,ISNULL(tn.TantargyId, oo.TantargyId) AS TantargyId
,ISNULL(tn.OsztCsopId, oo.OsztCsopId) AS OsztCsopId
FROM #OrarendTable oo
'
SET @sql += N'
FULL JOIN (
SELECT
tao.ID AS Id
,NULL AS ORARENDIID
,tao.C_DATUM AS Datum
,tao.C_BONTOTT AS Bontott
,tao.C_HETNAPJA AS HetNapja
,tao.C_HETSORSZAMA AS HetSorszam
,tao.C_ORAKEZDETE AS OraKezdete
,tao.C_ORAVEGE AS OraVege
,tao.C_ORASZAM AS Oraszam
,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
,tt.C_TARGYKATEGORIA AS TargykategoriaID
,tao.C_MEGTARTOTT AS Megtartott
,tao.C_CSENGETESIRENDORAID AS CsengetesiRendOraID
,tao.C_CSENGETESIRENDID AS CsengetesiRendID
,MAX(tao.C_ORASZAM) OVER() AS MaxNapiOraszam
,ocs.Nev AS OsztalyNev
,tao.C_OSZTALYCSOPORTID AS TanevRendOsztalyCsoportId
,ocs.OKA AS MegjelenesOka
,tanar.C_NYOMTATASINEV AS TanarNev
,terem.C_NEV AS TeremNev
,''TanitasiOra'' AS OraTipus
,' + IIF(@pTanuloId IS NULL, '''F''', 'IIF(mh.ID IS NULL, ''F'', ''T'')') + ' AS Hianyzas
,' + IIF(@pTanuloId IS NULL, '''F''', 'IIF(mk.ID IS NULL, ''F'', ''T'')') + ' AS Keses
,' + IIF(@pTanuloId IS NULL, '''F''', 'IIF(mu.ID IS NULL, ''F'', ''T'')') + ' AS Ures
,helyettes.ID HelyettesitoTanarID
,helyettes.C_NYOMTATASINEV HelyettesitoTanarNev
,tanar.ID AS TanarID
,tao.C_ADMINALTALKIIRT AS AdminAltalKiirt
,tao.C_ORARENDIORAGROUPID AS GroupId
,tao.C_TEMA AS Tema
,tao.C_TANTARGYID AS TantargyId
,tao.C_OSZTALYCSOPORTID AS OsztCsopId
FROM T_TANITASIORA_OSSZES tao
INNER JOIN #OsztalyCsoportok ocs ON tao.C_OSZTALYCSOPORTID = ocs.Id
INNER JOIN T_TANTARGY_OSSZES tt ON tao.C_TANTARGYID = tt.ID
INNER JOIN T_FELHASZNALO_OSSZES tanar ON tao.C_TANARID = tanar.ID
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON helyettes.ID = tao.C_HELYETTESITOTANARID
INNER JOIN T_TEREM_OSSZES terem ON terem.ID = tao.C_TEREMID
'
IF @pTanuloId IS NOT NULL BEGIN
SET @sql += N'
LEFT JOIN T_TANULOMULASZTAS mh ON mh.C_TANITASIORAKID = tao.ID AND mh.C_ORATANULOIID = @pTanuloId AND mh.C_TIPUS = 1500 AND mh.TOROLT = ''F''
LEFT JOIN T_TANULOMULASZTAS mk ON mk.C_TANITASIORAKID = tao.ID AND mk.C_ORATANULOIID = @pTanuloId AND mk.C_TIPUS = 1499 AND mk.TOROLT = ''F''
LEFT JOIN T_TANULOMULASZTAS mu ON mu.C_TANITASIORAKID = tao.ID AND mu.C_ORATANULOIID = @pTanuloId AND mu.C_TIPUS = 1817 AND mu.TOROLT = ''F''
'
END
SET @sql += N'
WHERE tao.TOROLT = ''F''
AND tao.C_DATUM >= @pIdoszakKezdete AND tao.C_DATUM < ocs.IdoszakVege
AND tao.C_TANEVID = @pTanevId
' + CASE @pIsNapirend WHEN 1 THEN 'AND tao.C_CSENGETESIRENDID IS NULL ' WHEN 0 THEN 'AND tao.C_CSENGETESIRENDID IS NOT NULL ' ELSE '' END + '
' + IIF(@pTanarId IS NULL, '', IIF(@pIsHelyettesitesNelkul = 0, 'AND (tao.C_TANARID = @pTanarId OR tao.C_HELYETTESITOTANARID = @pTanarId)', 'AND tao.C_TANARID = @pTanarId')) + '
' + IIF(@pTantargyId IS NULL, '', 'AND tao.C_TANTARGYID = @pTantargyId') + '
' + IIF(@pTeremId IS NULL, '', 'AND tao.C_TEREMID = @pTeremId') + '
) tn ON tn.Datum = oo.Datum
AND tn.HetNapja = oo.HetNapja
' + CASE @pIsNapirend WHEN 1 THEN 'AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege ' WHEN 0 THEN 'AND tn.Oraszam = oo.Oraszam ' ELSE 'AND ((tn.CsengetesiRendID IS NULL AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege) OR (tn.CsengetesiRendID IS NOT NULL AND tn.Oraszam = oo.Oraszam)) ' END + '
AND tn.TanevRendOsztalyCsoportId = oo.TanevRendOsztalyCsoportId
AND tn.TantargyId = oo.TantargyId
AND tn.TanarID = oo.TanarID
'
SET @sql += '
ORDER BY OraKezdete
'
END
EXEC sp_executesql @sql, N'
@pIntezmenyId int
,@pTanevId int
,@pIdoszakKezdete datetime
,@pIdoszakVege datetime
,@pTanarId int
,@pIsHelyettesitesNelkul bit
,@pOsztalyCsoportId int
,@pTanuloId int
,@pTantargyId int
,@pTeremId int
,@pCsakOrarendiOrak bit
,@pIsNapirend bit'
,@pIntezmenyId = @pIntezmenyId
,@pTanevId = @pTanevId
,@pIdoszakKezdete = @pIdoszakKezdete
,@pIdoszakVege = @pIdoszakVege
,@pTanarId = @pTanarId
,@pIsHelyettesitesNelkul = @pIsHelyettesitesNelkul
,@pOsztalyCsoportId = @pOsztalyCsoportId
,@pTanuloId = @pTanuloId
,@pTantargyId = @pTantargyId
,@pTeremId = @pTeremId
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
,@pIsNapirend = @pIsNapirend
END
GO