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

155 lines
No EOL
4.4 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
f.id
,ocs.C_NEV + ' - ' + tt.C_NEV AS Nev
,f.C_TANTARGYID
,f.C_OSZTALYCSOPORTID
,f.C_INTEZMENYID
,f.C_TANARID AS C_TANARID
INTO #Foglalkozasok
FROM T_FOGLALKOZAS_OSSZES f
INNER JOIN T_OSZTALYCSOPORT_OSSZES OCS on OCS.ID = f.C_OSZTALYCSOPORTID and OCS.TOROLT = 'F' AND OCS.C_FELADATKATEGORIAID = (SELECT t.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV_OSSZES t WHERE t.ID = OCS.C_TANEVID)
LEFT JOIN T_CSOPORTOK_OSZTALYOK cso on cso.C_CSOPORTOKID = ocs.ID
INNER JOIN T_TANTARGY_OSSZES tt on tt.ID = f.C_TANTARGYID and tt.TOROLT = 'F'
WHERE f.TOROLT = 'F'
AND f.C_TANEVID = @tanevID
AND (
((@osztalyID IS NOT NULL) AND (ocs.ID = @osztalyID OR cso.C_OSZTALYOKID = @osztalyID))
OR
((@tanarID IS NOT NULL) AND f.C_TANARID = @tanarID)
)
SELECT
fog.ID
, Nev+' - '+felh.C_NYOMTATASINEV Nev
FROM #Foglalkozasok fog
INNER JOIN T_FELHASZNALO_OSSZES felh on fog.C_TANARID=felh.ID
DECLARE @sorszamTable TABLE (
tanitasiOraId int-- PRIMARY KEY
,evesOraszam int
,foglalkozasId int
)
INSERT INTO @sorszamTable (tanitasiOraId, evesOraszam, foglalkozasId)
SELECT s.Id, s.EvesSorszam, f.ID 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
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(ID) 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
DROP TABLE #Foglalkozasok
END
GO