This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,742 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS dbo.sp_GetCsoportNaplo
GO
CREATE PROCEDURE [dbo].[sp_GetCsoportNaplo]
@tanevId INT,
@intezmenyid INT,
@csoportId INT,
@iskolaErdekuSzamit BIT,
@isGyakorlatiTargyak BIT,
@isElmeletiTargyak BIT
AS
BEGIN
SET NOCOUNT ON;
SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday).
DECLARE @isreszletesmulasztasok BIT = 0
DECLARE @isGyakorlatVagyElmelet BIT /*0 csak elmeleti || 1 csak gyakorlati || NULL elmeleti és gyakorlati*/
DECLARE @isGyakorlatVagyElmeletFalse BIT = NULL
IF(@isGyakorlatiTargyak = 1)
SET @isGyakorlatVagyElmelet = 1
IF(@isElmeletiTargyak = 1)
SET @isGyakorlatVagyElmelet = 0
IF(@isGyakorlatiTargyak = 1 AND @isElmeletiTargyak = 1)
SET @isGyakorlatVagyElmelet = NULL
IF(@isGyakorlatiTargyak = 0 AND @isElmeletiTargyak = 0)
SET @isGyakorlatVagyElmeletFalse = 0
--Kezdőoldal
SELECT
ia.C_NEV IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCim
,ia.C_OMKOD OMKOD
,ia.C_IGAZGATONEVE IntezmenyVezeto
,ocs.C_NEV Csoport
,ocs.ID CsoportId
,ISNULL(f.C_NYOMTATASINEV,'-') CsoportVezeto
,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') CsoportNaploLeiras
,FORMAT(cs.C_CSOPORTNAPLOMEGNYITASA, 'yyyy. MMMM dd.', 'hu-hu') Megnyitas
,ISNULL(FORMAT(cs.C_CSOPORTNAPLOZARASA, 'yyyy. MMMM dd.', 'hu-hu'),'-') Lezaras
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
,cs.C_TIPUSA CsoportTipusa
FROM T_INTEZMENY_OSSZES i
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id AND ocs.c_tanevid = @tanevid
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
WHERE
i.id = @intezmenyid
AND ia.c_tanevid = @tanevid
AND ocs.id = @csoportId
--Csoportot vezette
SELECT
ISNULL(felhasznaloNev.C_NYOMTATASINEV,'-') CsoportVezeto
,csoport.C_CSOPORTVEZETOID CsoportVezetoId
FROM T_CSOPORT_OSSZES csoport
INNER JOIN
T_FELHASZNALO_OSSZES felhasznaloNev ON felhasznaloNev.id = csoport.C_CSOPORTVEZETOID
WHERE
csoport.id = @csoportId
--Tanulók
SELECT
TanuloId Id
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,AdottOsztaly Osztaly
,AdottOsztalyId OsztalyId
,BelepesDatum AS BelepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId)
SELECT
Id
,Osztaly
,OktAzon
,TanuloNeve Nev
,BelepesDatum AS BelepesDatum
FROM #studentsWithTanuloCsoport
SELECT DISTINCT
Id
INTO #students
FROM #studentsWithTanuloCsoport
--Napló adatok
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 = @csoportId)
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 <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)
DECLARE @datum DATE = GETDATE()
CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT)
INSERT INTO #OraSorszam
EXEC sp_GetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId,
@datum = @datum,
@intezmenyId = @intezmenyId,
@tanevId = @tanevId
SELECT
tao.Id TanitasioraId
,tao.C_DATUM Datum
,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108) KezdetVeg
,C_ORATULAJDONOSID PedagogusId
,ISNULL('Helyettesítő: ' + 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') Tema
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: ' + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') TemaOraSzammal
,tao.C_HETNAPJA HetNapja
,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
,C_ORAKEZDETE Kezdete
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
INNER 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 AND (tantargy.C_GYAKORLATI = CASE @isGyakorlatVagyElmelet
WHEN 1 THEN 'T'
WHEN 0 THEN 'F'
END OR @isGyakorlatVagyElmelet IS NULL)
LEFT JOIN (SELECT DISTINCT OraSorszam, TanitasioraId FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id
WHERE
C_OSZTALYCSOPORTID = @csoportId
AND tao.TOROLT = 'F'
CREATE TABLE #hetek (
Het int
,HetEleje nvarchar(11)
,HetVege nvarchar(11)
,IsSzombatiMulasztas bit
,IsVasarnapiMulasztas bit
,PRIMARY KEY (Het)
)
INSERT INTO #Hetek
SELECT
nn.C_HETSORSZAMA
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.')
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.')
,0 --default
,0 --default
FROM T_NAPTARINAP_OSSZES nn
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 1413
AND nn.TOROLT='F'
AND nn.c_tanevId = @tanevId
GROUP BY nn.C_HETSORSZAMA
ORDER BY MIN(nn.C_NAPDATUMA)
/* Naplo */
-- Hétfőtől vasárnapig kellenek, mert ez csak segédtábla
SELECT DISTINCT
nn.C_HETSORSZAMA Het
,NapDictionary.C_NAME Nap
,FORMAT(nn.C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') Datum
,nn.C_NAPDATUMA
FROM T_NAPTARINAP_OSSZES nn
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma AND tao.c_osztalycsoportid = @csoportid AND tao.torolt = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES NapDictionary ON NapDictionary.id = nn.C_ALAPHETNAPJA AND NapDictionary.C_TANEVID = @tanevId
WHERE nn.c_napdatuma >= ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND nn.c_napdatuma <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)
ORDER BY nn.C_HETSORSZAMA, nn.C_NAPDATUMA
SELECT
mto.Datum C_NAPDATUMA
,FORMAT(mto.Datum, 'dddd', 'hu-hu') Napneve
,null C_MEGJEGYZES
,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA
,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA
,HetSorszama C_HETSORSZAMA
,KezdetVeg KezdetVeg
,nsz.Sorszam Napszam
,Tantargynev Tantargy
,PedagogusNev Tanar
,Tema Oraanyaga
,OraSorszam C_ORAEVESSORSZAM
,Kezdete Kezdete
INTO #szoveges
FROM #megtartottOrak mto
INNER JOIN T_NAPTARIHET_OSSZES nh ON Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId and nh.torolt='F'
LEFT JOIN @NapSorszam nsz ON nsz.Datum = mto.Datum
/* NaploAdatok */
IF(@isGyakorlatVagyElmeletFalse IS NULL) BEGIN
IF((@isGyakorlatVagyElmelet = 1) OR (@isGyakorlatVagyElmelet = 0) OR (@isGyakorlatVagyElmelet IS NULL)) BEGIN
SELECT DISTINCT
FORMAT(C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') Datum
, napneve
, c_megjegyzes
, c_hetkezdonapja
, c_hetutolsonapja
, c_hetsorszama
, KezdetVeg
, napszam
, STUFF((SELECT ' | ' + CAST(bszov.TANTARGY AS VARCHAR(max))
FROM #szoveges bszov
WHERE
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
and bszov.KezdetVeg=szov.KezdetVeg
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.KezdetVeg=szov.KezdetVeg
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.KezdetVeg=szov.KezdetVeg
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.KezdetVeg=szov.KezdetVeg
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,3,'') OraEvesSorszama
,Kezdete
,C_NAPDATUMA
FROM #szoveges szov
ORDER BY C_NAPDATUMA, Kezdete
END
END
ELSE IF(@isGyakorlatVagyElmeletFalse = 0) BEGIN
SELECT
'' Datum, '' napneve, '' c_megjegyzes, '' c_hetkezdonapja, '' c_hetutolsonapja, '' c_hetsorszama, '' KezdetVeg, '' napszam, '' TANTARGY,'' TANAR,'' ORAANYAGA,'' OraEvesSorszama,'' Kezdete
END
CREATE TABLE #hianyzasok (
C_HETSORSZAMA int
,C_NYOMTATASINEV nvarchar(255)
,TanuloId int
,Hetfo nvarchar(128)
,Kedd nvarchar(128)
,Szerda nvarchar(128)
,Csutortok nvarchar(128)
,Pentek nvarchar(128)
,Szombat nvarchar(128)
,Vasarnap nvarchar(128)
,Primary Key (C_HETSORSZAMA, TanuloId)
)
/*Hiányzások*/
INSERT INTO #hianyzasok
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, TanuloId,
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek],
MAX([6]) AS [Szombat], MAX([7]) AS [Vasarnap]
FROM (
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, C_ORATANULOIID as TanuloId, [1], [2], [3], [4], [5], [6], [7]
FROM (
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, C_ORATANULOIID, n.C_HETSORSZAMA,
'[' + STUFF((
SELECT ', ' + CAST(OraSorszam 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 #students s ON s.Id = tm.C_ORATANULOIID
LEFT JOIN (SELECT DISTINCT * FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = O.Id
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
AND tm.C_TANEVID = @tanevId
AND tm.torolt='F' AND o.c_tanevId=@tanevId
AND o.TOROLT = 'F'
AND tm.C_TIPUS IN (1499, 1500)
AND o.C_OSZTALYCSOPORTID = @csoportId
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 T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
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'
AND n.C_OSZTALYCSOPORTID = @csoportId
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
PIVOT
(
MAX(HIANYZAS)
FOR NAP IN ([1], [2], [3], [4], [5], [6], [7])
) AS PivotTable
) AS ASD
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV, TanuloId
UPDATE #hetek SET #hetek.IsSzombatiMulasztas=h.Sz, #hetek.IsVasarnapiMulasztas=h.V
FROM (SELECT C_HETSORSZAMA AS hetsorszama
,(CASE WHEN MAX(Szombat) IS NOT NULL THEN 1 ELSE 0 END) AS Sz
,(CASE WHEN MAX(Vasarnap) IS NOT NULL THEN 1 ELSE 0 END) AS V
FROM #hianyzasok GROUP BY C_HETSORSZAMA) AS h
WHERE h.hetsorszama=#hetek.Het
/* NaploMulasztas */
SELECT
hi.C_HETSORSZAMA, hi.C_NYOMTATASINEV, hi.Hetfo, hi.Kedd,
hi.Szerda, hi.Csutortok, hi.Pentek, hi.Szombat, hi.Vasarnap
FROM #hianyzasok hi
ORDER BY hi.C_HETSORSZAMA
/* NaptariHetek */
SELECT
h.Het, h.HetEleje, h.HetVege, h.IsSzombatiMulasztas, h.IsVasarnapiMulasztas
FROM #hetek h
ORDER BY h.Het
/*TANULÓ adatai*/
SELECT
Id TanuloId
,TanuloCsoportId
,Sorszam
,TorzslapSzam
,OktAzon
,TajSzam
,AnyjaNeve
,SzulHely
,SzulIdo
,SocAdat
,Kepzes
,TanuloNeve
,Allampolgarsaga
,DiakIgazolvanySzam
,KilepesDatum
,BeirasiNaploSorszam
,Osztaly
,OsztalyId
,BelepesDatum
FROM #studentsWithTanuloCsoport
/*TANULÓ elérhetőségei */
DECLARE @TanuloCimTable TABLE (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, @csoportid) 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, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
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 fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) 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, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, '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
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, @csoportid, '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
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.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
/* 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, 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, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @csoportId,
@iskolaErdekuSzamit = @iskolaErdekuSzamit,
@isReszletesMulasztasok = @isreszletesmulasztasok
DECLARE @gondviselok TABLE (Id INT)
INSERT INTO @gondviselok
SELECT
GondviseloId
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T')
/*gondviselő elérhetőségei */
SELECT DISTINCT
Gondviselo.TanuloId TanuloId
,Gondviselo.Gondviselonev C_NEV
,cim.Cimtipusa C_CIMTIPUSA
,cim.cim C_OSSZETETTCIM
,telefon.telefon C_TELEFONSZAM
,email.emailcim C_EMAILCIM
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselo
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselo.GondviseloId
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselo.GondviseloId
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselo.GondviseloId
ORDER BY Cimtipusa
/*TANULÓ osztályzatai*/
SELECT
Datum
,TipusId
,TanuloCsoportId
,ErtekelesSzoveg
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomErtekId
,SzorgalomErtek
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNev
,TantargyNevNyomtatvanyban
,TargyKategoriaId
,FotargyE
,FotargyId
,Altantargy
,ErtekelesTema
,Jeloles
,JelolesAndErtekelesTema
,isMagatartasSzorgalom
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @csoportId, DEFAULT, 0, 1, DEFAULT)
WHERE
OsztalyCsoportId = @csoportId
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @csoportid,
@ertekelesTipusa = NULL,
@csakTanorai = 0,
@csakKivlasztottOsztalyCsoport = 1,
@atsoroltTanuloErtekelesek = 0,
@fuggolegesTantargyak = 0,
@intezmenyId = @intezmenyid
/*Szöveges minősí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
LEFT 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 + Jeloles 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 s.TanuloCsoportId = szoveges.TanuloCsoportId
)a
ORDER BY RendezHonap, Tantargy
SELECT
COUNT(distinct Id) TanulokSzama
,Osztaly
FROM #studentsWithTanuloCsoport
GROUP BY Osztaly
--é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.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)
--megtartott órák száma
SELECT
COUNT(TantargyId) TantargyOraszam
,Tantargynev TantargyNev
INTO #megtartottOrakSzama
FROM #megtartottOrak
WHERE Megtartott = 'T'
GROUP BY TantargyId, TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) OsszesTantargySzam
,STUFF((
SELECT DISTINCT ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS NVARCHAR(MAX)) + ')'
FROM #megtartottOrakSzama btmp
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,'') Tantargyak
FROM #megtartottOrakSzama tmp
-- Csoport tanárai
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' and f.C_OSZTALYCSOPORTID = @csoportId
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F'
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
DROP TABLE #megtartottOrakSzama
DROP TABLE #students
END
GO

View file

@ -0,0 +1,471 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS sp_GetDokumentumErtekelesekIdoszakonkent
GO
CREATE PROCEDURE sp_GetDokumentumErtekelesekIdoszakonkent
@tanevId INT,
@osztalyCsoportId INT,
@ertekelesTipusa INT,
@csakTanorai BIT,
@csakKivlasztottOsztalyCsoport BIT,
@atsoroltTanuloErtekelesek INT,
@fuggolegesTantargyak BIT,
@isMegjegyzesMegjelenjen BIT = 1,
@intezmenyId INT
AS
BEGIN
SET NOCOUNT ON;
/* a #students tábla deklarálása az alábbi tároltakban történik: sp_GetOsztalynaplo, sp_GetCsoportNaplo, sp_GetUzenofuzetErtekelolap*/
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
Tipus
,Honap
,TanuloId
,TanuloCsoportId
,Ertekeles
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
,TanuloCsoportId
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev)
+ CASE
WHEN TipusId = 1518 THEN ''
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
END AS Ertekeles
FROM #ErtekelesekTemp
WHERE
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
AND TipusId IN (1518, 1522, 1523, 1524, 1525)
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
,TanuloCsoportId
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev)
+ CASE
WHEN TipusId = 1518 THEN ''
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
END AS Ertekeles
FROM #ErtekelesekTemp
WHERE
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
AND TipusId IN (1518, 1522, 1523, 1524, 1525)
UNION ALL
SELECT
'Szorgalom'
,15 Honap
,TanuloId
,TanuloCsoportId
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev) + Jeloles
FROM #ErtekelesekTemp
WHERE
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
AND TipusId = 1519
UNION ALL
SELECT
'Magatartás'
,15 Honap
,TanuloId
,TanuloCsoportId
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) + Jeloles
FROM #ErtekelesekTemp
WHERE
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
AND TipusId = 1519
UNION ALL
SELECT
'Szorgalom'
,16 Honap
,TanuloId
,TanuloCsoportId
,ISNULL(SzorgalomErtek, SzorgalomOsztalyzatNev) + Jeloles
FROM #ErtekelesekTemp
WHERE
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
AND TipusId = 1520
UNION ALL
SELECT
'Magatartás'
,16 Honap
,TanuloId
,TanuloCsoportId
,ISNULL(MagatartasErtek, MagatartasOsztalyzatNev) + Jeloles
FROM #ErtekelesekTemp
WHERE
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
AND TipusId = 1520
)magszorg
SELECT DISTINCT
Honap
,TanuloId
,TanuloCsoportId
,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
AND msz.TanuloCsoportId = bmsz.TanuloCsoportId
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
,IIF(Tipus = 'Magatartás', 0, 1) RENDEZ1
,'' RENDEZ2
,0 RENDEZ3
,0 RENDEZ4
,'' RENDEZ5
, 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 = 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
CREATE CLUSTERED INDEX ci111sss on #magatartasSzorgalomTMP (tanulocsoportid)
SELECT
Honap
,TanuloId
,TanuloCsoportId
,TantargyId
,TantargyNev
,Ertekeles
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
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
,TanuloCsoportId
,TantargyId
,TantargyNev
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek)
+ CASE
WHEN TipusId = 1518 THEN ''
WHEN TipusId = 1522 THEN '(I.)'
WHEN TipusId = 1523 THEN '(III.)'
WHEN TipusId = 1524 THEN '(II.)'
WHEN TipusId = 1525 THEN '(IV.)'
WHEN TipusId = 1521 THEN '(mz)'
WHEN TipusId = 1526 THEN '(pv)'
WHEN TipusId = 1527 THEN '(ov)'
WHEN TipusId = 1528 THEN '(kv)'
WHEN TipusId = 6916 THEN '(pótló v.)'
WHEN TipusId = 6917 THEN '(jv)'
WHEN TipusId = 6918 THEN '(bv)'
ELSE ' ' + LOWER(SUBSTRING(C_NAME, 0, 3))
END AS Ertekeles
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp ertekeles
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekesMod ON ertekeles.TipusId = ertekesMod.ID AND TOROLT = 'F' AND ertekesMod.C_TANEVID = @tanevId
WHERE
isMagatartasSzorgalom = 'F'
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
AND TipusId NOT IN (1519, 1520)
UNION ALL
SELECT
15 Honap
,TanuloId
,TanuloCsoportId
,TantargyId
,TantargyNev
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp
WHERE
isMagatartasSzorgalom = 'F'
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
AND TipusId = 1519
UNION ALL
SELECT
16 Honap
,TanuloId
,TanuloCsoportId
,TantargyId
,TantargyNev
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp
WHERE
isMagatartasSzorgalom = 'F'
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
AND TipusId = 1520
)jegyek
CREATE CLUSTERED INDEX ci111ssws on #jegyekTMP (tanulocsoportid)
-----------------------------------------------------------------------------------------------
INSERT INTO #jegyekTMP
SELECT Honap
,TanuloId
,TanuloCsoportId
,NULL AS TantargyId
,a.Tipus
,Ertekeles
,IIF(a.Tipus = 'Magatartás', 0, 1) RENDEZ1
,'' AS RENDEZ2
,0 AS RENDEZ3
,0 AS RENDEZ4
,'' AS RENDEZ5
FROM #magatartasSzorgalomTmp a
-- Összeszedjük az osztályhoz kapcsolódó csoportokat
CREATE TABLE #OsztalyCsoportIdList(
ID INT PRIMARY KEY
)
IF EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE ID = @osztalyCsoportId)
BEGIN
INSERT INTO
#OsztalyCsoportIdList (ID)
SELECT ID
FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId)
-- Nem tanórai célú csoportok eltávolítása
DELETE ocsl
FROM #OsztalyCsoportIdList ocsl
LEFT JOIN T_CSOPORT_OSSZES cs
ON cs.ID = ocsl.ID
WHERE cs.C_TIPUSA <> 1034
END
ELSE
BEGIN
-- Csoport esetén csak a keresett csoport kell legyen tagja
INSERT INTO #OsztalyCsoportIdList (ID)
SELECT @osztalyCsoportId
END
-- Összeszedjük az összes Tanuló/Tanulócsoport/Hónap-ot
SELECT
tcs.C_TANULOID AS ID
,Honap
,tcs.ID AS TanuloCsoportId
INTO #TanuloIdHonap
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN #OsztalyCsoportIdList ocsil ON tcs.C_OSZTALYCSOPORTID = ocsil.ID
INNER JOIN
(
-- Kidobjuk a csoportok által behozott, más osztályba járó tanulókat
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T')
) AS Tanulok ON Tanulok.TanuloId = tcs.C_TANULOID
CROSS JOIN (VALUES (2),(3),(4),(5),(6),(9),(10),(11),(12),(13),(14),(15),(16)) Honap (Honap)
INSERT INTO #Tantargyak
EXEC uspGetDokumentumTantargyakErtekeleshez @intezmenyId, @tanevId, @osztalyCsoportId
SELECT
tih.Id TanuloId
,tih.TanuloCsoportId TanuloCsoportId
,tih.Honap Honap
,t.C_NEV TantargyNev
,t.ID TantargyId
,t.RENDEZ1
,t.RENDEZ2
,t.RENDEZ3
,t.RENDEZ4
,t.RENDEZ5
INTO #TanuloTantargyHonapTmp
FROM #TanuloIdHonap tih
LEFT JOIN #Tantargyak t ON t.c_tanuloid = tih.Id and t.c_tanulocsoportid = tih.TanuloCsoportId
-----------------------------------------------------------------------------------------------------------
SELECT DISTINCT
TanuloIdHonap.Honap
,TanuloIdHonap.TanuloId TanuloId
,TanuloIdHonap.TanuloCsoportId
,TanuloIdHonap.TantargyId
,TanuloIdHonap.TantargyNev
,STUFF((
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
FROM #jegyekTMP bjegyekTMP
WHERE
jegyekTMP.TanuloId = bjegyekTMP.TanuloId
AND jegyekTMP.TanuloCsoportId = bjegyekTMP.TanuloCsoportId
AND jegyekTMP.TantargyNev = bjegyekTMP.TantargyNev
AND jegyekTMP.Honap = bjegyekTMP.Honap
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
,TanuloIdHonap.RENDEZ1
,TanuloIdHonap.RENDEZ2
,TanuloIdHonap.RENDEZ3
,TanuloIdHonap.RENDEZ4
,TanuloIdHonap.RENDEZ5
,
CASE
WHEN TanuloIdHonap.Honap = 2 THEN 8
WHEN TanuloIdHonap.Honap = 3 THEN 9
WHEN TanuloIdHonap.Honap = 4 THEN 10
WHEN TanuloIdHonap.Honap = 5 THEN 11
WHEN TanuloIdHonap.Honap = 6 THEN 12
WHEN TanuloIdHonap.Honap = 9 THEN 1
WHEN TanuloIdHonap.Honap = 10 THEN 2
WHEN TanuloIdHonap.Honap = 11 THEN 3
WHEN TanuloIdHonap.Honap = 12 THEN 4
WHEN TanuloIdHonap.Honap = 13 THEN 5
WHEN TanuloIdHonap.Honap = 14 THEN 7
WHEN TanuloIdHonap.Honap = 15 THEN 6
WHEN TanuloIdHonap.Honap = 16 THEN 15
END AS RendezHonap
INTO #jegyek
FROM #TanuloTantargyHonapTmp TanuloIdHonap
LEFT JOIN #jegyekTMP jegyekTMP ON TanuloIdHonap.TanuloId = jegyekTMP.TanuloId
AND TanuloIdHonap.Honap = jegyekTMP.Honap
AND TanuloIdHonap.TanuloCsoportId = jegyekTMP.TanuloCsoportId
AND TanuloIdHonap.TantargyNev = jegyekTMP.TantargyNev
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, IIF(LEN(t.c_nev) > 128, SUBSTRING(t.C_NEV,1,120) + '...', t.c_nev) AS TantargyNev, RENDEZ1
,RENDEZ2 ,RENDEZ3, RENDEZ4, RENDEZ5 FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
DECLARE @sqlJegyek NVARCHAR(MAX)
SET @sqlJegyek = '
SELECT
TanuloId tanuloID
,TanuloCsoportId
,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 = 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
CASE
WHEN TantargyNev = ''Magatartás'' THEN 0
WHEN TantargyNev = ''Szorgalom'' THEN 1
ELSE TantargyId
END AS TantargyId
,Honap
,s.ID TanuloId
,s.TanuloCsoportId
,Ertekeles
,RendezHonap
FROM #jegyek j
INNER JOIN #studentsWithTanuloCsoport s on j.Tanuloid = s.ID AND s.TanuloCsoportId = j.TanuloCsoportId
)a
PIVOT (MAX(Ertekeles) FOR TantargyId in (' + @tantargyakJegyek + ')) piv
ORDER BY RendezHonap
'
IF (@tantargyakJegyek IS NULL)
BEGIN
SELECT 0 AS tanuloId, 0 as TanuloCsoportId
END
ELSE
BEGIN
EXEC sp_executesql @sqlJegyek
END
END
ELSE
BEGIN
SELECT
TanuloId TanuloId
,TanuloCsoportId
,TantargyNev AS Tipus
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
FROM (
SELECT jegyek.TanuloId
,ISNULL(tanulok.TanuloCsoportId
,(SELECT TOP 1 ID FROM T_TANULOCSOPORT_OSSZES AS tcs
WHERE tcs.C_TANULOID = jegyek.TanuloId AND tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId)
) AS TanuloCsoportId, Ertekeles, Honap, TantargyId, TantargyNev, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
FROM #jegyek AS jegyek
LEFT JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalycsoportId, 'T') AS tanulok ON
tanulok.TanuloId = jegyek.TanuloId AND tanulok.TanuloCsoportId = jegyek.TanuloCsoportId
) j
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
ORDER BY TanuloId, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Tipus
END
END
GO

