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,476 @@
DROP PROCEDURE IF EXISTS uspGetDokumentumErtekelesekIdoszakonkent
GO
CREATE PROCEDURE uspGetDokumentumErtekelesekIdoszakonkent
@tanevId int
,@osztalyCsoportId int
,@ertekelesTipusa int
,@csakTanorai bit
,@csakKivalasztottOsztalyCsoport 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
,CASE
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14
ELSE
DATEPART(mm, Datum)
END AS 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'
,CASE
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14
ELSE
DATEPART(mm, Datum)
END AS 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
CASE
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14
ELSE
DATEPART(mm, Datum)
END AS 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
CASE
WHEN TipusId = 1519 THEN 15
WHEN TipusId = 1520 THEN 16
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap THEN 13
WHEN DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) > @FelevVegeNap THEN 14
ELSE
DATEPART(mm, Datum)
END AS Honap
,TanuloId
,TanuloCsoportId
,TantargyId
,TantargyNev
,LOWER(ISNULL(ErtekelesSzovegRovidNev, SUBSTRING(ErtekelesSzoveg, 1, 3))) AS Ertekeles
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #ErtekelesekTemp
WHERE
ErtekelesSzoveg IS NOT NULL
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 ö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
CROSS JOIN (VALUES (2),(3),(4),(5),(6),(9),(10),(11),(12),(13),(14),(15),(16)) Honap (Honap)
WHERE tcs.C_OSZTALYCSOPORTID = @osztalycsoportId
INSERT INTO #Tantargyak
EXEC uspGetDokumentumTantargyakErtekeleshez @intezmenyId, @tanevId, @osztalyCsoportId, @csakKivalasztottOsztalyCsoport
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
INNER 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,238 @@
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
GO
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez
@intezmenyId int
,@tanevId int
,@osztalyCsoportId int
,@csakKivalasztottOsztalyCsoport bit
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@evfolyamTipusId int = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
,@elsoNap datetime
,@utolsoNap datetime
SELECT @elsoNap = C_KEZDONAP, @utolsoNap = C_UTOLSONAP FROM T_TANEV_OSSZES WHERE ID = @tanevId
CREATE TABLE #KapcsopodoTantargy(
ID int
,C_FOTARGYID int
,C_NEV nvarchar(255)
,C_NEVNYOMTATVANYBAN nvarchar(255)
,C_TARGYKATEGORIA int
,C_INTEZMENYID int
,C_TANEVID int
)
-- Összeszedjük az osztályhoz kapcsolódó csoportokat
CREATE TABLE #KapcsolodoOsztalyCsoport(
Id int PRIMARY KEY
,Kezdete datetime
,Vege datetime
)
INSERT INTO #KapcsopodoTantargy
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
IF EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE ID = @osztalyCsoportId) BEGIN
INSERT INTO #KapcsolodoOsztalyCsoport (ID)
SELECT DISTINCT kocs.ID
FROM fnGetKapcsolodoOsztalycsoportokByDate(@osztalyCsoportId, @elsoNap, @utolsoNap) kocs
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = kocs.ID
LEFT JOIN T_CSOPORTTIPUS cst ON cst.ID = cs.C_TIPUSA
WHERE (cs.ID IS NULL OR cst.C_ISTANORAICELU = 'T')
END
ELSE BEGIN
-- Csoport esetén csak a keresett csoport kell legyen tagja
INSERT INTO #KapcsolodoOsztalyCsoport (ID)
SELECT @osztalyCsoportId
END;
-- Ö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
Foglalkozas.C_TANTARGYID
,Tantargy.C_FOTARGYID
,f.ID AS c_tanuloid
,tcsOsztaly.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 #KapcsolodoOsztalyCsoport kocs ON kocs.ID = Foglalkozas.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = kocs.ID
AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcsOsztaly ON tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND tcsOsztaly.C_TANULOID = f.ID
AND tcsOsztaly.TOROLT = 'F'
WHERE Foglalkozas.C_INTEZMENYID = @intezmenyId
AND Foglalkozas.C_TANEVID = @tanevId
AND Foglalkozas.TOROLT = 'F'
UNION
-- ttf-ben nem szereplő tárgyak
SELECT
OrarendiOra.C_TANTARGYID
,Tantargy.C_FOTARGYID
,f.ID AS C_TANULOID
,tcsOsztaly.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 #KapcsolodoOsztalyCsoport kocs ON kocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = kocs.ID
AND (tcs.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
AND tcs.TOROLT = 'F'
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES tcsOsztaly ON tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND (tcsOsztaly.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
AND tcsOsztaly.C_TANULOID = f.ID
AND tcsOsztaly.TOROLT = 'F'
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, @csakKivalasztottOsztalyCsoport, DEFAULT, 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 AND f.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
UNION ALL
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 AND f.TOROLT = 'F'
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
UNION ALL
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 RENDEZ1
,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 #KapcsopodoTantargy 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

View File

@@ -0,0 +1,155 @@
DROP PROCEDURE IF EXISTS dbo.sp_GetUzenofuzetErtekelolap
DROP PROCEDURE IF EXISTS dbo.uspGetUzenofuzetErtekelolap
GO
CREATE PROCEDURE [dbo].[uspGetUzenofuzetErtekelolap]
@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
,ocs.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
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI OJIsGyogypedagogiaiLogopediai
,o.C_SPORT OJSportOsztaly
,o.C_AJPROGRAM OJAranyJanosProgram
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
,ErtekelesSzovegRovidNev
,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, DEFAULT)
CREATE TABLE #Tantargyak(
ID INT
,C_FOTARGYID INT
,C_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT
,C_NEVNYOMTATVANYBAN NVARCHAR(255) COLLATE DATABASE_DEFAULT
,C_TARGYKATEGORIA INT
,c_tanuloid int
,c_tanulocsoportid int
,RENDEZ1 int
,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT
,RENDEZ3 int
,RENDEZ4 int
,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT
,C_INTEZMENYID INT
,C_TANEVID INT
);
EXEC uspGetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @osztalyId,
@ertekelesTipusa = NULL,
@csakTanorai = 1,
@csakKivalasztottOsztalyCsoport = 0,
@atsoroltTanuloErtekelesek = 0,
@fuggolegesTantargyak = 0,
@isMegjegyzesMegjelenjen = 0,
@intezmenyId = @intezmenyId
DROP TABLE #studentsWithTanuloCsoport
DROP TABLE #Tantargyak
END
GO