kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetErtesitoNyomtatvany.sql
2024-03-13 00:33:46 +01:00

568 lines
20 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[uspGetErtesitoNyomtatvany]
GO
-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[uspGetErtesitoNyomtatvany]
@pOsztalyId int
,@pTanevId int
,@pErtekelesTipus int
,@pElmeletGyakorlat bit = 0
,@pKesesTipus int = 1499
,@pElmeletiOraPercben int = 45
,@pGyakorlatiOraPercben int = 45
,@pIskolaErdekuSzamit bit
,@pIsKozossegiSzolgalat bit
,@pTanuloId int = NULL
,@pIsMuveszetOktatasi bit = 0
,@pIsShowTanuloiAtlag bit = 0
,@tanitasiHetekSzamaVegzos int = 32
,@tanitasiHetekSzamaNemVegzos int = 36
,@isAltantargyBeszamitasa bit = 0
,@nyomtatvanyNyelvEnum int = 0
,@kiiratkozottTanulokMegjelenitese bit = 1
,@negyedevreSzamoltMulasztasok bit = 1
,@szorgalomErtekelesTipusTypeID int = 51
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@EsemenyTipus int
,@IdoszakVegeTanevRendje int
,@IdoszakVege date
,@OsztalycsoportVezeto nvarchar(max)
,@OsztalycsoportNev nvarchar(max)
SET @EsemenyTipus =
CASE @pErtekelesTipus
WHEN 1519 THEN 1547 --félévi
WHEN 1520 THEN 1548 --év végi
WHEN 1522 THEN 1549 --I. negyedévi
WHEN 1524 THEN 1550 --II. negyedévi
WHEN 1523 THEN 1551 --III. negyedévi
WHEN 1525 THEN 1552 --IV. negyedévi
END
SET @IdoszakVegeTanevRendje =
CASE @pErtekelesTipus
WHEN 1519 THEN 1400 --Félévi jegy/értékelés -> Első félév vége
WHEN 1520 THEN 1395 --Év végi jegy/értékelés -> Utolsó tanítási nap
WHEN 1522 THEN 1403 --I. né. jegy/értékelés -> I. negyedév vége
WHEN 1524 THEN 1400 --II. né. jegy/értékelés -> Első félév vége
WHEN 1523 THEN 1404 --III. né. jegy/értékelés -> III. negyedév vége
WHEN 1525 THEN 1395 --IV. né. jegy/értékelés -> Utolsó tanítási nap
END
CREATE TABLE #ErtekelesResult (
TanuloId int
,TanuloCsoportId int
,Targy nvarchar(max)
,Jegyzet nvarchar(max)
,Ertekeles nvarchar(max)
,ErtekelesValue int
,ErtekelesJegyzettel nvarchar(max)
,Oraszam float
,RENDEZ0 int
,RENDEZ1 int
,RENDEZ2 nvarchar(max)
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(max)
/*nemzetiségi törzslaphoz kell*/
,ErtekelesTemaIdegenNyelven nvarchar(max)
,ErtekelesSzovegIdegenNyelven nvarchar(max)
,ErtekelesValueIdegenNyelven nvarchar(max)
,ErtekelesOsztalyzatIdegenNyelven nvarchar(max)
,ErtekelesSzazalek nvarchar(max)
,Jeloles nvarchar(max)
,TantargyNevIdegenNyelven nvarchar(max)
,TantargyNevMagyarul nvarchar(max)
/**/
,TantargyId int
,INDEX IX_01 CLUSTERED (TanuloId, TanuloCsoportId)
)
CREATE TABLE #MulasztasResult (
TanuloId int
,TanuloCsoportId int
,Igazolt int
,Igazolatlan int
,ElmeletIgazolt int
,ElmeletIgazolatlan int
,GyakorlatIgazolt int
,GyakorlatIgazolatlan int
,ElmeletOsszes int
,GyakorlatOsszes int
,Osszes int
,INDEX IX_01 CLUSTERED (TanuloId, TanuloCsoportId)
)
CREATE TABLE #TanuloResult (
TANULOID int
,TanuloCsoportId int
,BelepesDatum date
,KilepesDatum date
,TANULONEV nvarchar(max)
,OKTATASIAZONOSITO nvarchar(max)
,TORZSLAPSZAM nvarchar(max)
,SZULHELY nvarchar(max)
,SZULIDO nvarchar(max)
,ANYJANEVE nvarchar(max)
,PRIMARY KEY (TANULOID, TanuloCsoportId, BelepesDatum)
)
SET @IdoszakVege = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')
IF @IdoszakVege IS NULL BEGIN
SET @IdoszakVege = (SELECT IIF(GETDATE() > C_UTOLSONAP, C_UTOLSONAP, GETDATE()) FROM T_TANEV WHERE ID = @pTanevId)
END
SET @OsztalycsoportNev = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
IF (@pIsMuveszetOktatasi = 0) BEGIN
SET @OsztalycsoportVezeto = (SELECT C_NYOMTATASINEV FROM T_OSZTALY_OSSZES Osztaly INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON Osztaly.C_OSZTALYFONOKID = felhasznalo.ID WHERE Osztaly.ID = @pOsztalyId)
END
ELSE BEGIN
SET @OsztalycsoportVezeto = (SELECT C_NYOMTATASINEV FROM T_CSOPORT_OSSZES Csoport INNER JOIN T_FELHASZNALO_OSSZES felhasznalo ON Csoport.C_CSOPORTVEZETOID = felhasznalo.ID WHERE Csoport.ID = @pOsztalyId)
END
-- Fejléc
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT
ia.C_NEV AS IntezmenyNeve
,ia.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS IntezmenyCime
,ia.C_IGAZGATONEVE AS IntezmenyVezeto
,ia.C_OMKOD AS OMKod
,ia.C_TELEFONSZAM AS TELEFON
,ia.C_EMAILCIM AS EMAILCIM
,tv.C_NEV AS TANEV
,ia.C_VAROS AS VAROS
,ofo.C_NYOMTATASINEV AS OSZTALYFONOK
,ofo.ID AS OsztalyFonokId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS OsztalyId
,GETDATE() AS Datum
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_isTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ocs.C_TANEVID = ia.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo on ofo.ID = o.C_OSZTALYFONOKID
INNER JOIN T_TANEV_OSSZES tv ON tv.ID = ocs.C_TANEVID AND tv.TOROLT = 'F'
WHERE ia.TOROLT = 'F'
AND tv.ID = @pTanevId
AND ocs.id = @pOsztalyId
END
ELSE BEGIN
SELECT
T_INTEZMENYADATOK_OSSZES.C_NEV AS IntezmenyNeve
,T_INTEZMENYADATOK_OSSZES.C_VAROS AS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) AS IntezmenyCime
,T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE AS IntezmenyVezeto
,T_INTEZMENYADATOK_OSSZES.C_OMKOD AS OMKod
,T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM AS TELEFON
,T_INTEZMENYADATOK_OSSZES.C_EMAILCIM AS EMAILCIM
,T_TANEV_OSSZES.C_NEV AS TANEV
,T_INTEZMENYADATOK_OSSZES.C_VAROS AS VAROS
,ofo.C_NYOMTATASINEV AS CsoportVezeto
,ofo.ID AS CsoportVezetoId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS CsoportId
,GETDATE() AS Datum
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TIPUSA AS CsoportTipusa
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
FROM T_INTEZMENYADATOK_OSSZES
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id = @pOsztalyId and ocs.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID and ocs.C_TANEVID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and ocs.TOROLT = 'F'
INNER JOIN T_CSOPORT_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo on ofo.ID = o.C_CSOPORTVEZETOID
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 = @pTanevId
END
--PRINT ' TANULÓK ---------------------------------------------------------------'
IF @pTanuloId IS NOT NULL BEGIN
INSERT INTO #TanuloResult
SELECT
dk.TanuloId
,dk.TanuloCsoportId
,dk.BelepesDatum
,dk.KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, fh.C_NYOMTATASINEV, fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV)
,fh.C_OKTATASIAZONOSITO
,dk.Torzslapszam
,fh.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(fh.C_SZULETESIDATUM)
,fh.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') dk
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = dk.TanuloId
WHERE dk.TanuloId = @pTanuloId
AND (@kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege))
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,@OsztalycsoportNev AS Osztaly
,@pOsztalyId AS OsztalyId
,@OsztalycsoportVezeto AS Osztalyfonok
FROM #TanuloResult
ORDER BY TANULONEV
END
ELSE BEGIN
INSERT INTO #TanuloResult
SELECT
dk.TanuloId
,dk.TanuloCsoportId
,dk.BelepesDatum
,dk.KilepesDatum
,IIF(@nyomtatvanyNyelvEnum = 0, fh.C_NYOMTATASINEV, fh.C_UTONEV + ' ' + fh.C_VEZETEKNEV)
,fh.C_OKTATASIAZONOSITO
,dk.Torzslapszam
,fh.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(fh.C_SZULETESIDATUM)
,fh.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') dk
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.Id = dk.TanuloId
WHERE @kiiratkozottTanulokMegjelenitese = 1 OR (KilepesDatum IS NULL OR KilepesDatum >= @IdoszakVege)
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
,@OsztalycsoportNev AS Osztaly
,@pOsztalyId AS OsztalyId
,@OsztalycsoportVezeto AS Osztalyfonok
FROM #TanuloResult
ORDER BY TANULONEV
END
--PRINT ' ÉRTÉKELÉSEK ---------------------------------------------------------------'
INSERT INTO #ErtekelesResult (
TanuloId
,TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ0
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,ErtekelesTemaIdegenNyelven
,ErtekelesSzovegIdegenNyelven
,ErtekelesValueIdegenNyelven
,ErtekelesOsztalyzatIdegenNyelven
,ErtekelesSzazalek
,Jeloles
,TantargyNevIdegenNyelven
,TantargyNevMagyarul
,TantargyId
) EXEC uspGetDokumentumErtekelesek
@osztalyId = @pOsztalyId
,@tanevId = @pTanevId
,@ertekelesTipus = @pErtekelesTipus
,@isMuveszetOktatasi = @pIsMuveszetOktatasi
,@tanitasiHetekSzamaVegzos = @tanitasiHetekSzamaVegzos
,@tanitasiHetekSzamaNemVegzos = @tanitasiHetekSzamaNemVegzos
,@isAltantargyBeszamitasa = @isAltantargyBeszamitasa
,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum
,@idegenNyelvId = 0
,@szorgalomErtekelesTipusTypeID = @szorgalomErtekelesTipusTypeID
SELECT
ertekeles.TanuloId
,ertekeles.TanuloCsoportId
,Targy
,TantargyId
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ0
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,'' TanarNev
FROM #ErtekelesResult ertekeles
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
ORDER BY ertekeles.TanuloId, RENDEZ0, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
IF(@pIsShowTanuloiAtlag = 1) BEGIN
PRINT 'Tanuló Átlaga'
SELECT
atlag.TanuloId TanuloId
,atlag.TanuloCsoportId
,REPLACE(CAST(AVG(ErtekelesValue * 1.0) AS DECIMAL(10,2)), '.', ',') ErtekelesAtlag
FROM #ErtekelesResult atlag
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = atlag.TanuloId AND Tanulok.TanuloCsoportId = atlag.TanuloCsoportId
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = atlag.TantargyId AND tantargy.TOROLT = 'F' AND tantargy.C_ISTANULMANYIATLAGBANEMSZAMIT = 'F'
GROUP BY atlag.TanuloId, atlag.TanuloCsoportId
END
--PRINT 'MULASZTÁSOK ---------------------------------------------------------------'
INSERT INTO #MulasztasResult (
TanuloId
,TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
) EXEC sp_GetDokumentumMulasztasok
@osztalyId = @pOsztalyId
,@tanevId = @pTanevId
,@elmeletiOraPercben = @pElmeletiOraPercben
,@gyakorlatiOraPercben = @pGyakorlatiOraPercben
,@ertekelesTipus = @pErtekelesTipus
,@iskolaErdekuSzamit = @pIskolaErdekuSzamit
,@isMuveszetOktatasi = @pIsMuveszetOktatasi
,@negyedevreSzamoltMulasztasok = @negyedevreSzamoltMulasztasok
SELECT
mu.TanuloId
,mu.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM #MulasztasResult mu
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = mu.TanuloId AND Tanulok.TanuloCsoportId = mu.TanuloCsoportId
--PRINT 'MENTESSÉGEK ---------------------------------------------------------------'
SELECT
Mentessegek.TanuloId
,Mentessegek.TanuloCsoportId
,TantargyNev
,MentessegOka
FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId, DEFAULT) Mentessegek
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = Mentessegek.TanuloId AND Tanulok.TanuloCsoportId = Mentessegek.TanuloCsoportId
--PRINT 'TANULÓ elérhetőségei ---------------------------------------------------------------'
SELECT
GondviseloNev GondviseloNeve
,Gondviselo.TanuloId
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T') Gondviselo
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = Gondviselo.TanuloId
SELECT DISTINCT
TanuloTable.TanuloId AS tanuloID
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + C_KOZTERULETJELLEGENEV + ' ' + C_HAZSZAM AS CimText
,cimTipus.C_NAME AS CimTipusa
FROM #TanuloResult TanuloTable
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
WHERE cim.TOROLT = 'F'
AND cim.C_GONDVISELOID IS NULL
AND cim.C_ALAPERTELMEZETT = 'T'
AND cim.C_TANEVID = @pTanevId
--Tanuló összefüggő szakmai gyakorlat
SELECT
SzakmaiGyakorlat.TanuloId
,SzakmaiGyakorlat.TanuloCsoportId
,isTeljesitett
,Ertekeles
,Megjegyzes
,Datum
FROM fnGetDokumentumOsszefuggoSzakmaiGyakorlat(@pTanevId, @pOsztalyId) SzakmaiGyakorlat
INNER JOIN #TanuloResult Tanulok ON Tanulok.TANULOID = SzakmaiGyakorlat.TanuloId AND Tanulok.TanuloCsoportId = SzakmaiGyakorlat.TanuloCsoportId
--PRINT 'Osztály adatok az iktatáshoz ---------------------------------------------------------------'
IF @pIsMuveszetOktatasi = 0 BEGIN
SELECT
f.C_NYOMTATASINEV AS Osztalyfonok
,f.ID AS OsztalyfonokId
,ocs.C_NEV AS Osztalynev
,@pOsztalyId AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,o.C_TANTERVID AS TantervId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,o.C_AGAZAT AS Agazat
,o.C_SZAKMACSOPORT AS SzakmaCsoport
,o.C_SZAKKEPESITES AS Szakkepesites
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
,o.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
,o.C_SZAKMATIPUSID AS UjSzktSzakma
,o.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
,o.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
,o.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
,o.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,ocs.C_isTECHNIKAI AS OJTechnikaiOsztaly
,o.C_NEMZETISEGI AS OJNemzetisegi
,o.C_KETTANNYELVU AS OJKettannyelvu
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,o.C_SPORT AS OJSportOsztaly
,o.C_AJPROGRAM AS OJAranyJanosProgram
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F';
END
ELSE BEGIN
SELECT
f.C_NYOMTATASINEV AS CsoportVezeto
,f.ID AS CsoportVezetoId
,ocs.C_NEV AS OSZTALYNEV
,@pOsztalyId AS CsoportId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
,cs.C_TIPUSA AS CsoportTipusa
FROM T_OSZTALYCSOPORT_OSSZES ocs
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.id
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
WHERE ocs.ID = @pOsztalyId
AND ocs.C_TANEVID = @pTanevId
AND ocs.TOROLT = 'F';
END
--Bejegyzések
CREATE TABLE #TanuloKozossegiSzolgalatai (
TanuloOktAzon NVARCHAR(20),
TanuloId INT,
TanuloNev NVARCHAR(200),
TanuloCsoportId INT,
KozossegiSzolgalatTanevId INT,
Oraszam numeric(10,2),
IntervallumKezdete DATETIME,
IntervallumVege DATETIME
)
INSERT INTO #TanuloKozossegiSzolgalatai
SELECT
TanuloOktAzon,
TanuloId,
TanuloNev,
TanuloCsoportId,
KozossegiSzolgalatTanevId,
Oraszam,
IntervallumKezdete,
IntervallumVege
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId, 0)
SELECT
TanuloId
,TanuloCsoportId
,TanuloNev +
(SELECT
' tanuló eddig ' + CAST(SUM(Oraszam) AS NVARCHAR(100)) + ' óra közösségi szolgálatot teljesített'
FROM #TanuloKozossegiSzolgalatai
WHERE TanuloOktAzon = tk.TanuloOktAzon
GROUP BY TanuloOktAzon
) +
ISNULL((
SELECT
'. Ebből ' + ISNULL(CAST(SUM(Oraszam) AS NVARCHAR(100)), 0) + ' órát ebben a tanévben rögzítettek'
FROM #TanuloKozossegiSzolgalatai
WHERE TanuloOktAzon = tk.TanuloOktAzon
AND KozossegiSzolgalatTanevId = @pTanevId
GROUP BY TanuloOktAzon
),'.') +
ISNULL((
SELECT
', illetve ' + ISNULL(CAST(SUM(Oraszam) AS NVARCHAR(100)), 0) + ' órát teljesített a tanuló a tanév során.'
FROM #TanuloKozossegiSzolgalatai
WHERE TanuloOktAzon = tk.TanuloOktAzon
AND KozossegiSzolgalatTanevId = @pTanevId
AND (IntervallumVege <= @IdoszakVege OR @IdoszakVege BETWEEN IntervallumKezdete AND IntervallumVege)
GROUP BY TanuloOktAzon
),'') COLLATE Hungarian_CI_AI AS Bejegyzes
FROM #TanuloKozossegiSzolgalatai tk
WHERE @pIsKozossegiSzolgalat = 1
UNION
SELECT
bejegyzes.TanuloId AS TanuloId
,TanuloCsoportId
,Tartalom AS Bejegyzes
FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId, 0) bejegyzes
INNER JOIN #TanuloResult TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE Tipusa IN (1546, @EsemenyTipus)
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum > Datum)
-- Zaradekok
IF (@pErtekelesTipus IN (1519, 1520))
BEGIN
EXEC dbo.uspGetDokumentumTanuloZaradekai
@tanevId = @pTanevId
,@osztalyId = @pOsztalyId
,@zaradekTipusId = null
,@idegenNyelvId = 0
,@dokumentumTipusId = 3
,@nyomtatvanyNyelvEnum = @nyomtatvanyNyelvEnum
END
ELSE
BEGIN
SELECT
NULL AS TanuloId
,NULL AS TanuloCsoportId
,'' AS Bejegyzes
,'' AS BejegyzesIdegenNyelven
END
END
GO