Files
kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190808154347_KRETA2_46_2/uspGetOsztalynaplo.sql
2024-03-13 00:33:46 +01:00

1938 lines
61 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetOsztalynaplo
GO
CREATE PROCEDURE uspGetOsztalynaplo
@intezmenyId int
,@tanevId int
,@osztalyId int
,@isSzovegesNaplo bit = 0
,@iskolaErdekuSzamit bit
,@fuggolegesTantargyak bit
,@aktivTanevId int
,@isReszletesMulasztasok bit
,@isEgyebFoglalkozasok bit
,@minTanoraSzam int
,@isEllenorzo bit = 0
,@orarendErvenyessegiDatum date
,@tanuloId int = NULL
AS BEGIN
SET NOCOUNT ON;
DECLARE
@ElsoNapTanevRendje date
,@UtolsoNapTanevRendje date
,@ElsoNapTanev date
,@UtolsoNapTanev date
,@isVegzos varchar (1)
,@FelevVege date
,@ElsoNap date
,@UtolsoNap date
,@VizsgaltNap date
,@VegzosUtolsoNap date
,@ocsId int
,@MaxOraszam int
,@MinOraszam int
,@TanitasiNapokSzama int
,@TanulokSzama int
,@HetUtolsoNapjaMegtartottOra int
,@HetUtolsoNapjaTanevendje int
,@HetUtolsoNapja int
,@selectList nvarchar (max)
,@pivotList nvarchar (max)
,@tantargyakNevvel nvarchar (max)
,@sql nvarchar (max)
CREATE TABLE #Gondviselok (
TanuloId int
,GondviseloId int PRIMARY KEY CLUSTERED
)
CREATE TABLE #HetAdatok (
C_HETSORSZAMA int
,KezdoDatum date
,VegeDatum date
)
CREATE TABLE #EvVegiMulasztasok (
TanuloId int
,TanuloCsoportId int
,Igazolt int
,Igazolatlan int
,ElmeletIgazolt int
,ElmeletIgazolatlan int
,GyakorlatIgazolt int
,GyakorlatIgazolatlan int
,ElmeletOsszes int
,GyakorlatOsszes int
,Osszes int
)
CREATE TABLE #FeleviMulasztasok (
TanuloId int
,TanuloCsoportId int
,Igazolt int
,Igazolatlan int
,ElmeletIgazolt int
,ElmeletIgazolatlan int
,GyakorlatIgazolt int
,GyakorlatIgazolatlan int
,ElmeletOsszes int
,GyakorlatOsszes int
,Osszes int
)
CREATE TABLE #NapSorszamTemp (Datum date)
CREATE TABLE #NapSorszam (
Datum date
,Sorszam nvarchar(4)
)
CREATE TABLE #OsszesOra (
Datum datetime
,FormatDate nvarchar (100)
,Oraszam int
,HetSorszama int
,HetNapja nvarchar (100)
,Megjegyzes nvarchar (1000)
,Sorszam nvarchar (30)
)
DECLARE @TanuloCimTable TABLE (
FelhasznaloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
DECLARE @GondViseloCimTable TABLE (
GondviseloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
DECLARE @EmailCimTableTemp TABLE (
FelhasznaloId int
,EmailCim nvarchar (max)
,GondviseloId int
)
DECLARE @EmailCimTanuloTable TABLE (
FelhasznaloId int
,EmailCim nvarchar (max)
)
DECLARE @EmailCimGondviseloTable TABLE (
GondviseloId int
,EmailCim nvarchar (max)
)
DECLARE @TelefonTableTemp TABLE (
FelhasznaloId int
,Telefon nvarchar (max)
,GondviseloId int
)
DECLARE @TanuloTelefonTable TABLE (
FelhasznaloId int
,Telefon nvarchar (max)
)
DECLARE @GondviseloTelefonTable TABLE (
GondviseloId int
,Telefon nvarchar (max)
)
CREATE TABLE #Tantargyak (
ID int
,C_FOTARGYID int
,C_NEV nvarchar(255) COLLATE DATABASE_DEFAULT
,C_NEVNYOMTATVANYBAN nvarchar(255) COLLATE DATABASE_DEFAULT
,C_TARGYKATEGORIA int
,c_tanuloid int
,c_tanulocsoportid int
,RENDEZ1 int
,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT
,C_INTEZMENYID int
,C_TANEVID int
)
CREATE TABLE #retTanuloErtekeles (
ErtekelesId int PRIMARY KEY NOT NULL
,Datum date
,TipusId int
,ErtekelesSzoveg nvarchar (max)
,ErtekelesSzovegRovidNev nvarchar (3)
,ErtekelesOsztalyzatId int
,ErtekelesOsztalyzatValue int
,ErtekelesOsztalyzatNev nvarchar (max)
,ErtekelesSzazalek nvarchar (max)
,MagatartasOsztalyzatId int
,MagatartasOsztalyzatValue int
,MagatartasOsztalyzatNev nvarchar (max)
,MagatartasSzoveg nvarchar (max)
,MagatartasSzovegRovidNev nvarchar (3)
,MagatartasErtekId int
,MagatartasErtek nvarchar (max)
,MagatartasErtekOsztalyzatkent int
,SzorgalomOsztalyzatId int
,SzorgalomOsztalyzatValue int
,SzorgalomOsztalyzatNev nvarchar (max)
,SzorgalomSzoveg nvarchar (max)
,SzorgalomSzovegRovidNev nvarchar (3)
,SzorgalomErtekId int
,SzorgalomErtek nvarchar (max)
,SzorgalomErtekOsztalyzatkent int
,TanuloId int
,TanuloCsoportId int
,OsztalyCsoportId int
,TantargyId int
,TantargyNevZarojellel nvarchar (max)
,TantargyNevNyomtatvanyban nvarchar (max)
,TantargyNev nvarchar (max)
,TargyKategoriaId int
,FotargyE char(1)
,Altantargy char(1)
,FotargyId int
,ErtekelesTema nvarchar (max)
,ErtekeloId int
,ErtekelesModjaId int
,IsMagatartasSzorgalom char(1)
,Jeloles nvarchar (max)
,JelolesAndErtekelesTema nvarchar (max)
)
CREATE TABLE #osztalycsoportok (
OsztalyCsoportId int PRIMARY KEY
,Kezdete date
,Vege date
)
CREATE TABLE #OraSorszamTemp (
TanitasioraId int
,OraSorszam int
)
CREATE TABLE #OraSorszam (
TanitasioraId int PRIMARY KEY
,OraSorszam int
)
SELECT TOP 1
@ElsoNapTanev = t.C_ELSOTANITASINAP
,@UtolsoNapTanev = t.C_UTOLSOTANITASINAP
FROM t.T_TANEV_OSSZES t
WHERE t.ID = @tanevId
AND t.TOROLT = 'F'
SELECT TOP 1
@ElsoNapTanevRendje = tr.C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
WHERE tr.C_NAPTIPUSA = 1394
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
SELECT TOP 1
@UtolsoNapTanevRendje = tr.C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
WHERE tr.C_NAPTIPUSA = 1395
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
SELECT TOP 1
@isVegzos = o.C_VEGZOSEVFOLYAM
FROM T_OSZTALYCSOPORT_OSSZES o
WHERE o.ID = @osztalyId
SELECT TOP 1
@FelevVege = tr.C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
WHERE tr.C_NAPTIPUSA = 1400
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
SET @VegzosUtolsoNap = (SELECT dbo.fnGetOsztalyVegzosTanitasiNap(@osztalyId, @intezmenyId, @tanevId))
SET @ElsoNap = ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev)
SET @UtolsoNap = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap, @UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
IF @tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNap
IF @orarendErvenyessegiDatum <= @ElsoNap
SET @VizsgaltNap = (
SELECT TOP 1
C_HETKEZDONAPJA
FROM T_NAPTARIHET_OSSZES
WHERE C_HETSORSZAMA = 1
AND TOROLT = 'F'
AND C_TANEVID = @tanevId
)
ELSE
SET @VizsgaltNap = CONVERT(date, @orarendErvenyessegiDatum)
ELSE
SET @VizsgaltNap = (
SELECT TOP 1
nh.C_HETUTOLSONAPJA
FROM T_NAPTARIHET_OSSZES AS nh
WHERE @UtolsoNap >= CONVERT(date, nh.C_HETKEZDONAPJA)
AND @UtolsoNap <= CONVERT(date, nh.C_HETUTOLSONAPJA)
AND nh.TOROLT = 'F'
AND nh.C_TANEVID = @tanevId
)
INSERT INTO #NapSorszamTemp (Datum)
EXEC sp_GetDokumentumTanitasiNapokSorszama
@tanevId = @tanevId
,@osztalyId = @osztalyId
INSERT INTO #NapSorszam (
Datum
,Sorszam
)
SELECT
Sorszam.Datum AS Datum
,CAST(DENSE_RANK() OVER(ORDER BY Sorszam.Datum) AS nvarchar(4))
FROM #NapSorszamTemp AS Sorszam
INNER JOIN fnGetDokumentumOsztalyMegtartottOrakSzama(@tanevId, @osztalyId) AS OrakSzama ON OrakSzama.Datum = Sorszam.Datum
WHERE Sorszam.Datum <= @UtolsoNap
AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL OR OrakSzama.OrakSzama >= @minTanoraSzam)
SELECT
TanuloId AS Id
,tanugyiAdatok.C_NAPLOSORSZAM AS NaploSorszam
,tanugyiAdatok.C_TORZSLAPSZAM AS TorzslapSzam
,TanuloCsoport.Id AS TanuloCsoportId
,OsztalyTanuloi.BelepesDatum AS BelepesDatum
,OsztalyTanuloi.KilepesDatum AS KilepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') AS OsztalyTanuloi
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.Id = OsztalyTanuloi.TanuloCsoportId
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tanugyiAdatok ON tanugyiAdatok.C_TANULOCSOPORTID = tanuloCsoport.ID
AND tanugyiAdatok.TOROLT = 'F'
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
SELECT DISTINCT
Id
INTO
#students
FROM #studentsWithTanuloCsoport
SELECT
DATEPART(MONTH, Datum) AS Honap
,TantargyId AS Id
,Igazolt AS IgazoltE
,TanuloId AS TanuloId
,TanuloCsoportId AS TanuloCsoportId
,IgazolasTipusa AS IgazolasTipus
,Datum AS Datum
,Tipusa AS Tipus
,KesesPercben AS KesesPercben
,HetSorszama AS HetSorszama
,Oraszam AS Oraszam
,CAST(DATEPART(MONTH, Datum) AS nvarchar(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat
,C_GYAKORLATI AS isGyakorlat
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) AS TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
SELECT
CAST(SUM(IIF(IgazoltE = 'T', 1, 0)) AS varchar(5)) + '/' + CAST(SUM(IIF(IgazoltE = 'F', 1, 0)) AS varchar(5)) AS HetiMulasztas
,HetSorszama
,TanuloId
,TanuloCsoportId
INTO #HetiMulasztasok
FROM #mulasztasTmp
GROUP BY
HetSorszama
,TanuloId
,TanuloCsoportId
CREATE CLUSTERED INDEX ci1 ON #mulasztasTmp (
tanuloid
,datum
)
CREATE CLUSTERED INDEX ci5 ON #HetiMulasztasok (HetSorszama)
SELECT
Datum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomErtekId
,SzorgalomErtek
,TanuloId
,TanuloCsoportId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNev
,TantargyNevNyomtatvanyban
,TargyKategoriaId
,FotargyE
,FotargyId
,Altantargy
,ErtekelesTema
,Jeloles
,JelolesAndErtekelesTema
,isMagatartasSzorgalom
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
CREATE CLUSTERED INDEX ci111 ON #ErtekelesekTemp (
datum
,tanulocsoportid
)
-- Naplo fooldal
INSERT INTO #osztalycsoportok (
OsztalyCsoportId
,Kezdete
,Vege
)
SELECT
OsztalyCsoportok.Id
,OsztalyCsoportok.Kezdete
,OsztalyCsoportok.Vege
FROM fnGetKapcsolodoOsztalyCsoportokByDateRange(@osztalyId, @ElsoNap, @UtolsoNap, @intezmenyId, @tanevId) AS OsztalyCsoportok
INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) AS TanoraiCeluOsztalyCsoportok ON TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id
DECLARE csoport_cursor CURSOR
FOR
SELECT
OsztalyCsoportId
FROM #osztalycsoportok
OPEN csoport_cursor
FETCH NEXT FROM csoport_cursor
INTO @ocsId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #OraSorszamTemp
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @ocsId
,@datum = @UtolsoNap
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
FETCH NEXT FROM csoport_cursor INTO
@ocsId
END
CLOSE csoport_cursor
DEALLOCATE csoport_cursor
INSERT INTO #OraSorszam
SELECT DISTINCT
TanitasioraId
,OraSorszam
FROM #OraSorszamTemp
SELECT
tao.Id AS TanitasioraId
,tao.C_DATUM AS Datum
,IIF(tao.C_ORASZAM IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(varchar(5), tao.C_ORAKEZDETE, 108), @tanevId), tao.C_ORASZAM) AS Oraszam
,pedagogus.ID AS PedagogusId
,IIF(C_MEGTARTOTT = 'T', pedagogus.C_NYOMTATASINEV, '-') AS PedagogusNev
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(nvarchar(max), OraSorszam) + '.', '-'), '-') AS OraSorszam
,IIF(C_MEGTARTOTT = 'T', IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(varchar(5), C_ORAKEZDETE, 108) + ' - '
+ CONVERT(varchar(5), C_ORAVEGE, 108) + ') ', '') + REPLACE(REPLACE(C_TEMA, CHAR(0x0007), ''),CHAR(0x000B), ''), 'Elmaradt')
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV + ')', '')
+ IIF(C_HELYETTESITESTIPUSA IN(1494, 1495),'(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV + ') ', '') AS Tema
,IIF(C_MEGTARTOTT = 'T', IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(varchar(5), C_ORAKEZDETE, 108) + ' - '
+ CONVERT(varchar(5), C_ORAVEGE, 108) + ') ', '') + ISNULL(CONVERT(nvarchar(max), OraSorszam), '-') + '.: '
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ') ', '')
+ IIF(C_HELYETTESITESTIPUSA IN(1494, 1495), '(Helyettesitve: ' + helyettesito.C_NYOMTATASINEV + ') ', '')
+ REPLACE(REPLACE(C_TEMA, CHAR(0x0007), ''), CHAR(0x000B), ''), 'Elmaradt') AS TemaOraSzammal
,tao.C_HETNAPJA AS HetNapja
,nh.C_HETSORSZAMA AS HetSorszama
,C_MEGTARTOTT AS Megtartott
,tao.C_TANTARGYID AS TantargyId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS Tantargynev
,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90,C_NEVNYOMTATVANYBAN
+ ' (' + tantargy.C_NEV + ')', C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) + REPLACE(REPLACE(pedagogus.C_NYOMTATASINEV, '[', '('), ']', ')') AS TantargyPedagogussal
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
LEFT JOIN (
SELECT DISTINCT
TanitasioraId
,OraSorszam
FROM #OraSorszam
) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id
INNER JOIN T_NAPTARIHET_OSSZES nh ON tao.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA
AND nh.C_TANEVID = @tanevId
AND nh.TOROLT = 'F'
INNER JOIN #osztalycsoportok OsztalyCsoportok ON OsztalyCsoportok.OsztalyCsoportId = tao.C_OSZTALYCSOPORTID
AND tao.C_DATUM BETWEEN OsztalyCsoportok.Kezdete
AND OsztalyCsoportok.Vege
WHERE tao.TOROLT = 'F'
CREATE CLUSTERED INDEX ciMegtartottOrak ON #megtartottOrak (Datum)
SELECT
@MaxOraszam = ISNULL(MAX(Oraszam), 4)
,@MinOraszam = ISNULL(MIN(Oraszam), 1)
FROM #megtartottOrak
SELECT
@TanulokSzama = COUNT(DISTINCT TanuloId)
FROM #ErtekelesekTemp
WHERE TipusId = 1520
SELECT
@TanitasiNapokSzama = MAX(CAST(Sorszam AS int))
FROM #NapSorszam
SELECT DISTINCT
@osztalyId AS OsztalyId
,ocs.C_NEV AS OsztalyNev
,o.C_OSZTALYNAPLOLEIRASA AS OsztalyMegjegyzes
,o.C_OSZTALYFONOKID AS PartnerID
,ofo.C_NYOMTATASINEV AS Osztalyfonok
,o.C_OFOHELYETTESID AS OsztalyfonokHelyettesId
,i.C_IGAZGATONEVE AS IntezmenyVezeto
,i.C_NEV AS IntezmenyNeve
,i.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime
,i.C_OMKOD AS IntezmenyOMKod
,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA) AS NaploMegnyitasanakDatuma
,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA) AS NaploZarasanakDatuma
,o.C_OSZTALYNAPLOZARASA AS NaplozarasDateFormat
,@TanulokSzama AS TanulokSzama
,@TanitasiNapokSzama AS TanitasiNapokSzama
,@MaxOraszam AS MaxOraszam
,@MinOraszam AS MinOraszam
,@tanevId AS TanevId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,o.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,o.C_TECHNIKAIOSZTALY AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,o.C_LOGOPEDIAI AS OJLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
,o.C_GYOGYPEDAGOGIAI AS OJGyogypedagogiai
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID
AND o.torolt = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i ON i.C_INTEZMENYID = ocs.C_INTEZMENYID
AND i.C_TANEVID = ocs.C_TANEVID
AND i.Torolt = 'F'
WHERE ocs.ID = @osztalyId
-- Tanarok
IF @isEllenorzo = 0
SELECT DISTINCT
targy.C_NEV AS TargyNev
,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev
,targykategoria.C_ORDER
,tanar.ID AS TanarId
,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevID, @osztalyId, 'T') AS tanulok
INNER JOIN T_TANULOCSOPORT_OSSZES AS tcs ON tcs.C_TANULOID = tanulok.TanuloId
AND tcs.C_BELEPESDATUM >= tanulok.BelepesDatum
AND (tanulok.KilepesDatum IS NULL OR tcs.C_BELEPESDATUM < tanulok.KilepesDatum)
AND tcs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
INNER JOIN T_FOGLALKOZAS_OSSZES AS fogl ON fogl.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID
AND fogl.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES AS tanar ON fogl.C_TANARID = tanar.ID
AND tanar.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES AS munkaugyiAdat ON munkaugyiAdat.C_ALKALMAZOTTID = tanar.ID
AND munkaugyiAdat.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES AS targy ON targy.ID = fogl.C_TANTARGYID
AND targy.TOROLT = 'F'
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
AND targykategoria.TOROLT = 'F'
AND targykategoria.C_TANEVID = @tanevID
WHERE fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
ORDER BY
targykategoria.C_ORDER
,targy.C_NEV
,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T','',tanar.C_NYOMTATASINEV)
ELSE
SELECT DISTINCT
Tanulok.Id AS TanuloId
,Tantargy.C_NEV AS TargyNev
,Tanar.C_NYOMTATASINEV AS TanarNev
,C_ORDER
FROM #students AS Tanulok
INNER JOIN T_TANULOCSOPORT_OSSZES AS TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.Id
AND TanuloCsoport.TOROLT = 'F'
AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND ISNULL(C_KILEPESDATUM,@UtolsoNap)
INNER JOIN T_FOGLALKOZAS_OSSZES AS Foglalkozas ON Foglalkozas.C_OSZTALYCSOPORTID = TanuloCsoport.C_OSZTALYCSOPORTID
AND Foglalkozas.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES AS Tanar ON Tanar.Id = Foglalkozas.C_TANARID
INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES AS TargyKategoria ON TargyKategoria.ID = Tantargy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS TargyKategoria_order ON TargyKategoria.ID = TargyKategoria_order.ID
AND TargyKategoria_order.TOROLT = 'F'
AND TargyKategoria_order.C_TANEVID = @tanevId
ORDER BY
C_ORDER
-- Orarend
EXEC sp_GetOrarendOsztalyonkent
@intezmenyId
,@tanevID
,@osztalyid
,@aktivTanevId
,@isEgyebFoglalkozasok
,@orarendErvenyessegiDatum
-- Oralatogatasok
SELECT
dbo.fnGetDokumentumDatumFormatum(T_ORALATOGATAS_OSSZES.C_DATUM) AS DATUM
,TANITASIORA.C_ORASZAM AS ORASZAM
,TARGY.C_NEV AS TARGYNEV
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS LATOGATO
,T_ORALATOGATAS_OSSZES.C_ORALATOGATOBEOSZTASA AS LATOGATOBEOSZTAS
,T_ORALATOGATAS_OSSZES.C_MEGJEGYZES AS ESZREVETEL
INTO #Oralatogatas
FROM T_ORALATOGATAS_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_ORALATOGATAS_OSSZES.C_ERTEKELOID
INNER JOIN (
SELECT
ID
,C_TANTARGYID
,C_ORASZAM
,C_OSZTALYCSOPORTID
FROM T_TANITASIORA_OSSZES
) AS TANITASIORA ON TANITASIORA.ID = T_ORALATOGATAS_OSSZES.C_MEGTARTOTTORAID
INNER JOIN T_TANTARGY_OSSZES AS TARGY ON TARGY.ID = TANITASIORA.C_TANTARGYID
INNER JOIN #osztalycsoportok AS ocs ON ocs.OsztalyCsoportId = C_OSZTALYCSOPORTID
WHERE T_ORALATOGATAS_OSSZES.TOROLT = 'F'
AND T_ORALATOGATAS_OSSZES.c_tanevId = @tanevId
AND T_ORALATOGATAS_OSSZES.C_INTEZMENYID = @intezmenyId
ORDER BY
T_ORALATOGATAS_OSSZES.C_DATUM
,TANITASIORA.C_ORASZAM
IF (SELECT COUNT(1) FROM #Oralatogatas) = 0
SELECT
NULL AS DATUM
,NULL AS ORASZAM
,NULL AS TARGYNEV
,NULL AS LATOGATO
,NULL AS LATOGATOBEOSZTAS
,'' AS ESZREVETEL
ELSE
SELECT
DATUM
,ORASZAM
,TARGYNEV
,LATOGATO
,LATOGATOBEOSZTAS
,ESZREVETEL
FROM #Oralatogatas
ORDER BY
DATUM
-- Naploellenorzesek
SELECT DISTINCT
dbo.fnGetDokumentumDatumFormatum(C_ELLENORZESDATUMA) AS ELLENORZESDATUMA
,ELLENORZO.C_NYOMTATASINEV AS ELLENORZOSZEMELY
,T_NAPLOELLENORZES_OSSZES.C_ESZREVETEL AS ESZREVETEL
INTO #NaploEllenorzes
FROM T_NAPLOELLENORZES_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES AS ELLENORZO ON ELLENORZO.ID = T_NAPLOELLENORZES_OSSZES.C_ELLENORZOSZEMELYID
WHERE C_OSZTALYID = @osztalyId
AND T_NAPLOELLENORZES_OSSZES.TOROLT = 'F'
AND T_NAPLOELLENORZES_OSSZES.c_tanevId = @tanevId
IF (SELECT COUNT(1) FROM #NaploEllenorzes) = 0
SELECT
NULL AS ELLENORZESDATUMA
,NULL AS ELLENORZOSZEMELY
,NULL AS ESZREVETEL
ELSE
SELECT
ELLENORZESDATUMA
,ELLENORZOSZEMELY
,ESZREVETEL
FROM #NaploEllenorzes
SELECT
@HetUtolsoNapjaMegtartottOra = IIF(MAX(HetNapja) IS NULL OR MAX(HetNapja) <= 1412, 1412, MAX(HetNapja))
FROM #megtartottOrak
SELECT
@HetUtolsoNapjaTanevendje = ISNULL(MAX(C_HETNAPJA), 1412)
FROM #NapSorszam AS NapSorszam
INNER JOIN T_NAPTARINAP_OSSZES AS NaptariNap ON NaptariNap.C_NAPDATUMA = NapSorszam.Datum
AND NaptariNap.C_TANEVID = @tanevId
SET @HetUtolsoNapja = IIF(@HetUtolsoNapjaMegtartottOra >= @HetUtolsoNapjaTanevendje, @HetUtolsoNapjaMegtartottOra, @HetUtolsoNapjaTanevendje)
INSERT INTO #HetAdatok (
C_HETSORSZAMA
,KezdoDatum
,VegeDatum
)
SELECT
nh.C_HETSORSZAMA
,MIN(nn.C_NAPDATUMA) AS HetKezdete
,IIF(ISNULL(MAX(tr.C_DATUM), MAX(nn.C_NAPDATUMA)) > MAX(nn.C_NAPDATUMA), MAX(tr.C_DATUM), MAX(nn.C_NAPDATUMA)) AS HetVege
FROM T_NAPTARIHET_OSSZES AS nh
INNER JOIN T_NAPTARINAP_OSSZES AS nn ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA
AND nn.C_INTEZMENYID = @intezmenyId
AND nn.C_TANEVID = @tanevId
AND nn.C_ALAPHETNAPJA <= 1412
AND nn.C_HETSORSZAMA = nh.C_HETSORSZAMA
AND nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap
AND nn.TOROLT = 'F'
LEFT JOIN T_TANEVRENDJE_OSSZES AS tr ON tr.C_INTEZMENYID = @intezmenyId
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
AND tr.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA
WHERE nh.TOROLT = 'F'
AND nh.C_TANEVID = @tanevId
AND nh.C_INTEZMENYID = @intezmenyId
GROUP BY
nh.C_HETSORSZAMA
ORDER BY
nh.C_HETSORSZAMA
SELECT
ha.C_HETSORSZAMA
,dbo.fnGetDokumentumDatumFormatum(ha.KezdoDatum)
,dbo.fnGetDokumentumDatumFormatum(ha.VegeDatum)
FROM #HetAdatok AS ha
INSERT INTO #OsszesOra (
Datum
,FormatDate
,Oraszam
,HetSorszama
,HetNapja
,Megjegyzes
,Sorszam
)
SELECT
Datum
,FormatDate
,Oraszam
,HetSorszama
,HetNapja
,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) AS Megjegyzes
,Sorszam
FROM (
SELECT
C_NAPDATUMA AS Datum
,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) AS FormatDate
,oraszam AS Oraszam
,ha.C_HETSORSZAMA AS HetSorszama
,AlapHetnapja.C_NAME AS HetNapja
,ISNULL(trNaptipus.C_NAME + ',', '') + IIF(LEN(ISNULL(tr.C_MEGJEGYZES, '')) = 0, '', ' ' + tr.C_MEGJEGYZES + ',')
+ IIF(LEN(ISNULL(osztalyCsoportTanevRendje.Megjegyzes, '')) = 0, '', ' ' + osztalyCsoportTanevRendje.Megjegyzes + ',')
+ IIF(tr.C_HETNAPJA <> nn.C_ALAPHETNAPJA, ' (' + Hetnapja.C_NAME + ')', '') AS Megjegyzes
,ISNULL(Sorszam, '-') AS Sorszam
FROM T_NAPTARINAP_OSSZES AS nn
INNER JOIN #HetAdatok AS ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum
LEFT JOIN #NapSorszam AS sorszam ON sorszam.Datum = nn.C_NAPDATUMA
LEFT JOIN T_TANEVRENDJE_OSSZES AS tr ON tr.C_DATUM = nn.C_NAPDATUMA
AND tr.C_TANEVID = nn.C_TANEVID
AND tr.TOROLT = 'F'
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
LEFT JOIN (
SELECT
C_DATUM
,ISNULL(trNaptipus.C_NAME + ', ', '') + ISNULL('(' + HetNapja.C_NAME + ')', '') + ISNULL(C_MEGJEGYZES, '') AS Megjegyzes
FROM T_OSZTALYCSOPORT_TANEVRENDJE AS ocstr
INNER JOIN T_TANEVRENDJE_OSSZES AS tr ON tr.Id = ocstr.C_TANEVRENDJEID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS HetNapja ON HetNapja.ID = tr.C_HETNAPJA
AND HetNapja.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA
AND trNaptipus.C_TANEVID = @tanevId
AND tr.C_NAPTIPUSA <> 1385
WHERE C_OSZTALYCSOPORTID = @osztalyId
AND tr.TOROLT = 'F'
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
) AS osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA
AND trNaptipus.C_TANEVID = @tanevId
AND tr.C_NAPTIPUSA <> 1385
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS AlapHetnapja ON AlapHetnapja.Id = nn.C_ALAPHETNAPJA
AND AlapHetnapja.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS Hetnapja ON Hetnapja.Id = nn.C_HETNAPJA
AND Hetnapja.C_TANEVID = @tanevId
CROSS JOIN(VALUES
(0),
(1),
(2),
(3),
(4),
(5),
(6),
(7),
(8),
(9),
(10),
(11),
(12),
(13),
(14),
(15),
(16),
(17),
(18),
(19),
(20),
(21),
(22),
(23),
(24),
(25)) AS oraszam(oraszam)
WHERE nn.C_TANEVID = @tanevId
AND nn.TOROLT = 'F'
AND nn.C_NAPDATUMA <= @UtolsoNap
AND oraszam <= @MaxOraszam
AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja
) AS NapAdatok
IF @MinOraszam > 0
DELETE
FROM #OsszesOra
WHERE
Oraszam = 0
IF @isSzovegesNaplo = 0
BEGIN /* NORMÁL OSZTÁLYNAPLÓ */
SELECT
MulasztasokKulso.Datum AS Datum
,Felhasznalo.C_NYOMTATASINEV + ' [' + STUFF(
(
SELECT
', ' + CAST(MulasztasokBelso.Oraszam AS varchar(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '')
FROM #mulasztasTmp AS MulasztasokBelso
WHERE MulasztasokBelso.Datum = MulasztasokKulso.Datum
AND MulasztasokBelso.TanuloId = MulasztasokKulso.TanuloId
AND MulasztasokBelso.TanuloCsoportId = MulasztasokKulso.TanuloCsoportId
ORDER BY
Datum
,Oraszam
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) + '] ' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'T', 1, 0)) AS varchar(5)) + '/' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'F', 1, 0)) AS varchar(5)) AS Hianyzas
INTO #hianyzasokTMP
FROM #mulasztasTmp AS MulasztasokKulso
INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId
GROUP BY
MulasztasokKulso.Datum
,MulasztasokKulso.TanuloId
,TanuloCsoportId
,Felhasznalo.C_NYOMTATASINEV
CREATE CLUSTERED INDEX ci2 ON #hianyzasokTMP (datum)
SELECT
Datum
,STUFF(
(
SELECT
CHAR(13) + CHAR(10) + Hianyzas
FROM #hianyzasokTMP AS bHianyzasok
WHERE Hianyzasok.Datum = bHianyzasok.Datum
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) AS Hianyzas
INTO #hianyzasok
FROM #hianyzasokTMP AS Hianyzasok
SELECT DISTINCT
Datum
,HetSorszama
,HetNapja
,Oraszam
,STUFF(
(
SELECT
CAST(bmto.TantargyNev AS nvarchar(max)) + CHAR(13) + CHAR(10)
FROM #megtartottOrak AS bmto
WHERE bmto.Datum = mto.Datum
AND bmto.Oraszam = mto.Oraszam
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 0, ''
) AS Tantargy
INTO #Orarend
FROM #megtartottOrak AS mto
SELECT DISTINCT
Datum
,@MinOraszam AS Oraszam
,TantargyPedagogussal
,STUFF(
(
SELECT DISTINCT
CAST(bmto.TemaOraSzammal AS nvarchar(max)) + CHAR(13) + CHAR(10)
FROM #megtartottOrak AS bmto
WHERE bmto.Datum = mto.Datum
AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 0, ''
) AS Tema
INTO #1nap1TantargyTobbOra
FROM #megtartottOrak AS mto
SELECT
@tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + IIF(LEN(TantargyPedagogussal) > 128, SUBSTRING(TantargyPedagogussal, 1, 120) + '...', TantargyPedagogussal) + ']'
FROM (
SELECT DISTINCT
TantargyPedagogussal
,C_TARGYKATEGORIA
FROM #megtartottOrak AS m
INNER JOIN T_TANTARGY_OSSZES AS t ON t.Id = m.TantargyId
) AS t
ORDER BY
C_TARGYKATEGORIA
SET @sql = '
SELECT
Datum
,Oraszam
, ' + @tantargyakNevvel + '
INTO #naplo
FROM #1nap1TantargyTobbOra
PIVOT (MAX(Tema) FOR TantargyPedagogussal IN (' + @tantargyakNevvel + ')) piv
SELECT DISTINCT
OsszesOra.FormatDate AS C_NAPDATUMA
,Hianyzas AS Mulasztas
,OsszesOra.Oraszam AS ORASZAM
,NULL AS T1ID
,NULL AS T2ID
,NULL AS T3ID
,Orarend.Tantargy AS TANTARGY
,OsszesOra.HetSorszama AS C_HETSORSZAMA
,OsszesOra.HetNapja AS C_HETNAPJA_DNAME
,OsszesOra.Sorszam AS NapSorszama
,OsszesOra.Megjegyzes AS Megjegyzés
,' + @tantargyakNevvel + '
FROM #OsszesOra OsszesOra
LEFT JOIN #Orarend Orarend ON Orarend.Datum = OsszesOra.Datum AND Orarend.Oraszam = OsszesOra.Oraszam
LEFT JOIN #naplo Naplo ON Naplo.Datum = OsszesOra.Datum AND OsszesOra.Oraszam = @MinOraszam
LEFT JOIN #hianyzasok Hianyzasok ON Hianyzasok.Datum = OsszesOra.Datum
ORDER BY
OsszesOra.FormatDate
,Oraszam
';
IF @sql IS NULL
SELECT
NULL AS C_NAPDATUMA
,NULL AS Mulasztas
,NULL AS Megjegyzés
,NULL AS ORASZAM
,NULL AS T1ID
,NULL AS T2ID
,NULL AS T3ID
,NULL AS TANTARGY
,NULL AS C_HETSORSZAMA
,NULL AS C_HETNAPJA_DNAME
,NULL AS NapSorszama
ELSE
EXEC sp_executesql
@sql
,N'@MinOraszam int'
,@MinOraszam
DROP TABLE #1nap1TantargyTobbOra;
DROP TABLE #OsszesOra;
DROP TABLE #hianyzasokTMP;
DROP TABLE #hianyzasok;
DROP TABLE #Orarend;
END -- NORMÁL OSZTÁLYNAPLÓ
ELSE
BEGIN -- SZÖVEGES OSZTÁLYNAPLÓ
SELECT
OsszesOra.Datum AS C_NAPDATUMA
,OsszesOra.HetNapja AS Napneve
,OsszesOra.Megjegyzes AS C_MEGJEGYZES
,nh.C_HETKEZDONAPJA AS C_HETKEZDONAPJA
,nh.C_HETUTOLSONAPJA AS C_HETUTOLSONAPJA
,OsszesOra.HetSorszama AS C_HETSORSZAMA
,OsszesOra.Oraszam AS OraSorszam
,OsszesOra.Sorszam AS Napszam
,Tantargynev AS Tantargy
,PedagogusNev AS Tanar
,Tema AS Oraanyaga
,OraSorszam AS C_ORAEVESSORSZAM
INTO #szoveges
FROM #OsszesOra AS OsszesOra
LEFT JOIN #megtartottOrak AS mto ON mto.Datum = OsszesOra.Datum
AND OsszesOra.Oraszam = mto.Oraszam
INNER JOIN T_NAPTARIHET_OSSZES AS nh ON OsszesOra.Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA
AND nh.C_TANEVID = @tanevId
AND nh.torolt = 'F'
CREATE CLUSTERED INDEX ci4 ON #szoveges (C_NAPDATUMA)
SELECT DISTINCT
dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) AS C_NAPDATUMA
,Napneve
,C_MEGJEGYZES
,C_HETKEZDONAPJA
,C_HETUTOLSONAPJA
,C_HETSORSZAMA
,OraSorszam
,Napszam
,(
SELECT
CAST(bszov.TANTARGY AS nvarchar (max)) + NCHAR(10)
FROM #szoveges AS bszov
WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA
AND bszov.ORASORSZAM = szov.ORASORSZAM
AND bszov.napszam = szov.napszam
FOR XML PATH('')
) AS TANTARGY
,(
SELECT
CAST(bszov.TANAR AS nvarchar (max)) + NCHAR(10)
FROM #szoveges AS bszov
WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA
AND bszov.ORASORSZAM = szov.ORASORSZAM
AND bszov.napszam = szov.napszam
FOR XML PATH('')
) AS TANAR
,(
SELECT
CAST(bszov.ORAANYAGA AS nvarchar (max)) + NCHAR(10)
FROM #szoveges AS bszov
WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA
AND bszov.ORASORSZAM = szov.ORASORSZAM
AND bszov.napszam = szov.napszam
FOR XML PATH('')
) AS ORAANYAGA
,(
SELECT
CAST(bszov.C_ORAEVESSORSZAM AS nvarchar (max)) + NCHAR(10)
FROM #szoveges AS bszov
WHERE bszov.C_NAPDATUMA = szov.C_NAPDATUMA
AND bszov.ORASORSZAM = szov.ORASORSZAM
AND bszov.napszam = szov.napszam
FOR XML PATH('')
) AS OraEvesSorszama
FROM #szoveges AS szov
ORDER BY
dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA)
,orasorszam
/*Hiányzások*/
SELECT
NapiMulasztas.HetSorszama
,TanuloNeve
,NapiMulasztas.TanuloId
,MAX(Hetfo) AS Hetfo
,MAX(Kedd) AS Kedd
,MAX(Szerda) AS Szerda
,MAX(Csutortok) AS Csutortok
,MAX(Pentek) AS Pentek
,MAX(Szombat) AS Szombat
,HetiMulasztas
FROM (
SELECT
HetSorszama
,TanuloNeve
,TanuloId
,TanuloCsoportId
,[1408] AS Hetfo
,[1409] AS Kedd
,[1410] AS Szerda
,[1411] AS Csutortok
,[1412] AS Pentek
,[1413] AS Szombat
FROM (
SELECT DISTINCT
HetSorszama
,C_NYOMTATASINEV AS TanuloNeve
,TanuloId
,TanuloCsoportId
,Datum
,C_ALAPHETNAPJA AS Hetnapja
,'[' + STUFF(
(
SELECT
', ' + CAST(MulasztasokBelso.Oraszam AS varchar(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '')
FROM #mulasztasTmp AS MulasztasokBelso
WHERE MulasztasokBelso.Datum = MulasztasokKulso.Datum
AND MulasztasokBelso.TanuloId = MulasztasokKulso.TanuloId
AND MulasztasokBelso.TanuloCsoportId = MulasztasokKulso.TanuloCsoportId
ORDER BY
Datum
,Oraszam
FOR XML PATH(''), TYPE
) .value
('.', 'VARCHAR(MAX)'), 1, 2, ''
) + '] ' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'T', 1, 0)) AS varchar(5)) + '/' + CAST(SUM(IIF(MulasztasokKulso.IgazoltE = 'F', 1, 0)) AS varchar(5)) AS Hianyzas
FROM #mulasztasTmp AS MulasztasokKulso
INNER JOIN T_FELHASZNALO_OSSZES AS Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId
INNER JOIN T_NAPTARINAP_OSSZES AS NaptariNap ON NaptariNap.C_NAPDATUMA = MulasztasokKulso.Datum
AND NaptariNap.C_TANEVID = @tanevId
GROUP BY
Hetsorszama
,C_NYOMTATASINEV
,TanuloId
,TanuloCsoportId
,Datum
,C_ALAPHETNAPJA
,TanuloId
) AS OsszefuzottMulasztasok PIVOT(MAX(Hianyzas) FOR HetNapja IN(
[1408]
,[1409]
,[1410]
,[1411]
,[1412]
,[1413])) piv
) AS NapiMulasztas
INNER JOIN #HetiMulasztasok AS HetiMulasztasok ON HetiMulasztasok.HetSorszama = NapiMulasztas.HetSorszama
AND HetiMulasztasok.TanuloId = NapiMulasztas.TanuloId
AND HetiMulasztasok.TanuloCsoportId = NapiMulasztas.TanuloCsoportId
GROUP BY
NapiMulasztas.HetSorszama
,TanuloNeve
,NapiMulasztas.TanuloId
,HetiMulasztas
END
/*TANULÓ adatai*/
SELECT
TanuloId
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,AktualisOsztaly AS OsztalyNev
INTO #TanuloAlapAdatok
FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId)
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
SELECT
TanuloId
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,OsztalyNev
FROM #TanuloAlapAdatok
ORDER BY
Sorszam
INSERT INTO #Gondviselok (
TanuloId
,GondviseloId
)
SELECT
TanuloId
,GondviseloId
FROM fnGetDokumentumGondviselok(@osztalyId, @tanevId, 'F', 'T')
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
/*TANULÓ elérhetőségei */
INSERT INTO @TanuloCimTable (
FelhasznaloId
,Cim
,Cimtipusa
)
SELECT DISTINCT
TanuloId
,STUFF(
(
SELECT DISTINCT
CAST(Btemp.Cim AS nvarchar (max)) + char(13) + char(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @osztalyId) btemp
WHERE temp.TanuloId = btemp.TanuloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1, 0, ''
)
,cimTipusa.C_NAME
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @osztalyId) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO @GondViseloCimTable (
GondviseloId
,Cim
,Cimtipusa
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(Btemp.Cim AS nvarchar (max)) + char(13) + char(10)
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @osztalyId) btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipusa = btemp.CimTipusa
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
)
,cimTipusa.C_NAME
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @osztalyId) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO @EmailCimTableTemp (
FelhasznaloId
,EmailCim
,GondviseloId
)
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
INSERT INTO @EmailCimTanuloTable (
FelhasznaloId
,EmailCim
)
SELECT DISTINCT
FelhasznaloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.EmailCim AS nvarchar (max)) + char(13) + char(10)
FROM @EmailCimTableTemp btemp
WHERE temp.FelhasznaloId = btemp.FelhasznaloId
AND btemp.GondviseloId IS NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
) Email
FROM @EmailCimTableTemp temp
WHERE GondviseloId IS NULL
INSERT INTO @EmailCimGondviseloTable (
GondviseloId
,EmailCim
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.EmailCim AS nvarchar (max)) + char(13) + char(10)
FROM @EmailCimTableTemp btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
) Email
FROM @EmailCimTableTemp temp
WHERE GondviseloId IS NOT NULL
INSERT INTO @TelefonTableTemp (
FelhasznaloId
,Telefon
,GondviseloId
)
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
INSERT INTO @TanuloTelefonTable (
FelhasznaloId
,Telefon
)
SELECT DISTINCT
FelhasznaloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.Telefon AS nvarchar (max)) + char(13) + char(10)
FROM @TelefonTableTemp btemp
WHERE temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
)
FROM @TelefonTableTemp temp
WHERE GondviseloId IS NULL
INSERT INTO @GondviseloTelefonTable (
GondviseloId
,Telefon
)
SELECT DISTINCT
GondviseloId
,STUFF(
(
SELECT DISTINCT
CAST(btemp.Telefon AS nvarchar (max)) + char(13) + char(10)
FROM @TelefonTableTemp btemp
WHERE temp.GondviseloId = btemp.GondviseloId
AND temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1 ,0, ''
)
FROM @TelefonTableTemp temp
WHERE GondviseloId IS NOT NULL
SELECT
s.Id AS tanuloid
,cim.Cimtipusa AS cimtipus
,cim.Cim
,email.EmailCim AS email
,telefon.Telefon AS telefonszam
FROM #students s
LEFT JOIN @TanuloCimTable cim ON cim.FelhasznaloId = s.Id
LEFT JOIN @EmailCimTanuloTable email ON email.FelhasznaloId = s.Id
LEFT JOIN @TanuloTelefonTable telefon ON telefon.FelhasznaloId = s.Id
ORDER BY Cimtipusa
/* TANULÓ mentesség */
SELECT
TanuloId
,TanuloCsoportId
,ROW_NUMBER() OVER(PARTITION BY TanuloId, TanuloCsoportId ORDER BY TanuloId, TanuloCsoportId) AS Sorszam
,TantargyNev
,MentessegOka
FROM fnGetDokumentumTanuloMentessegei(@tanevId, @osztalyId, DEFAULT)
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
/* TANULÓ határozatok */
SELECT
s.ID AS tanuloID
,s.TanuloCsoportId
,ROW_NUMBER() OVER(PARTITION BY s.ID, s.TanuloCsoportId ORDER BY s.ID, s.TanuloCsoportId) AS sorszam
,dbo.fnGetDokumentumDatumFormatum(Datum) AS datum
,d.C_NAME AS tipus
,Tartalom AS tartalom
,FeljegyzoNeve AS tanar
FROM #studentsWithTanuloCsoport AS s
INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) AS feljegyzes ON feljegyzes.TanuloId = s.ID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS d ON d.ID = Tipusa
AND d.C_TANEVID = @tanevId
WHERE BelepesDatum <= feljegyzes.Datum
AND (KilepesDatum IS NULL OR KilepesDatum >= feljegyzes.Datum)
AND Tipusa IN (
1543
,1544
,1547
,1548
,1549
,1550
,1551
,1552
,1553
)
/* TANULÓ feljegyzései */
SELECT
s.ID AS TanuloID
,s.TanuloCsoportId AS TanuloCsoportId
,ROW_NUMBER() OVER(PARTITION BY s.ID, s.TanuloCsoportId ORDER BY s.ID, s.TanuloCsoportId) AS Sorszam
,dbo.fnGetDokumentumDatumFormatum(Datum) AS Datum
,d.C_NAME AS Tipus
,Tartalom AS Tartalom
,FeljegyzoNeve AS Tanar
FROM #studentsWithTanuloCsoport s
INNER JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa
AND d.C_TANEVID = @tanevId
WHERE BelepesDatum <= feljegyzes.Datum
AND (KilepesDatum IS NULL OR KilepesDatum >= feljegyzes.Datum)
AND (@isEllenorzo = 1
AND Tipusa NOT IN (
1543
,1544
,1547
,1548
,1549
,1550
,1551
,1552
,1553
)
OR Tipusa IN (
1535
,1536
,1540
,1541
,1542
,6491
,6906
,6907
,6950
,6970
)
OR Tipusa BETWEEN 5450 AND 5481
OR Tipusa BETWEEN 6312 AND 6328
OR Tipusa BETWEEN 6870 AND 6875
OR Tipusa BETWEEN 6945 AND 6947
)
ORDER BY
dbo.fnGetDokumentumDatumFormatum(Datum)
/* TANULO mulasztása */
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @osztalyId
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
,@isReszletesMulasztasok = @isReszletesMulasztasok
/*gondviselő elérhetőségei */
SELECT DISTINCT
Gondviselok.TanuloId AS TanuloId
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
,cim.Cimtipusa AS C_CIMTIPUSA
,cim.cim AS C_OSSZETETTCIM
,telefon.telefon AS C_TELEFONSZAM
,email.emailcim AS C_EMAILCIM
FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T') Gondviselok
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
ORDER BY cim.Cimtipusa
/*TANULÓ osztályzatai*/
--Osztályhoz tartozó értékelések
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @osztalyId
,@ertekelesTipusa = NULL
,@csakTanorai = 1
,@csakKivlasztottOsztalyCsoport = 0
,@atsoroltTanuloErtekelesek = 0
,@fuggolegesTantargyak = @fuggolegesTantargyak
,@intezmenyId = @intezmenyId
/* TANULÓ záradékai */
SELECT
TanuloId
,TanuloCsoportId
,Bejegyzes AS Zaradek
FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId, @isEllenorzo)
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
/*Szöveges minosítések*/
SELECT
a.tanuloId
,a.TanuloCsoportId
,a.Honap
,a.Tantargy
,a.Ertekeles
,a.Tipus
FROM (
SELECT
s.id AS tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport AS s
INNER JOIN (
SELECT
TanuloId AS tanuloId
,TanuloCsoportId
,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap
,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) AS Tantargy
,ErtekelesSzoveg + ISNULL(' *' + ErtekelesTema,'') AS Ertekeles
,ErtekelesTipusDictionary.C_NAME AS Tipus
,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5
WHEN DATEPART(MONTH, Datum) = 2 THEN 6
WHEN DATEPART(MONTH, Datum) = 3 THEN 7
WHEN DATEPART(MONTH, Datum) = 4 THEN 8
WHEN DATEPART(MONTH, Datum) = 5 THEN 9
WHEN DATEPART(MONTH, Datum) = 6 THEN 10
WHEN DATEPART(MONTH, Datum) = 7 THEN 11
WHEN DATEPART(MONTH, Datum) = 8 THEN 12
WHEN DATEPART(MONTH, Datum) = 9 THEN 1
WHEN DATEPART(MONTH, Datum) = 10 THEN 2
WHEN DATEPART(MONTH, Datum) = 11 THEN 3
WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId
AND ErtekelesTipusDictionary.C_TANEVID = @tanevId
WHERE ErtekelesSzoveg IS NOT NULL
) AS szoveges ON szoveges.TANULOID = s.Id
AND szoveges.TanuloCsoportId = s.TanuloCsoportId
UNION
SELECT
s.id AS tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport AS s
INNER JOIN (
SELECT
ErtekelesTemp.TanuloId AS tanuloId
,ErtekelesTemp.TanuloCsoportId
,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap
,'Magatartás' AS Tantargy
,ErtekelesTemp.MagatartasSzoveg + ISNULL(' *' + ErtekelesTema, '') AS Ertekeles
,ErtekelesTipusDictionary.C_NAME AS Tipus
,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5
WHEN DATEPART(MONTH, Datum) = 2 THEN 6
WHEN DATEPART(MONTH, Datum) = 3 THEN 7
WHEN DATEPART(MONTH, Datum) = 4 THEN 8
WHEN DATEPART(MONTH, Datum) = 5 THEN 9
WHEN DATEPART(MONTH, Datum) = 6 THEN 10
WHEN DATEPART(MONTH, Datum) = 7 THEN 11
WHEN DATEPART(MONTH, Datum) = 8 THEN 12
WHEN DATEPART(MONTH, Datum) = 9 THEN 1
WHEN DATEPART(MONTH, Datum) = 10 THEN 2
WHEN DATEPART(MONTH, Datum) = 11 THEN 3
WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId
AND ErtekelesTipusDictionary.C_TANEVID = @tanevId
WHERE ErtekelesTemp.MagatartasSzoveg IS NOT NULL
) AS szoveges ON szoveges.TANULOID = s.Id
AND szoveges.TanuloCsoportId = s.TanuloCsoportId
UNION
SELECT
s.id AS tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport AS s
INNER JOIN (
SELECT
ErtekelesTemp.TanuloId AS tanuloId
,TanuloCsoportId
,'[' + CONVERT(nvarchar (max), DATEPART(MONTH, Datum)) + '. hónap]' AS Honap
,'Szorgalom' AS Tantargy
,ErtekelesTemp.SzorgalomSzoveg + ISNULL(' *' + ErtekelesTema, '') AS Ertekeles
,ErtekelesTipusDictionary.C_NAME AS Tipus
,CASE WHEN DATEPART(MONTH, Datum) = 1 THEN 5
WHEN DATEPART(MONTH, Datum) = 2 THEN 6
WHEN DATEPART(MONTH, Datum) = 3 THEN 7
WHEN DATEPART(MONTH, Datum) = 4 THEN 8
WHEN DATEPART(MONTH, Datum) = 5 THEN 9
WHEN DATEPART(MONTH, Datum) = 6 THEN 10
WHEN DATEPART(MONTH, Datum) = 7 THEN 11
WHEN DATEPART(MONTH, Datum) = 8 THEN 12
WHEN DATEPART(MONTH, Datum) = 9 THEN 1
WHEN DATEPART(MONTH, Datum) = 10 THEN 2
WHEN DATEPART(MONTH, Datum) = 11 THEN 3
WHEN DATEPART(MONTH, Datum) = 12 THEN 4 END AS RendezHonap
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId
AND ErtekelesTipusDictionary.C_TANEVID = @tanevId
WHERE ErtekelesTemp.SzorgalomSzoveg IS NOT NULL
) AS szoveges ON szoveges.TANULOID = s.Id
AND szoveges.TanuloCsoportId = s.TanuloCsoportId
) AS a
ORDER BY
RendezHonap
,Tantargy
--Közösségi szolgálat
SELECT
TanuloId
,TanuloCsoportId
,Datum
,ISNULL(' - ' + Megjegyzes, '') AS Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) AS KozossegiSzolgalat
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
ORDER BY
IntervallumKezdete
--Félévi, év végi mulasztások
INSERT INTO #FeleviMulasztasok (
TanuloId
,TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
)
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId
,@tanevId = @tanevId
,@elmeletiOraPercben = 45
,@gyakorlatiOraPercben = 45
,@ertekelesTipus = 1519
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
INSERT INTO #EvVegiMulasztasok (
TanuloId
,TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
)
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId
,@tanevId = @tanevId
,@elmeletiOraPercben = 45
,@gyakorlatiOraPercben = 45
,@ertekelesTipus = 1520
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
SELECT
TanuloAlapAdatok.tanuloId AS TanuloId
,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) AS FeleviElmeletIgazolt
,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmeletIgazolatlan
,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) AS FeleviGyakorlatIgazolt
,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlatIgazolatlan
,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmelet
,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlat
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) AS EvVegiElmeletIgazolt
,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmeletIgazolatlan
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) AS EvVegiGyakorlatIgazolt
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlatIgazolatlan
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmelet
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlat
,ISNULL(FeleviMulasztasok.Osszes, 0) AS FeleviOsszes
,ISNULL(FeleviMulasztasok.Igazolt, 0) AS FeleviIgazolt
,ISNULL(FeleviMulasztasok.Igazolatlan, 0) AS FeleviIgazolatlan
,ISNULL(EvVegiMulasztasok.Osszes, 0) AS EvVegiOsszes
,ISNULL(EvVegiMulasztasok.Igazolt, 0) AS EvVegiIgazolt
,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) AS EvVegiIgazolatlan
,oktAzon AS oktAzon
,tanuloNeve AS tanuloNeve
FROM #TanuloAlapAdatok TanuloAlapAdatok
LEFT JOIN #EvVegiMulasztasok EvVegiMulasztasok ON EvVegiMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId
AND EvVegiMulasztasok.TanuloCsoportId = TanuloAlapAdatok.TanuloCsoportId
LEFT JOIN #FeleviMulasztasok FeleviMulasztasok ON FeleviMulasztasok.TanuloId = TanuloAlapAdatok.TanuloId
AND FeleviMulasztasok.TanuloCsoportId = TanuloAlapAdatok.TanuloCsoportId
ORDER BY
sorszam
--értékelésekhez tartozó feljegyzések 1. félév
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF(
(
SELECT DISTINCT
', ' + JelolesAndErtekelesTema
FROM #ErtekelesekTemp AS ErtekelesTemavalOsszefuz
WHERE LEN(JelolesAndErtekelesTema) > 0
AND Datum <= @FelevVege
AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId
AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId
AND ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) AS JelolesTemaval
FROM #ErtekelesekTemp AS ErtekelesTemaval
WHERE LEN(JelolesAndErtekelesTema) > 0
AND Datum <= @FelevVege
AND ErtekelesTemaval.ErtekelesSzoveg IS NULL
AND ErtekelesTemaval.MagatartasSzoveg IS NULL
AND ErtekelesTemaval.SzorgalomSzoveg IS NULL
--értékelésekhez tartozó feljegyzések 2. félév
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF(
(
SELECT DISTINCT
', ' + JelolesAndErtekelesTema
FROM #ErtekelesekTemp AS ErtekelesTemavalOsszefuz
WHERE LEN(JelolesAndErtekelesTema) > 0
AND Datum > @FelevVege
AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId
AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId
AND ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) AS JelolesTemaval
FROM #ErtekelesekTemp AS ErtekelesTemaval
WHERE LEN(JelolesAndErtekelesTema) > 0
AND Datum > @FelevVege
AND ErtekelesTemaval.ErtekelesSzoveg IS NULL
AND ErtekelesTemaval.MagatartasSzoveg IS NULL
AND ErtekelesTemaval.SzorgalomSzoveg IS NULL
--értékelésekhez tartozó feljegyzések
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF(
(
SELECT DISTINCT
', ' + JelolesAndErtekelesTema
FROM #ErtekelesekTemp AS ErtekelesTemavalOsszefuz
WHERE LEN(JelolesAndErtekelesTema) > 0
AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId
AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId
AND ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL
AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL
FOR XML PATH(''), TYPE
) .value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) AS JelolesTemaval
FROM #ErtekelesekTemp AS ErtekelesTemaval
WHERE LEN(JelolesAndErtekelesTema) > 0
AND ErtekelesTemaval.ErtekelesSzoveg IS NULL
AND ErtekelesTemaval.MagatartasSzoveg IS NULL
AND ErtekelesTemaval.SzorgalomSzoveg IS NULL
--összefüggő szakmai gyakorlat
SELECT
TanuloId
,TanuloCsoportId
,isTeljesitett
,Ertekeles
,Megjegyzes
,Datum
FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId, @osztalyId)
WHERE @tanuloId IS NULL
OR TanuloId = @tanuloId
--Tanuló tanult tantárgyai
SELECT DISTINCT
TANULO.ID AS TanuloId
,TANULO.TanuloCsoportId AS TanuloCsoportId
,STUFF(
(
SELECT
', ' + IIF(LEN(TANTARGYAK.C_NEV) > 128, SUBSTRING(TANTARGYAK.C_NEV, 1, 120) + '...', TANTARGYAK.C_NEV) AS TantargyNev
FROM #Tantargyak AS TANTARGYAK
LEFT JOIN T_TANULOCSOPORT_OSSZES AS tcs ON tcs.C_TANULOID = TANTARGYAK.c_tanuloid
AND tcs.C_OSZTALYCSOPORTID = @osztalyId
WHERE TANTARGYAK.c_tanuloid = TANULO.Id
AND tcs.ID = TANULO.TanuloCsoportId
AND TANTARGYAK.C_NEV NOT IN ('Magatartás', 'Szorgalom')
ORDER BY
TANTARGYAK.C_NEV
FOR XML PATH(''), TYPE
).value
('.', 'NVARCHAR(MAX)'), 1, 2, ''
) AS TantargyNev
FROM #studentsWithTanuloCsoport AS TANULO
-- Osztály és csoportok a naplóban, az iktatáskor szükséges többszörös Csoport név kulcsszóhoz
SELECT
*
FROM #osztalycsoportok
WHERE OsztalyCsoportId != @osztalyId
-- gyors feljegyzés statisztikák
-- Házifeladat hiány
SELECT
s.ID AS TanuloId
,s.TanuloCsoportId
,feljegyzes.Tantargy
,feljegyzes.Szeptember
,feljegyzes.Oktober
,feljegyzes.November
,feljegyzes.December
,feljegyzes.Januar
,feljegyzes.Februar
,feljegyzes.Marcius
,feljegyzes.Aprilis
,feljegyzes.Majus
,feljegyzes.Junius
,feljegyzes.Felev
,feljegyzes.Ossz
FROM #studentsWithTanuloCsoport AS s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6325, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS feljegyzes
WHERE feljegyzes.TanuloId = s.ID
-- Felszerelés hiány
SELECT
s.ID AS TanuloId
,s.TanuloCsoportId
,feljegyzes.Tantargy
,feljegyzes.Szeptember
,feljegyzes.Oktober
,feljegyzes.November
,feljegyzes.December
,feljegyzes.Januar
,feljegyzes.Februar
,feljegyzes.Marcius
,feljegyzes.Aprilis
,feljegyzes.Majus
,feljegyzes.Junius
,feljegyzes.Felev
,feljegyzes.Ossz
FROM #studentsWithTanuloCsoport AS s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6324, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS feljegyzes
WHERE feljegyzes.TanuloId = s.ID
-- Felmentés
SELECT
s.ID AS TanuloId
,s.TanuloCsoportId
,feljegyzes.Tantargy
,feljegyzes.Szeptember
,feljegyzes.Oktober
,feljegyzes.November
,feljegyzes.December
,feljegyzes.Januar
,feljegyzes.Februar
,feljegyzes.Marcius
,feljegyzes.Aprilis
,feljegyzes.Majus
,feljegyzes.Junius
,feljegyzes.Felev
,feljegyzes.Ossz
FROM #studentsWithTanuloCsoport AS s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1542, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS feljegyzes
WHERE feljegyzes.TanuloId = s.ID
--Dicséret
SELECT
s.ID AS TanuloId
,s.TanuloCsoportId
,feljegyzes.Tantargy
,feljegyzes.Szeptember
,feljegyzes.Oktober
,feljegyzes.November
,feljegyzes.December
,feljegyzes.Januar
,feljegyzes.Februar
,feljegyzes.Marcius
,feljegyzes.Aprilis
,feljegyzes.Majus
,feljegyzes.Junius
,feljegyzes.Felev
,feljegyzes.Ossz
FROM #studentsWithTanuloCsoport AS s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1536, 1, @FelevVege, s.BelepesDatum, s.KilepesDatum) AS feljegyzes
WHERE feljegyzes.TanuloId = s.ID
END
GO