View file

@ -0,0 +1,141 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DROP PROCEDURE IF EXISTS dbo.sp_GetUzenofuzetErtekelolap
GO
CREATE PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
@osztalyId INT,
@tanevId INT,
@intezmenyId INT
AS
BEGIN
SET NOCOUNT ON;
--Intézmény, tanév
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod,
T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE Intezmenyvezeto,
(SELECT C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @osztalyId AND T_OSZTALY_OSSZES.C_ALTANEVID = @tanevId AND T_OSZTALY_OSSZES.TOROLT = 'F') PartnerID,
T_TANEV_OSSZES.C_NEV TANEV
,@osztalyId AS OsztalyId
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
WHERE
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
AND T_TANEV_OSSZES.ID = @tanevId
--Osztály, évfolyam
SELECT ocs.C_NEV,
ocs.C_EVFOLYAMTIPUSA,
f.C_NYOMTATASINEV Osztalyfonok
,ocs.ID AS OsztalyId
,f.ID AS OsztalyfonokId
,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 AS ocs
INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID
LEFT JOIN T_FELHASZNALO_OSSZES AS f ON f.id = o.c_osztalyfonokid
WHERE ocs.TOROLT='F'
AND ocs.ID = @osztalyId
AND ocs.C_TANEVID = @tanevId
--Tanuló adatai
SELECT
TanuloId Id
,TanuloCsoportId TanuloCsoportId
,OsztalyTanuloi.BelepesDatum BelepesDatum
,OsztalyTanuloi.KilepesDatum KilepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
SELECT
T_FELHASZNALO_OSSZES.ID TanuloId,
TanuloCsoportId,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
,@osztalyId AS OsztalyId
FROM T_FELHASZNALO_OSSZES
INNER JOIN #studentsWithTanuloCsoport Tanulok ON Tanulok.Id = T_FELHASZNALO_OSSZES.Id
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
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
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @osztalyId,
@ertekelesTipusa = NULL,
@csakTanorai = 1,
@csakKivlasztottOsztalyCsoport = 0,
@atsoroltTanuloErtekelesek = 0,
@fuggolegesTantargyak = 0,
@isMegjegyzesMegjelenjen = 0,
@intezmenyId = @intezmenyId
DROP TABLE #studentsWithTanuloCsoport
END
GO

