init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,476 @@
|
|||
DROP PROCEDURE IF EXISTS sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
@tanevId int
|
||||
,@osztalyCsoportId int
|
||||
,@ertekelesTipusa int
|
||||
,@csakTanorai bit
|
||||
,@csakKivlasztottOsztalyCsoport 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
|
||||
|
||||
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
|
|
@ -0,0 +1,268 @@
|
|||
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez
|
||||
@intezmenyId int,
|
||||
@tanevId int,
|
||||
@osztalyCsoportId int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @evfolyamTipusId INT = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
|
||||
|
||||
CREATE TABLE #KapcsopodoTantargyak(
|
||||
ID INT
|
||||
,C_FOTARGYID INT
|
||||
,C_NEV NVARCHAR(255)
|
||||
,C_NEVNYOMTATVANYBAN NVARCHAR(255)
|
||||
,C_TARGYKATEGORIA INT
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
)
|
||||
INSERT INTO
|
||||
#KapcsopodoTantargyak
|
||||
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
|
||||
|
||||
-- Összeszedjük az osztályhoz kapcsolódó csoportokat
|
||||
CREATE TABLE #OsztalyCsoportIdList(
|
||||
ID INT PRIMARY KEY
|
||||
)
|
||||
|
||||
IF EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
BEGIN
|
||||
INSERT INTO
|
||||
#OsztalyCsoportIdList (ID)
|
||||
SELECT ID
|
||||
FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId, 7553)
|
||||
-- Nem tanórai célú csoportok eltávolítása
|
||||
DELETE ocsl
|
||||
FROM #OsztalyCsoportIdList ocsl
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs
|
||||
ON cs.ID = ocsl.ID
|
||||
WHERE cs.C_TIPUSA NOT IN (SELECT ID from fnGetTanoraiCeluCsoportTipusok(@tanevId))
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Csoport esetén csak a keresett csoport kell legyen tagja
|
||||
INSERT INTO #OsztalyCsoportIdList (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 DISTINCT
|
||||
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
|
||||
#OsztalyCsoportIdList OsztalyCsoport ON
|
||||
OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON
|
||||
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.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 DISTINCT
|
||||
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
|
||||
#OsztalyCsoportIdList OsztalyCsoport ON
|
||||
OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
INNER JOIN
|
||||
T_TANULOCSOPORT_OSSZES tcs ON
|
||||
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.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, 1, 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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
,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
|
||||
#KapcsopodoTantargyak 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
|
Loading…
Add table
Add a link
Reference in a new issue