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,94 @@
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrakSzama
GO
CREATE PROCEDURE uspGetNemNaplozottOrakSzama
@pTanevId int
,@pIntezmenyId int
,@pFeladatKategoriaId int = null
AS BEGIN
SET NOCOUNT ON;
CREATE TABLE #NemNaplozottOrak (
Id int
,ORARENDIID int
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraKezdeteDate date
,OraKezdeteTimeText varchar(5)
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargyNevForNyomtatvany nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TanarOktAzon nvarchar (20)
,TeremNev nvarchar (255)
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,HelyettesitettPedagogusNev nvarchar (255)
,OraKezdeteDateST nvarchar (25)
,HetNapjaValos int
,Datum datetime
,HelyettesitoTanarOktAzon nvarchar (20)
)
DECLARE
@IdoszakKezdete DATETIME
,@IdoszakVege DATETIME = GETDATE()
SELECT
@IdoszakKezdete = tv.C_KEZDONAP
FROM T_TANEV_OSSZES tv WHERE ID = @pTanevId
EXEC uspGetNemNaplozottOrarendiOrak_Core
@IntezmenyId = @pIntezmenyId
,@TanevId = @pTanevId
,@IdoszakKezdete = @IdoszakKezdete
,@IdoszakVege = @IdoszakVege
,@pFeladatKategoriaId = @pFeladatKategoriaId
SELECT
ora.Tanar
,ora.TanarOktAzon
,ora.Honap
,COUNT(*) AS Darab
FROM (
SELECT
ISNULL(HelyettesitoTanarNev, TanarNev) AS Tanar
,ISNULL(HelyettesitoTanarOktAzon,TanarOktAzon) AS TanarOktAzon
,FORMAT(Datum, 'MM') AS Honap
-- egy napon lehet több óra
,Oraszam
-- egy órában lehet több csoportnak óra
,OsztalyNev
FROM #NemNaplozottOrak
) ora
GROUP BY ora.Tanar
,ora.TanarOktAzon
,ora.Honap
END
GO

View file

@ -0,0 +1,176 @@
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrarendiOrak
GO
CREATE PROCEDURE uspGetNemNaplozottOrarendiOrak
@IntezmenyId int
,@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@TanarId int = NULL
,@OsztalyCsoportId int = NULL
,@TantargyId int = NULL
,@CsakAHelyettesiteseim bit = 0
,@HelyettesitettOraimIs bit = 0
,@pFeladatKategoriaId int = NULL
,@pDatum datetime = NULL
,@pOraszam int = NULL
,@pIdopont datetime = NULL
,@pFeladatEllatasiHelyId int = NULL
AS BEGIN
SET NOCOUNT ON;
CREATE TABLE #NemNaplozottOrak (
Id int
,ORARENDIID int
,Bontott char (1)
,Hetirend int
,HetNapja int
,HetSorszam int
,ErvenyessegKezdete datetime
,ErvenyessegVege datetime
,OraKezdete datetime
,OraKezdeteDate date
,OraKezdeteTimeText varchar(5)
,OraVege datetime
,Oraszam int
,TargyNev nvarchar (300)
,TargyNevForMobile nvarchar (300)
,TargyNevForNyomtatvany nvarchar (300)
,TargykategoriaID int
,Megtartott char (1)
,CsengetesiRendOraID int
,CsengetesiRendID int
,MaxNapiOraszam int
,OsztalyNev nvarchar (255)
,MegjelenesOka nvarchar (300)
,TanarNev nvarchar (255)
,TanarOktAzon nvarchar (20)
,TeremNev nvarchar (255)
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,HelyettesitettPedagogusNev nvarchar (255)
,OraKezdeteDateST nvarchar (25)
,HetNapjaValos int
,Datum datetime
,HelyettesitoTanarOktAzon nvarchar (20)
)
EXEC uspGetNemNaplozottOrarendiOrak_Core
@IntezmenyId = @IntezmenyId
,@TanevId = @TanevId
,@IdoszakKezdete = @IdoszakKezdete
,@IdoszakVege = @IdoszakVege
,@TanarId = @TanarId
,@OsztalyCsoportId = @OsztalyCsoportId
,@TantargyId = @TantargyId
,@CsakAHelyettesiteseim = @CsakAHelyettesiteseim
,@HelyettesitettOraimIs = @HelyettesitettOraimIs
,@pFeladatKategoriaId = @pFeladatKategoriaId
,@pDatum = @pDatum
,@pOraszam = @pOraszam
,@pIdopont = @pIdopont
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
SELECT
Id
,ORARENDIID
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraKezdeteDate
,OraKezdeteTimeText
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargyNevForNyomtatvany
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,MegjelenesOka
,TanarNev
,TanarOktAzon
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,HelyettesitettPedagogusNev
,OraKezdeteDateST
,HetNapjaValos
,Datum
,HelyettesitoTanarOktAzon
FROM #NemNaplozottOrak
-- Iktatás adatok
SELECT
@OsztalyCsoportId AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_OSZTALYFONOKID AS OsztalyFonokId
,o.C_TANTERVID AS TantervId
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_AGAZAT AS Agazat
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,o.C_TECHNIKAIOSZTALY AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
AND o.C_ALTANEVID = ocs.C_TANEVID
AND o.C_ALINTEZMENYID = ocs.C_INTEZMENYID
WHERE ocs.ID = @OsztalyCsoportId
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = @TanevId
AND ocs.C_INTEZMENYID = @IntezmenyId
-- Tanár iktatás adatok
SELECT DISTINCT
f.ID AS TanarId
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM T_ALKALMAZOTT_OSSZES a
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = a.ID AND f.TOROLT = 'F'
AND a.C_ALTANEVID = f.C_TANEVID
AND a.C_ALINTEZMENYID = f.C_INTEZMENYID
LEFT JOIN #NemNaplozottOrak orak ON orak.TanarID = f.ID
WHERE a.TOROLT = 'F'
AND a.C_ALINTEZMENYID = @IntezmenyId
AND a.C_ALTANEVID = @TanevId
AND (@TanarId IS NULL OR f.ID = @TanarId)
END
GO

