kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190123100618_OM_2035/sp_GetOsztalyNaplo.sql
2024-03-13 00:33:46 +01:00

1489 lines
54 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS sp_GetOsztalyNaplo
GO
CREATE PROCEDURE sp_GetOsztalyNaplo
@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 = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @ElsoNapTanev DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
DECLARE @ElsoNap DATE = ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev)
DECLARE @UtolsoNap DATE = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap,@UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
DECLARE @VizsgaltNap DATE
IF (@tanevId = @AktivtanevId AND @orarendErvenyessegiDatum <= @UtolsoNapTanevRendje)
BEGIN
IF (@orarendErvenyessegiDatum <= @ElsoNapTanevRendje)
BEGIN
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
END
ELSE
BEGIN
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
END
END
ELSE
BEGIN
SET @VizsgaltNap = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNapTanevRendje >= CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNapTanevRendje <= CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
END
CREATE TABLE #NapSorszamTemp (
Datum DATE
)
INSERT INTO #NapSorszamTemp
EXEC sp_GetDokumentumTanitasiNapokSorszama
@tanevId = @tanevId,
@osztalyId = @osztalyId
CREATE TABLE #NapSorszam (Datum DATE, Sorszam NVARCHAR(4))
INSERT INTO #NapSorszam
SELECT
Sorszam.Datum Datum
,CAST(DENSE_RANK() OVER(ORDER BY Sorszam.Datum) AS NVARCHAR(4))
FROM #NapSorszamTemp Sorszam
INNER JOIN fnGetDokumentumOsztalyMegtartottOrakSzama(@tanevId, @osztalyId) OrakSzama ON OrakSzama.Datum = Sorszam.Datum
WHERE
Sorszam.Datum <= @UtolsoNap
AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL)
AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama >= @minTanoraSzam)
SELECT
TanuloId Id
,tanugyiAdatok.C_NAPLOSORSZAM NaploSorszam
,tanugyiAdatok.C_TORZSLAPSZAM TorzslapSzam
,TanuloCsoport.Id TanuloCsoportId
,OsztalyTanuloi.BelepesDatum BelepesDatum
,OsztalyTanuloi.KilepesDatum KilepesDatum
--ÁGAZAT ETC....
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') 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) Honap
,TantargyId Id
,Igazolt IgazoltE
,TanuloId TanuloId
,TanuloCsoportId TanuloCsoportId
,IgazolasTipusa IgazolasTipus
,Datum Datum
,Tipusa Tipus
,KesesPercben KesesPercben
,HetSorszama HetSorszama
,Oraszam Oraszam
,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat
,C_GYAKORLATI isGyakorlat
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) 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)) 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)
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)
)
SELECT
[Datum],
[TipusId],
[ErtekelesSzoveg],
[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]
INTO
[#ErtekelesekTemp]
FROM
[fnGetDokumentumErtekelesekOsztalyonkent](@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
CREATE CLUSTERED INDEX ci111 on #ErtekelesekTemp (datum, tanulocsoportid)
-- Naplo fooldal
CREATE TABLE #osztalycsoportok (OsztalyCsoportId INT PRIMARY KEY, Kezdete DATE, Vege DATE)
INSERT INTO #osztalycsoportok (OsztalyCsoportId, Kezdete, Vege)
SELECT
OsztalyCsoportok.Id
,OsztalyCsoportok.Kezdete
,OsztalyCsoportok.Vege
FROM fnGetKopcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNapTanevRendje,@UtolsoNapTanevRendje, @intezmenyId, @tanevId) OsztalyCsoportok
INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) TanoraiCeluOsztalyCsoportok on TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id
CREATE TABLE #OraSorszamTemp (TanitasioraId INT, OraSorszam INT)
CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT)
DECLARE csoport_cursor CURSOR FOR
SELECT OsztalyCsoportId FROM #osztalycsoportok
DECLARE @ocsId int
OPEN csoport_cursor
FETCH NEXT FROM csoport_cursor INTO @ocsId
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #OraSorszamTemp
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @ocsId,
@datum = @UtolsoNapTanevRendje,
@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 TanitasioraId
,tao.C_DATUM Datum
,IIF(tao.C_ORASZAM IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108), @tanevId), tao.C_ORASZAM) Oraszam
,pedagogus.ID PedagogusId
,IIF(C_MEGTARTOTT = 'T', pedagogus.C_NYOMTATASINEV, '-') PedagogusNev
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam) + '.','-'), '-') 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 +') ', '' ) 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') TemaOraSzammal
,tao.C_HETNAPJA HetNapja
,nh.C_HETSORSZAMA HetSorszama
,C_MEGTARTOTT Megtartott
,tao.C_TANTARGYID TantargyId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev
,tao.C_OSZTALYCSOPORTID 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 , '[', '('), ']',')') 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) 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)
DECLARE @MaxOraszam INT = (SELECT ISNULL(MAX(Oraszam), 4) FROM #megtartottOrak)
DECLARE @MinOraszam INT = (SELECT ISNULL(MIN(Oraszam), 1) FROM #megtartottOrak)
DECLARE @TanulokSzama INT = (SELECT COUNT(DISTINCT TanuloId) FROM #ErtekelesekTemp WHERE TipusId = 1520)
DECLARE @TanitasiNapokSzama INT = (SELECT MAX(CAST(Sorszam AS INT)) FROM #NapSorszam)
SELECT DISTINCT
@osztalyId OsztalyId
,ocs.C_NEV OsztalyNev
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
,o.C_OSZTALYFONOKID PartnerID
,ofo.C_NYOMTATASINEV Osztalyfonok
,o.C_OFOHELYETTESID OsztalyfonokHelyettesId
,i.C_IGAZGATONEVE IntezmenyVezeto
,i.C_NEV IntezmenyNeve
,i.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,i.C_OMKOD IntezmenyOMKod
,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOMEGNYITASA) NaploMegnyitasanakDatuma
,dbo.fnGetDokumentumDatumFormatum(o.C_OSZTALYNAPLOZARASA) NaploZarasanakDatuma
,o.C_OSZTALYNAPLOZARASA NaplozarasDateFormat
,@TanulokSzama TanulokSzama
,@TanitasiNapokSzama TanitasiNapokSzama
,@MaxOraszam MaxOraszam
,@MinOraszam MinOraszam
,@tanevId TanevId
,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 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
BEGIN
SELECT
targy.C_NEV TargyNev
,tanar.C_NYOMTATASINEV TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO TanarOktAzon
FROM T_FELHASZNALO_OSSZES tanar
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F'
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F'
INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = f.C_OSZTALYCSOPORTID
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId
WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F'
AND tanar.C_INTEZMENYID = @intezmenyId
AND tanar.c_tanevId = @tanevId
GROUP BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV, tanar.ID, tanar.C_OKTATASIAZONOSITO
ORDER BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
END
ELSE
BEGIN
SELECT DISTINCT
Tanulok.Id TanuloId
,Tantargy.C_NEV TargyNev
,Tanar.C_NYOMTATASINEV TanarNev
,C_ORDER
FROM #students Tanulok
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.Id AND TanuloCsoport.TOROLT = 'F' AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND COALESCE(C_KILEPESDATUM, @UtolsoNapTanevRendje, @UtolsoNapTanev)
INNER JOIN T_FOGLALKOZAS_OSSZES Foglalkozas ON Foglalkozas.C_OSZTALYCSOPORTID = TanuloCsoport.C_OSZTALYCSOPORTID AND Foglalkozas.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.Id = Foglalkozas.C_TANARID
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES TargyKategoria ON TargyKategoria.ID = Tantargy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoria_order ON TargyKategoria.ID = TargyKategoria_order.ID AND TargyKategoria_order.TOROLT = 'F' AND TargyKategoria_order.C_TANEVID = @tanevId
ORDER BY C_ORDER
END
-- Orarend
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum
-- Oralatogatasok
SELECT
dbo.fnGetDokumentumDatumFormatum(T_ORALATOGATAS_OSSZES.C_DATUM) DATUM
,TANITASIORA.C_ORASZAM ORASZAM
,TARGY.C_NEV TARGYNEV
,T_FELHASZNALO_OSSZES.C_NYOMTATASINEV LATOGATO
,T_ORALATOGATAS_OSSZES.C_ORALATOGATOBEOSZTASA LATOGATOBEOSZTAS
,T_ORALATOGATAS_OSSZES.C_MEGJEGYZES 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 ) TANITASIORA ON TANITASIORA.ID = T_ORALATOGATAS_OSSZES.C_MEGTARTOTTORAID
INNER JOIN T_TANTARGY_OSSZES TARGY ON TARGY.ID = TANITASIORA.C_TANTARGYID
INNER JOIN #osztalycsoportok 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)
BEGIN
SELECT NULL DATUM, NULL ORASZAM, NULL TARGYNEV, NULL LATOGATO, NULL LATOGATOBEOSZTAS, '' ESZREVETEL
END
ELSE
BEGIN
SELECT DATUM, ORASZAM, TARGYNEV, LATOGATO, LATOGATOBEOSZTAS, ESZREVETEL FROM #Oralatogatas ORDER BY DATUM
END
-- Naploellenorzesek
SELECT DISTINCT
dbo.fnGetDokumentumDatumFormatum(C_ELLENORZESDATUMA) ELLENORZESDATUMA
,ELLENORZO.C_NYOMTATASINEV ELLENORZOSZEMELY
,T_NAPLOELLENORZES_OSSZES.C_ESZREVETEL ESZREVETEL
INTO #NaploEllenorzes
FROM T_NAPLOELLENORZES_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES 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)
BEGIN
SELECT NULL ELLENORZESDATUMA, NULL ELLENORZOSZEMELY, NULL ESZREVETEL
END
ELSE
BEGIN
SELECT ELLENORZESDATUMA, ELLENORZOSZEMELY, ESZREVETEL FROM #NaploEllenorzes
END
/* Napló */
DECLARE @HetUtolsoNapjaMegtartottOra INT = (SELECT IIF(MAX(HetNapja) IS NULL OR MAX(HetNapja) <= 1412 , 1412, MAX(HetNapja)) FROM #megtartottOrak)
DECLARE @HetUtolsoNapjaTanevendje INT = (SELECT ISNULL(MAX(C_HETNAPJA), 1412) FROM #NapSorszam NapSorszam
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = NapSorszam.Datum AND NaptariNap.C_TANEVID = @tanevId
)
DECLARE @HetUtolsoNapja INT = (SELECT IIF(@HetUtolsoNapjaMegtartottOra >= @HetUtolsoNapjaTanevendje, @HetUtolsoNapjaMegtartottOra, @HetUtolsoNapjaTanevendje))
SELECT
nh.C_HETSORSZAMA
,dbo.fnGetDokumentumDatumFormatum(MIN(nn.C_NAPDATUMA))
,dbo.fnGetDokumentumDatumFormatum(MAX(nn.C_NAPDATUMA))
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F'
WHERE
nn.C_NAPDATUMA BETWEEN @ElsoNap AND @UtolsoNap
AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja
AND nn.TOROLT='F'
AND nn.C_TANEVID = @tanevId
GROUP BY nh.C_HETSORSZAMA
ORDER BY MIN(nn.C_NAPDATUMA)
CREATE TABLE #OsszesOra (
Datum DateTime
,FormatDate NVARCHAR(100)
,Oraszam INT
,HetSorszama INT
,HetNapja NVARCHAR(100)
,Megjegyzes NVARCHAR(1000)
,Sorszam NVARCHAR(30)
)
INSERT INTO #OsszesOra
SELECT
Datum
,FormatDate
,Oraszam
,HetSorszama
,HetNapja
,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) Megjegyzes
,Sorszam
FROM(
SELECT
C_NAPDATUMA Datum
,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) FormatDate
,oraszam Oraszam
,nh.C_HETSORSZAMA HetSorszama
,AlapHetnapja.C_NAME 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 +')', '')
Megjegyzes
,ISNULL(Sorszam,'-') Sorszam
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F'
LEFT JOIN #NapSorszam sorszam ON sorszam.Datum = nn.C_NAPDATUMA
LEFT JOIN T_TANEVRENDJE_OSSZES 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, '') Megjegyzes
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES HetNapja ON HetNapja.ID = tr.C_HETNAPJA AND HetNapja.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES 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'
) osztalyCsoportTanevRendje ON osztalyCsoportTanevRendje.C_DATUM = nn.C_NAPDATUMA
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES trNaptipus ON trNaptipus.ID = tr.C_NAPTIPUSA AND trNaptipus.C_TANEVID = @tanevId AND tr.C_NAPTIPUSA <> 1385
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AlapHetnapja ON AlapHetnapja.Id = nn.C_ALAPHETNAPJA AND AlapHetnapja.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES 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)) 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
) NapAdatok
IF (@MinOraszam > 0)
BEGIN
DELETE FROM #OsszesOra WHERE Oraszam = 0
END
IF @isSzovegesNaplo = 0 BEGIN /* NORMÁL OSZTÁLYNAPLÓ */
DECLARE @selectList nvarchar(MAX),
@pivotList nvarchar(MAX)
SELECT
MulasztasokKulso.Datum Datum
,Felhasznalo.C_NYOMTATASINEV
+ ' [' + STUFF((
SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS VARCHAR(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '')
FROM #mulasztasTmp 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)) Hianyzas
INTO #hianyzasokTMP
FROM #mulasztasTmp MulasztasokKulso
INNER JOIN T_FELHASZNALO_OSSZES 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 bHianyzasok
WHERE
Hianyzasok.Datum = bHianyzasok.Datum
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Hianyzas
INTO #hianyzasok
FROM #hianyzasokTMP Hianyzasok
SELECT DISTINCT
Datum
,HetSorszama
,HetNapja
,Oraszam
,STUFF((SELECT
CAST(bmto.TantargyNev AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #megtartottOrak bmto
WHERE
bmto.Datum = mto.Datum
AND bmto.Oraszam = mto.Oraszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Tantargy
INTO #Orarend
FROM #megtartottOrak mto
SELECT DISTINCT
Datum
,@MinOraszam Oraszam
,TantargyPedagogussal
,STUFF((SELECT DISTINCT
CAST(bmto.TemaOraSzammal AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM #megtartottOrak bmto
WHERE
bmto.Datum = mto.Datum
AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Tema
INTO #1nap1TantargyTobbOra
FROM #megtartottOrak mto
DECLARE @tantargyakNevvel NVARCHAR(MAX)
SELECT @tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + IIF(LEN(TantargyPedagogussal) > 128, SUBSTRING(TantargyPedagogussal, 1, 120) + '...', TantargyPedagogussal) + ']'
FROM (SELECT DISTINCT TantargyPedagogussal, C_TARGYKATEGORIA FROM #megtartottOrak m INNER JOIN T_TANTARGY_OSSZES t ON t.Id = m.TantargyId ) t
ORDER BY C_TARGYKATEGORIA
DECLARE @sql NVARCHAR(MAX)
SET @sql = '
SELECT
Datum
,Oraszam
, ' + @tantargyakNevvel +'
INTO #naplo
FROM #1nap1TantargyTobbOra
PIVOT (MAX(Tema) FOR TantargyPedagogussal IN (' + @tantargyakNevvel + ')) piv
SELECT DISTINCT
OsszesOra.FormatDate C_NAPDATUMA
,Hianyzas Mulasztas
,OsszesOra.Oraszam ORASZAM
,NULL T1ID
,NULL T2ID
,NULL T3ID
,Orarend.Tantargy TANTARGY
,OsszesOra.HetSorszama C_HETSORSZAMA
,OsszesOra.HetNapja C_HETNAPJA_DNAME
,OsszesOra.Sorszam NapSorszama
,OsszesOra.Megjegyzes 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 Naplo.Oraszam = OsszesOra.Oraszam
LEFT JOIN #hianyzasok Hianyzasok ON Hianyzasok.Datum = OsszesOra.Datum
ORDER BY OsszesOra.FormatDate, Oraszam
'
IF @sql IS NULL
BEGIN
SELECT
NULL C_NAPDATUMA
,NULL Mulasztas
,NULL Megjegyzés
,NULL ORASZAM
,NULL T1ID
,NULL T2ID
,NULL T3ID
,NULL TANTARGY
,NULL C_HETSORSZAMA
,NULL C_HETNAPJA_DNAME
,NULL NapSorszama
END
ELSE
BEGIN
EXEC sp_executesql @sql
END
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 C_NAPDATUMA
,OsszesOra.HetNapja Napneve
,OsszesOra.Megjegyzes C_MEGJEGYZES
,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA
,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA
,OsszesOra.HetSorszama C_HETSORSZAMA
,OsszesOra.Oraszam OraSorszam
,OsszesOra.Sorszam Napszam
,Tantargynev Tantargy
,PedagogusNev Tanar
,Tema Oraanyaga
,OraSorszam C_ORAEVESSORSZAM
INTO #szoveges
FROM #OsszesOra OsszesOra
LEFT JOIN #megtartottOrak mto ON mto.Datum = OsszesOra.Datum AND OsszesOra.Oraszam = mto.Oraszam
INNER JOIN T_NAPTARIHET_OSSZES 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) C_NAPDATUMA
,Napneve
,C_MEGJEGYZES
,C_HETKEZDONAPJA
,C_HETUTOLSONAPJA
,C_HETSORSZAMA
,OraSorszam
,Napszam
,(SELECT CAST(bszov.TANTARGY AS NVARCHAR(MAX)) + NCHAR(10)
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH('')) TANTARGY
,(SELECT CAST(bszov.TANAR AS NVARCHAR(MAX)) + NCHAR(10)
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH('')) TANAR
,(SELECT CAST(bszov.ORAANYAGA AS NVARCHAR(MAX)) + NCHAR(10)
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH('')) ORAANYAGA
,(SELECT CAST(bszov.C_ORAEVESSORSZAM AS NVARCHAR(MAX)) + NCHAR(10)
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH('')) OraEvesSorszama
FROM #szoveges szov
ORDER BY dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA), orasorszam
/*Hiányzások*/
SELECT
NapiMulasztas.HetSorszama
,TanuloNeve
,NapiMulasztas.TanuloId
,MAX(Hetfo) Hetfo
,MAX(Kedd) Kedd
,MAX(Szerda) Szerda
,MAX(Csutortok) Csutortok
,MAX(Pentek) Pentek
,MAX(Szombat) Szombat
,HetiMulasztas
FROM (
SELECT
HetSorszama
,TanuloNeve
,TanuloId
,TanuloCsoportId
,[1408] Hetfo
,[1409] Kedd
,[1410] Szerda
,[1411] Csutortok
,[1412] Pentek
,[1413] Szombat
FROM
(
SELECT DISTINCT
HetSorszama
,C_NYOMTATASINEV TanuloNeve
,TanuloId
,TanuloCsoportId
,Datum
,C_ALAPHETNAPJA Hetnapja
,'[' + STUFF((
SELECT ', ' + CAST(MulasztasokBelso.Oraszam AS VARCHAR(3)) + IIF(MulasztasokBelso.Tipus = 1499, '(k)', '')
FROM #mulasztasTmp 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)) Hianyzas
FROM #mulasztasTmp MulasztasokKulso
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = MulasztasokKulso.TanuloId
INNER JOIN T_NAPTARINAP_OSSZES NaptariNap ON NaptariNap.C_NAPDATUMA = MulasztasokKulso.Datum AND NaptariNap.C_TANEVID = @tanevId
GROUP BY Hetsorszama, C_NYOMTATASINEV, TanuloId, TanuloCsoportId, Datum, C_ALAPHETNAPJA, TanuloId
) OsszefuzottMulasztasok
PIVOT (MAX(Hianyzas) FOR HetNapja IN ([1408], [1409], [1410], [1411], [1412], [1413])) piv
) NapiMulasztas
INNER JOIN #HetiMulasztasok 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 --SZÖVEGES OSZTÁLYNAPLÓ
/*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
/*TANULÓ elérhetoségei */
CREATE TABLE #Gondviselok (TanuloId INT, GondviseloId INT PRIMARY KEY CLUSTERED)
INSERT INTO #Gondviselok
SELECT
TanuloId
,GondviseloId
FROM fnGetDokumentumGondviselok (@osztalyId, @tanevId, 'F', 'T')
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
CREATE TABLE #TanuloCimTable (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
INSERT INTO #TanuloCimTable
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
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
CREATE TABLE #GondViseloCimTable (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
INSERT INTO #GondViseloCimTable
SELECT
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
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO #EmailCimTableTemp
SELECT
tanulo.Id
,C_EMAILCIM
,C_GONDVISELOID
FROM #students tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = tanulo.Id
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
UNION
SELECT
TanuloId
,C_EMAILCIM
,GondviseloId
FROM #Gondviselok
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
CREATE TABLE #EmailCimTanuloTable(FelhasznaloId INT, EmailCim NVARCHAR(MAX),
INDEX IX_EmailCimTanuloTable CLUSTERED (FelhasznaloId))
INSERT INTO #EmailCimTanuloTable
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
CREATE TABLE #EmailCimGondviseloTable(GondviseloId INT PRIMARY KEY CLUSTERED, EmailCim NVARCHAR(MAX))
INSERT INTO #EmailCimGondviseloTable
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
CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId))
INSERT INTO #TelefonTableTemp
SELECT
tanulo.Id
,C_TELEFONSZAM
,C_GONDVISELOID
FROM #students tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = tanulo.Id
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
UNION
SELECT
TanuloId
,C_TELEFONSZAM
,GondviseloId
FROM #Gondviselok gondviselo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
CREATE TABLE #TanuloTelefonTable(FelhasznaloId INT PRIMARY KEY CLUSTERED, Telefon NVARCHAR(MAX))
INSERT INTO #TanuloTelefonTable
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
CREATE TABLE #GondviseloTelefonTable(GondviseloId INT PRIMARY KEY CLUSTERED,Telefon NVARCHAR(MAX))
INSERT INTO #GondviseloTelefonTable
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 tanuloid
,cim.Cimtipusa cimtipus
,cim.Cim
,email.EmailCim email
,telefon.Telefon 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) 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 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 Tipusa IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553)
/* TANULÓ feljegyzései */
SELECT
s.ID TanuloID
,s.TanuloCsoportId TanuloCsoportId
,ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) Sorszam
,dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,d.C_NAME Tipus
,Tartalom Tartalom
,FeljegyzoNeve 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 OR
(Tipusa IN
(
--KRETA-5569
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
/*gondviselo elérhetoségei */
SELECT DISTINCT
Gondviselok.TanuloId Id
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' C_NEV
,cim.Cimtipusa C_CIMTIPUSA
,cim.cim C_OSSZETETTCIM
,telefon.telefon C_TELEFONSZAM
,email.emailcim 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
WHERE (@tanuloId IS NULL OR Gondviselok.TanuloId = @tanuloId)
ORDER BY 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
/* TANULÓ záradékai */
SELECT
TanuloId
,TanuloCsoportId
,Bejegyzes Zaradek
FROM fnGetDokumentumTanuloZaradekai(@tanevId, @osztalyId)
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 tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport s
INNER JOIN (SELECT
TanuloId tanuloId
,TanuloCsoportId
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap
,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) Tantargy
,ErtekelesSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles
,ErtekelesTipusDictionary.C_NAME 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
) szoveges on szoveges.TANULOID=s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId
UNION
SELECT
s.id tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport s
INNER JOIN (SELECT
ErtekelesTemp.TanuloId tanuloId
,ErtekelesTemp.TanuloCsoportId
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap
,'Magatartás' Tantargy
,ErtekelesTemp.MagatartasSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles
,ErtekelesTipusDictionary.C_NAME 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
) szoveges on szoveges.TANULOID=s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId
UNION
SELECT
s.id tanuloId
,s.TanuloCsoportId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #studentsWithTanuloCsoport s
INNER JOIN (SELECT
ErtekelesTemp.TanuloId tanuloId
,TanuloCsoportId
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap
,'Szorgalom' Tantargy
,ErtekelesTemp.SzorgalomSzoveg + ISNULL(' *' + ErtekelesTema, '') Ertekeles
,ErtekelesTipusDictionary.C_NAME 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
) szoveges on szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId
)a
ORDER BY RendezHonap, Tantargy
--Közösségi szolgálat
SELECT
TanuloId
,TanuloCsoportId
,Datum
,ISNULL(' - ' + Megjegyzes, '') Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) KozossegiSzolgalat
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
ORDER BY IntervallumKezdete
--Félévi, év végi mulasztások
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
)
INSERT INTO #FeleviMulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = 1,
@kesesTipus = 1499,
@elmeletiOraPercben = 45,
@gyakorlatiOraPercben = 45,
@ertekelesTipus = 1519,
@iskolaErdekuSzamit = @iskolaErdekuSzamit
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
)
INSERT INTO #EvVegiMulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = 1,
@kesesTipus = 1499,
@elmeletiOraPercben = 45,
@gyakorlatiOraPercben = 45,
@ertekelesTipus = 1520,
@iskolaErdekuSzamit = @iskolaErdekuSzamit
SELECT
TanuloAlapAdatok.tanuloId TanuloId
,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) FeleviElmeletIgazolt
,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmeletIgazolatlan
,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) FeleviGyakorlatIgazolt
,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlatIgazolatlan
,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) FeleviElmelet
,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) FeleviGyakorlat
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) EvVegiElmeletIgazolt
,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmeletIgazolatlan
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) EvVegiGyakorlatIgazolt
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlatIgazolatlan
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) EvVegiElmelet
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) EvVegiGyakorlat
,ISNULL(FeleviMulasztasok.Osszes, 0) FeleviOsszes
,ISNULL(FeleviMulasztasok.Igazolt, 0) FeleviIgazolt
,ISNULL(FeleviMulasztasok.Igazolatlan, 0) FeleviIgazolatlan
,ISNULL(EvVegiMulasztasok.Osszes, 0) EvVegiOsszes
,ISNULL(EvVegiMulasztasok.Igazolt, 0) EvVegiIgazolt
,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) EvVegiIgazolatlan
,oktAzon oktAzon
,tanuloNeve 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 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,'') JelolesTemaval
FROM #ErtekelesekTemp 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 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,'') JelolesTemaval
FROM #ErtekelesekTemp 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 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,'') JelolesTemaval
FROM #ErtekelesekTemp 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 TanuloId
,TANULO.TanuloCsoportId TanuloCsoportId
,STUFF((SELECT ', ' + IIF(LEN(TantargyNev) > 128, SUBSTRING(TantargyNev,1,120) + '...' , TantargyNev) TantargyNev
FROM fnGetDokumentumTanulokTanultTantargyai (@tanevId, @osztalyId) TANTARGYAK
WHERE
TANTARGYAK.TanuloId = TANULO.Id
AND TANTARGYAK.TanuloCsoportId = TANULO.TanuloCsoportId
ORDER BY TantargyNev
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') TantargyNev
FROM #studentsWithTanuloCsoport 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 s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6325, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) 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 s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6324, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) 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 s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 1542, 0, @FelevVege, s.BelepesDatum, s.KilepesDatum) 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 s
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 1536, 1, @FelevVege, s.BelepesDatum, s.KilepesDatum) feljegyzes
WHERE feljegyzes.TanuloId = s.ID
END
GO