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

1557 lines
No EOL
55 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetOsztalyNaplo') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetOsztalyNaplo
END
GO
CREATE PROCEDURE sp_GetOsztalyNaplo
@intezmenyId INT,
@tanevId INT,
@osztalyId INT,
@isSzövegesNaplo BIT = 0,
@iskolaErdekuSzamit BIT,
@fuggolegesTantargyak BIT,
@aktivTanevId INT,
@isReszletesMulasztasok BIT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TanitasiNapTipusok TABLE (Id INT)
INSERT INTO @TanitasiNapTipusok
SELECT DISTINCT ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID IN (1385, 1393, 1394, 1395, 1400, 1402, 1403, 1404)
DECLARE @ElsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
DECLARE @ElsoNapTanev DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
DECLARE @isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
DECLARE @NapSorszam TABLE (Datum DATE, Sorszam NVARCHAR(4))
INSERT INTO @NapSorszam
SELECT
C_NAPDATUMA
,CAST(DENSE_RANK() OVER(ORDER BY C_NAPDATUMA) AS NVARCHAR(4))
FROM T_NAPTARINAP_OSSZES
WHERE
C_TANEVID = @tanevId
AND TOROLT = 'F'
AND C_NAPTIPUSA IN (SELECT Id FROM @TanitasiNapTipusok)
AND C_NAPDATUMA <= IIF(@isVegzos = 'T', @VegzosUtolsoNap, ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
DECLARE @NaploSorszam TABLE (
TanuloId INT
,Sorszam INT
)
INSERT INTO @NaploSorszam
EXEC [sp_GetDokumentumTanuloNaploSorszam]
@osztalyId = @osztalyId
CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE, NaploSorszam INT)
INSERT INTO #students
SELECT
t.TanuloId
,BelepesDatum
,ISNULL(KilepesDatum, GETDATE())
,nsz.Sorszam
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') t
INNER JOIN @NaploSorszam nsz ON nsz.TanuloId = t.TanuloId
-- Naplo fooldal
CREATE TABLE #osztalycsoportok (OsztalyCsoportId INT PRIMARY KEY)
INSERT INTO #osztalycsoportok (OsztalyCsoportId)
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyId, 1034)
CREATE TABLE #OsztalyVagyTanoraiCsoport (Id INT)
INSERT INTO #OsztalyVagyTanoraiCsoport
SELECT ID FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId)
DECLARE @MaxOraszam INT = (SELECT ISNULL(MAX(IIF(C_ORASZAM = 0, 1, C_ORASZAM)), 1) FROM T_TANITASIORA_OSSZES WHERE C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok) AND TOROLT = 'F')
DECLARE @MinOraszam INT = (SELECT ISNULL(MIN(IIF(C_ORASZAM = 0, 0, 1)), 1) FROM T_TANITASIORA_OSSZES WHERE C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok) AND TOROLT = 'F')
SELECT DISTINCT
@osztalyId OsztalyId
,ocs.C_NEV OsztalyNev
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
,o.C_OSZTALYFONOKID PartnerID
,ofo.C_NYOMTATASINEV Osztalyfonok
,i.C_IGAZGATONEVE IntezmenyVezeto
,i.C_NEV IntezmenyNeve
,i.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,i.C_OMKOD IntezmenyOMKod
,FORMAT(o.C_OSZTALYNAPLOMEGNYITASA, 'yyyy. MMMM dd.', 'hu-hu') NaploMegnyitasanakDatuma
,FORMAT(o.C_OSZTALYNAPLOZARASA, 'yyyy. MMMM dd.', 'hu-hu') NaploZarasanakDatuma
,(SELECT COUNT(Id) FROM #students) TanulokSzama
,(SELECT MAX(CAST(Sorszam AS INT)) FROM @NapSorszam) TanitasiNapokSzama
,@MaxOraszam MaxOraszam
,@MinOraszam MinOraszam
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
SELECT targy.C_NEV TargyNev, tanar.C_NYOMTATASINEV TanarNev, targykategoria.C_ORDER
FROM T_FELHASZNALO_OSSZES tanar
INNER JOIN T_FOGLALKOZASOK_TANAROK ft ON tanar.ID = ft.C_TANAROKID
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.ID = ft.C_FOGLALKOZASOKID and f.TOROLT='F'
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F'
INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = f.C_OSZTALYCSOPORTID
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId
WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F'
AND tanar.C_INTEZMENYID = @intezmenyId
AND tanar.c_tanevId = @tanevId
GROUP BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
ORDER BY C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
-- Orarend
EXEC sp_GetOrarendOsztalyonkent @intezmenyId, @tanevID, @osztalyid, @aktivTanevId
-- Oralatogatasok
SELECT
FORMAT(T_ORALATOGATAS_OSSZES.C_DATUM, 'yyyy.MM.dd.') 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
END
-- Naploellenorzesek
SELECT DISTINCT
FORMAT(C_ELLENORZESDATUMA, 'yyyy.MM.dd.') 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 @datum DATE = GETDATE()
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 = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
FETCH NEXT FROM csoport_cursor INTO @ocsId
END
CLOSE csoport_cursor
DEALLOCATE csoport_cursor
INSERT INTO #OraSorszam
SELECT DISTINCT * FROM #OraSorszamTemp
SELECT
tao.Id TanitasioraId
,tao.C_DATUM Datum
,C_ORASZAM Oraszam
,C_ORATULAJDONOSID PedagogusId
,ISNULL(helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) PedagogusNev
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-'), '-') OraSorszam
,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt')
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás)', '')
+ IIF(C_HELYETTESITESTIPUSA IN (1494, 1495), ' (H)', '' ) Tema
,IIF(C_MEGTARTOTT = 'T',
ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: '
+ IIF(C_HELYETTESITESTIPUSA = 1496, ' (Óraösszevonás, ' + helyettesito.C_NYOMTATASINEV + ') ', '')
+ IIF(C_HELYETTESITESTIPUSA IN (1494, 1495),
'(' + helyettesito.C_NYOMTATASINEV +' (H)) ', '' )
+ REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), '')
,'Elmaradt') TemaOraSzammal
,tao.C_HETNAPJA HetNapja
,nh.C_HETSORSZAMA HetSorszama
,C_MEGTARTOTT Megtartott
,C_TANTARGYID TantargyId
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev
,C_OSZTALYCSOPORTID OsztalyCsoportId
,C_NAPSORSZAMA NapSorszama
,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) + ISNULL(pedagogus.C_NYOMTATASINEV, '') TantargyPedagogussal
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZASOK_TANAROK ft ON ft.C_FOGLALKOZASOKID = tao.C_FOGLALKOZASID
LEFT JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = ft.C_TANAROKID
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 * 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'
WHERE
C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #osztalycsoportok)
AND tao.TOROLT = 'F'
DECLARE @HetUtolsoNapja INT = (SELECT IIF(MAX(HetNapja) = 1413, 1413, 1412) FROM #megtartottOrak)
SELECT
nh.C_HETSORSZAMA
,MIN(nn.C_NAPDATUMA)
,MAX(nn.C_NAPDATUMA)
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F'
WHERE
nn.C_NAPDATUMA BETWEEN ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap,@UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja
AND nn.TOROLT='F'
AND nn.C_TANEVID = @tanevId
GROUP BY nh.C_HETSORSZAMA
ORDER BY MIN(nn.C_NAPDATUMA)
CREATE TABLE #OsszesOra (
Datum datetime
,Oraszam int
,HetSorszama int
,HetNapja int
,Megjegyzes nvarchar(1000)
,Sorszam nvarchar(30)
)
INSERT INTO #OsszesOra
SELECT
C_NAPDATUMA Datum
,oraszam Oraszam
,nh.C_HETSORSZAMA HetSorszama
,nn.C_HETNAPJA HetNapja
,ISNULL(trNaptipus.C_NAME, '') + COALESCE(CHAR(13) + CHAR(10) + osztalyCsoportTanevRendje.C_MEGJEGYZES, tr.C_MEGJEGYZES, '') Megjegyzes
,ISNULL(Sorszam,'-') Sorszam
FROM T_NAPTARINAP_OSSZES nn
INNER JOIN T_NAPTARIHET_OSSZES nh ON nn.C_NAPDATUMA BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F'
LEFT JOIN @NapSorszam sorszam ON sorszam.Datum = nn.C_NAPDATUMA
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_TANEVID = nn.C_TANEVID AND tr.TOROLT = 'F' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'T'
LEFT JOIN
(
SELECT C_DATUM, C_MEGJEGYZES FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.Id = ocstr.C_TANEVRENDJEID
WHERE
C_OSZTALYCSOPORTID = @osztalyId
AND 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
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 <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)
AND oraszam <= @MaxOraszam
AND nn.C_HETNAPJA BETWEEN 1407 AND @HetUtolsoNapja
IF (@MinOraszam > 0)
BEGIN
DELETE FROM #OsszesOra WHERE Oraszam = 0
END
IF @isSzövegesNaplo = 0 BEGIN /* NORMÁL OSZTÁLYNAPLÓ */
DECLARE @selectList nvarchar(MAX),
@pivotList nvarchar(MAX)
SELECT DISTINCT
tao.C_DATUM Datum
,t.C_NYOMTATASINEV + ' [' + STUFF((
SELECT ', ' + CAST(btao.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)', '')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES btao ON btao.ID = tm.C_TANITASIORAKID
INNER JOIN #students s ON s.ID = tm.C_ORATANULOIID
INNER JOIN #osztalycsoportok ocs ON ocs.OsztalyCsoportId = btao.C_OSZTALYCSOPORTID
WHERE
tao.C_DATUM = btao.C_DATUM
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.TOROLT = 'F'
AND tm.c_tanevId = @tanevId
AND (@iskolaErdekuSzamit = 1 OR tm.C_IGAZOLASTIPUSA <> 1533)
AND btao.TOROLT = 'F'
AND tm.C_TIPUS IN (1499, 1500)
ORDER BY btao.C_NAPTARINAPID, btao.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS Hianyzas
INTO #hianyzasokTMP
FROM T_TANITASIORA_OSSZES tao
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = tao.ID
INNER JOIN #osztalycsoportok cs ON cs.OsztalyCsoportId = tao.C_OSZTALYCSOPORTID
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
INNER JOIN #students s ON s.ID = m.C_ORATANULOIID
WHERE
m.TOROLT = 'F'
AND m.c_tanevId = @tanevId
AND m.C_TIPUS IN (1499, 1500)
AND tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM #OsztalyVagyTanoraiCsoport)
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
AND tao.TOROLT = 'F'
GROUP BY tao.C_DATUM, C_ORATANULOIID, C_NYOMTATASINEV
SELECT
Datum
,STUFF((
SELECT CHAR(13) + CHAR(10) + Hianyzas
FROM #hianyzasokTMP bHianyzasok
WHERE
Hianyzasok.Datum = bHianyzasok.Datum
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') AS Hianyzas
INTO #hianyzasok
FROM #hianyzasokTMP Hianyzasok
SELECT DISTINCT
NapSorszama
,Datum
,HetSorszama
,HetNapja
,Oraszam
,STUFF((SELECT
' | ' + CAST(bmto.TantargyNev AS VARCHAR(max))
FROM #megtartottOrak bmto
WHERE
bmto.Datum = mto.Datum
AND bmto.Oraszam = mto.Oraszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') Tantargy
INTO #Orarend
FROM #megtartottOrak mto
SELECT DISTINCT
Datum
,@MinOraszam Oraszam
,TantargyPedagogussal
,STUFF((SELECT DISTINCT
' | ' + CAST(bmto.TemaOraSzammal AS VARCHAR(max))
FROM #megtartottOrak bmto
WHERE
bmto.Datum = mto.Datum
AND bmto.TantargyPedagogussal = mto.TantargyPedagogussal
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') Tema
INTO #1nap1TantargyTobbOra
FROM #megtartottOrak mto
DECLARE @tantargyakNevvel NVARCHAR(MAX)
SELECT @tantargyakNevvel = ISNULL(@tantargyakNevvel + ', ', '') + '[' + 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.Datum C_NAPDATUMA
,Hianyzas Mulasztas
,OsszesOra.Megjegyzes Megjegyzés
,OsszesOra.Oraszam ORASZAM
,Orarend.NapsorSzama T1ID
,Orarend.NapsorSzama T2ID
,Orarend.NapsorSzama T3ID
,Orarend.Tantargy TANTARGY
,OsszesOra.HetSorszama C_HETSORSZAMA
,OsszesOra.HetNapja C_HETNAPJA
,OsszesOra.Sorszam NapSorszama
,' + @tantargyakNevvel + '
FROM #OsszesOra OsszesOra
LEFT JOIN #Orarend Orarend ON Orarend.Datum = OsszesOra.Datum AND Orarend.Oraszam = OsszesOra.Oraszam
LEFT JOIN #naplo Naplo ON Naplo.Datum = OsszesOra.Datum AND Naplo.Oraszam = OsszesOra.Oraszam
LEFT JOIN #hianyzasok Hianyzasok ON Hianyzasok.Datum = OsszesOra.Datum
ORDER BY OsszesOra.Datum, 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
,NULL NapSorszama
END
ELSE
BEGIN
EXEC sp_executesql @sql
END
DROP TABLE #1nap1TantargyTobbOra
DROP TABLE #OsszesOra
DROP TABLE #hianyzasokTMP
DROP TABLE #hianyzasok
DROP TABLE #Orarend
END -- NORMÁL OSZTÁLYNAPLÓ
ELSE BEGIN -- SZÖVEGES OSZTÁLYNAPLÓ
SELECT
OsszesOra.Datum C_NAPDATUMA
,FORMAT(OsszesOra.Datum, 'dddd', 'hu-hu') 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'
SELECT DISTINCT c_napdatuma
, napneve
, c_megjegyzes
, c_hetkezdonapja
, c_hetutolsonapja
, c_hetsorszama
, orasorszam
, napszam
, STUFF((SELECT ' | ' + CAST(bszov.TANTARGY AS VARCHAR(max))
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') TANTARGY
, STUFF((SELECT ' | ' + CAST(bszov.TANAR AS VARCHAR(max))
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') TANAR
, STUFF((SELECT ' | ' + CAST(bszov.ORAANYAGA AS VARCHAR(max))
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') ORAANYAGA
, STUFF((SELECT ' | ' + CAST(bszov.C_ORAEVESSORSZAM AS VARCHAR(max))
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.ORASORSZAM=szov.ORASORSZAM
and bszov.napszam=szov.napszam
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') OraEvesSorszama
FROM #szoveges szov
ORDER BY C_NAPDATUMA, orasorszam
/*Hiányzások*/
SELECT C_HETSORSZAMA, C_NYOMTATASINEV,
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek], MAX([6]) AS [Szombat]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, [0], [1], [2], [3], [4], [5], [6]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, nh.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(o.C_ORASZAM AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)','')
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
INNER JOIN #osztalycsoportok cs ON cs.OsztalyCsoportId = o.C_OSZTALYCSOPORTID
INNER JOIN #students s ON s.ID = tm.C_ORATANULOIID
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.C_TANEVID = @tanevId
AND tm.torolt='F' and tm.c_intezmenyId=@intezmenyId and o.c_tanevId=@tanevId
AND o.TOROLT = 'F'
AND tm.C_TIPUS IN (1499, 1500)
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
FROM T_TANITASIORA_OSSZES n
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID and m.torolt='F'
INNER JOIN #students s ON s.ID = m.C_ORATANULOIID
INNER JOIN #osztalycsoportok cs ON cs.OsztalyCsoportId = n.C_OSZTALYCSOPORTID
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
INNER JOIN T_NAPTARIHET_OSSZES nh ON n.C_DATUM BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId AND nh.TOROLT='F'
WHERE
n.C_TANEVID = @tanevId
AND m.C_TANEVID = @tanevId
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
and m.C_TIPUS IN (1499, 1500)
and n.TOROLT = 'F'
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, nh.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([0], [1], [2], [3], [4], [5], [6])
) AS PivotTable
) AS ASD
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV
ORDER BY C_HETSORSZAMA
END --SZÖVEGES OSZTÁLYNAPLÓ
/*TANULÓ adatai*/
SELECT DISTINCT
tanuloID
,sorszam
,torzslapSzam
,oktAzon
,tajSzam
,anyjaNeve
,szulHely
,FORMAT(szulIdo, 'yyyy.MM.dd.') szulIdo
,IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) socAdat
,kepzes
,tanuloNeve
,allampolgarsaga
,diakIgazolvanySzam
,kilepesDatum
,beirasiNaploSorszam
FROM (
SELECT
t.ID AS tanuloID
,naploSorszam.Sorszam AS sorszam
,f.C_NYILVANTARTASISZAM AS torzslapSzam
,f.C_OKTATASIAZONOSITO AS oktAzon
,f.C_TAJSZAM AS tajSzam
,f.C_ANYJANEVE AS anyjaNeve
,f.C_SZULETESIHELY AS szulHely
,f.C_SZULETESIDATUM AS szulIdo
,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') +
IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') +
IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') +
IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') +
IIF(t.C_SAJATOSNEVELESU = 'T', 'Sajátos nevelési igényű, ', '') +
IIF(t.C_BEJARO = 'T', 'Bejáró, ', '')
AS socAdat
,tt.C_NEV AS kepzes
,f.C_NYOMTATASINEV AS tanuloNeve
,d.C_NAME AS allampolgarsaga
,t.C_DIAKIGAZOLVANYSZAM AS diakIgazolvanySzam
,MAX(cs.C_KILEPESDATUM) AS kilepesDatum
,t.C_BEIRASINAPLOSORSZAM AS beirasiNaploSorszam
FROM T_TANULO_OSSZES t
INNER JOIN #students s ON s.ID = t.ID
INNER JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId=s.ID
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID
INNER JOIN T_TANULOCSOPORT_OSSZES cs ON s.ID = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @osztalyId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID
GROUP BY
s.ID, t.ID, naploSorszam.Sorszam, f.C_NYILVANTARTASISZAM, f.C_OKTATASIAZONOSITO, f.C_TAJSZAM, f.C_ANYJANEVE,
f.C_SZULETESIHELY, f.C_SZULETESIDATUM, t.C_MAGANTANULO, t.C_JOGVISZONYATSZUNETELTETO, t.C_SZAKMAIGYAKORLATON, C_SAJATOSNEVELESU, t.C_BEJARO,
t.C_SZOCIALISTAMOGATAS, tt.C_NEV, f.C_NYOMTATASINEV, d.C_NAME, t.C_DIAKIGAZOLVANYSZAM, t.C_BEIRASINAPLOSORSZAM
) tbl
ORDER BY sorszam
/*TANULÓ elérhetőségei */
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT)
INSERT INTO @Gondviselok
SELECT
TanuloId
,gondviselo.Id
FROM T_GONDVISELO_OSSZES gondviselo
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON tanulo.TanuloId = gondviselo.C_TANULOID AND gondviselo.TOROLT = 'F'
DECLARE @CimTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), CimTipus INT, GondviseloId INT)
INSERT INTO @CimTableTemp
SELECT
TanuloId
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
,C_CIMTIPUSA
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyid, 'T') tanulo
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @TanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @tanevId
UNION
SELECT
TanuloId
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
,C_CIMTIPUSA
,GondviseloId
FROM @Gondviselok gonviselo
INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = GondviseloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @TanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @tanevId
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
INSERT INTO @TanuloCimTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @CimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND temp.CimTipus = btemp.CimTipus
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,C_NAME
FROM @CimTableTemp temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus
WHERE
GondviseloId IS NULL
DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
INSERT INTO @GondViseloCimTable
SELECT DISTINCT
GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @CimTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipus = btemp.CimTipus
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,C_NAME
FROM @CimTableTemp temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus
WHERE
GondviseloId IS NOT NULL
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyid, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @tanevId
AND LEN(C_EMAILCIM) > 0
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
DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
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
DECLARE @EmailCimGondviseloTable TABLE (GondviseloId INT, 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
DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @TelefonTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyid, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @tanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
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
DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, 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
DECLARE @GondviseloTelefonTable TABLE (GondviseloId INT, 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.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 s.ID tanuloId
,ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) sorszam
, mentesseg.tantargyNev
, mentesseg.mentessegOka
, ISNULL(IIF(mentesseg = '', ''
, LEFT(mentesseg, LEN(mentesseg)- 1)),' ') mentesseg
FROM #students s
LEFT JOIN (SELECT DISTINCT
mentesseg.C_TANULOID tanuloId
, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev
, mentesseg.C_MENTESSEGOKA mentessegOka
, IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
FROM T_TANULOMENTESSEG_OSSZES mentesseg
INNER JOIN T_TANTARGY_OSSZES t on t.ID=mentesseg.C_TANTARGYID
INNER JOIN #students s ON s.ID = mentesseg.C_TANULOID AND mentesseg.C_KEZDETE BETWEEN BelepesDatum AND KilepesDatum
WHERE
mentesseg.TOROLT='F'
AND mentesseg.C_TANEVID=@tanevId
) mentesseg ON s.ID=mentesseg.TANULOID
/* TANULÓ határozatok */
SELECT
s.ID as tanuloID
, ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) AS sorszam
, FORMAT(Datum, 'd', 'hu-hu') as datum
, d.C_NAME as tipus
, Tartalom as tartalom
, FeljegyzoNeve as tanar
FROM #students s
LEFT JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID AND feljegyzes.Datum BETWEEN BelepesDatum AND KilepesDatum
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId
WHERE
Tipusa IN (1543, 1544, 1547, 1548, 1549, 1550, 1551, 1552, 1553)
/* TANULÓ feljegyzései */
SELECT
s.ID as tanuloID
, ROW_NUMBER() OVER(PARTITION BY s.ID ORDER BY s.ID) AS sorszam
, FORMAT(Datum, 'd', 'hu-hu') as datum
, d.C_NAME as tipus
, Tartalom as tartalom
, FeljegyzoNeve as tanar
FROM #students s
LEFT JOIN fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) feljegyzes ON feljegyzes.TanuloId = s.ID AND feljegyzes.Datum BETWEEN BelepesDatum AND KilepesDatum
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND d.C_TANEVID = @tanevId
WHERE
Tipusa IN
(
6315
,5450
,5421
,6312
,5460
,6313
,6314
,6319
,6316
,6317
,6318
,5456
,5467
,5468
,5469
,5457
,6323
,6320
,6321
,6322
,5473
,5458
,5470
,5471
,5472
,5454
,5461
,5462
,5463
,5459
,5455
,5464
,5465
,5466
,5453
,1546
,6326
,6327
,6328
,5452
,1537
,1536
,1538
,1539
,1535
,1541
,6491
,1540
,1542
,1553
,1545
,5477
,5478
,5476
,5474
,5475
,5479
,5481
,5480
)
/* TANULO mulasztása */
DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int)
--Félév kezdete
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
SELECT
DATEPART(MONTH,tao.C_DATUM) Honap
,tm.ID Id
,C_IGAZOLT IgazoltE
,tm.C_ORATANULOIID TanuloId
,C_IGAZOLASTIPUSA IgazolasTipus
,C_DATUM Datum
,C_TIPUS Tipus
,C_KESESPERCBEN KesesPercben
INTO #mulasztasTmp
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID
INNER JOIN #students tanulok ON tanulok.ID = tm.C_ORATANULOIID
INNER JOIN #OsztalyVagyTanoraiCsoport ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tao.C_OSZTALYCSOPORTID and tanulok.ID = tcs.C_TANULOID
WHERE
tm.TOROLT = 'F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tao.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tao.C_DATUM)
INSERT INTO @Mulasztasok
SELECT 'T', ID, Tipus FROM #students
CROSS JOIN (SELECT DISTINCT Id FROM T_DICTIONARYITEMBASE_OSSZES WHERE C_TANEVID = @tanevId AND C_TYPE LIKE 'igazolastipus' AND (@iskolaErdekuSzamit = 1 OR Id <> 1533) ) Tipus (Tipus)
--hiányzás
--Összes
SELECT s.id tanuloId, cast('mulasztás' as nvarchar(100)) tipus,
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 1 Rendez
INTO #MulasztasVegleges
FROM #students s
LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, Honap FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolt
INSERT INTO #MulasztasVegleges
SELECT s.id, 'igazolt',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 2 Rendez
FROM #students s
LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1500 )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolatlan
INSERT INTO #MulasztasVegleges
SELECT s.id, 'igazolatlan',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', 4999 Rendez
FROM #students s
LEFT JOIN (SELECT * FROM (SELECT Id, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT COUNT(Id) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1500 AND Datum <= @FelevVege GROUP BY TanuloId, IgazolasTipus) felev on felev.TanuloId=s.id
--különböző típusok é
IF @isReszletesMulasztasok = 1
BEGIN
INSERT INTO #MulasztasVegleges
SELECT m.Tanulo tanuloid, '-'+d.c_name tipus,
isnull(p.[9],0) '09.', isnull(p.[10],0) '10.', isnull(p.[11],0) '11.', isnull(p.[12],0) '12.',
isnull(p.[1],0) '01.', isnull(p.[2],0) '02.', isnull(p.[3],0) '03.', isnull(p.[4],0) '04.', isnull(p.[5],0) '05.', isnull(p.[6],0) '06.',
isnull(Felev,0) 'felev', [9]+[10]+[11]+[12]+[1]+[2]+[3]+[4]+[5]+[6] 'osszesen', d.id Rendez
FROM @Mulasztasok m
LEFT JOIN (SELECT * FROM (SELECT TanuloId, Honap, Id, IgazolasTipus, IgazoltE FROM #mulasztasTmp WHERE Tipus = 1500) a PIVOT (COUNT(ID) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv
)p ON p.TanuloId=m.Tanulo AND p.igazoltE = m.IgazoltE AND p.IgazolasTipus = m.Tipus
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.id = m.Tipus AND d.TOROLT = 'F' AND d.C_TANEVID = @tanevId
LEFT JOIN (SELECT COUNT(Id) Felev, IgazoltE, TanuloId Tanulo, IgazolasTipus FROM #mulasztasTmp WHERE Datum <= @FelevVege AND Tipus = 1500 GROUP BY IgazoltE, TanuloId, IgazolasTipus
)felev ON felev.tanulo=m.Tanulo AND felev.igazoltE=m.IgazoltE AND felev.IgazolasTipus=m.Tipus
END
--KÉSÉS
INSERT INTO #MulasztasVegleges
SELECT s.ID, 'késés (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0)
'osszesen', 5000 Rendez
FROM #students s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolt
INSERT INTO #MulasztasVegleges
select s.id, '* igazolt (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0)'osszesen', 5001 Rendez
FROM #students s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'T' AND Tipus = 1499)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'T' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
--igazolatlan
INSERT INTO #MulasztasVegleges
SELECT s.id, '* igazolatlan (p)',
isnull(ni.[9],0) '09.', isnull(ni.[10],0) '10.', isnull(ni.[11],0) '11.', isnull(ni.[12],0) '12.',
isnull(ni.[1],0) '01.', isnull(ni.[2],0) '02.', isnull(ni.[3],0) '03.', isnull(ni.[4],0) '04.', isnull(ni.[5],0) '05.', isnull(ni.[6],0) '06.',
isnull(Felev,0) 'felev',
isnull(ni.[9],0)+isnull(ni.[10],0)+isnull(ni.[11],0)+isnull(ni.[12],0)+ isnull(ni.[1],0)+
isnull(ni.[2],0)+isnull(ni.[3],0)+isnull(ni.[4],0)+isnull(ni.[5],0)+isnull(ni.[6],0) 'osszesen', 5002 Rendez
from #students s
LEFT JOIN (SELECT * FROM (SELECT KesesPercben, Honap, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (SUM(KesesPercben) FOR Honap IN ([9], [10], [11], [12], [1], [2], [3], [4], [5], [6]))piv WHERE IgazoltE = 'F' AND Tipus = 1499)ni on ni.TanuloId=s.Id
LEFT JOIN (SELECT SUM(KesesPercben) Felev, TanuloId FROM #mulasztasTmp WHERE IgazoltE = 'F' AND Tipus = 1499 AND Datum <= @FelevVege GROUP BY TanuloId) felev on felev.TanuloId=s.id
SELECT Mulasztas.tanuloid, Mulasztas.tipus, Mulasztas.[09.], Mulasztas.[10.], Mulasztas.[11.], Mulasztas.[12.],
Mulasztas.[01.], Mulasztas.[02.], Mulasztas.[03.], Mulasztas.[04.], Mulasztas.[05.], Mulasztas.[06.],
mulasztas.felev felev, ISNULL(Mulasztas.osszesen,0) Osszesen, mulasztas.Rendez
FROM #MulasztasVegleges Mulasztas
ORDER BY Rendez
/*gondviselő elérhetőségei */
SELECT DISTINCT
s.ID
,g.C_NEV
,cim.Cimtipusa C_CIMTIPUSA
,cim.cim C_OSSZETETTCIM
,telefon.telefon C_TELEFONSZAM
,email.emailcim C_EMAILCIM
FROM #students s
INNER JOIN T_GONDVISELO_OSSZES g ON g.C_TANULOID = s.ID
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = g.ID
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = g.ID
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = g.ID
WHERE
g.Torolt = 'F'
ORDER BY Cimtipusa
/*TANULÓ osztályzatai*/
DECLARE @FelevVegeHonap INT,
@FelevVegeNap INT
SELECT
@FelevVegeHonap = DATEPART(mm, C_DATUM)
,@FelevVegeNap = DATEPART(dd, C_DATUM)
FROM T_TANEVRENDJE_OSSZES
WHERE
C_NAPTIPUSA = 1400
AND TOROLT = 'F'
AND C_TANEVID = @tanevid
SELECT * INTO #magatartasSzorgalomTMP FROM
(SELECT
'Magatartás' Tipus
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
,TanuloId
,Magatartas Ertekeles
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NOT NULL
AND Tipusa = 1518
UNION ALL
SELECT
'Szorgalom'
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
,TanuloId
,Szorgalom
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NOT NULL
AND Tipusa = 1518
UNION ALL
SELECT
'Szorgalom'
,15 Honap
,TanuloId
,Szorgalom
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NOT NULL
AND Tipusa = 1519
UNION ALL
SELECT
'Magatartás'
,15 Honap
,TanuloId
,Magatartas
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NOT NULL
AND Tipusa = 1519
UNION ALL
SELECT
'Szorgalom'
,16 Honap
,TanuloId
,Szorgalom
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NOT NULL
AND Tipusa = 1520
UNION ALL
SELECT
'Magatartás'
,16 Honap
,TanuloId
,Magatartas
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NOT NULL
AND Tipusa = 1520
UNION ALL
SELECT
'Magatartás' Tipus
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NULL
AND TantargyId IS NULL
AND Tipusa = 1518
UNION ALL
SELECT
'Szorgalom' Tipus
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NULL
AND TantargyId IS NULL
AND Tipusa = 1518
UNION ALL
SELECT
'Magatartás' Tipus
,15 Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NULL
AND TantargyId IS NULL
AND Tipusa = 1519
UNION ALL
SELECT
'Szorgalom' Tipus
,15 Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NULL
AND TantargyId IS NULL
AND Tipusa = 1519
UNION ALL
SELECT
'Magatartás' Tipus
,16 Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Magatartas IS NULL
AND TantargyId IS NULL
AND Tipusa = 1520
UNION ALL
SELECT
'Szorgalom' Tipus
,16 Honap
,TanuloId
,CONVERT(NVARCHAR(MAX),Osztalyzat)
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
Szorgalom IS NULL
AND TantargyId IS NULL
AND Tipusa = 1520
)magszorg
SELECT DISTINCT
Honap
,TanuloId
,Tipus
,STUFF((
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
FROM #magatartasSzorgalomTMP bmsz
WHERE
msz.TanuloId = bmsz.TanuloId
AND msz.Tipus = bmsz.Tipus
AND msz.Honap = bmsz.Honap
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
,IIF(Tipus = 'Magatartás', 0, 1) Rendez
,
CASE
WHEN Honap = 2 THEN 8
WHEN Honap = 3 THEN 9
WHEN Honap = 4 THEN 10
WHEN Honap = 5 THEN 11
WHEN Honap = 6 THEN 12
WHEN Honap = 7 THEN 13
WHEN Honap = 8 THEN 14
WHEN Honap = 9 THEN 1
WHEN Honap = 10 THEN 2
WHEN Honap = 11 THEN 3
WHEN Honap = 12 THEN 4
WHEN Honap = 13 THEN 5
WHEN Honap = 14 THEN 7
WHEN Honap = 15 THEN 6
WHEN Honap = 16 THEN 15
END AS RendezHonap
INTO #magatartasSzorgalom
FROM #magatartasSzorgalomTMP msz
SELECT * INTO #jegyekTMP FROM
(SELECT
IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
,TanuloId
,TantargyId
,ISNULL(CONVERT(NVARCHAR(MAX),Osztalyzat), Szazalek) Ertekeles
,TargyKategoriaId Rendez
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
TantargyId IS NOT NULL
AND SzovegesErtekeles IS NULL
AND Tipusa = 1518
UNION ALL
SELECT
15 Honap
,TanuloId
,TantargyId
,ISNULL(CONVERT(NVARCHAR(MAX),Osztalyzat), Szazalek) Ertekeles
,TargyKategoriaId
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
TantargyId IS NOT NULL
AND SzovegesErtekeles IS NULL
AND Tipusa = 1519
UNION ALL
SELECT
16 Honap
,TanuloId
,TantargyId
,ISNULL(CONVERT(NVARCHAR(MAX),Osztalyzat), Szazalek) Ertekeles
,TargyKategoriaId
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevid, @osztalyid)
WHERE
TantargyId IS NOT NULL
AND SzovegesErtekeles IS NULL
AND Tipusa = 1520
)jegyek
SELECT DISTINCT
Honap
,TanuloId
,TantargyId
,STUFF((
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
FROM #jegyekTMP bj
WHERE
j.TanuloId = bj.TanuloId
AND j.TantargyId = bj.TantargyId
AND j.Honap = bj.Honap
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
,Rendez
,
CASE
WHEN Honap = 2 THEN 8
WHEN Honap = 3 THEN 9
WHEN Honap = 4 THEN 10
WHEN Honap = 5 THEN 11
WHEN Honap = 6 THEN 12
WHEN Honap = 7 THEN 13
WHEN Honap = 8 THEN 14
WHEN Honap = 9 THEN 1
WHEN Honap = 10 THEN 2
WHEN Honap = 11 THEN 3
WHEN Honap = 12 THEN 4
WHEN Honap = 13 THEN 5
WHEN Honap = 14 THEN 7
WHEN Honap = 15 THEN 6
WHEN Honap = 16 THEN 15
END AS RendezHonap
INTO #jegyek
FROM #jegyekTMP j
IF @fuggolegesTantargyak = 1
BEGIN
DECLARE @tantargyakJegyek NVARCHAR(MAX)
DECLARE @tantargyakNevvelJegyek NVARCHAR(MAX)
SELECT @tantargyakNevvelJegyek = ISNULL(@tantargyakNevvelJegyek + ', ', '') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + '] AS [' + t.TantargyNev + ']',
@tantargyakJegyek = ISNULL(@tantargyakJegyek + ', ', '[0], [1],') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + ']'
FROM (SELECT DISTINCT TantargyId, t.c_nev TantargyNev, C_TARGYKATEGORIA FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t
ORDER BY C_TARGYKATEGORIA
print @tantargyakJegyek
DECLARE @sqlJegyek NVARCHAR(MAX)
SET @sqlJegyek = '
SELECT
TanuloId tanuloID
,CASE
WHEN Honap = 2 THEN ''02.''
WHEN Honap = 3 THEN ''03.''
WHEN Honap = 4 THEN ''04.''
WHEN Honap = 5 THEN ''05.''
WHEN Honap = 6 THEN ''06.''
WHEN Honap = 7 THEN ''07.''
WHEN Honap = 8 THEN ''08.''
WHEN Honap = 9 THEN ''09.''
WHEN Honap = 10 THEN ''10.''
WHEN Honap = 11 THEN ''11.''
WHEN Honap = 12 THEN ''12.''
WHEN Honap = 13 THEN ''1/I.''
WHEN Honap = 14 THEN ''1/II.''
WHEN Honap = 15 THEN ''F''
WHEN Honap = 16 THEN ''É''
END AS periodusNev
,piv.[0] AS Magatartás
,piv.[1] AS Szorgalom
,' + @tantargyakNevvelJegyek + '
FROM
(
SELECT
TantargyId
, Honap
, TanuloId
, Ertekeles
, NaploSorszam
, RendezHonap
FROM #jegyek j
INNER JOIN #students s on j.Tanuloid=s.ID
UNION ALL
SELECT
IIF(Tipus = ''Magatartás'', 0, 1)
, Honap
, TanuloId
, Ertekeles
, NaploSorszam
, RendezHonap
FROM #magatartasSzorgalom m
INNER JOIN #students s on m.Tanuloid=s.ID
)a
PIVOT (MAX(Ertekeles) FOR TantargyId in (' + @tantargyakJegyek + ')) piv
ORDER BY NaploSorszam, RendezHonap
'
IF (@tantargyakJegyek IS NULL)
BEGIN
SELECT 0 AS tanuloId
END
ELSE
BEGIN
EXEC sp_executesql @sqlJegyek
END
END
ELSE
BEGIN
SELECT * FROM(
SELECT
TanuloId
, Tipus
, Rendez
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
FROM (SELECT TanuloId, Ertekeles, Honap, Tipus, IIF(Tipus = 'Magatartás', 0, 1) TantargyId, Rendez
FROM #magatartasSzorgalom)a
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
UNION ALL
SELECT
TanuloId TanuloId
,C_NEV TantargyNev
,Rendez
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
FROM (SELECT TanuloId, Ertekeles, Honap, TantargyId, Rendez FROM #jegyek) j
INNER JOIN (SELECT Id, C_NEV FROM T_TANTARGY_OSSZES) t ON t.Id = TantargyId
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
)vegleges
ORDER BY TanuloId, Rendez, Tipus
END
/* TANULÓ záradékai */
SELECT
students.ID tanuloId
,tanuloCsoport.C_ZARADEK zaradek
FROM #students students
INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport on students.ID = tanuloCsoport.C_TANULOID
WHERE
tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND TOROLT = 'F'
UNION
SELECT
students.ID tanuloId
,tanuloCsoport.C_VEGZARADEK zaradek
FROM #students students
INNER JOIN T_TANULOCSOPORT_OSSZES tanuloCsoport on students.ID = tanuloCsoport.C_TANULOID
WHERE
tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND TOROLT = 'F'
AND C_VEGZARADEK IS NOT NULL
AND LEN(C_VEGZARADEK) > 0
/*Szöveges minősítések*/
SELECT
a.tanuloId
,a.Honap
,a.Tantargy
,a.Ertekeles
,a.Tipus
FROM
(
SELECT
s.id tanuloId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #students s
LEFT JOIN (SELECT
C_TANULOID tanuloId
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, C_ERTEKELESDATUM))+'. hónap]' Honap
,IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) Tantargy
,C_ERTEKELESSZOVEG Ertekeles
,C_NAME Tipus
,CASE
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 1 THEN 5
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 2 THEN 6
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 3 THEN 7
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 4 THEN 8
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 5 THEN 9
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 6 THEN 10
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 7 THEN 11
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 8 THEN 12
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 9 THEN 1
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 10 THEN 2
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 11 THEN 3
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 12 THEN 4
END AS RendezHonap
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN T_TANTARGY_OSSZES t ON t.ID=te.C_TANTARGYID
INNER JOIN #students s ON s.ID = C_TANULOID AND te.C_ERTEKELESDATUM BETWEEN s.BelepesDatum AND s.KilepesDatum
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = te.C_ERTEKELESTIPUSA AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F'
WHERE
C_ERTEKELESSZOVEG IS NOT NULL
AND te.C_TANEVID=@tanevId
AND te.TOROLT='F'
) szoveges on szoveges.TANULOID=s.Id
UNION
SELECT
s.id tanuloId
,szoveges.Honap
,szoveges.Tantargy
,szoveges.Ertekeles
,szoveges.Tipus
,szoveges.RendezHonap
FROM #students s
LEFT JOIN (SELECT
C_TANULOID tanuloId
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, C_ERTEKELESDATUM))+'. hónap]' Honap
,'Magatartás / szorgalom' Tantargy
,C_ERTEKELESSZOVEG Ertekeles
,C_NAME Tipus
,CASE
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 1 THEN 5
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 2 THEN 6
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 3 THEN 7
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 4 THEN 8
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 5 THEN 9
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 6 THEN 10
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 7 THEN 11
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 8 THEN 12
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 9 THEN 1
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 10 THEN 2
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 11 THEN 3
WHEN DATEPART(MONTH, C_ERTEKELESDATUM) = 12 THEN 4
END AS RendezHonap
FROM T_TANULOERTEKELES_OSSZES te
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES oe ON oe.Id = te.Id
INNER JOIN #students s ON s.ID = C_TANULOID AND te.C_ERTEKELESDATUM BETWEEN s.BelepesDatum AND s.KilepesDatum
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = te.C_ERTEKELESTIPUSA AND d.C_TANEVID = @tanevId AND d.TOROLT = 'F'
WHERE
C_ERTEKELESSZOVEG IS NOT NULL
AND te.C_TANEVID=@tanevId
AND te.TOROLT='F'
) szoveges on szoveges.TANULOID=s.Id
)a
ORDER BY RendezHonap, Tantargy
--Közösségi szolgálat
SELECT
TanuloId
,FORMAT(Datum, 'd', 'hu-hu') Datum
,ISNULL(' - ' + Megjegyzes, '') Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId)
DROP TABLE #students
DROP TABLE #osztalycsoportok
DROP TABLE #OsztalyVagyTanoraiCsoport
DROP TABLE #megtartottOrak
DROP TABLE #OraSorszam
DROP TABLE #OraSorszamTemp
DROP TABLE #mulasztasTmp
DROP TABLE #MulasztasVegleges
DROP TABLE #jegyekTMP
DROP TABLE #jegyek
DROP TABLE #magatartasSzorgalomTMP
DROP TABLE #magatartasSzorgalom
END
GO