234 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			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
 | 
						|
       |