234 lines
No EOL
10 KiB
Transact-SQL
234 lines
No EOL
10 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
IF OBJECT_ID('[dbo].[sp_GetTanuloiErtesito]') IS NOT NULL
|
|
BEGIN
|
|
DROP PROCEDURE [dbo].[sp_GetTanuloiErtesito]
|
|
END
|
|
GO
|
|
|
|
|
|
CREATE PROCEDURE [dbo].[sp_GetTanuloiErtesito]
|
|
@pIntezmenyId INT,
|
|
@pTanevId INT,
|
|
@pOsztalyId INT,
|
|
@pTanuloId INT,
|
|
@pIskolaErdekuSzamit BIT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@pTanevId AND TOROLT = 'F')
|
|
|
|
|
|
DECLARE @NaploSorszam TABLE (
|
|
TanuloId INT
|
|
,Sorszam INT
|
|
)
|
|
INSERT INTO @NaploSorszam
|
|
EXEC [sp_GetDokumentumTanuloNaploSorszam]
|
|
@osztalyId = @pOsztalyId
|
|
|
|
CREATE TABLE #students (ID INT PRIMARY KEY, BelepesDatum DATE, KilepesDatum DATE, NaploSorszam INT)
|
|
INSERT INTO #students
|
|
SELECT
|
|
t.TanuloId
|
|
,BelepesDatum
|
|
,ISNULL(KilepesDatum, GETDATE())
|
|
,nsz.Sorszam
|
|
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') t
|
|
INNER JOIN @NaploSorszam nsz ON nsz.TanuloId = t.TanuloId
|
|
WHERE
|
|
t.TanuloId = @pTanuloId
|
|
|
|
|
|
/*FEJLEC*/
|
|
SELECT DISTINCT
|
|
osztalyCsop.C_NEV OsztalyNeve
|
|
,ofo.C_NYOMTATASINEV Osztalyfonok
|
|
,INTEZMENY.C_NEV IntezmenyNeve
|
|
,INTEZMENY.C_IGAZGATONEVE IgazgatoNeve
|
|
,dbo.fnGetDokumentumIntezmenyCime (@pTanevId) IntezmenyCime
|
|
,INTEZMENY.C_TELEFONSZAM IntezmenyTelefonszam
|
|
,INTEZMENY.C_EMAILCIM IntezmenyEmail
|
|
,INTEZMENY.C_OMKOD IntezmenyOMKod
|
|
,TANEV.C_NEV Tanev
|
|
FROM T_TANEV_osszes TANEV
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsop ON TANEV.C_INTEZMENYID = osztalyCsop.C_INTEZMENYID
|
|
INNER JOIN T_OSZTALY_OSSZES o ON osztalyCsop.ID = o.ID AND o.torolt='F'
|
|
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
|
|
INNER JOIN T_INTEZMENYADATOK_OSSZES INTEZMENY on INTEZMENY.C_INTEZMENYID=osztalyCsop.C_INTEZMENYID AND INTEZMENY.C_TANEVID = osztalyCsop.C_TANEVID AND INTEZMENY.Torolt = 'F'
|
|
WHERE osztalyCsop.ID = @pOsztalyId
|
|
AND TANEV.ID = @pTanevId
|
|
|
|
|
|
/*TANULÓ adatai*/
|
|
SELECT DISTINCT
|
|
tanuloID
|
|
,sorszam
|
|
,torzslapSzam
|
|
,oktAzon
|
|
,tajSzam
|
|
,anyjaNeve
|
|
,szulHely
|
|
,dbo.fnGetDokumentumDatumFormatum(szulIdo) szulIdo
|
|
,IIF(socAdat = '', '', LEFT(socAdat, len(socAdat)- 1)) socAdat
|
|
,kepzes
|
|
,tanuloNeve
|
|
,allampolgarsaga
|
|
,diakIgazolvanySzam
|
|
,dbo.fnGetDokumentumDatumFormatum(kilepesDatum) kilepesDatum
|
|
,beirasiNaploSorszam
|
|
INTO #TanuloAlapAdatok
|
|
FROM (
|
|
SELECT
|
|
t.ID tanuloID
|
|
,naploSorszam.Sorszam sorszam
|
|
,f.C_NYILVANTARTASISZAM torzslapSzam
|
|
,f.C_OKTATASIAZONOSITO oktAzon
|
|
,f.C_TAJSZAM tajSzam
|
|
,f.C_ANYJANEVE anyjaNeve
|
|
,f.C_SZULETESIHELY szulHely
|
|
,f.C_SZULETESIDATUM szulIdo
|
|
,IIF(t.C_MAGANTANULO = 'T', 'Magántanuló (eü. ok), ', '') +
|
|
IIF(t.C_JOGVISZONYATSZUNETELTETO = 'T', 'Jogviszony szüneteltetve, ', '') +
|
|
IIF(t.C_SZAKMAIGYAKORLATON = 'T', 'Szakmai gyakorlat, ', '') +
|
|
IIF(t.C_SZOCIALISTAMOGATAS = 'T', 'Szociális támogatás, ', '') +
|
|
IIF(t.C_SAJATOSNEVELESU = 'T', 'Sajátos nevelési igényű, ', '') +
|
|
IIF(t.C_BEJARO = 'T', 'Bejáró, ', '')
|
|
socAdat
|
|
,tt.C_NEV kepzes
|
|
,f.C_NYOMTATASINEV tanuloNeve
|
|
,d.C_NAME allampolgarsaga
|
|
,t.C_DIAKIGAZOLVANYSZAM diakIgazolvanySzam
|
|
,MAX(cs.C_KILEPESDATUM) kilepesDatum
|
|
,t.C_BEIRASINAPLOSORSZAM beirasiNaploSorszam
|
|
FROM T_TANULO_OSSZES t
|
|
INNER JOIN #students s ON s.ID = t.ID
|
|
INNER JOIN @NaploSorszam naploSorszam on naploSorszam.TanuloId=s.ID
|
|
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = t.C_TANTERVID
|
|
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = t.ID
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES cs ON s.ID = cs.C_TANULOID AND cs.C_OSZTALYCSOPORTID = @pOsztalyId AND cs.TOROLT = 'F'
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID
|
|
GROUP BY
|
|
s.ID, t.ID, naploSorszam.Sorszam, f.C_NYILVANTARTASISZAM, f.C_OKTATASIAZONOSITO, f.C_TAJSZAM, f.C_ANYJANEVE,
|
|
f.C_SZULETESIHELY, f.C_SZULETESIDATUM, t.C_MAGANTANULO, t.C_JOGVISZONYATSZUNETELTETO, t.C_SZAKMAIGYAKORLATON, C_SAJATOSNEVELESU, t.C_BEJARO,
|
|
t.C_SZOCIALISTAMOGATAS, tt.C_NEV, f.C_NYOMTATASINEV, d.C_NAME, t.C_DIAKIGAZOLVANYSZAM, t.C_BEIRASINAPLOSORSZAM
|
|
) tbl
|
|
|
|
|
|
SELECT * FROM #TanuloAlapAdatok ORDER BY sorszam
|
|
|
|
|
|
/*TANULÓ elérhetőségei */
|
|
SELECT
|
|
tanulo.TanuloId tanuloID
|
|
,Gondviselo.C_NEV + IIF(Gondviselo.C_ISTORVENYESKEPVISELO = 'T', ' (törvényes)', '') GondviseloNeve
|
|
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM CimText
|
|
FROM T_GONDVISELO_OSSZES Gondviselo
|
|
INNER JOIN #students TanulokId ON Gondviselo.C_TANULOID = TanulokId.Id
|
|
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') tanulo ON tanulo.TanuloId = Gondviselo.C_TANULOID AND Gondviselo.TOROLT = 'F'
|
|
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
|
|
WHERE
|
|
cim.TOROLT = 'F'
|
|
AND cim.C_TANEVID = @pTanevId
|
|
ORDER BY
|
|
(SELECT 1)
|
|
--AND Gondviselo.C_ISTORVENYESKEPVISELO = 'T'
|
|
|
|
|
|
/*TANTARGY ERTEKELESEK*/
|
|
SELECT DISTINCT
|
|
tanulo.Id tanuloID
|
|
,TARGY.C_NEV TargyNev
|
|
,Tanar.C_NYOMTATASINEV TanarNev
|
|
,JEGY.C_NAME Ertekeles
|
|
FROM T_TANULOCSOPORT_OSSZES TANULOCSOPORT
|
|
INNER JOIN T_TANULOERTEKELES_OSSZES ERTEKELES ON ERTEKELES.C_TANULOID = TANULOCSOPORT.C_TANULOID
|
|
INNER JOIN #students tanulo ON ERTEKELES.C_TANULOID = tanulo.Id
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON ERTEKELES.C_OSZTALYZAT = JEGY.ID
|
|
INNER JOIN T_TANTARGY_OSSZES TARGY ON ERTEKELES.C_TANTARGYID = TARGY.ID
|
|
INNER JOIN T_FELHASZNALO_OSSZES Tanar ON Tanar.Id = ERTEKELES.C_ERTEKELOID
|
|
WHERE ERTEKELES.C_ERTEKELESTIPUSA = 1519
|
|
AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId
|
|
|
|
|
|
/*MULASZTAS ÖSSZESEN*/
|
|
SELECT
|
|
DATEPART(MONTH, Datum) Honap
|
|
,TantargyId Id
|
|
,Igazolt IgazoltE
|
|
,TanuloId TanuloId
|
|
,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(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit) TanulokMulasztasai
|
|
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
|
|
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON
|
|
TanuloCsoport.C_OSZTALYCSOPORTID = TanulokMulasztasai.OsztalyCsoportId
|
|
AND TanuloCsoport.C_TANULOID = TanulokMulasztasai.TanuloId
|
|
AND TanuloCsoport.C_BELEPESDATUM <= TanulokMulasztasai.Datum
|
|
AND (TanuloCsoport.C_KILEPESDATUM IS NULL OR TanuloCsoport.C_KILEPESDATUM >= TanulokMulasztasai.Datum)
|
|
AND TanuloCsoport.TOROLT = 'F'
|
|
|
|
SELECT
|
|
[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE
|
|
,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG
|
|
FROM #students s
|
|
LEFT JOIN (SELECT * FROM (SELECT Id, TanuloId, ElmeletGyakorlat FROM #mulasztasTmp WHERE Tipus = 1500) a
|
|
PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
|
|
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv )ni on ni.TanuloId=s.Id
|
|
LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id
|
|
LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id
|
|
|
|
|
|
/*IGAZOLATLAN MULASZTAS*/
|
|
SELECT
|
|
[9E]+[10E]+[11E]+[12E]+[1E]+[2E]+[3E]+[4E]+[5E]+[6E] OsszesenE
|
|
,[9G]+[10G]+[11G]+[12G]+[1G]+[2G]+[3G]+[4G]+[5G]+[6G] OsszesenG
|
|
FROM #students s
|
|
LEFT JOIN (SELECT * FROM (SELECT Id, ElmeletGyakorlat, TanuloId, IgazoltE, Tipus FROM #mulasztasTmp) a PIVOT (COUNT(ID) FOR ElmeletGyakorlat IN ([9E], [10E], [11E], [12E], [1E], [2E], [3E], [4E], [5E], [6E],
|
|
[9G], [10G], [11G], [12G], [1G], [2G], [3G], [4G], [5G], [6G]))piv WHERE IgazoltE = 'F' AND Tipus = 1500 )ni on ni.TanuloId=s.Id
|
|
LEFT JOIN (SELECT COUNT(Id) FelevG, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'T' GROUP BY TanuloId) felevG on felevG.TanuloId=s.id
|
|
LEFT JOIN (SELECT COUNT(Id) FelevE, TanuloId FROM #mulasztasTmp WHERE Tipus = 1500 AND IgazoltE = 'F' AND Datum <= @FelevVege AND isGyakorlat = 'F' GROUP BY TanuloId) felevE on felevE.TanuloId=s.id
|
|
|
|
/*TANULO FELMENTESEI*/
|
|
SELECT
|
|
ISNULL(mentesseg.tantargyNev, '-') Tantargy
|
|
,ISNULL(mentesseg.mentessegOka, '') MentessegOka
|
|
,ISNULL(IIF(mentesseg = '', ''
|
|
,LEFT(mentesseg, LEN(mentesseg)- 1)),' ') Mentesseg
|
|
FROM #students s
|
|
LEFT JOIN (SELECT DISTINCT
|
|
mentesseg.C_TANULOID tanuloId
|
|
, IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev
|
|
, mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + dbo.fnGetDokumentumDatumFormatum(C_KEZDETE) + ' - ', '') + ISNULL(dbo.fnGetDokumentumDatumFormatum(C_VEGE) + ')', IIF(C_KEZDETE IS NULL, '', ')' )) mentessegOka
|
|
, IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
|
|
FROM T_TANULOMENTESSEG_OSSZES mentesseg
|
|
INNER JOIN T_TANTARGY_OSSZES t on t.ID=mentesseg.C_TANTARGYID
|
|
INNER JOIN #students s ON s.ID = mentesseg.C_TANULOID
|
|
WHERE
|
|
mentesseg.TOROLT='F'
|
|
AND mentesseg.C_TANEVID=@pTanevId
|
|
) mentesseg ON s.ID=mentesseg.TANULOID
|
|
|
|
/*TANTESTÜLET ZÁRADÉKA*/
|
|
SELECT DISTINCT
|
|
ISNULL(C_ZARADEK, '-') Feljegyzes
|
|
FROM T_TANULOCSOPORT_OSSZES
|
|
WHERE
|
|
C_TANULOID = @pTanuloId
|
|
|
|
END
|
|
|
|
GO
|
|
|