kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190430124620_AL_937/sp_GetHaladasiNaploAdatok.sql
2024-03-13 00:33:46 +01:00

220 lines
No EOL
7 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_GetHaladasiNaploAdatok]
GO
CREATE PROCEDURE [dbo].[sp_GetHaladasiNaploAdatok]
@tanevID int,
@osztalyID int = null,
@tanarID int = null
AS
BEGIN
DECLARE @cTantargyId INT = 0
DECLARE @cOsztalyCsoportId INT = 0
DECLARE @cTanarId INT = 0
DECLARE @foglalkozasNev VARCHAR(255)
SET NOCOUNT ON;
SELECT DISTINCT
ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,tn.C_TANTARGYID
,tn.C_OSZTALYCSOPORTID
,tn.C_INTEZMENYID
,tn.C_TANARID AS C_TANARID
,IIF(f.ID IS NULL,'F','T') AS VanTTF
INTO #Foglalkozasok
FROM T_TANITASIORA_OSSZES tn
LEFT JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANTARGYID = tn.C_TANTARGYID AND f.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND f.C_TANARID = tn.C_TANARID AND f.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = tn.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F' AND OCS.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
LEFT JOIN T_CSOPORTOK_OSZTALYOK cso on cso.C_CSOPORTOKID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = tn.C_TANTARGYID and tt.TOROLT = 'F'
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND (
((@osztalyID IS NOT NULL) AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID))
OR
((@tanarID IS NOT NULL) AND tn.C_TANARID = @tanarID)
)
ORDER BY VanTTF DESC, Nev ASC
SELECT
IIF(fog.VanTTF = 'F','Egyedi-','')+Nev+' - '+felh.C_NYOMTATASINEV Nev,
fog.VanTTF
FROM #Foglalkozasok fog
INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID
ORDER BY fog.VanTTF DESC, Nev ASC
DECLARE @sorszamTable TABLE (
tanitasiOraId int-- PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam)
SELECT s.Id, s.EvesSorszam FROM #Foglalkozasok f
CROSS APPLY dbo.fnGetEvesOraszamLista(
f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_TANARID
,GETDATE()
,f.C_INTEZMENYID
,@tanevID
) s
DECLARE foglalkozasCursor CURSOR FOR
SELECT C_TANTARGYID, C_OSZTALYCSOPORTID, C_TANARID FROM #Foglalkozasok ORDER BY VanTTF DESC, Nev ASC
OPEN foglalkozasCursor
FETCH NEXT FROM foglalkozasCursor into @cTantargyId, @cOsztalyCsoportId, @cTanarId
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
CASE
WHEN tn.C_MEGTARTOTT = 'T' THEN s.evesOraszam -- tn.C_ORAEVESSORSZAM
ELSE '-'
END AS OraSorszam
,fh.C_NYOMTATASINEV TanarNev
,tn.C_TEMA Tema
,CASE
WHEN tn.C_HELYETTESITOTANARID IS NULL THEN ''
ELSE 'H'
END AS Helyettesites
,FORMAT(tn.C_DATUM, 'yyyy.MM.dd.') Datum
,tn.C_ORASZAM OraSzam
,tn.C_MEGJEGYZES Megjegyzes
,ISNULL(tn.C_HAZIFELADAT,hf.C_FELADATSZOVEGE) HaziFeladat
,tn.C_TULORA TulOra
,tn.C_TAMOPORA TamopOra
,tn.C_NEMSZAKRENDSZERUORA NemszakrendszeruOra
,tn.C_IKTTANORA IktOra
,tn.C_NEMZETISEGIORA NemzetisegiOra
,tn.C_MINDENNAPOSTESTNEVELES TestnevelesOra
,tn.C_IPRTANORA IprOra
,tn.C_DIFFERENCIALT DifferencialtOra
,tn.C_KOOPERATIV KooperativOra
,tn.C_MERES MeresOra
,tn.C_DRAMA DramaOra
,tn.C_PARHUZAMOSORA ParhuzamosOra
,tn.C_TIOP12 TiopOra
,tn.C_KIPORA KIPOra
,tn.C_VEKOP73317 VEKOP73317
,tn.C_KAPORA KAPOra
,tn.C_BONTOTT Bontott
,tn.C_MULTIKULTURALISORA Multikulturalis
,tn.C_EFOP32317 EFOP32317
,tn.C_KOMPLEXORA Komplexora
,tn.C_GINOP623 GINOP623
,tn.C_EFOP31716 EFOP31716
,tn.C_EFOP33717 EFOP33717
,tn.C_TIOP1111212012001 TIOP1111212012001
FROM T_TANITASIORA_OSSZES tn
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = tn.C_TANARID
LEFT JOIN @sorszamTable s ON s.tanitasiOraId = tn.ID
LEFT JOIN T_HAZIFELADATOK hf ON hf.C_TANITASIORAID = tn.ID
WHERE tn.TOROLT = 'F'
AND tn.C_TANEVID = @tanevID
AND tn.C_TANARID = @cTanarId
AND tn.C_TANTARGYID = @cTantargyId
AND tn.C_OSZTALYCSOPORTID = @cOsztalyCsoportId
ORDER BY FORMAT(tn.C_DATUM, 'yyyy.MM.dd.')
FETCH NEXT FROM foglalkozasCursor
INTO @cTantargyId, @cOsztalyCsoportId, @cTanarId
END
CLOSE foglalkozasCursor
DEALLOCATE foglalkozasCursor
IF (SELECT COUNT(Nev) FROM #Foglalkozasok) = 0 BEGIN
DECLARE @nincsAdat TABLE (
OraSorszam int,
TanarNev nvarchar(1),
Tema nvarchar(1),
Helyettesites int,
Datum datetime,
OraSzam int,
Megjegyzes nvarchar(1),
HaziFeladat nvarchar(1),
TulOra char,
TamopOra char,
NemszakrendszeruOra char,
IktOra char,
NemzetisegiOra char,
TestnevelesOra char,
IprOra char,
DifferencialtOra char,
KooperativOra char,
MeresOra char,
DramaOra char,
ParhuzamosOra char,
TiopOra char,
KIPOra char,
VEKOP73317 char,
KAPOra char
)
SELECT * FROM @nincsAdat;
END
-- Iktatás adatok
IF @tanarID IS NOT NULL BEGIN
SELECT f.ID AS PedagogusId
,f.C_OKTATASIAZONOSITO AS PedagogusOktAzon
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
FROM T_FELHASZNALO_OSSZES AS f
LEFT JOIN T_MUNKAUGYIADATOK_OSSZES AS mua ON mua.C_ALKALMAZOTTID = f.ID
WHERE f.ID = @tanarID
AND f.C_TANEVID = @tanevID
END
IF @osztalyID IS NOT NULL BEGIN
DECLARE @isCsoport INT = (SELECT COUNT(ID) FROM T_CSOPORT_OSSZES WHERE ID = @osztalyID)
IF @isCsoport = 0 BEGIN
SELECT
ocs.ID AS OsztalyId
,o.C_OSZTALYFONOKID AS OsztalyfonokId
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,o.C_TANTERVID TantervId
,o.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT Agazat
,o.C_SZAKMACSOPORT SzakmaCsoport
,o.C_SZAKKEPESITES Szakkepesites
,o.C_RESZSZAKKEPESITES Reszszakkepesites
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,o.C_LOGOPEDIAI OJLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID
WHERE ocs.TOROLT='F'
AND ocs.ID = @osztalyId
AND ocs.C_TANEVID = @tanevId
END
ELSE BEGIN
SELECT
ocs.ID AS CsoportId
,cs.C_CSOPORTVEZETOID AS CsoportvezetoId
,cs.C_TIPUSA AS CsoportTipusa
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
INNER JOIN T_CSOPORT_OSSZES AS cs ON cs.ID = ocs.ID
WHERE ocs.TOROLT = 'F'
AND ocs.ID = @osztalyID
AND ocs.C_TANEVID = @tanevID
END
SELECT DISTINCT
felh.ID AS TanarId
,felh.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM #Foglalkozasok AS fogl
INNER JOIN T_FELHASZNALO_OSSZES felh ON felh.ID = fogl.C_TANARID
END
DROP TABLE #Foglalkozasok
END
GO