View file

@ -0,0 +1,230 @@
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez
@intezmenyId int,
@tanevId int,
@osztalyCsoportId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @evfolyamTipusId INT = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
CREATE TABLE #KapcsopodoTantargyak(
ID INT
,C_FOTARGYID INT
,C_NEV NVARCHAR(255)
,C_NEVNYOMTATVANYBAN NVARCHAR(255)
,C_TARGYKATEGORIA INT
,C_INTEZMENYID INT
,C_TANEVID INT
)
INSERT INTO
#KapcsopodoTantargyak
SELECT
kt.ID
,kt.C_FOTARGYID
,kt.C_NEV
,t.C_NEVNYOMTATVANYBAN
,kt.C_TARGYKATEGORIA
,kt.C_INTEZMENYID
,kt.C_TANEVID
FROM
dbo.fnGetKapcsolodoTantargyak(@intezmenyId, @tanevId, NULL) AS kt
INNER JOIN T_TANTARGY_OSSZES AS t ON t.ID = kt.ID;
-- Összeszedjük minden tanuló-tanulócsoporthoz a tárgyakat
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_TANULOID, C_TANULOCSOPORTID, C_INTEZMENYID, C_TANEVID)
AS (
-- TTF-es tárgyak
SELECT DISTINCT
Foglalkozas.C_TANTARGYID,
Tantargy.C_FOTARGYID,
f.ID as c_tanuloid,
tcs.ID as c_tanulocsoportid,
Tantargy.C_INTEZMENYID,
Tantargy.C_TANEVID
FROM
T_FOGLALKOZAS_OSSZES Foglalkozas
INNER JOIN
T_TANTARGY_OSSZES Tantargy ON
Tantargy.C_INTEZMENYID = Foglalkozas.C_INTEZMENYID
AND Tantargy.C_TANEVID = Foglalkozas.C_TANEVID
AND Tantargy.TOROLT = 'F'
AND Tantargy.ID = Foglalkozas.C_TANTARGYID
INNER JOIN
#OsztalyCsoportIdList OsztalyCsoport ON
OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
LEFT JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID
WHERE
Foglalkozas.C_INTEZMENYID = @intezmenyId
AND Foglalkozas.C_TANEVID = @tanevId
AND Foglalkozas.TOROLT = 'F'
UNION
-- ttf-ben nem szereplő tárgyak
SELECT DISTINCT
OrarendiOra.C_TANTARGYID,
Tantargy.C_FOTARGYID,
f.ID as c_tanuloid,
tcs.ID as c_tanulocsoportid,
Tantargy.C_INTEZMENYID,
Tantargy.C_TANEVID
FROM
T_ORARENDIORA_OSSZES OrarendiOra
INNER JOIN
T_TANTARGY_OSSZES Tantargy ON
Tantargy.C_INTEZMENYID = OrarendiOra.C_INTEZMENYID
AND Tantargy.C_TANEVID = OrarendiOra.C_TANEVID
AND Tantargy.TOROLT = 'F'
AND Tantargy.ID = OrarendiOra.C_TANTARGYID
INNER JOIN
#OsztalyCsoportIdList OsztalyCsoport ON
OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
INNER JOIN
T_TANULOCSOPORT_OSSZES tcs ON
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
AND (tcs.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
WHERE
OrarendiOra.C_INTEZMENYID = @intezmenyId
AND OrarendiOra.C_TANEVID = @tanevId
AND OrarendiOra.TOROLT = 'F'
UNION
-- Értékelést kapott tárgyak
SELECT DISTINCT
TanuloErtekeles.TantargyId,
TanuloErtekeles.FotargyId,
TanuloErtekeles.TanuloId,
TanuloErtekeles.TanuloCsoportId as C_TANULOCSOPORTID,
@intezmenyId,
@tanevId
FROM
fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, DEFAULT, DEFAULT, 1, DEFAULT) AS TanuloErtekeles
-- UNION ALL
-- -- AMI-s értékelés
---- összevonható-e az alap értékeléssel
-- SELECT DISTINCT
-- TanuloErtekeles.C_TANTARGYID,
-- Tantargy.C_FOTARGYID,
-- TanuloErtekeles.C_TANULOID,
-- tcs.ID as C_TANULOCSOPORTID,
-- Tantargy.C_INTEZMENYID,
-- Tantargy.C_TANEVID
-- FROM
---- helyett az fnGetDokumentumErtekelesekOsztalyonkent
-- T_TANULOERTEKELES_OSSZES TanuloErtekeles
-- INNER JOIN
-- T_TANTARGY_OSSZES Tantargy ON
-- Tantargy.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
-- AND Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID
-- AND Tantargy.TOROLT = 'F'
-- AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
-- INNER JOIN
-- T_OSZTALYCSOPORT_OSSZES Osztaly ON
-- Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
-- AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
-- AND Osztaly.TOROLT = 'F'
-- AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
-- AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
-- INNER JOIN
-- T_TANULOCSOPORT_OSSZES tcs ON
-- tcs.C_OSZTALYCSOPORTID = Osztaly.ID
-- AND tcs.C_TANULOID = TanuloErtekeles.C_TANULOID
---- and ertekels-datum between tcs.belépés and tcs. kilépés
-- WHERE
-- TanuloErtekeles.C_INTEZMENYID = @intezmenyId
-- AND TanuloErtekeles.C_TANEVID = @tanevId
-- AND TanuloErtekeles.TOROLT = 'F'
-- AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
-- AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
)
SELECT
NULL,
NULL,
'Magatartás',
'',
0,
f.ID,
tcs.ID
,0
,''
,0
,0
,''
,@intezmenyId
,@tanevId
FROM T_TANULOCSOPORT_OSSZES tcs
LEFT JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
UNION
SELECT
NULL,
NULL,
'Szorgalom',
'',
0,
f.ID,
tcs.ID
,1
,''
,0
,0
,''
,@intezmenyId
,@tanevId
FROM T_TANULOCSOPORT_OSSZES tcs
LEFT JOIN T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
UNION
SELECT DISTINCT
KapcsopodoTantargy.ID,
KapcsopodoTantargy.C_FOTARGYID,
KapcsopodoTantargy.C_NEV,
KapcsopodoTantargy.C_NEVNYOMTATVANYBAN,
KapcsopodoTantargy.C_TARGYKATEGORIA,
tantargy_CTE.c_tanuloId,
tantargy_CTE.c_tanulocsoportid
,CASE WHEN KapcsopodoTantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
,ISNULL(ISNULL(Fotargy.C_NEVNYOMTATVANYBAN, Fotargy.C_NEV), ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV)) AS RENDEZ2
,ISNULL(KapcsopodoTantargy.C_FOTARGYID, KapcsopodoTantargy.ID) AS RENDEZ3
,KapcsopodoTantargy.C_FOTARGYID AS RENDEZ4
,ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV) AS RENDEZ5
,KapcsopodoTantargy.C_INTEZMENYID
,KapcsopodoTantargy.C_TANEVID
FROM tantargy_CTE
INNER JOIN
#KapcsopodoTantargyak KapcsopodoTantargy ON
tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID
OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
LEFT JOIN
T_TANTARGY_OSSZES Fotargy ON
Fotargy.C_INTEZMENYID = tantargy_CTE.C_INTEZMENYID
AND Fotargy.C_TANEVID = tantargy_CTE.C_TANEVID
AND Fotargy.TOROLT = 'F'
AND Fotargy.ID = tantargy_CTE.C_FOTARGYID
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON
TargyKategoriaDictionary.Id = KapcsopodoTantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON
FotargyKategoriaDictionary.ID = Fotargy.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = Fotargy.C_TANEVID
END
GO