kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetOsztalyNaplo.sql
2024-03-13 00:33:46 +01:00

2008 lines
No EOL
86 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetOsztalyNaplo
GO
CREATE PROCEDURE uspGetOsztalyNaplo
@intezmenyId int
,@tanevId int
,@osztalyId int
,@isSzovegesNaplo bit = 0
,@iskolaErdekuSzamit bit
,@fuggolegesTantargyak bit
,@aktivTanevId int
,@isReszletesMulasztasok bit
,@isEgyebFoglalkozasok bit
,@minTanoraSzam int
,@isEllenorzo bit = 0
,@orarendErvenyessegiDatum date
,@tanuloId int = NULL
,@negyedevreSzamoltMulasztasok bit = 1
,@igazolasTipusTypeId int = 47
,@osztalyzatTipusTypeID int = 44
,@magatartasErtekelesTipusTypeID int = 50
,@szorgalomErtekelesTipusTypeID int = 51
,@isOsztalyTanuloOrarendbenNemLatszik bit = NULL
,@isDebug bit = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TanevUtlsoNapja DATE = (SELECT C_UTOLSONAP FROM T_TANEV_OSSZES WHERE ID=@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 @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @isVegzos CHAR(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 = (SELECT TOP 1 C_KEZDONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @UtolsoNap DATE = IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap, @UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
CREATE TABLE #szovegesTemp (
TanuloId int
,TanuloCsoportId int
,Honap nvarchar(100)
,Tantargy nvarchar(510)
,Ertekeles nvarchar(MAX)
,Tipus nvarchar(500)
,RendezHonap int
)
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 fnGetDokumentumKapcsolodoOsztalyCsoportokByDateRange (@osztalyId, @ElsoNap, @TanevUtlsoNapja, @intezmenyId, @tanevId) OsztalyCsoportok
INNER JOIN fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId) TanoraiCeluOsztalyCsoportok on TanoraiCeluOsztalyCsoportok.ID = OsztalyCsoportok.Id
CREATE TABLE #RendkivuliTanitasiNapok (C_NAPDATUMA datetime
,C_ALAPHETNAPJA int
,C_HETNAPJA int
,C_TANEVID int
,TOROLT char
,C_HETSORSZAMA int)
INSERT INTO #RendkivuliTanitasiNapok
SELECT
nn.C_NAPDATUMA
,nn.C_ALAPHETNAPJA
,nn.C_HETNAPJA
,nn.C_TANEVID
,nn.TOROLT
,nn.C_HETSORSZAMA
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA
AND tr.C_TANEVID = nn.C_TANEVID
AND tr.C_DATUM > @UtolsoNap
AND tr.C_NAPTIPUSA=1406 /* Rendkívüli tanítási nap */
AND tr.TOROLT = 'F'
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
WHERE nn.C_TANEVID=@tanevId
AND nn.TOROLT='F'
UNION
SELECT
nn.C_NAPDATUMA
,nn.C_ALAPHETNAPJA
,nn.C_HETNAPJA
,nn.C_TANEVID
,nn.TOROLT
,nn.C_HETSORSZAMA
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = ocstr.C_OSZTALYCSOPORTID
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID
AND tr.C_DATUM > @UtolsoNap
AND tr.C_NAPTIPUSA=1406 /* Rendkívüli tanítási nap */
AND tr.TOROLT = 'F'
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
INNER JOIN T_NAPTARINAP_OSSZES nn ON tr.C_DATUM = nn.C_NAPDATUMA
AND tr.C_TANEVID = nn.C_TANEVID
DECLARE @UtolsoRendkivuliTanitasiNap DATETIME = (SELECT MAX(C_NAPDATUMA) FROM #RendkivuliTanitasiNapok)
DECLARE @VizsgaltNap DATE
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
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 (@minTanoraSzam = 0 OR OrakSzama.OrakSzama IS NOT NULL)
AND (@minTanoraSzam = 0 OR OrakSzama.OrakSzama >= @minTanoraSzam)
SELECT
TanuloId AS Id
,tanugyiAdatok.C_NAPLOSORSZAM AS NaploSorszam
,tanugyiAdatok.C_TORZSLAPSZAM AS TorzslapSzam
,TanuloCsoport.Id AS TanuloCsoportId
,OsztalyTanuloi.BelepesDatum AS BelepesDatum
,OsztalyTanuloi.KilepesDatum AS KilepesDatum
,tanugyiAdatok.C_TANULOEVFOLYAMTIPUSID AS EvfolyamTipusa
--Á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
,IIF(C_NEVSORREND = 'T',
C_UTONEV + ' ' + C_VEZETEKNEV,
C_VEZETEKNEV + ' ' + C_UTONEV) AS NevElotagNelkul
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @iskolaErdekuSzamit, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = TanuloId
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),
[MagatartasSzovegFormazott] NVARCHAR(3),
[MagatartasSzovegRovidNev] NVARCHAR(3),
[MagatartasErtekId] INT,
[MagatartasErtek] NVARCHAR(MAX),
[MagatartasErtekOsztalyzatkent] INT,
[SzorgalomOsztalyzatId] INT,
[SzorgalomOsztalyzatValue] INT,
[SzorgalomOsztalyzatNev] NVARCHAR(MAX),
[SzorgalomSzoveg] NVARCHAR(MAX),
[SzorgalomSzovegFormazott] NVARCHAR(3),
[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
,RogzitesDatum
,TipusId
,TanuloCsoportId
,ErtekelesSzoveg
,ErtekelesSzovegFormazott
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegFormazott
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegFormazott
,SzorgalomSzovegRovidNev
,SzorgalomErtekId
,SzorgalomErtek
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNev
,TantargyNevNyomtatvanyban
,TargyKategoriaId
,FotargyE
,FotargyId
,Altantargy
,ErtekelesTema
,Jeloles
,JelolesAndErtekelesTema
,isMagatartasSzorgalom
,RENDEZ0
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID)
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
CREATE CLUSTERED INDEX ci111 on #ErtekelesekTemp (datum, tanulocsoportid)
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
DECLARE @nap DATETIME = (SELECT COALESCE(@UtolsoRendkivuliTanitasiNap, @UtolsoNap));
INSERT INTO #OraSorszamTemp
EXEC uspGetOraSorszamByOsztaly
@osztalyCsoportId = @ocsId,
@datum = @nap,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
FETCH NEXT FROM csoport_cursor INTO @ocsId
END
CLOSE csoport_cursor
DEALLOCATE csoport_cursor
INSERT INTO #OraSorszam
SELECT DISTINCT TanitasioraId, OraSorszam FROM #OraSorszamTemp
SELECT
tao.Id AS TanitasioraId
,tao.C_DATUM AS Datum
,IIF(tao.C_ORASZAM IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108), @tanevId), tao.C_ORASZAM) AS Oraszam
,pedagogus.ID AS PedagogusId
,IIF(C_MEGTARTOTT = 'T', IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV), '-') AS PedagogusNev
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam) + '.','-'), '-') AS OraSorszam
,IIF(C_MEGTARTOTT = 'T'
,IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(VARCHAR(5), C_ORAKEZDETE, 108) + ' - ' + CONVERT(VARCHAR(5), C_ORAVEGE, 108) + ') ', '')
+ REPLACE(REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), CHAR(0x0002), '')
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás: ' + helyettesito.C_NYOMTATASINEV +')', '')
+ IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), ' (Helyettesitve: ' + pedagogus.C_NYOMTATASINEV + IIF(tao.C_HELYETTESITESOKA IS NOT NULL, ' (' + tao.C_HELYETTESITESOKA + ')', '') + ')', '')
,'Elmaradt' + IIF(tao.C_MEGJEGYZES IS NOT NULL, ' - ' + tao.C_MEGJEGYZES, '')
) AS Tema
,IIF(C_MEGTARTOTT = 'T'
,IIF(C_CSENGETESIRENDORAID IS NULL, '(' + CONVERT(VARCHAR(5), C_ORAKEZDETE, 108) + ' - ' + CONVERT(VARCHAR(5), C_ORAVEGE, 108) + ') ', '')
+ ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') + '.: '
+ REPLACE(REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), CHAR(0x0002), '')
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ')', '')
+ IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), ' (Helyettesitve: ' + pedagogus.C_NYOMTATASINEV + IIF(tao.C_HELYETTESITESOKA IS NOT NULL, ' (' + tao.C_HELYETTESITESOKA + ')', '') + ')', '')
,'Elmaradt' + IIF(tao.C_MEGJEGYZES IS NOT NULL, ' - ' + tao.C_MEGJEGYZES, '')
) AS TemaOraSzammal
,tao.C_HETNAPJA AS HetNapja
,nh.C_HETSORSZAMA AS HetSorszama
,C_MEGTARTOTT AS Megtartott
,tao.C_TANTARGYID AS TantargyId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN, tantargy.C_NEV) AS Tantargynev
,tao.C_OSZTALYCSOPORTID AS OsztalyCsoportId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL,
IIF(LEN(C_NEVNYOMTATVANYBAN) + LEN(tantargy.C_NEV) < 90,
C_NEVNYOMTATVANYBAN,
C_NEVNYOMTATVANYBAN), tantargy.C_NEV) + '-' + CHAR(13) + CHAR(10) +
REPLACE(REPLACE(pedagogus.C_NYOMTATASINEV , '[', '('), ']',')') AS TantargyPedagogussal
,nn.C_ALAPHETNAPJA AS AlapHetnapja
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
INNER JOIN T_NAPTARINAP_OSSZES nn ON nn.C_NAPDATUMA = tao.C_DATUM AND nn.C_TANEVID = tao.C_TANEVID AND nn.TOROLT = 'F'
WHERE
tao.TOROLT = 'F'
AND (@isOsztalyTanuloOrarendbenNemLatszik <> 1 OR @isOsztalyTanuloOrarendbenNemLatszik IS NULL OR tantargy.C_ISOSZTALYORARENDBENEMLATSZIK = '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)
CREATE TABLE #HetAdatok (C_HETSORSZAMA INT, Hetesek NVARCHAR(MAX), KezdoDatum DATE, VegeDatum DATE, HetUtolsoNapja int)
INSERT INTO #HetAdatok
SELECT
nn.C_HETSORSZAMA
,STUFF((SELECT ', '
,IIF(C_NEVSORREND = 'T',
fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV,
fh.C_NYOMTATASINEV) as NevElotagNelkul
FROM T_HETES_OSSZES h
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = h.C_TANULOID
AND fh.TOROLT = 'F'
AND fh.C_TANEVID = h.C_TANEVID
WHERE h.C_HETSORSZAMA = nn.C_HETSORSZAMA
AND h.C_TANEVID = @tanevId
AND h.C_OSZTALYCSOPORTID = @osztalyId
AND h.TOROLT = 'F'
ORDER BY NevElotagNelkul
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,2,'') AS Hetesek
,MIN(nn.C_NAPDATUMA) AS KezdoDatum
,MAX(nn.C_NAPDATUMA) AS VegeDatum
,(
SELECT MAX(HetNapja) FROM (VALUES
(IIF(MAX(mo.AlapHetNapja) IS NULL OR MAX(mo.AlapHetNapja) <= 1412 , 1412, MAX(mo.AlapHetNapja)))
,(MAX(tr.C_HETNAPJA))
,(MAX(trocs.C_HETNAPJA))
,(MAX(rtn.C_ALAPHETNAPJA))
) AS HetUtolsoNapja(HetNapja)) AS HetUtolsoNapja
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN #megtartottOrak mo ON mo.HetSorszama = nn.C_HETSORSZAMA
LEFT JOIN #NapSorszam NapSorszam ON nn.C_NAPDATUMA = NapSorszam.Datum AND nn.C_TANEVID = @tanevId
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA
AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
AND (tr.C_HETNAPJA = 1413 OR tr.C_HETNAPJA = 1414)
AND tr.C_NAPTIPUSA <> 1396
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
LEFT JOIN T_TANEVRENDJE_OSSZES trocs ON trocs.C_DATUM = nn.C_NAPDATUMA
AND trocs.C_OSSZESCSOPORTRAVONATKOZIK = 'F'
AND (trocs.C_HETNAPJA = 1413 OR trocs.C_HETNAPJA = 1414)
AND trocs.C_NAPTIPUSA <> 1396
AND trocs.C_TANEVID = @tanevId
AND trocs.TOROLT = 'F'
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = trocs.ID
AND ocstr.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok tocs)
LEFT JOIN #RendkivuliTanitasiNapok rtn ON rtn.C_NAPDATUMA = nn.C_NAPDATUMA
WHERE nn.C_TANEVID = @tanevId
AND nn.C_NAPDATUMA BETWEEN @ElsoNap AND COALESCE(@UtolsoRendkivuliTanitasiNap, @UtolsoNap)
GROUP BY nn.C_HETSORSZAMA
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 AS Datum
,dbo.fnGetDokumentumDatumFormatum(C_NAPDATUMA) AS FormatDate
,oraszam AS Oraszam
,ha.C_HETSORSZAMA AS HetSorszama
,AlapHetnapja.C_NAME AS HetNapja
,ISNULL(trNaptipus.C_NAME + ',', '')
+ IIF(LEN(ISNULL(tr.C_MEGJEGYZES, '')) = 0, '', ' ' + tr.C_MEGJEGYZES + ',')
+ IIF(LEN(ISNULL(osztalyCsoportTanevRendje.Megjegyzes, '')) = 0, '', ' ' + osztalyCsoportTanevRendje.Megjegyzes + ',')
+ IIF(tr.C_HETNAPJA <> nn.C_ALAPHETNAPJA, ' (' + Hetnapja.C_NAME +')', '') AS Megjegyzes
,Sorszam
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum AND nn.C_HETNAPJA BETWEEN 1407 AND ha.HetUtolsoNapja
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
) NapAdatok
INSERT INTO #OsszesOra
SELECT
Datum
,FormatDate
,Oraszam
,HetSorszama
,HetNapja
,IIF(RIGHT(Megjegyzes, 1) = ',', LEFT(Megjegyzes, LEN(Megjegyzes) - 1), Megjegyzes) AS Megjegyzes
,Sorszam
FROM (
SELECT
nn.C_NAPDATUMA AS Datum
,dbo.fnGetDokumentumDatumFormatum(nn.C_NAPDATUMA) AS FormatDate
,oraszam AS Oraszam
,nn.C_HETSORSZAMA AS HetSorszama
,AlapHetnapja.C_NAME AS HetNapja
,ISNULL(trNaptipus.C_NAME + ',', '')
+ IIF(LEN(ISNULL(tr.C_MEGJEGYZES, '')) = 0, '', ' ' + tr.C_MEGJEGYZES + ',')
+ IIF(LEN(ISNULL(osztalyCsoportTanevRendje.Megjegyzes, '')) = 0, '', ' ' + osztalyCsoportTanevRendje.Megjegyzes + ',')
+ IIF(tr.C_HETNAPJA <> nn.C_ALAPHETNAPJA, ' (' + Hetnapja.C_NAME +')', '') AS Megjegyzes
,Sorszam
FROM #RendkivuliTanitasiNapok nn
INNER JOIN #HetAdatok ha ON nn.C_NAPDATUMA BETWEEN ha.KezdoDatum AND ha.VegeDatum AND nn.C_ALAPHETNAPJA BETWEEN 1407 AND ha.HetUtolsoNapja
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 oraszam <= @MaxOraszam
) NapAdatok
IF (@MinOraszam > 0)
BEGIN
DELETE FROM #OsszesOra WHERE Oraszam = 0
END
DECLARE @TanulokSzama INT = (SELECT COUNT(DISTINCT TanuloId) FROM #ErtekelesekTemp WHERE TipusId = 1520)
DECLARE @TanitasiNapokSzama INT = (SELECT MAX(CAST(Sorszam AS INT)) FROM #OsszesOra)
IF @isDebug = 1 SELECT 'Result01' as [ResultSetName ]
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
,ocs.C_KEPZESIFORMA KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
,o.C_SZAKMATIPUSID AS UjSzktSzakma
,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,ocs.C_ISTECHNIKAI OJTechnikaiOsztaly
,o.C_NEMZETISEGI OJNemzetisegi
,o.C_KETTANNYELVU OJKettannyelvu
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
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
IF @isDebug = 1 SELECT 'Result02' as [ResultSetName ]
SELECT DISTINCT
targy.C_NEV AS TargyNev
,targy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban
,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev
,tanar.ID AS TanarId
,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
,targy.C_SORSZAM AS RENDEZ0
,CASE WHEN targy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END AS RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, targy.C_NEV) AS RENDEZ2
,ISNULL(targy.C_FOTARGYID, targy.ID) AS RENDEZ3
,targy.C_FOTARGYID AS RENDEZ4
,ISNULL(targy.C_NEVNYOMTATVANYBAN, targy.C_NEV) AS RENDEZ5
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevID, @osztalyId, 'T') 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
AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
AND ocs.TOROLT = 'F'
INNER JOIN T_FOGLALKOZAS_OSSZES AS fogl ON fogl.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND fogl.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES AS tanar ON fogl.C_TANARID = tanar.ID AND tanar.TOROLT='F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES AS munkaugyiAdat ON munkaugyiAdat.C_ALKALMAZOTTID = tanar.ID AND munkaugyiAdat.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES AS targy ON targy.ID = fogl.C_TANTARGYID AND targy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = targy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON targy.C_FOTARGYID = FotargyTable.ID
AND FotargyTable.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
WHERE
fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
AND fogl.TOROLT = 'F'
UNION
-- Az olyan osztálybontott foglalkozások is kerüljenek bele a listába, ahol a csoportban nincs egy gyerek sem
SELECT DISTINCT
targy.C_NEV AS TargyNev
,targy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban
,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev
,tanar.ID AS TanarId
,tanar.C_OKTATASIAZONOSITO AS TanarOktAzon
,targy.C_SORSZAM AS RENDEZ0
,CASE WHEN targy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END AS RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, targy.C_NEV) AS RENDEZ2
,ISNULL(targy.C_FOTARGYID, targy.ID) AS RENDEZ3
,targy.C_FOTARGYID AS RENDEZ4
,ISNULL(targy.C_NEVNYOMTATVANYBAN, targy.C_NEV) AS RENDEZ5
FROM T_FOGLALKOZAS_OSSZES AS fogl
INNER JOIN T_CSOPORT_OSSZES cs ON cs.C_OSZTALYBONTASID = @osztalyId
AND cs.ID = fogl.C_OSZTALYCSOPORTID
AND cs.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = fogl.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
AND ocs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES AS tanar ON fogl.C_TANARID = tanar.ID AND tanar.TOROLT='F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES AS munkaugyiAdat ON munkaugyiAdat.C_ALKALMAZOTTID = tanar.ID AND munkaugyiAdat.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES AS targy ON targy.ID = fogl.C_TANTARGYID AND targy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = targy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON targy.C_FOTARGYID = FotargyTable.ID
AND FotargyTable.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
WHERE
fogl.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
AND fogl.TOROLT = 'F'
ORDER BY
RENDEZ0,RENDEZ1,RENDEZ2,RENDEZ3,RENDEZ4,RENDEZ5,
IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV)
END
ELSE
BEGIN
IF @isDebug = 1 SELECT 'Result03' as [ResultSetName ]
SELECT DISTINCT
Tanulok.Id AS TanuloId
,Tantargy.C_NEV AS TargyNev
,Tantargy.C_NEVNYOMTATVANYBAN AS TargyNevNyomtatvanyban
,IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', tanar.C_NYOMTATASINEV) AS TanarNev
,Tantargy.C_SORSZAM as RENDEZ0
,CASE WHEN Tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, Tantargy.C_NEV) as RENDEZ2
,ISNULL(Tantargy.C_FOTARGYID, Tantargy.ID) as RENDEZ3
,Tantargy.C_FOTARGYID as RENDEZ4
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) as RENDEZ5
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_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND ocs.C_FELADATKATEGORIAID = @feladatKategoriaId
AND ocs.TOROLT = 'F'
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 AND Tanar.TOROLT = 'F'
INNER JOIN T_MUNKAUGYIADATOK_OSSZES AS munkaugyiAdat ON munkaugyiAdat.C_ALKALMAZOTTID = Tanar.ID AND munkaugyiAdat.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = Foglalkozas.C_TANTARGYID AND Tantargy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = Tantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON Tantargy.C_FOTARGYID = FotargyTable.ID
AND FotargyTable.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
ORDER BY
RENDEZ0,RENDEZ1,RENDEZ2,RENDEZ3,RENDEZ4,RENDEZ5,
IIF(munkaugyiAdat.C_BETOLTETLENALLASHELY = 'T', '', Tanar.C_NYOMTATASINEV)
END
-- Orarend
IF @isDebug = 1 SELECT 'Result04' as [ResultSetName ]
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId, @isEgyebFoglalkozasok, @orarendErvenyessegiDatum, @isOsztalyTanuloOrarendbenNemLatszik
-- 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
IF @isDebug = 1 SELECT 'Result05' as [ResultSetName ]
SELECT NULL DATUM, NULL ORASZAM, NULL TARGYNEV, NULL LATOGATO, NULL LATOGATOBEOSZTAS, '' ESZREVETEL
END
ELSE
BEGIN
IF @isDebug = 1 SELECT 'Result06' as [ResultSetName ]
SELECT DATUM, ORASZAM, TARGYNEV, LATOGATO, LATOGATOBEOSZTAS, ESZREVETEL FROM #Oralatogatas ORDER BY DATUM
END
-- Naploellenorzesek
IF @isDebug = 1 SELECT 'Result07' as [ResultSetName ]
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
IF @isDebug = 1 SELECT 'Result08' as [ResultSetName ]
SELECT NULL ELLENORZESDATUMA, NULL ELLENORZOSZEMELY, NULL ESZREVETEL
END
ELSE
BEGIN
IF @isDebug = 1 SELECT 'Result09' as [ResultSetName ]
SELECT ELLENORZESDATUMA, ELLENORZOSZEMELY, ESZREVETEL FROM #NaploEllenorzes
END
/* Napló */
IF @isDebug = 1 SELECT 'Result10' as [ResultSetName ]
SELECT
ROW_NUMBER() OVER (ORDER BY ret.C_HETSORSZAMA) AS TanitasiHetSorszam
,ret.C_HETSORSZAMA
,ret.Hetesek
,dbo.fnGetDokumentumDatumFormatum(ret.KezdoDatum)
,dbo.fnGetDokumentumDatumFormatum(ret.VegeDatum)
FROM (
SELECT DISTINCT
ha.*
FROM #HetAdatok ha
INNER JOIN #NapSorszamTemp ns ON ns.Datum >= ha.KezdoDatum and ns.Datum <= ha.VegeDatum
)ret
UNION
SELECT
NULL AS TanitasiHetSorszam
,ret.C_HETSORSZAMA
,ret.Hetesek
,dbo.fnGetDokumentumDatumFormatum(ret.KezdoDatum)
,dbo.fnGetDokumentumDatumFormatum(ret.VegeDatum)
FROM (
SELECT DISTINCT
ha.*
FROM #HetAdatok ha
LEFT JOIN #NapSorszamTemp ns ON ns.Datum >= ha.KezdoDatum and ns.Datum <= ha.VegeDatum
WHERE ns.Datum IS NULL
) ret
ORDER BY ret.C_HETSORSZAMA
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, NevElotagNelkul
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 AS C_NAPDATUMA
,Hianyzas AS Mulasztas
,OsszesOra.Oraszam AS ORASZAM
,NULL AS T1ID
,NULL AS T2ID
,NULL AS T3ID
,Orarend.Tantargy AS TANTARGY
,OsszesOra.HetSorszama AS C_HETSORSZAMA
,OsszesOra.HetNapja AS C_HETNAPJA_DNAME
,ISNULL(OsszesOra.Sorszam, ''-'') AS NapSorszama
,OsszesOra.Megjegyzes AS Megjegyzes
,' + @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
IF @isDebug = 1 SELECT 'Result11' as [ResultSetName ]
SELECT
NULL C_NAPDATUMA
,NULL Mulasztas
,NULL Megjegyzes
,NULL ORASZAM
,NULL T1ID
,NULL T2ID
,NULL T3ID
,NULL TANTARGY
,NULL C_HETSORSZAMA
,NULL C_HETNAPJA_DNAME
,NULL NapSorszama
END
ELSE
BEGIN
IF @isDebug = 1 SELECT 'Result12' as [ResultSetName ]
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 AS C_NAPDATUMA
,OsszesOra.HetNapja AS Napneve
,OsszesOra.Megjegyzes AS C_MEGJEGYZES
,nh.C_HETKEZDONAPJA AS C_HETKEZDONAPJA
,nh.C_HETUTOLSONAPJA AS C_HETUTOLSONAPJA
,OsszesOra.HetSorszama AS C_HETSORSZAMA
,OsszesOra.Oraszam AS OraSorszam
,ISNULL(OsszesOra.Sorszam, '-') AS Napszam
,Tantargynev AS Tantargy
,PedagogusNev AS Tanar
,Tema AS Oraanyaga
,OraSorszam AS 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])
IF @isDebug = 1 SELECT 'Result13' as [ResultSetName ]
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*/
IF @isDebug = 1 SELECT 'Result14' as [ResultSetName ]
SELECT
NapiMulasztas.HetSorszama
,TanuloNeve
,NapiMulasztas.TanuloId
,MAX(Hetfo) AS Hetfo
,MAX(Kedd) AS Kedd
,MAX(Szerda) AS Szerda
,MAX(Csutortok) AS Csutortok
,MAX(Pentek) AS Pentek
,MAX(Szombat) AS Szombat
,HetiMulasztas
FROM (
SELECT
HetSorszama
,TanuloNeve
,NevElotagNelkul
,TanuloId
,TanuloCsoportId
,[1408] Hetfo
,[1409] Kedd
,[1410] Szerda
,[1411] Csutortok
,[1412] Pentek
,[1413] Szombat
FROM
(
SELECT DISTINCT
HetSorszama
,C_NYOMTATASINEV TanuloNeve
,NevElotagNelkul
,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, MulasztasokKulso.NevElotagNelkul
) 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, NevElotagNelkul
ORDER BY NevElotagNelkul
END --SZÖVEGES OSZTÁLYNAPLÓ
/*TANULÓ adatai*/
SELECT
TanuloId
,ta.TanuloCsoportId
,Sorszam
,ta.TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,ta.NevElotagNelkul
,Allampolgarsaga
,DiakIgazolvanySzam
,ta.KilepesDatum
,BeirasiNaploSorszam
,AktualisOsztaly AS OsztalyNev
,dAgazat.C_NAME AS Agazat
,dSzakmacsop.C_NAME AS Szakmacsoport
,dSzakkep.C_NAME AS Szakkepesites
,dSzktAgazat.C_NAME AS SzktAgazat
,dSzktSzakmaTipus.C_NAME AS SzktSzakmaTipus
,dSzktSzakmaiIrany.C_NAME AS SzktSzakmaiIrany
,dNktSzakirany.C_NAME AS NktSzakirany
,dNktSzakkepesites.C_NAME AS NktSzakkepesites
,dNktTanulmanyiTerulet.C_NAME AS NktTanulmanyiTerulet
,AgazatReszszakmaTipus.C_NAME AS AgazatReszszakmaTipus
,ReszszakmaTipus.C_NAME AS ReszszakmaTipus
,SzakmaReszszakma.C_NAME AS SzakmaReszszakma
-- Turai: itt azért a megnevezés1 került beállításra, mert jelenleg vannak olyan adatok a megnevezésben (amelyeket most igyekszünk kigyilkolni), amelyek nem jók, nem a jogszabálynak megfelelőek
-- Összevont osztály esetén a tanuló évfolyamának megjelenítése, egyéb esetben az osztály/csoport évfolyama
,IIF(ocs.C_EVFOLYAMTIPUSA = 7366, dEvfolyamTipusTanulo.C_NAME_1, dEvfolyamTipusOsztalyCsoport.C_NAME_1) AS EvfolyamTipusa
INTO #TanuloAlapAdatok
FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) ta
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = ta.TanuloCsoportId AND tcs.TOROLT = 'F'
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tcs.ID = tta.C_TANULOCSOPORTID AND tta.TOROLT = 'F'
--okj
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzakmacsop ON dSzakmacsop.ID = tta.C_SZAKMACSOPORTID AND dSzakmacsop.TOROLT = 'F' AND dSzakmacsop.C_TANEVID = tcs.C_TANEVID AND dSzakmacsop.ID != 6084 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dAgazat ON dAgazat.ID = tta.C_AGAZATID AND dAgazat.TOROLT = 'F' AND dAgazat.C_TANEVID = tcs.C_TANEVID AND dAgazat.ID != 5484 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzakkep ON dSzakkep.ID = tta.C_SZAKKEPESITESID AND dSzakkep.TOROLT = 'F' AND dSzakkep.C_TANEVID = tcs.C_TANEVID AND dSzakkep.ID != 5527 /* Na */
--szkt
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktAgazat ON dSzktAgazat.ID = tta.C_AGAZATUJSZKTTIPUSID AND dSzktAgazat.TOROLT = 'F' AND dSzktAgazat.C_TANEVID = tcs.C_TANEVID AND dSzktAgazat.ID != 7920 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktSzakmaTipus ON dSzktSzakmaTipus.ID = tta.C_SZAKMATIPUSID AND dSzktSzakmaTipus.TOROLT = 'F' AND dSzktSzakmaTipus.C_TANEVID = tcs.C_TANEVID AND dSzktSzakmaTipus.ID != 7946 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dSzktSzakmaiIrany ON dSzktSzakmaiIrany.ID = tta.C_SZAKMAIRANYTIPUSID AND dSzktSzakmaiIrany.TOROLT = 'F' AND dSzktSzakmaiIrany.C_TANEVID = tcs.C_TANEVID AND dSzktSzakmaiIrany.ID != 8122 /* Na */
--nkt
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktSzakirany ON dNktSzakirany.ID = tta.C_SZAKIRANYNKTTIPUSID AND dNktSzakirany.TOROLT = 'F' AND dNktSzakirany.C_TANEVID = tcs.C_TANEVID AND dNktSzakirany.ID != 8493 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktSzakkepesites ON dNktSzakkepesites.ID = tta.C_SZAKKEPESITESNKTTIPUSID AND dNktSzakkepesites.TOROLT = 'F' AND dNktSzakkepesites.C_TANEVID = tcs.C_TANEVID AND dNktSzakkepesites.ID != 8464 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dNktTanulmanyiTerulet ON dNktTanulmanyiTerulet.ID = tta.C_TANULMANYITERULETNKTTIPUSID AND dNktTanulmanyiTerulet.TOROLT = 'F' AND dNktTanulmanyiTerulet.C_TANEVID = tcs.C_TANEVID AND dNktTanulmanyiTerulet.ID != 8459 /* Na */
--Résszakma
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AgazatReszszakmaTipus ON AgazatReszszakmaTipus.ID = tta.C_AGAZATRESZSZAKMATIPUSID AND AgazatReszszakmaTipus.TOROLT = 'F' AND AgazatReszszakmaTipus.C_TANEVID = tcs.C_TANEVID AND AgazatReszszakmaTipus.ID != 8832 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ReszszakmaTipus ON ReszszakmaTipus.ID = tta.C_RESZSZAKMATIPUSID AND ReszszakmaTipus.TOROLT = 'F' AND ReszszakmaTipus.C_TANEVID = tcs.C_TANEVID AND ReszszakmaTipus.ID != 8895 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES SzakmaReszszakma ON SzakmaReszszakma.ID = tta.C_SZAKMARESZSZAKMATIPUSID AND SzakmaReszszakma.TOROLT = 'F' AND SzakmaReszszakma.C_TANEVID = tcs.C_TANEVID AND SzakmaReszszakma.ID != 8850 /* Na */
/**/
LEFT JOIN #studentsWithTanuloCsoport s ON s.Id = ta.TanuloId AND s.TanuloCsoportId = tcs.ID
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dEvfolyamTipusOsztalyCsoport ON dEvfolyamTipusOsztalyCsoport.ID = ocs.C_EVFOLYAMTIPUSA
AND dEvfolyamTipusOsztalyCsoport.TOROLT = 'F'
AND dEvfolyamTipusOsztalyCsoport.C_TANEVID = tcs.C_TANEVID
AND dEvfolyamTipusOsztalyCsoport.ID != 1296 /* Na */
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dEvfolyamTipusTanulo ON dEvfolyamTipusTanulo.ID = s.EvfolyamTipusa
AND dEvfolyamTipusTanulo.TOROLT = 'F'
AND dEvfolyamTipusTanulo.C_TANEVID = tcs.C_TANEVID
AND dEvfolyamTipusTanulo.ID != 1296 /* Na */
WHERE (@tanuloId IS NULL OR ta.TanuloId = @tanuloId)
IF @isDebug = 1 SELECT 'Result15' as [ResultSetName ]
SELECT
TanuloId
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,NevElotagNelkul
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,OsztalyNev
,Agazat
,Szakmacsoport
,Szakkepesites
--szkt
,SzktAgazat
,SzktSzakmaiIrany
,SzktSzakmaTipus
--nkt
,NktSzakirany
,NktSzakkepesites
,NktTanulmanyiTerulet
--Részszakma
,AgazatReszszakmaTipus
,ReszszakmaTipus
,SzakmaReszszakma
/**/
,EvfolyamTipusa
FROM #TanuloAlapAdatok
ORDER BY CASE WHEN Sorszam IS NULL THEN 1 ELSE 0 END ASC, Sorszam ASC, NevElotagNelkul
/*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, NULL, NULL) 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, NULL, NULL) 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, NULL, NULL) 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, NULL, NULL) 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, Alapertelmezett CHAR(1))
INSERT INTO #EmailCimTableTemp
SELECT
tanulo.Id
,C_EMAILCIM
,C_GONDVISELOID
,C_ALAPERTELMEZETT
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
,C_ALAPERTELMEZETT
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
AND btemp.Alapertelmezett = 'T'
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM #EmailCimTableTemp temp
WHERE
GondviseloId IS NOT NULL
AND Alapertelmezett = 'T'
CREATE TABLE #TelefonTableTemp(FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT, index ix_Ci_telefon (FelhasznaloId), Alapertelmezett CHAR(1))
INSERT INTO #TelefonTableTemp
SELECT
tanulo.Id
,C_TELEFONSZAM
,C_GONDVISELOID
,C_ALAPERTELMEZETT
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
,C_ALAPERTELMEZETT
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 btemp.GondviseloId IS NOT NULL
AND btemp.Alapertelmezett = 'T'
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM #TelefonTableTemp temp
WHERE
GondviseloId IS NOT NULL
AND Alapertelmezett = 'T'
IF @isDebug = 1 SELECT 'Result16' as [ResultSetName ]
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 */
IF @isDebug = 1 SELECT 'Result17' as [ResultSetName ]
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 */
IF @isDebug = 1 SELECT 'Result18' as [ResultSetName ]
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, 0) 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 */
IF @isDebug = 1 SELECT 'Result19' as [ResultSetName ]
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, 0) 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, 5482)) 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
OR Tipusa >= 100000
)
ORDER BY dbo.fnGetDokumentumDatumFormatum(Datum)
/* TANULO mulasztása */
IF @isDebug = 1 SELECT 'Result20' as [ResultSetName ]
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @osztalyId
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
,@isReszletesMulasztasok = @isReszletesMulasztasok
,@igazolasTipusTypeId = @igazolasTipusTypeId
/*gondviselo elérhetoségei */
IF @isDebug = 1 SELECT 'Result21' as [ResultSetName ]
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
,RENDEZ0 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
IF @isDebug = 1 SELECT 'Result22' as [ResultSetName ]
EXEC uspGetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @osztalyId
,@ertekelesTipusa = NULL
,@csakTanorai = 1
,@csakKivalasztottOsztalyCsoport = 0
,@atsoroltTanuloErtekelesek = 0
,@fuggolegesTantargyak = @fuggolegesTantargyak
,@intezmenyId = @intezmenyId
,@osztalyzatTipusTypeID = @osztalyzatTipusTypeID
,@magatartasErtekelesTipusTypeID = @magatartasErtekelesTipusTypeID
,@szorgalomErtekelesTipusTypeID = @szorgalomErtekelesTipusTypeID
,@pIsOsztalynaplobanNemJelenikMeg = 1
,@pIsKellKapcsolodoOsztalyCsoportok = 1
,@pIsTantargynevNyomtatvanyban = 1
/* TANULÓ záradékai */
CREATE TABLE #Zaradekok(
TanuloId int
,TanuloCsoportId int
,KeltezesDatuma nvarchar(11)
,KeltezesHelye nvarchar(255)
,Bejegyzes nvarchar(max)
,BejegyzesIdegenNyelven nvarchar(max)
)
INSERT INTO #Zaradekok (
TanuloId
,TanuloCsoportId
,KeltezesDatuma
,KeltezesHelye
,Bejegyzes
,BejegyzesIdegenNyelven
) EXEC dbo.uspGetDokumentumTanuloZaradekai
@tanevId = @tanevId
,@osztalyId = @osztalyId
,@zaradekTipusId = null
,@idegenNyelvId = 0
,@dokumentumTipusId = 1
IF @isDebug = 1 SELECT 'Result23' as [ResultSetName ]
SELECT
TanuloId
,TanuloCsoportId
,KeltezesDatuma
,KeltezesHelye
,Bejegyzes AS Zaradek
FROM #Zaradekok
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
/*Szöveges minosítések*/
INSERT INTO #szovegesTemp
SELECT
a.tanuloId
,a.TanuloCsoportId
,a.Honap
,a.Tantargy
,a.Ertekeles
,a.Tipus
,a.RendezHonap
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
,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + ErtekelesSzovegFormazott + 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
ErtekelesSzovegFormazott 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
,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + MagatartasSzovegFormazott + 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.MagatartasSzovegFormazott 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
,IIF(Jeloles IS NOT NULL AND TipusId = 1518, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz')) + Jeloles + ' ', '') + SzorgalomSzovegFormazott + 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.SzorgalomSzovegFormazott IS NOT NULL
) szoveges on szoveges.TANULOID = s.Id AND szoveges.TanuloCsoportId = s.TanuloCsoportId
)a
IF @isDebug = 1 SELECT 'Result24' as [ResultSetName ]
SELECT DISTINCT
kulso.TanuloId
,kulso.TanuloCsoportId
,kulso.Honap
,kulso.Tantargy
,STUFF(((SELECT
'<br>|' + dbo.fnRemoveXmlEvilCharacters(belso.Ertekeles)
FROM #szovegesTemp belso
WHERE kulso.TanuloId = belso.TanuloId
AND kulso.TanuloCsoportId = belso.TanuloCsoportId
AND kulso.Honap = belso.Honap
AND kulso.Tantargy = belso.Tantargy
AND kulso.Tipus = belso.Tipus
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'))
,1
,5
,'') AS Ertekeles
,kulso.Tipus
,kulso.RendezHonap
FROM #szovegesTemp kulso
ORDER BY kulso.TanuloId, kulso.RendezHonap, kulso.Tantargy
--Közösségi szolgálat
IF @isDebug = 1 SELECT 'Result25' as [ResultSetName ]
SELECT
TanuloId
,TanuloCsoportId
,Datum
,ISNULL(' - ' + Megjegyzes, '') Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId, 0) KozossegiSzolgalat
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
AND KozossegiSzolgalatTanevId = @tanevId
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
,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok
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
,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok
IF @isDebug = 1 SELECT 'Result26' as [ResultSetName ]
SELECT
TanuloAlapAdatok.tanuloId AS TanuloId
,ISNULL(FeleviMulasztasok.ElmeletIgazolt, 0) AS FeleviElmeletIgazolt
,ISNULL(FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmeletIgazolatlan
,ISNULL(FeleviMulasztasok.GyakorlatIgazolT, 0) AS FeleviGyakorlatIgazolt
,ISNULL(FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlatIgazolatlan
,ISNULL(FeleviMulasztasok.ElmeletIgazolt + FeleviMulasztasok.ElmeletIgazolatlan, 0) AS FeleviElmelet
,ISNULL(FeleviMulasztasok.GyakorlatIgazolt + FeleviMulasztasok.GyakorlatIgazolatlan, 0) AS FeleviGyakorlat
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt, 0) AS EvVegiElmeletIgazolt
,ISNULL(EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmeletIgazolatlan
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt, 0) AS EvVegiGyakorlatIgazolt
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlatIgazolatlan
,ISNULL(EvVegiMulasztasok.ElmeletIgazolt + EvVegiMulasztasok.ElmeletIgazolatlan, 0) AS EvVegiElmelet
,ISNULL(EvVegiMulasztasok.GyakorlatIgazolt + EvVegiMulasztasok.GyakorlatIgazolatlan, 0) AS EvVegiGyakorlat
,ISNULL(FeleviMulasztasok.Osszes, 0) AS FeleviOsszes
,ISNULL(FeleviMulasztasok.Igazolt, 0) AS FeleviIgazolt
,ISNULL(FeleviMulasztasok.Igazolatlan, 0) AS FeleviIgazolatlan
,ISNULL(EvVegiMulasztasok.Osszes, 0) AS EvVegiOsszes
,ISNULL(EvVegiMulasztasok.Igazolt, 0) AS EvVegiIgazolt
,ISNULL(EvVegiMulasztasok.Igazolatlan, 0) AS EvVegiIgazolatlan
,oktAzon AS oktAzon
,tanuloNeve AS tanuloNeve
,NevElotagNelkul AS NevElotagNelkul
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 NevElotagNelkul
--értékelésekhez tartozó feljegyzések 1. félév
IF @isDebug = 1 SELECT 'Result27' as [ResultSetName ]
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF((SELECT DISTINCT ', ' +
CASE
WHEN TipusId = 1522 THEN '(I.): I. negyedéves értékelés'
WHEN TipusId = 1523 THEN '(III.): III. negyedéves értékelés'
WHEN TipusId = 1524 THEN '(II.): II. negyedéves értékelés'
WHEN TipusId = 1525 THEN '(IV.): IV. negyedéves értékelés'
END
FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz
WHERE TipusId IN (1522, 1523, 1524, 1525)
AND (Datum <= @FelevVege)
AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL)
AND (ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId)
AND (ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') AS JelolesTemaval
FROM #ErtekelesekTemp ErtekelesTemaval
WHERE TipusId IN (1522, 1523, 1524, 1525)
AND (Datum <= @FelevVege)
AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL)
UNION ALL
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF((SELECT DISTINCT ', ' +
CASE
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
ELSE ''
END
+ JelolesAndErtekelesTema
FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz
WHERE LEN(JelolesAndErtekelesTema) > 0
AND ((TipusId NOT IN (1519, 1520) AND Datum <= @FelevVege) OR (TipusId = 1519))
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 ((TipusId NOT IN (1519, 1520) AND Datum <= @FelevVege) OR (TipusId = 1519))
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
IF @isDebug = 1 SELECT 'Result28' as [ResultSetName ]
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF((SELECT DISTINCT ', '
+ CASE
WHEN TipusId = 1522 THEN '(I.): I. negyedéves értékelés'
WHEN TipusId = 1523 THEN '(III.): III. negyedéves értékelés'
WHEN TipusId = 1524 THEN '(II.): II. negyedéves értékelés'
WHEN TipusId = 1525 THEN '(IV.): IV. negyedéves értékelés'
END
FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz
WHERE TipusId IN (1522, 1523, 1524, 1525)
AND (Datum >= @FelevVege)
AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL)
AND (ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId AND ErtekelesTemavalOsszefuz.TanuloCsoportId = ErtekelesTemaval.TanuloCsoportId)
AND (ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL)
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') AS JelolesTemaval
FROM #ErtekelesekTemp ErtekelesTemaval
WHERE TipusId IN (1522, 1523, 1524, 1525)
AND (Datum >= @FelevVege)
AND (MagatartasSzoveg IS NULL AND SzorgalomSzoveg IS NULL)
UNION ALL
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF((SELECT DISTINCT ', ' +
CASE
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
ELSE ''
END
+ JelolesAndErtekelesTema
FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz
WHERE
LEN(JelolesAndErtekelesTema) > 0
AND (((Datum >= @FelevVege) AND (TipusId <> 1519)) OR (TipusId = 1520))
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 (TipusId <> 1519)) OR (TipusId = 1520))
AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL)
--értékelésekhez tartozó feljegyzések
IF @isDebug = 1 SELECT 'Result29' as [ResultSetName ]
SELECT DISTINCT
TanuloId
,TanuloCsoportId
,STUFF((SELECT DISTINCT ', '+
CASE
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
ELSE ''
END
+ 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üggo szakmai gyakorlat
IF @isDebug = 1 SELECT 'Result30' as [ResultSetName ]
SELECT
TanuloId
,TanuloCsoportId
,isTeljesitett
,Ertekeles
,Megjegyzes
,Datum
FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@tanevId, @osztalyId)
WHERE (@tanuloId IS NULL OR TanuloId = @tanuloId)
--Tanuló tanult tantárgyai
IF @isDebug = 1 SELECT 'Result31' as [ResultSetName ]
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
INNER JOIN T_TANTARGY_OSSZES tant ON tant.ID = TANTARGYAK.ID AND tant.TOROLT = 'F'
WHERE
TANTARGYAK.c_tanulocsoportid = TANULO.TanuloCsoportId
AND (tant.C_ISOSZTALYNAPLOBANEMLATSZIK = 'F'
OR (tant.C_ISOSZTALYNAPLOBANEMLATSZIK = 'T'
AND (EXISTS (SELECT 1 FROM #ErtekelesekTemp ert
WHERE (ert.ErtekelesOsztalyzatId IS NOT NULL OR ert.ErtekelesSzazalek IS NOT NULL OR ert.ErtekelesSzoveg IS NOT NULL)
AND ert.TantargyId = tant.ID AND ert.TanuloId = TANULO.Id AND ert.TanuloCsoportId = 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
IF @isDebug = 1 SELECT 'Result32' as [ResultSetName ]
SELECT * FROM #osztalycsoportok WHERE OsztalyCsoportId != @osztalyId;
-- gyors feljegyzés statisztikák
-- Házifeladat hiány
IF @isDebug = 1 SELECT 'Result33' as [ResultSetName ]
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
IF @isDebug = 1 SELECT 'Result34' as [ResultSetName ]
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
IF @isDebug = 1 SELECT 'Result35' as [ResultSetName ]
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
IF @isDebug = 1 SELECT 'Result36' as [ResultSetName ]
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