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

View File

@@ -0,0 +1,309 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetSzakmaiGyNaplo
GO
CREATE PROCEDURE [dbo].[sp_GetSzakmaiGyNaplo]
@tanevId int
,@intezmenyId int
,@csoportId int
,@iskolaErdekuSzamit bit
AS
BEGIN
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId AND TOROLT = 'F')
SET NOCOUNT ON;
CREATE TABLE #Tanulo (
Tanulo int
,Osztaly nvarchar(max)
,OsztalyId int
,TanuloNeve nvarchar(255)
,TanuloOktAzon nvarchar(20)
,BelepesDatum DATETIME
)
CREATE TABLE #OraSorszam (
TanitasioraId int
,OraSorszam int
)
CREATE TABLE #mulasztas (
Csoport nvarchar(1)
,Tanulo int
,Oraszam int
)
CREATE TABLE #hianyzas (
Tanulo int
,Osztaly nvarchar(max)
,Honap int
,IgazoltE nvarchar(1)
)
CREATE TABLE #hianyzasOssz (
Osztaly int
,Honap int
,IgazoltE nvarchar(1)
)
CREATE TABLE #igazoltH (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
CREATE TABLE #igazolatlanH (Csoport int, [1] int, [2] int, [3] int, [4] int, [5] int, [6] int, [7] int, [8] int, [9] int, [10] int,
[11] int, [12] int)
CREATE TABLE #Igazolt (
Csoport int
,Osszes int
)
CREATE TABLE #IgazoltOsszesOsszes (
Csoport int
,Osszes int
)
--Kezdőoldal
SELECT
ia.c_nev as IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as IntezmenyCim
,ia.c_omkod as OMKOD
,ia.c_igazgatoneve as IntezmenyVezeto
,ocs.c_nev NapkozisCsoport
,isnull(f.c_nyomtatasinev,'-') as CsoportVezeto
,isnull(cs.c_csoportnaploleiras,'-') as CsoportNaploLeiras
,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy. MMMM dd.', 'hu-hu') as Megnyitas
,isnull(FORMAT(cs.c_csoportnaplozarasa, 'yyyy. MMMM dd.', 'hu-hu'),'-') as Lezaras
,t.c_nev as Tanev
,cs.c_csoportnaploleiras as Megjegyzes
,ocs.ID NapkozisCsoportId
,f.ID CsoportVezetoId
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID as FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES as OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
,cs.C_TIPUSA as 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
INNER JOIN T_CSOPORT_OSSZES cs on cs.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f on f.ID = cs.C_CSOPORTVEZETOID
INNER JOIN T_TANEV_OSSZES t on t.ID = ia.C_TANEVID
WHERE i.ID = @intezmenyid
AND ia.C_TANEVID = @tanevid
AND ocs.ID = @csoportId
--Csoport tanulóinak osztályai
INSERT INTO #Tanulo
SELECT
tcs.C_TANULOID AS TanuloId
,osztaly.OsztalyNev AS Osztaly
,osztaly.ID AS OsztalyId
,tanuloNeve.C_NYOMTATASINEV AS TanuloNeve
,tanuloNeve.C_OKTATASIAZONOSITO AS OktAzon
,osztaly.BelepesDatuma AS BelepesDatum
FROM T_TANULOCSOPORT_OSSZES tcs
CROSS APPLY fnGetTanuloOsztaly(tcs.C_TANULOID, tcs.C_KILEPESDATUM, @feladatKategoriaId, 1, DEFAULT) osztaly
INNER JOIN T_FELHASZNALO_OSSZES tanuloNeve on tanuloNeve.ID = tcs.C_TANULOID
WHERE tcs.C_TANEVID = @tanevId
AND tcs.C_OSZTALYCSOPORTID = @csoportId
SELECT
COUNT(DISTINCT Tanulo) AS Tanulo
,Osztaly
,OsztalyId
FROM #Tanulo
GROUP BY Osztaly, OsztalyId
DECLARE @datum date = getdate()
INSERT INTO #OraSorszam
EXEC [uspGetOraSorszamByOsztaly]
@osztalyCsoportId = @csoportId
,@datum = @datum
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
INSERT INTO #mulasztas
SELECT
'x' Csoport
,tm.c_oratanuloiid Tanulo
,oes.OraSorszam AS OraSzam
FROM T_TANULOMULASZTAS_OSSZES tm
INNER JOIN T_TANITASIORA_OSSZES tao on tm.C_TANITASIORAKID=tao.ID and tao.C_TANEVID=@tanevid
LEFT JOIN #OraSorszam oes on oes.TanitasioraId=tao.ID
WHERE tao.C_OSZTALYCSOPORTID=@csoportId
AND tm.TOROLT='F'
AND tm.C_TANEVID=@tanevid
AND tm.C_INTEZMENYID=@intezmenyid
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
SELECT f.c_nyomtatasinev Tanulo, tanulo.Osztaly Osztaly, m.[1], m.[2], m.[3], m.[4], m.[5], m.[6], m.[7], m.[8], m.[9], m.[10],
m.[11], m.[12], m.[13], m.[14], m.[15], m.[16], m.[17], m.[18],m.[19],m.[20],
m.[21], m.[22], m.[23], m.[24], m.[25], m.[26], m.[27], m.[28],m.[29],m.[30],
m.[31], m.[32], m.[33], m.[34], m.[35], m.[36], m.[37], m.[38],m.[39],m.[40],
m.[41], m.[42], m.[43], m.[44], m.[45], m.[46], m.[47], m.[48],m.[49],m.[50],
osszesM.Osszes, tanulo.BelepesDatum
FROM #Tanulo tanulo
LEFT JOIN (select * from #mulasztas mulasztas pivot (max(Csoport) for Oraszam in ([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], [26], [27], [28],[29],[30],
[31], [32], [33], [34], [35], [36], [37], [38],[39],[40],
[41], [42], [43], [44], [45], [46], [47], [48],[49],[50])) pv)m on m.Tanulo=tanulo.Tanulo
INNER JOIN T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
LEFT JOIN (select Tanulo, count(Csoport) as Osszes from #mulasztas m group by Tanulo) osszesM on osszesM.Tanulo=tanulo.Tanulo
order by f.c_nyomtatasinev
--napló
declare @letszam int=(select count(tcs.c_tanuloid) from T_TANULOCSOPORT_OSSZES tcs where tcs.c_osztalycsoportid=@csoportId and tcs.Torolt='F')
SELECT
tao.Id TanitasioraId
,dbo.fnGetDokumentumDatumFormatum(tao.C_DATUM) Datum
,C_ORATULAJDONOSID PedagogusId
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) PedagogusNev
,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') Tema
,@letszam-isnull(hianyzo.Hianyzok,0) as Letszam
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) TantargyNev
,tao.C_TANTARGYID TantargyId
,tao.C_MEGTARTOTT Megtartott
,C_OSZTALYCSOPORTID OsztalyCsoportId
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN (
SELECT
tm.c_tanitasiorakid as Tanitasiora
,count(tm.c_oratanuloiid) Hianyzok
FROM T_TANULOMULASZTAS_OSSZES tm
WHERE tm.TOROLT='F'
GROUP BY tm.c_tanitasiorakid) hianyzo ON hianyzo.Tanitasiora=tao.id
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 = 'T'
WHERE C_OSZTALYCSOPORTID = @csoportId
AND tao.TOROLT = 'F'
ORDER BY tao.C_DATUM
SELECT * FROM #megtartottOrak
--hiányzások
INSERT INTO #hianyzas
SELECT
Tanulo
,Osztaly
,datepart(month,tao.c_datum) as Honap
,tm.c_igazolt as IgazoltE
FROM #Tanulo tanulo
LEFT JOIN T_TANULOMULASZTAS_OSSZES tm on tm.C_ORATANULOIID=tanulo.Tanulo AND tm.TOROLT='F' AND tm.C_TANEVID=@tanevid
LEFT JOIN T_TANITASIORA_OSSZES tao on tao.ID=tm.C_TANITASIORAKID AND tao.C_TANEVID=@tanevid
WHERE tao.C_OSZTALYCSOPORTID=@csoportId
AND tao.TOROLT='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
SELECT f.c_nyomtatasinev as Tanulo, tanulo.Osztaly Osztaly,
--igazolt
iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
--igazolatlan
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12,
igazolt.Igazolt, igazolatlan.Igazolatlan, tanulo.BelepesDatum
FROM #Tanulo tanulo
LEFT JOIN (select pv.* from #hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='T')i on tanulo.Tanulo=i.Tanulo
LEFT JOIN (select pv.* from #hianyzas hianyzas pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))pv where pv.IgazoltE='F')ni on tanulo.Tanulo=ni.Tanulo
LEFT JOIN (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolt from #hianyzas hianyzas where hianyzas.IgazoltE='T' group by hianyzas.Tanulo) igazolt on igazolt.Tanulo=tanulo.Tanulo
LEFT JOIN (select hianyzas.Tanulo Tanulo, count(IgazoltE) as Igazolatlan from #hianyzas hianyzas where hianyzas.IgazoltE='F' group by hianyzas.Tanulo) igazolatlan on igazolatlan.Tanulo=tanulo.Tanulo
INNER JOIN T_FELHASZNALO_OSSZES f on f.id=tanulo.Tanulo
--Mulasztások összesen
insert into #hianyzasOssz
select @csoportId, datepart(month,tao.c_datum) as Honap, tm.c_igazolt as IgazoltE from #Tanulo tanulo
left join T_TANULOMULASZTAS_OSSZES tm on tm.c_oratanuloiid=tanulo.Tanulo and tm.torolt='F' and tm.c_tanevid=@tanevid
left join T_TANITASIORA_OSSZES tao on tao.id=tm.c_tanitasiorakid and tao.c_tanevid=@tanevid
where
tao.c_osztalycsoportid=@csoportId
and tao.torolt='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
insert into #igazoltH
select @csoportId, iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12]
from #hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))i where i.IgazoltE='T'
--Mulasztott órák összesen
insert into #igazolatlanH
select @csoportId, iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from #hianyzasOssz ho pivot (count(Honap) for Honap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]))ni where ni.IgazoltE='F'
select iif(i.[1]=0,null, i.[1]) as [1], iif(i.[2]=0,null, i.[2]) as [2], iif(i.[3]=0,null, i.[3]) as [3], iif(i.[4]=0,null, i.[4]) as [4], iif(i.[5]=0,null, i.[5]) as [5],iif(i.[6]=0,null, i.[6]) as [6],
iif(i.[7]=0,null, i.[7]) as [7], iif(i.[8]=0,null, i.[8]) as [8], iif(i.[9]=0,null, i.[9]) as [9], iif(i.[10]=0,null, i.[10]) as [10], iif(i.[11]=0,null, i.[11]) as [11], iif(i.[12]=0,null, i.[12]) as [12],
iif(ni.[1]=0,null, ni.[1]) as n1, iif(ni.[2]=0,null, ni.[2]) as n2, iif(ni.[3]=0,null, ni.[3]) as n3, iif(ni.[4]=0,null, ni.[4]) as n4, iif(ni.[5]=0,null, ni.[5]) as n5,iif(ni.[6]=0,null, ni.[6]) as n6,
iif(ni.[7]=0,null, ni.[7]) as n7, iif(ni.[8]=0,null, ni.[8]) as n8, iif(ni.[9]=0,null, ni.[9]) as n9, iif(ni.[10]=0,null, ni.[10]) as n10, iif(ni.[11]=0,null, ni.[11]) as n11, iif(ni.[12]=0,null, ni.[12]) as n12
from #igazolth i
left join #igazolatlanH ni on i.Csoport=ni.csoport
--Mulasztó tanulók szama
INSERT INTO #Igazolt
SELECT
@csoportId as Id
,count(Tanulo) as IgazoltOsszes
FROM (select distinct tanulo from #hianyzas where IgazoltE='T')m
SELECT
i.Osszes IgazoltOsszes
,ni.Osszes IgazolatlanOsszes
FROM #Igazolt i
left join (select @csoportId as Id, count(Tanulo) as Osszes from (select distinct tanulo from #hianyzas where IgazoltE='F')m) ni on ni.Id=i.Csoport
--Mulasztott órák összesen-összesen
INSERT INTO #IgazoltOsszesOsszes
SELECT
@csoportId
,count(IgazoltE)
FROM #hianyzasOssz
WHERE IgazoltE='T'
select
ioo.Osszes IgazoltOsszesOsszes
,nioo.Osszes as IgazolatlanOsszesOsszes
from #IgazoltOsszesOsszes ioo
LEFT JOIN (select @csoportId as Id, count(IgazoltE) Osszes from #hianyzasOssz where IgazoltE='F') nioo on nioo.Id=ioo.Csoport
--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.C_GYAKORLATI = 'T' 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
-- Csoport tanulói
SELECT * FROM #Tanulo
END
GO

View File

@@ -0,0 +1,720 @@
DROP PROCEDURE IF EXISTS uspGetNapkozisNaplo
GO
CREATE PROCEDURE uspGetNapkozisNaplo
@tanevId int
,@intezmenyId int
,@csoportId int
,@iskolaErdekuSzamit bit
AS BEGIN
SET NOCOUNT ON;
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId AND TOROLT = 'F')
DECLARE
@elsonap date
,@utolsonap date
,@FelevVege date
,@datum date = GETDATE()
CREATE TABLE #OraSorszam (
TanitasioraId int PRIMARY KEY
,OraSorszam int
)
--Tanulók adatai, elérhetőségei
CREATE TABLE #tanulok (
Id int
,TanuloCsoportId int
,Nev nvarchar (max)
,Osztaly nvarchar (max)
,OsztalyId int
,Sorszam nvarchar (max)
,beirasiSorszam nvarchar (max)
,Torzslapszam nvarchar (max)
,Allampolgarsaga nvarchar (max)
,DiakIg nvarchar (max)
,SzulHely nvarchar (max)
,SzulIdo nvarchar (max)
,Anyja nvarchar (max)
,Taj nvarchar (max)
,OktAzon nvarchar (max)
,Kilepes nvarchar (max)
,Kepzes nvarchar (max)
,TanuloCimTipus nvarchar (max)
,TanuloCim nvarchar (max)
,TanuloEmail nvarchar (max)
,szoc nvarchar (max)
,BelepesDatum datetime
)
DECLARE @Mulasztasok TABLE (
IgazoltE nvarchar (1)
,Tanulo int
,Tipus int
)
DECLARE @GondViseloCimTable TABLE (
GondviseloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
DECLARE @EmailCimTableTemp TABLE (
FelhasznaloId int
,EmailCim nvarchar (max)
,GondviseloId int
)
DECLARE @EmailCimGondviseloTable TABLE (
GondviseloId int
,EmailCim nvarchar (max)
)
DECLARE @TelefonTableTemp TABLE (
FelhasznaloId int
,Telefon nvarchar (max)
,GondviseloId int
)
DECLARE @GondviseloTelefonTable TABLE (
GondviseloId int
,Telefon nvarchar (max)
)
SELECT TOP 1
@FelevVege = tr.C_DATUM
FROM T_TANEVRENDJE_OSSZES tr
WHERE tr.C_NAPTIPUSA = 1400
AND tr.C_TANEVID = @tanevId
AND tr.TOROLT = 'F'
INSERT INTO #tanulok (
Id
,TanuloCsoportId
,Nev
,Osztaly
,OsztalyId
,Sorszam
,beirasiSorszam
,Torzslapszam
,Allampolgarsaga
,DiakIg
,SzulHely
,SzulIdo
,Anyja
,Taj
,OktAzon
,Kilepes
,Kepzes
,TanuloCimTipus
,TanuloCim
,TanuloEmail
,szoc
,BelepesDatum
)
SELECT
tcs.C_TANULOID AS Id
,tcs.ID AS TanuloCsoportId
,IIF(tcs.C_KILEPESDATUM IS NOT NULL, f.C_NYOMTATASINEV + ' (kilépett)', f.C_NYOMTATASINEV) AS Nev
,osztaly.OsztalyNev Osztaly
,osztaly.ID AS OsztalyId
,tta.C_NAPLOSORSZAM AS NaploSorszam
,tta.C_BEIRASINAPLOSORSZAM AS beirasiSorszam
,tta.C_TORZSLAPSZAM AS TorzsLapSzam
,Allapolgarasaga.C_NAME AS Allampolgarsag
,t.C_DIAKIGAZOLVANYSZAM AS DiakIg
,f.C_SZULETESIHELY AS SzulHely
,FORMAT(f.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS SzulIdo
,f.C_ANYJANEVE AS Anyja
,f.C_TAJSZAM AS Taj
,f.C_OKTATASIAZONOSITO AS OktAzon
,FORMAT(tcs.C_KILEPESDATUM, 'yyyy.MM.dd.') AS Kilepes
,tt.c_nev AS Kepzes
,cim.Tipus
,cim.cim
,email.c_emailcim AS TanuloEmail
,STUFF(
IIF(tta.C_MAGANTANULO = 'T', ', Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME, '-') + ')', '')
+ IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '')
+ IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '')
+ IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', ''), 1, 2, ''
) AS szoc
,tcs.C_BELEPESDATUM AS BelepesDatum
FROM T_TANULOCSOPORT_OSSZES tcs
CROSS APPLY fnGetTanuloOsztaly(tcs.C_TANULOID, tcs.C_KILEPESDATUM, @feladatKategoriaId, 1, DEFAULT) osztaly
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
INNER JOIN T_TANULO_OSSZES t ON t.ID = tcs.C_TANULOID
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId, DEFAULT) tta ON tta.TanuloId = t.ID
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID
AND tt.TOROLT = 'F'
AND tt.C_TANEVID = @tanevId
LEFT JOIN (
SELECT DISTINCT
TanuloId AS TanuloId
,cimTipusa.C_NAME AS Tipus
,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, ''
) AS Cim
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS cimTipusa ON cimTipusa.Id = temp.CimTipusa
AND cimTipusa.C_TANEVID = @tanevId
AND cimTipusa.TOROLT = 'F'
WHERE temp.CimTipusa = 907
) AS cim ON cim.TanuloId = t.ID
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = t.ID
AND tel.c_gondviseloid IS NULL
AND tel.torolt = 'F'
AND tel.c_alapertelmezett = 'T'
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = t.ID
AND email.c_gondviseloid IS NULL
AND email.torolt = 'F'
AND email.c_alapertelmezett = 'T'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
AND MagantanulosagOka.C_TANEVID = tt.C_TANEVID
AND MagantanulosagOka.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Allapolgarasaga ON Allapolgarasaga.ID = f.C_ALLAMPOLGARSAGA
AND Allapolgarasaga.C_TANEVID = tt.C_TANEVID
AND Allapolgarasaga.TOROLT = 'F'
WHERE tcs.C_TANEVID = @tanevId
AND tcs.C_OSZTALYCSOPORTID = @csoportId
--Kezdőoldal
SELECT
ia.c_nev AS IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
,ia.c_omkod AS OMKOD
,ia.c_igazgatoneve AS IntezmenyVezeto
,ocs.c_nev AS NapkozisCsoport
,IIF(LEN(ocs.c_nev) > 17, SUBSTRING(ocs.c_nev, 1, 17) + '...', ocs.c_nev) AS RovidNev
,ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
,ISNULL(cs.c_csoportnaploleiras, '-') AS CsoportNaploLeiras
,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') AS Megnyitas
,ISNULL(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'), '-') AS Lezaras
,ocs.ID AS NapkozisCsoportId
,f.ID AS CsoportVezetoId
,ISNULL(ocs.C_EVFOLYAMTIPUSA,1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,cs.C_TIPUSA AS 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
AND ocs.id = @csoportId
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
--Csoportot vezette
SELECT
ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
FROM T_CSOPORT_OSSZES cs
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
WHERE cs.id = @csoportId
AND cs.c_altanevid = @tanevid
AND cs.c_alintezmenyid = @intezmenyid
--Tanulók
SELECT DISTINCT
Nev
,Osztaly
,OktAzon
,OsztalyId
,BelepesDatum
FROM #tanulok
ORDER BY
Nev
--Naplóhetek
SELECT TOP 1
@elsonap = t.C_KEZDONAP
FROM T_TANEV_OSSZES t
WHERE t.ID = @tanevId
AND t.TOROLT = 'F'
IF (
SELECT
c_osztalycsoportid
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
AND tr.c_naptipusa = 1395
WHERE c_osztalycsoportid = @csoportid
) IS NULL
SELECT TOP 1
@utolsonap = tr.c_datum
FROM t_tanevrendje_osszes tr
WHERE c_naptipusa = 1395
AND c_tanevid = @tanevId
AND c_intezmenyid = @intezmenyId
AND torolt = 'F'
AND c_osszescsoportravonatkozik = 'T'
ELSE
SELECT TOP 1
@utolsonap = tr.c_datum
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
AND tr.c_naptipusa = 1395
WHERE c_osztalycsoportid = @csoportid
CREATE TABLE #NapSorszamTemp (
Datum DATE
)
INSERT INTO #NapSorszamTemp
EXEC sp_GetDokumentumTanitasiNapokSorszama
@tanevId = @tanevId
,@osztalyId = @csoportId
SELECT
ROW_NUMBER() OVER (ORDER BY ret.Het) AS TanitasiHetSorszam
,ret.Het
,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje
,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege
FROM (
SELECT DISTINCT
ha.*
FROM (
SELECT
nn.C_HETSORSZAMA AS Het
,MIN(nn.C_NAPDATUMA) AS HetEleje
,MAX(nn.C_NAPDATUMA) AS HetVege
FROM T_NAPTARINAP_OSSZES nn
WHERE nn.C_NAPDATUMA BETWEEN @elsonap AND @utolsonap
AND nn.TOROLT='F'
AND nn.c_tanevId = @tanevId
GROUP BY nn.C_HETSORSZAMA
) ha
INNER JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege
) ret
UNION
SELECT
NULL AS TanitasiHetSorszam
,ret.Het
,dbo.fnGetDokumentumDatumFormatum(ret.HetEleje) AS HetEleje
,dbo.fnGetDokumentumDatumFormatum(ret.HetVege) AS HetVege
FROM (
SELECT DISTINCT
ha.*
FROM (
SELECT
nn.C_HETSORSZAMA AS Het
,MIN(nn.C_NAPDATUMA) AS HetEleje
,MAX(nn.C_NAPDATUMA) AS HetVege
FROM T_NAPTARINAP_OSSZES nn
WHERE nn.C_NAPDATUMA BETWEEN @elsonap AND @utolsonap
AND nn.TOROLT='F'
AND nn.c_tanevId = @tanevId
GROUP BY nn.C_HETSORSZAMA
) ha
LEFT JOIN #NapSorszamTemp ns ON ns.Datum >= ha.HetEleje and ns.Datum <= ha.HetVege
WHERE ns.Datum IS NULL
) ret
ORDER BY ret.Het
--Tanuló adatok
SELECT
*
FROM #tanulok
ORDER BY
Nev
SELECT
DATEPART(MONTH, Datum) AS Honap
,TantargyId AS Id
,Igazolt AS IgazoltE
,TanuloId AS TanuloId
,TanuloCsoportId AS TanuloCsoportId
,IgazolasTipusa AS IgazolasTipus
,Datum AS Datum
,Tipusa AS Tipus
,KesesPercben AS KesesPercben
,HetSorszama AS HetSorszama
,Oraszam AS Oraszam
,CAST(DATEPART(MONTH, Datum) AS nvarchar (10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat
,C_GYAKORLATI AS isGyakorlat
INTO #mulasztasTmp
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
SELECT
ta.TanuloId AS Id
,ta.TanuloCsoportId
,ta.Sorszam
,ta.TorzslapSzam
,ta.OktAzon
,ta.TajSzam
,ta.AnyjaNeve
,ta.SzulHely
,ta.SzulIdo
,ta.SocAdat
,ta.Kepzes
,ta.TanuloNeve
,ta.Allampolgarsaga
,ta.DiakIgazolvanySzam
,ta.KilepesDatum
,ta.BeirasiNaploSorszam
,ta.AdottOsztaly AS Osztaly
,ta.AdottOsztalyId AS OsztalyId
,CONVERT(DATE, LEFT(ta.BelepesDatum, LEN(ta.BelepesDatum) - 1), 102) AS BelepesDatum
INTO #studentsWithTanuloCsoport
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
@tanevId = @tanevId
,@osztalyCsoportId = @csoportId
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
,@isReszletesMulasztasok = 0
--Napló
SELECT DISTINCT
nn.c_hetsorszama AS Het
,d.c_name AS Nap
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
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 d ON d.id = nn.c_hetnapja
AND d.C_TANEVID = @tanevId
AND d.TOROLT = 'F'
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid
AND fog.c_tanevid = @tanevid
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.c_tanarid
AND f.torolt = 'F'
WHERE nn.c_napdatuma >= @elsonap
AND nn.c_napdatuma <= @utolsonap
ORDER BY
nn.c_hetsorszama
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
--Napló adatok
INSERT INTO #OraSorszam (
TanitasioraId
,OraSorszam
)
EXEC uspGetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId
,@datum = @datum
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
SELECT DISTINCT
tao.C_ORASZAM AS Oraszam
,tao.C_HETSORSZAMA AS Het
,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
,CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS DatumKezdettel
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) AS Tanar
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
,tao.C_TANTARGYID AS TantargyId
,tao.C_MEGTARTOTT AS Megtartott
,tao.C_TEMA AS Tema
,OraSorszam
,C_ORAKEZDETE
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID
AND fog.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID
AND f.TOROLT = 'F'
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
OraSorszam
,TanitasioraId
FROM #OraSorszam
) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id
WHERE tao.C_OSZTALYCSOPORTID = @csoportid
AND tao.TOROLT = 'F'
ORDER BY
tao.C_ORAKEZDETE
,tao.C_ORASZAM
SELECT
*
FROM #megtartottOrak
--Napló mulasztás
SELECT
C_HETSORSZAMA AS Het
,C_NYOMTATASINEV AS Tanulo
,MAX([1]) AS Hetfo
,MAX([2]) AS Kedd
,MAX([3]) AS Szerda
,MAX([4]) AS Csutortok
,MAX([5]) AS Pentek
,MAX([6]) AS Szombat
FROM (
SELECT
C_HETSORSZAMA
,C_NYOMTATASINEV
,[0]
,[1]
,[2]
,[3]
,[4]
,[5]
,[6]
FROM (
SELECT DISTINCT
n.C_NAPTARINAPID
,DATEPART(dw, n.C_DATUM) AS NAP
,t.C_NYOMTATASINEV
,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
LEFT JOIN (
SELECT DISTINCT
OraSorszam
,TanitasioraId
FROM #OraSorszam
) AS 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 tm.c_intezmenyId = @intezmenyId
AND o.c_tanevId = @tanevId
AND o.C_OSZTALYCSOPORTID = @csoportId
AND o.TOROLT = 'F'
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 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 n.C_OSZTALYCSOPORTID = @csoportId
AND n.TOROLT = 'F'
GROUP BY
n.C_NAPTARINAPID
,C_ORATANULOIID
,C_NYOMTATASINEV
,n.C_HETSORSZAMA
,n.C_DATUM
) AS SUB PIVOT(MAX(HIANYZAS) FOR NAP IN(
[0]
,[1]
,[2]
,[3]
,[4]
,[5]
,[6])) AS PivotTable
) AS ASD
GROUP BY
C_HETSORSZAMA
,C_NYOMTATASINEV
ORDER BY
C_HETSORSZAMA
--Tanuló feljegyzései
SELECT
tte.C_TANULOID AS Tanulo
,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
,d.C_NAME AS Tipus
,te.C_TARTALOM AS Feljegyzes
,f.C_NYOMTATASINEV AS Feljegyzo
FROM T_TANULO_TANULOESEMENY tte
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS
AND d.C_TANEVID = @tanevId
AND d.TOROLT = 'F'
WHERE C_OSZTALYCSOPORTID = @csoportId
AND te.TOROLT = 'F'
AND C_TIPUS <> 1534
INSERT INTO @GondViseloCimTable (
GondviseloId
,Cim
,Cimtipusa
)
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
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO @EmailCimTableTemp (
FelhasznaloId
,EmailCim
,GondviseloId
)
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
INSERT INTO @EmailCimGondviseloTable (
GondviseloId
,EmailCim
)
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
INSERT INTO @TelefonTableTemp (
FelhasznaloId
,Telefon
,GondviseloId
)
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
INSERT INTO @GondviseloTelefonTable (
GondviseloId
,Telefon
)
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
/*gondviselő elérhetőségei */
SELECT DISTINCT
Gondviselok.TanuloId AS TanuloId
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
,cim.Cimtipusa AS C_CIMTIPUSA
,cim.cim AS C_OSSZETETTCIM
,telefon.telefon AS C_TELEFONSZAM
,email.emailcim AS C_EMAILCIM
FROM fnGetDokumentumGondviselok (@csoportId, @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
ORDER BY cim.Cimtipusa
--megtartott órák száma
SELECT
COUNT(mo.TantargyId) AS TantargyOraszam
,mo.Tantargynev AS TantargyNev
INTO #megtartottOrakSzama
FROM #megtartottOrak mo
WHERE mo.Megtartott = 'T'
GROUP BY
mo.TantargyId
,mo.TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
,STUFF(
(
SELECT DISTINCT
', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
FROM #megtartottOrakSzama btmp
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
) AS Tantargyak
FROM #megtartottOrakSzama tmp
-- Csoport tanárai
SELECT
targy.C_NEV AS TargyNev
,tanar.C_NYOMTATASINEV AS TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO AS 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 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
GO

View File

@@ -0,0 +1,449 @@
DROP PROCEDURE IF EXISTS uspGetTanoranKivuliNaplo
GO
CREATE PROCEDURE uspGetTanoranKivuliNaplo
@tanevId int
,@intezmenyId int
,@csoportId int
,@iskolaErdekuSzamit bit
AS BEGIN
SET NOCOUNT ON;
DECLARE @feladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId AND TOROLT = 'F')
DECLARE
@datum date = GETDATE()
,@letszam int
CREATE TABLE #students (
ID int
,Osztaly nvarchar (max)
,OsztalyId int
,BelepesDatum datetime
)
CREATE TABLE #OraSorszam (
TanitasioraId int
,OraSorszam nvarchar (100)
)
CREATE TABLE #TanuloCimTable (
FelhasznaloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
CREATE TABLE #GondViseloCimTable (
GondviseloId int
,Cim nvarchar (max)
,Cimtipusa nvarchar (max)
)
CREATE TABLE #EmailCimTableTemp (
FelhasznaloId int
,EmailCim nvarchar (max)
,GondviseloId int
)
CREATE TABLE #EmailCimTanuloTable(
FelhasznaloId int
,EmailCim nvarchar (max)
)
CREATE TABLE #EmailCimGondviseloTable (
GondviseloId int
,EmailCim nvarchar (max)
)
CREATE TABLE #TelefonTableTemp(
FelhasznaloId int
,Telefon nvarchar (max)
,GondviseloId int
)
CREATE TABLE #TanuloTelefonTable(
FelhasznaloId int
,Telefon nvarchar (max)
)
CREATE TABLE #GondviseloTelefonTable (
GondviseloId int
,Telefon nvarchar (max)
)
SELECT
@letszam = COUNT(tcs.C_TANULOID)
FROM T_TANULOCSOPORT_OSSZES tcs
WHERE tcs.C_OSZTALYCSOPORTID = @csoportId
AND tcs.TOROLT='F'
--Fejlecoldal (Fejléc)
SELECT
ia.C_NEV AS IntezmenyNev
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
,ia.C_OMKOD AS OMKOD
,ia.C_IGAZGATONEVE AS IntezmenyVezeto
,ocs.C_NEV AS Csoport
,ocs.ID AS CsoportId
,ISNULL(f.C_NYOMTATASINEV,'-') AS CsoportVezeto
,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') AS CsoportNaploLeiras
,dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOMEGNYITASA) AS Megnyitas
,ISNULL(dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOZARASA),'-') AS Lezaras
,t.C_NEV AS Tanev
,cs.C_CSOPORTNAPLOLEIRAS AS Megjegyzes
,f.ID AS CsoportVezetoId
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,cs.C_TIPUSA AS 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
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
INNER JOIN T_TANEV_OSSZES t ON t.ID = ia.C_TANEVID
WHERE ia.C_TANEVID = @tanevid
AND ocs.ID = @csoportId
INSERT INTO #students (
ID
,Osztaly
,OsztalyId
,BelepesDatum
)
SELECT
tcs.C_TANULOID AS TanuloId
,osztaly.OsztalyNev AS Osztaly
,osztaly.ID AS OsztalyId
,CAST(osztaly.BelepesDatuma as DATE) as BelepesDatum
FROM T_TANULOCSOPORT_OSSZES tcs
CROSS APPLY fnGetTanuloOsztaly(tcs.C_TANULOID, tcs.C_KILEPESDATUM, @feladatKategoriaId, 1, DEFAULT) osztaly
INNER JOIN T_FELHASZNALO_OSSZES tanuloNeve on tanuloNeve.ID = tcs.C_TANULOID
WHERE tcs.C_TANEVID = @tanevId
AND tcs.C_OSZTALYCSOPORTID = @csoportId
--Osztaly (Csoport tanulóinak osztályai)
SELECT
COUNT(Id) AS Tanulo
,Osztaly
,OsztalyId
FROM #students
GROUP BY
Osztaly
,OsztalyId
--Napló
INSERT INTO #OraSorszam (
TanitasioraId
,OraSorszam
)
EXEC uspGetOraSorszamByOsztaly
@osztalyCsoportId = @csoportId
,@datum = @datum
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
SELECT
dbo.fnGetDokumentumDatumFormatum(tao.C_ORAKEZDETE) + CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS Datum
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN
+ ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
,tao.C_TANTARGYID AS TantargyId
,tao.C_MEGTARTOTT AS Megtartott
,IIF(C_MEGTARTOTT = 'F', 'Elmaradt', tao.C_TEMA) AS Tema
,@letszam - ISNULL(hianyzo.Hianyzok, 0) AS Letszam
,IIF(C_MEGTARTOTT = 'F', '-', f.C_NYOMTATASINEV) AS Pedagogus
,Terem.C_NEV AS TeremNev
,ISNULL(Oraszam.OraSorszam + '.', '-') AS OraSorszam
,tao.C_ORAKEZDETE AS OraKezdete
INTO #megtartottOrak
FROM T_TANITASIORA_OSSZES tao
LEFT JOIN (
SELECT
tm.C_TANITASIORAKID AS Tanitasiora
,COUNT(tm.C_ORATANULOIID) AS Hianyzok
FROM T_TANULOMULASZTAS_OSSZES tm
WHERE tm.torolt = 'F'
AND C_TIPUS IN (1499, 1500)
GROUP BY tm.C_TANITASIORAKID
) hianyzo ON hianyzo.Tanitasiora = tao.ID
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_ORATULAJDONOSID
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
LEFT JOIN T_TEREM_OSSZES Terem ON Terem.Id = tao.C_TEREMID
LEFT JOIN #OraSorszam Oraszam ON Oraszam.TanitasioraId = tao.Id
WHERE tao.C_OSZTALYCSOPORTID = @csoportId
AND tao.TOROLT='F'
SELECT
Datum
,TantargyNev
,TantargyId
,Megtartott
,Tema
,Letszam
,Pedagogus
,TeremNev
,OraSorszam
,OraKezdete
FROM #megtartottOrak
ORDER BY OraKezdete
/*TANULÓ adatai*/
SELECT DISTINCT
ta.TanuloId
,ta.OktAzon
,ta.TajSzam
,ta.AnyjaNeve
,ta.SzulHely
,ta.SzulIdo
,ta.SocAdat
,ta.Kepzes
,ta.TanuloNeve
,ta.Allampolgarsaga
,ta.DiakIgazolvanySzam
,ta.AktualisOsztaly Osztalya
,ta.BelepesDatum
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta
ORDER BY TanuloNeve
/*TANULÓ elérhetőségei */
INSERT INTO #TanuloCimTable (
FelhasznaloId
,Cim
,Cimtipusa
)
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
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO #GondViseloCimTable (
GondviseloId
,Cim
,Cimtipusa
)
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
AND cimTipusa.C_TANEVID = @tanevId
INSERT INTO #EmailCimTableTemp (
FelhasznaloId
,EmailCim
,GondviseloId
)
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
INSERT INTO #EmailCimTanuloTable (
FelhasznaloId
,EmailCim
)
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
INSERT INTO #EmailCimGondviseloTable (
GondviseloId
,EmailCim
)
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
INSERT INTO #TelefonTableTemp (
FelhasznaloId
,Telefon
,GondviseloId
)
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
INSERT INTO #TanuloTelefonTable (
FelhasznaloId
,Telefon
)
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
INSERT INTO #GondviseloTelefonTable (
GondviseloId
,Telefon
)
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 AS tanuloid
,cim.Cimtipusa AS cimtipus
,cim.Cim
,email.EmailCim AS email
,telefon.Telefon AS 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
/*gondviselő elérhetőségei */
SELECT DISTINCT
Gondviselok.TanuloId AS TanuloId
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
,cim.Cimtipusa AS C_CIMTIPUSA
,cim.cim AS C_OSSZETETTCIM
,telefon.telefon AS C_TELEFONSZAM
,email.emailcim AS C_EMAILCIM
FROM fnGetDokumentumGondviselok (@csoportId, @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
ORDER BY cim.Cimtipusa
--megtartott órák száma
SELECT
COUNT(mo.TantargyId) AS TantargyOraszam
,mo.Tantargynev AS TantargyNev
INTO #megtartottOrakSzama
FROM #megtartottOrak mo
WHERE mo.Megtartott = 'T'
GROUP BY
mo.TantargyId
,mo.TantargyNev
SELECT DISTINCT
SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
,STUFF(
(
SELECT DISTINCT
', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
FROM #megtartottOrakSzama btmp
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
) AS Tantargyak
FROM #megtartottOrakSzama tmp
-- Csoport tanárai
SELECT
targy.C_NEV AS TargyNev
,tanar.C_NYOMTATASINEV AS TanarNev
,targykategoria.C_ORDER
,tanar.ID TanarId
,tanar.C_OKTATASIAZONOSITO AS 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 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
GO