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

1521 lines
56 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 dbo.fnGetOsztalyVegzosTanitasiNap(@osztalyId, @intezmenyId, @tanevId))
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 <= @UtolsoNap)
BEGIN
IF (@orarendErvenyessegiDatum <= @ElsoNap)
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 @UtolsoNap >= CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap <= 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,
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)
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 fnGetKapcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNap, @UtolsoNap, @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 = @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 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 DISTINCT
targy.C_NEV AS TargyNev
,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.C_NYOMTATASINEV NOT LIKE '[[]BTA%' AND tanar.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
ORDER BY targykategoria.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 ISNULL(C_KILEPESDATUM, @UtolsoNap)
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))
CREATE TABLE #HetAdatok (C_HETSORSZAMA INT, KezdoDatum DATE, VegeDatum DATE)
INSERT INTO #HetAdatok
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 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 ha
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
,ha.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 #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum
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 OsszesOra.Oraszam = @MinOraszam
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, N'@MinOraszam int', @MinOraszam
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 AND Tipusa NOT IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553)) 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*/
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
);
--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 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 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,
@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,
@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(TANTARGYAK.C_NEV) > 128, SUBSTRING(TANTARGYAK.C_NEV,1,120) + '...' , TANTARGYAK.C_NEV) TantargyNev
FROM #Tantargyak TANTARGYAK
LEFT JOIN T_TANULOCSOPORT_OSSZES 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,'') 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