init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,388 @@
|
|||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetDokumentumErtekelesekIdoszakonkent') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
@tanevId INT,
|
||||
@osztalyCsoportId INT,
|
||||
@ertekelesTipusa INT,
|
||||
@csakTanorai BIT,
|
||||
@csakKivlasztottOsztalyCsoport BIT,
|
||||
@atsoroltTanuloErtekelesek INT,
|
||||
@fuggolegesTantargyak BIT,
|
||||
@isMegjegyzesMegjelenjen BIT = 1
|
||||
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
|
||||
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) 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'
|
||||
,IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) 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) Rendez
|
||||
,
|
||||
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
|
||||
,Ertekeles
|
||||
,Rendez
|
||||
INTO #jegyekTMP
|
||||
FROM
|
||||
(SELECT
|
||||
IIF(DATEPART(mm, Datum) = @FelevVegeHonap, IIF(DATEPART(mm, Datum) = @FelevVegeHonap AND DATEPART(DD, Datum) <= @FelevVegeNap, 13, 14), DATEPART(mm, Datum)) Honap
|
||||
,TanuloId
|
||||
,TanuloCsoportId
|
||||
,TantargyId
|
||||
,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
|
||||
,TargyKategoriaId Rendez
|
||||
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
|
||||
15 Honap
|
||||
,TanuloId
|
||||
,TanuloCsoportId
|
||||
,TantargyId
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
|
||||
,TargyKategoriaId Rendez
|
||||
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
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
|
||||
,TargyKategoriaId Rendez
|
||||
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)
|
||||
|
||||
SELECT
|
||||
ID
|
||||
,Honap
|
||||
,TanuloCsoportId
|
||||
INTO #TanuloIdHonap
|
||||
FROM #studentsWithTanuloCsoport
|
||||
CROSS JOIN (VALUES (2),(3),(4),(5),(6),(9),(10),(11),(12),(13),(14),(15),(16)) Honap (Honap)
|
||||
|
||||
SELECT DISTINCT
|
||||
TanuloIdHonap.Honap
|
||||
,TanuloIdHonap.Id TanuloId
|
||||
,TanuloIdHonap.TanuloCsoportId
|
||||
,TantargyId
|
||||
,STUFF((
|
||||
SELECT ', ' + CAST(Ertekeles AS nvarchar(max))
|
||||
FROM #jegyekTMP bjegyekTMP
|
||||
WHERE
|
||||
jegyekTMP.TanuloId = bjegyekTMP.TanuloId
|
||||
AND jegyekTMP.TanuloCsoportId = bjegyekTMP.TanuloCsoportId
|
||||
AND jegyekTMP.TantargyId = bjegyekTMP.TantargyId
|
||||
AND jegyekTMP.Honap = bjegyekTMP.Honap
|
||||
FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 2,'') Ertekeles
|
||||
,Rendez
|
||||
,
|
||||
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 #TanuloIdHonap TanuloIdHonap
|
||||
LEFT JOIN #jegyekTMP jegyekTMP ON TanuloIdHonap.ID = jegyekTMP.TanuloId
|
||||
AND TanuloIdHonap.Honap = jegyekTMP.Honap
|
||||
AND TanuloIdHonap.TanuloCsoportId = jegyekTMP.TanuloCsoportId
|
||||
|
||||
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, C_TARGYKATEGORIA FROM #jegyek j INNER JOIN T_TANTARGY_OSSZES t ON t.Id = j.TantargyId ) t
|
||||
ORDER BY C_TARGYKATEGORIA
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
IIF(Tipus = ''Magatartás'', 0, 1)
|
||||
,Honap
|
||||
,s.ID
|
||||
,s.TanuloCsoportId
|
||||
,Ertekeles
|
||||
,RendezHonap
|
||||
FROM #magatartasSzorgalom m
|
||||
INNER JOIN #studentsWithTanuloCsoport s on m.Tanuloid = s.ID AND s.TanuloCsoportId = m.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 * FROM(
|
||||
SELECT
|
||||
TanuloId
|
||||
,TanuloCsoportId
|
||||
, Tipus
|
||||
, Rendez
|
||||
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
|
||||
FROM (SELECT TanuloId, TanuloCsoportId, Ertekeles, Honap, Tipus, IIF(Tipus = 'Magatartás', 0, 1) TantargyId, Rendez
|
||||
FROM #magatartasSzorgalom)a
|
||||
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
TanuloId TanuloId
|
||||
,TanuloCsoportId
|
||||
,C_NEV TantargyNev
|
||||
,Rendez
|
||||
,[9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16]
|
||||
FROM (SELECT TanuloId, TanuloCsoportId, Ertekeles, Honap, TantargyId, Rendez FROM #jegyek) j
|
||||
INNER JOIN (SELECT Id, C_NEV FROM T_TANTARGY_OSSZES) t ON t.Id = TantargyId
|
||||
PIVOT (MAX(Ertekeles) FOR Honap IN ([9],[10],[11],[12],[2],[3],[4],[5],[6],[13],[14],[15],[16])) piv
|
||||
)vegleges
|
||||
ORDER BY TanuloId, Rendez, Tipus
|
||||
END
|
||||
END
|
||||
|
||||
GO
|
Loading…
Add table
Add a link
Reference in a new issue