697 lines
No EOL
20 KiB
Transact-SQL
697 lines
No EOL
20 KiB
Transact-SQL
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
|
|
,@osztalyzatTipusTypeID int = 44
|
|
,@magatartasErtekelesTipusTypeID int = 50
|
|
,@szorgalomErtekelesTipusTypeID int = 51
|
|
,@pIsOsztalynaplobanNemJelenikMeg bit = 0
|
|
,@pIsKellKapcsolodoOsztalyCsoportok bit = 0
|
|
,@pIsTantargynevNyomtatvanyban bit = 0
|
|
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
|
|
|
|
CREATE TABLE #magatartasSzorgalomTMP (
|
|
Tipus nvarchar(255)
|
|
,Honap int
|
|
,TanuloId int
|
|
,TanuloCsoportId int
|
|
,Ertekeles nvarchar(max)
|
|
,Datum datetime
|
|
,RogzitesDatum datetime
|
|
)
|
|
|
|
CREATE TABLE #magatartasSzorgalom (
|
|
Honap int
|
|
,TanuloId int
|
|
,TanuloCsoportId int
|
|
,Tipus nvarchar(255)
|
|
,Ertekeles nvarchar(max)
|
|
,RENDEZ0 int
|
|
,RENDEZ1 int
|
|
,RENDEZ2 nvarchar(255)
|
|
,RENDEZ3 int
|
|
,RENDEZ4 int
|
|
,RENDEZ5 nvarchar(255)
|
|
,RendezHonap int
|
|
,Datum datetime
|
|
,RogzitesDatum datetime
|
|
)
|
|
|
|
CREATE TABLE #jegyekTMP (
|
|
Honap int
|
|
,TanuloId int
|
|
,TanuloCsoportId int
|
|
,TantargyId int
|
|
,TantargyNev nvarchar(255)
|
|
,TantargyNevNyomtatvanyban nvarchar(255)
|
|
,Ertekeles nvarchar(max)
|
|
,RENDEZ0 int
|
|
,RENDEZ1 int
|
|
,RENDEZ2 nvarchar(max)
|
|
,RENDEZ3 int
|
|
,RENDEZ4 int
|
|
,RENDEZ5 nvarchar(max)
|
|
,Datum datetime
|
|
,RogzitesDatum datetime
|
|
)
|
|
|
|
CREATE TABLE #TanuloIdHonap (
|
|
ID int
|
|
,Honap int
|
|
,TanuloCsoportId int
|
|
)
|
|
|
|
CREATE TABLE #TanuloTantargyHonapTmp (
|
|
TanuloId int
|
|
,TanuloCsoportId int
|
|
,Honap int
|
|
,TantargyNev nvarchar(255)
|
|
,TantargyNevNyomtatvanyban nvarchar(255)
|
|
,TantargyId int
|
|
,RENDEZ0 int
|
|
,RENDEZ1 int
|
|
,RENDEZ2 nvarchar(max)
|
|
,RENDEZ3 int
|
|
,RENDEZ4 int
|
|
,RENDEZ5 nvarchar(max)
|
|
)
|
|
|
|
CREATE TABLE #jegyek (
|
|
Honap int
|
|
,TanuloId int
|
|
,TanuloCsoportId int
|
|
,TantargyId int
|
|
,TantargyNev nvarchar(255)
|
|
,TantargyNevNyomtatvanyban nvarchar(255)
|
|
,Ertekeles nvarchar(max)
|
|
,RENDEZ0 int
|
|
,RENDEZ1 int
|
|
,RENDEZ2 nvarchar(max)
|
|
,RENDEZ3 int
|
|
,RENDEZ4 int
|
|
,RENDEZ5 nvarchar(max)
|
|
,RendezHonap 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
|
|
|
|
INSERT INTO #magatartasSzorgalomTMP
|
|
SELECT
|
|
Tipus
|
|
,Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,Ertekeles
|
|
,Datum
|
|
,RogzitesDatum
|
|
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
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
|
|
AND TipusId IN (1518, 1522, 1523, 1524, 1525)
|
|
|
|
UNION ALL
|
|
|
|
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
|
|
,CASE
|
|
WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz'))
|
|
+ CASE
|
|
WHEN TipusId = 1522 THEN '(I.)'
|
|
WHEN TipusId = 1523 THEN '(III.)'
|
|
WHEN TipusId = 1524 THEN '(II.)'
|
|
WHEN TipusId = 1525 THEN '(IV.)'
|
|
END
|
|
ELSE
|
|
LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz')) + Jeloles
|
|
END
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
MagatartasSzoveg 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
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev 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
|
|
,CASE
|
|
WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz'))
|
|
+ CASE
|
|
WHEN TipusId = 1522 THEN '(I.)'
|
|
WHEN TipusId = 1523 THEN '(III.)'
|
|
WHEN TipusId = 1524 THEN '(II.)'
|
|
WHEN TipusId = 1525 THEN '(IV.)'
|
|
END
|
|
ELSE
|
|
LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz')) + Jeloles
|
|
END
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
SzorgalomSzoveg IS NOT NULL
|
|
AND TipusId IN (1518, 1522, 1523, 1524, 1525)
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom'
|
|
,15 Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '')
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzoveg IS NOT NULL)
|
|
AND TipusId = 1519
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Magatartás'
|
|
,15 Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '')
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzoveg IS NOT NULL)
|
|
AND TipusId = 1519
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Szorgalom'
|
|
,16 Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, LOWER(ISNULL(SzorgalomSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '')
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzoveg IS NOT NULL)
|
|
AND TipusId = 1520
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'Magatartás'
|
|
,16 Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, LOWER(ISNULL(MagatartasSzovegRovidNev, 'sz'))) + ISNULL(Jeloles, '')
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzoveg IS NOT NULL)
|
|
AND TipusId = 1520
|
|
)magszorg
|
|
|
|
INSERT INTO #magatartasSzorgalom
|
|
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
|
|
ORDER BY bmsz.Datum,bmsz.RogzitesDatum
|
|
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
|
|
,0 AS RENDEZ0
|
|
,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
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #magatartasSzorgalomTMP msz
|
|
|
|
CREATE CLUSTERED INDEX ci111sss on #magatartasSzorgalomTMP (tanulocsoportid)
|
|
|
|
INSERT INTO #jegyekTMP
|
|
SELECT
|
|
Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,TantargyId
|
|
,TantargyNev
|
|
,TantargyNevNyomtatvanyban
|
|
,Ertekeles
|
|
,RENDEZ0
|
|
,RENDEZ1
|
|
,RENDEZ2
|
|
,RENDEZ3
|
|
,RENDEZ4
|
|
,RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
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
|
|
,TantargyNevNyomtatvanyban
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek)
|
|
+ CASE
|
|
WHEN TipusId = 1518 THEN ''
|
|
WHEN TipusId = 1522 THEN '(I.)' + ISNULL(Jeloles, '')
|
|
WHEN TipusId = 1523 THEN '(III.)' + ISNULL(Jeloles, '')
|
|
WHEN TipusId = 1524 THEN '(II.)' + ISNULL(Jeloles, '')
|
|
WHEN TipusId = 1525 THEN '(IV.)' + ISNULL(Jeloles, '')
|
|
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
|
|
,RENDEZ0
|
|
,RENDEZ1
|
|
,RENDEZ2
|
|
,RENDEZ3
|
|
,RENDEZ4
|
|
,RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
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
|
|
,TantargyNevNyomtatvanyban
|
|
,CASE
|
|
WHEN TipusId in (1519, 1520) THEN LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz'))
|
|
WHEN TipusId in (1522, 1523, 1524, 1525) THEN LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz'))
|
|
+ CASE
|
|
WHEN TipusId = 1522 THEN '(I.)'
|
|
WHEN TipusId = 1523 THEN '(III.)'
|
|
WHEN TipusId = 1524 THEN '(II.)'
|
|
WHEN TipusId = 1525 THEN '(IV.)'
|
|
END
|
|
ELSE
|
|
LOWER(ISNULL(ErtekelesSzovegRovidNev, 'sz')) + Jeloles
|
|
END
|
|
AS Ertekeles
|
|
,RENDEZ0
|
|
,RENDEZ1
|
|
,RENDEZ2
|
|
,RENDEZ3
|
|
,RENDEZ4
|
|
,RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #ErtekelesekTemp
|
|
WHERE
|
|
ErtekelesSzoveg IS NOT NULL
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
15 Honap
|
|
,TanuloId
|
|
,TanuloCsoportId
|
|
,TantargyId
|
|
,TantargyNev
|
|
,TantargyNevNyomtatvanyban
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, ISNULL(Jeloles, ''), '')
|
|
,RENDEZ0
|
|
,RENDEZ1
|
|
,RENDEZ2
|
|
,RENDEZ3
|
|
,RENDEZ4
|
|
,RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
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
|
|
,TantargyNevNyomtatvanyban
|
|
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, ISNULL(Jeloles, ''), '')
|
|
,RENDEZ0
|
|
,RENDEZ1
|
|
,RENDEZ2
|
|
,RENDEZ3
|
|
,RENDEZ4
|
|
,RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
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
|
|
,a.Tipus
|
|
,Ertekeles
|
|
,0 AS RENDEZ0
|
|
,IIF(a.Tipus = 'Magatartás', 0, 1) RENDEZ1
|
|
,'' AS RENDEZ2
|
|
,0 AS RENDEZ3
|
|
,0 AS RENDEZ4
|
|
,'' AS RENDEZ5
|
|
,Datum
|
|
,RogzitesDatum
|
|
FROM #magatartasSzorgalomTmp a
|
|
|
|
-- Összeszedjük az összes Tanuló/Tanulócsoport/Hónap-ot
|
|
INSERT INTO #TanuloIdHonap
|
|
SELECT
|
|
tcs.C_TANULOID AS ID
|
|
,Honap
|
|
,tcs.ID AS TanuloCsoportId
|
|
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, @osztalyzatTipusTypeID, @magatartasErtekelesTipusTypeID, @szorgalomErtekelesTipusTypeID, @pIsKellKapcsolodoOsztalyCsoportok
|
|
|
|
INSERT INTO #TanuloTantargyHonapTmp
|
|
SELECT
|
|
tih.Id AS TanuloId
|
|
,tih.TanuloCsoportId AS TanuloCsoportId
|
|
,tih.Honap AS Honap
|
|
,t.C_NEV AS TantargyNev
|
|
,t.C_NEVNYOMTATVANYBAN AS TantargyNevNyomtatvanyban
|
|
,t.ID AS TantargyId
|
|
,t.RENDEZ0
|
|
,t.RENDEZ1
|
|
,t.RENDEZ2
|
|
,t.RENDEZ3
|
|
,t.RENDEZ4
|
|
,t.RENDEZ5
|
|
FROM #TanuloIdHonap tih
|
|
INNER JOIN #Tantargyak t ON t.c_tanuloid = tih.Id and t.c_tanulocsoportid = tih.TanuloCsoportId
|
|
|
|
-----------------------------------------------------------------------------------------------------------
|
|
INSERT INTO #jegyek
|
|
SELECT DISTINCT
|
|
TanuloIdHonap.Honap
|
|
,TanuloIdHonap.TanuloId
|
|
,TanuloIdHonap.TanuloCsoportId
|
|
,TanuloIdHonap.TantargyId
|
|
,TanuloIdHonap.TantargyNev
|
|
,TanuloIdHonap.TantargyNevNyomtatvanyban
|
|
,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
|
|
ORDER BY Datum, RogzitesDatum
|
|
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
|
|
,TanuloIdHonap.RENDEZ0
|
|
,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
|
|
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 @pIsOsztalynaplobanNemJelenikMeg = 1
|
|
BEGIN
|
|
-- Azon sorok eltávolítása, ahol a tantárgy meg van jelölve, hogy osztálynaplóban nem látszik, és nincs hozzá értékelés
|
|
DELETE j
|
|
FROM #jegyek j
|
|
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = j.TantargyId
|
|
AND targy.TOROLT = 'F'
|
|
WHERE targy.C_ISOSZTALYNAPLOBANEMLATSZIK = 'T'
|
|
AND j.Ertekeles IS NULL
|
|
END
|
|
|
|
IF @fuggolegesTantargyak = 1
|
|
BEGIN
|
|
|
|
DECLARE @tantargyakJegyek NVARCHAR(MAX)
|
|
DECLARE @tantargyakNevvelJegyek NVARCHAR(MAX)
|
|
SELECT @tantargyakNevvelJegyek = ISNULL(@tantargyakNevvelJegyek + ', ', '') + '[' + CAST(t.TantargyId AS NVARCHAR(MAX)) + '] AS [' + REPLACE(REPLACE(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, RENDEZ0, RENDEZ1
|
|
,RENDEZ2 ,RENDEZ3, RENDEZ4, RENDEZ5 FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t
|
|
ORDER BY RENDEZ0, 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
|
|
,TanuloCsoportId
|
|
,TantargyNev AS Tipus
|
|
,RENDEZ0
|
|
,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, IIF(@pIsTantargynevNyomtatvanyban = 1 AND TantargyNevNyomtatvanyban IS NOT NULL AND TantargyNevNyomtatvanyban != '', TantargyNevNyomtatvanyban, TantargyNev) AS TantargyNev, RENDEZ0, 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, RENDEZ0, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, Tipus
|
|
END
|
|
END
|
|
|
|
GO |