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