View file

@ -0,0 +1,282 @@
DROP PROCEDURE IF EXISTS uspGetNemNaplozottOrarendiOrak_Core
GO
CREATE PROCEDURE uspGetNemNaplozottOrarendiOrak_Core
@IntezmenyId int
,@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@TanarId int = NULL
,@OsztalyCsoportId int = NULL
,@TantargyId int = NULL
,@CsakAHelyettesiteseim bit = 0
,@HelyettesitettOraimIs bit = 0
,@pFeladatKategoriaId int = NULL
,@pDatum datetime = NULL
,@pOraszam int = NULL
,@pIdopont datetime = NULL
,@pFeladatEllatasiHelyId int = NULL
AS BEGIN
SET NOCOUNT ON;
SET DATEFIRST 1;
DECLARE
@CsakOrarendiOrak bit = 0
CREATE TABLE #OrarendiOrak (
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)
,TeremId int
,OraTipus nvarchar (200)
,Hianyzas char (1)
,Keses char (1)
,Ures char (1)
,HelyettesitoTanarID int
,HelyettesitoTanarNev nvarchar (255)
,HelyettesitesId int
,TanarID int
,AdminAltalKiirt char (1)
,GroupId int
,Tema nvarchar (max)
,TantargyId int
,OsztCsopId int
,IsEgyediNap char(1)
,TeremTobbOratLehetTartani char(1)
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
)
INSERT INTO #OrarendiOrak (
Id
,ORARENDIID
,Datum
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,TanevRendOsztalyCsoportId
,MegjelenesOka
,TanarNev
,TeremNev
,TeremId
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,IsEgyediNap
,TeremTobbOratLehetTartani
)
EXEC sp_GetOrarend
@pIntezmenyId = @IntezmenyId
,@pTanevId = @TanevId
,@pIdoszakKezdete = @IdoszakKezdete
,@pIdoszakVege = @IdoszakVege
,@pTanarId = @TanarId
,@pIsHelyettesitesNelkul = 0
,@pOsztalyCsoportId = @OsztalyCsoportId
,@pTanuloId = NULL
,@pTantargyId = @TantargyId
,@pTeremId = NULL
,@pCsakOrarendiOrak = 0
,@pIsNapirend = NULL
,@pFeladatKategoriaId = @pFeladatKategoriaId
DECLARE
@sql nvarchar(max) = N'';
SET @sql += N'
SELECT
orak.Id
,orak.ORARENDIID
,orak.Bontott
,orak.Hetirend
,orak.HetNapja
,orak.HetSorszam
,orak.ErvenyessegKezdete
,orak.ErvenyessegVege
,orak.OraKezdete
,CONVERT(date, orak.OraKezdete) AS OraKezdeteDate
,CONVERT(varchar (5), orak.OraKezdete, 108) AS OraKezdeteTimeText
,orak.OraVege
,IIF(orak.CsengetesiRendID IS NOT NULL, orak.Oraszam, NULL) AS Oraszam
,t.C_NEV as TargyNev
,orak.TargyNevForMobile
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) AS TargyNevForNyomtatvany
,orak.TargykategoriaID
,orak.Megtartott
,orak.CsengetesiRendOraID
,orak.CsengetesiRendID
,orak.MaxNapiOraszam
,orak.OsztalyNev
,orak.MegjelenesOka
,orak.TanarNev
,f.C_OKTATASIAZONOSITO TanarOktAzon
,orak.TeremNev
,orak.OraTipus
,orak.Hianyzas
,orak.Keses
,orak.Ures
,orak.HelyettesitoTanarID
,orak.HelyettesitoTanarNev
,orak.HelyettesitesId
,orak.TanarID
,orak.AdminAltalKiirt
,orak.GroupId
,orak.Tema
,orak.TantargyId
,orak.OsztCsopId
,IIF(orak.HelyettesitoTanarID IS NOT NULL, orak.TanarNev, NULL) AS HelyettesitettPedagogusNev
,CONVERT(nvarchar (25), orak.OraKezdete, 102) AS OraKezdeteDateST
,DATEPART(w, orak.OraKezdete) + 1407 AS HetNapjaValos
,orak.Datum
,fh.C_OKTATASIAZONOSITO HelyettesitoTanarOktAzon
FROM #OrarendiOrak orak
INNER JOIN T_FELHASZNALO_OSSZES f ON orak.TanarID = f.ID
AND f.TOROLT =''F''
AND f.C_TANEVID = @TanevId
INNER JOIN T_TANTARGY_OSSZES t on t.ID = orak.TantargyId
AND t.TOROLT =''F''
AND t.C_TANEVID = @TanevId
LEFT JOIN T_FELHASZNALO_OSSZES fh ON orak.HelyettesitoTanarID = fh.ID
AND fh.TOROLT =''F''
AND fh.C_TANEVID = @TanevId
' + IIF(@pFeladatEllatasiHelyId IS NULL, '', '
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON orak.OsztCsopId = ocs.ID')
SET @sql += N'
WHERE orak.OraTipus = ''OrarendiOra''
AND orak.OraKezdete <= @IdoszakVege
AND orak.OraVege >= @IdoszakKezdete
-- Admin feluleten nincs checkbox, ha nincs tanarra szurve, akkor hozza le az osszes nem naplozott orat
AND (@TanarId IS NULL OR (
-- ha 0 mindkét paraméter, adja vissza a tanar osszes sajat nem naplozott orajat + azokat ahol ő volt a helyettesito
((@CsakAHelyettesiteseim = 0 AND @HelyettesitettOraimIs = 0 AND (orak.HelyettesitoTanarID = @TanarId OR (orak.TanarID = @TanarId and orak.HelyettesitoTanarID IS NULL)))
-- ha csak a "csak a helyettesiteseim" parameter igaz, adja vissza a tanar azon nem naplozott orait, ahol ő volt a helyettesito
OR (@CsakAHelyettesiteseim = 1 AND @HelyettesitettOraimIs = 0 AND orak.HelyettesitoTanarID = @TanarId)
-- ha csak a "helyettesitett oram is" parameter igaz, adja vissza a tanar sajat nem naplozott orait + azokat ahol ő volt a helyettesito + ahol őt helyettesítették
OR (@CsakAHelyettesiteseim = 0 AND @HelyettesitettOraimIs = 1 AND (orak.HelyettesitoTanarID IS NOT NULL OR orak.TanarID = @TanarId))
-- ha a "csak a helyettesiteseim" es a "helyettesitett oraim is" parameter is igaz, adja vissza azokat a nem naplozott orakat ahol a tanar volt a helyettesito, vagy őt helyettesítették
OR (@CsakAHelyettesiteseim = 1 AND @HelyettesitettOraimIs = 1 AND (orak.HelyettesitoTanarID IS NOT NULL)))))
AND (ISNULL(@pDatum, CAST(OraKezdete as date)) = CAST(OraKezdete as date))
AND ((ISNULL(@pOraszam, Oraszam) = Oraszam) OR Oraszam IS NULL)
AND (
IIF(
@pIdopont IS NOT NULL,
CONVERT(varchar (5), @pIdopont, 108),
CONVERT(varchar (5), orak.OraKezdete, 108)
) = CONVERT(varchar (5), orak.OraKezdete, 108))
' + IIF(@pFeladatEllatasiHelyId IS NULL, '', 'AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId') + '
';
INSERT INTO #NemNaplozottOrak (
Id
,ORARENDIID
,Bontott
,Hetirend
,HetNapja
,HetSorszam
,ErvenyessegKezdete
,ErvenyessegVege
,OraKezdete
,OraKezdeteDate
,OraKezdeteTimeText
,OraVege
,Oraszam
,TargyNev
,TargyNevForMobile
,TargyNevForNyomtatvany
,TargykategoriaID
,Megtartott
,CsengetesiRendOraID
,CsengetesiRendID
,MaxNapiOraszam
,OsztalyNev
,MegjelenesOka
,TanarNev
,TanarOktAzon
,TeremNev
,OraTipus
,Hianyzas
,Keses
,Ures
,HelyettesitoTanarID
,HelyettesitoTanarNev
,HelyettesitesId
,TanarID
,AdminAltalKiirt
,GroupId
,Tema
,TantargyId
,OsztCsopId
,HelyettesitettPedagogusNev
,OraKezdeteDateST
,HetNapjaValos
,Datum
,HelyettesitoTanarOktAzon
)
EXEC sp_executesql @sql, N'
@TanevId int
,@IdoszakKezdete datetime
,@IdoszakVege datetime
,@TanarId int
,@CsakAHelyettesiteseim bit
,@HelyettesitettOraimIs bit
,@pDatum datetime
,@pOraszam int
,@pIdopont datetime
,@pFeladatEllatasiHelyId int'
,@TanevId = @TanevId
,@IdoszakKezdete = @IdoszakKezdete
,@IdoszakVege = @IdoszakVege
,@TanarId = @TanarId
,@CsakAHelyettesiteseim = @CsakAHelyettesiteseim
,@HelyettesitettOraimIs = @HelyettesitettOraimIs
,@pDatum = @pDatum
,@pOraszam = @pOraszam
,@pIdopont = @pIdopont
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
END
GO