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,206 @@
DROP FUNCTION IF EXISTS fnGetDokumentumErtekelesekOsztalyonkent
GO
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyCsoportId INT, @ertekelesTipusa INT = NULL, @csakTanorai BIT = 1, @csakKivlasztottOsztalyCsoport BIT = 0, @atsoroltTanuloErtekelesek INT = 0,@includeOsztalyfonokiKategoria BIT = 0)
RETURNS @retTanuloErtekeles TABLE
(
ErtekelesId INT NOT NULL
,Datum DATE
,TipusId INT
,ErtekelesSzoveg NVARCHAR(MAX)
,ErtekelesSzovegFormazott NVARCHAR(MAX)
,ErtekelesSzovegRovidNev NVARCHAR(3)
,ErtekelesOsztalyzatId INT
,ErtekelesOsztalyzatValue INT
,ErtekelesOsztalyzatNev NVARCHAR(500)
,ErtekelesSzazalek NVARCHAR(4)
,MagatartasOsztalyzatId INT
,MagatartasOsztalyzatValue INT
,MagatartasOsztalyzatNev NVARCHAR(500)
,MagatartasSzoveg NVARCHAR(MAX)
,MagatartasSzovegFormazott NVARCHAR(MAX)
,MagatartasSzovegRovidNev NVARCHAR(6)
,MagatartasErtekId INT
,MagatartasErtek NVARCHAR(500)
,MagatartasErtekOsztalyzatkent INT
,SzorgalomOsztalyzatId INT
,SzorgalomOsztalyzatValue INT
,SzorgalomOsztalyzatNev NVARCHAR(500)
,SzorgalomSzoveg NVARCHAR(MAX)
,SzorgalomSzovegFormazott NVARCHAR(MAX)
,SzorgalomSzovegRovidNev NVARCHAR(6)
,SzorgalomErtekId INT
,SzorgalomErtek NVARCHAR(500)
,SzorgalomErtekOsztalyzatkent INT
,TanuloId INT
,TanuloCsoportId INT
,OsztalyCsoportId INT
,TantargyId INT
,TantargyNevZarojellel NVARCHAR(1023)
,TantargyNevNyomtatvanyban NVARCHAR(510)
,TantargyNev NVARCHAR(510)
,TantargyAngolNev NVARCHAR(510)
,TantargyNemetNev NVARCHAR(510)
,TargyKategoriaId INT
,FotargyE CHAR(1)
,Altantargy CHAR(1)
,FotargyId INT
,ErtekelesTema NVARCHAR(2100)
,ErtekeloId INT
,ErtekelesModjaId INT
,IsMagatartasSzorgalom CHAR(1)
,Jeloles NVARCHAR(MAX)
,JelolesAndErtekelesTema NVARCHAR(MAX)
,RogzitesDatum DATETIME
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(510)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(510)
)
AS
BEGIN
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
DECLARE @kapcsolodoOcsID TABLE(ID INT)
INSERT INTO @kapcsolodoOcsID (ID)
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0)
DECLARE @DefaultFeladatKategoriaId int = 7553
INSERT INTO @retTanuloErtekeles
SELECT
tanuloErtekeles.ID as ErtekelesId
,tanuloErtekeles.C_DATUM as Datum
,tanuloErtekeles.C_TIPUSID as TipusId
,tanuloErtekeles.C_ERTEKELESSZOVEG as ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESSZOVEGFORMAZOTT as ErtekelesSzovegFormazott
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID as ErtekelesOsztalyzatId
,ertekelesOsztalyzat.C_VALUE as ErtekelesOsztalyzatValue
,ertekelesOsztalyzat.C_NAME as ErtekelesOsztalyzatNev
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%' as ErtekelesSzazalek
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID as MagatartasOsztalyzatId
,magatartasOsztalyzat.C_VALUE as MagatartasOsztalyzatValue
,magatartasOsztalyzat.C_NAME as MagatartasOsztalyzatNev
,tanuloErtekeles.C_MAGATARTASSZOVEG as MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASSZOVEGFORMAZOTT as MagatartasSzovegFormazott
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV as MagatartasSzovegRovidNev
,tanuloErtekeles.C_MAGATARTASERTEKID as MagatartasErtekId
,magatartasErtek.C_NAME as MagatartasErtek
,magatartasErtek.C_VALUE + 1 as MagatartasErtekOsztalyzatken
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID as SzorgalomOsztalyzatId
,szorgalomOsztalyzat.C_VALUE as SzorgalomOsztalyzatValue
,szorgalomOsztalyzat.C_NAME as SzorgalomOsztalyzatNev
,tanuloErtekeles.C_SZORGALOMSZOVEG as SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMSZOVEGFORMAZOTT as SzorgalomSzovegFormazott
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV as SzorgalomSzovegRovidNev
,tanuloErtekeles.C_SZORGALOMERTEKID as SzorgalomErtekId
,szorgalomErtek.C_NAME as SzorgalomErtek
,szorgalomErtek.C_VALUE + 1 as SzorgalomErtekOsztalyzatkent
,tanuloErtekeles.C_TANULOID as TanuloId
,TanuloCsoport.ID AS TanuloCsoportId
,tanuloErtekeles.C_OSZTALYCSOPORTID as OsztalyCsoportId
,tanuloErtekeles.C_TANTARGYID as TantargyId
,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, tantargy.C_NEVNYOMTATVANYBAN +' (' + tantargy.C_NEV + ')', tantargy.C_NEV) as TantargyNevZarojellel
,tantargy.C_NEVNYOMTATVANYBAN as TantargyNevNyomtatvanyban
,tantargy.C_NEV as TantargyNev
,tantargy.C_ANGOLNEV as TantargyAngolNev
,tantargy.C_NEMETNEV as TantargyNemetNev
,tantargy.C_TARGYKATEGORIA as TargyKategoriaId
,tantargy.C_FOTARGYE as FotargyE
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN as Altantargy
,tantargy.C_FOTARGYID as FotargyId
,tanuloErtekeles.C_ERTEKELESTEMA as ErtekelesTema
,tanuloErtekeles.C_ERTEKELOID as ErtekeloId
,tanuloErtekeles.C_ERTEKELESMODID as ErtekelesModjaId
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM as IsMagatartasSzorgalom
,IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520),
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10))+')</i>',
'') as Jeloles
,IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN(1519, 1520),
'<i>('+CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA,
'') as JelolesAndErtekelesTema
,tanuloErtekeles.C_ROGZITESDATUM as RogzitesDatum
,CASE WHEN tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tantargy.C_NEV) as RENDEZ2
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
,tantargy.C_FOTARGYID as RENDEZ4
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyCsoportId
AND TanuloCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
AND (TanuloCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR TanuloCsoport.C_KILEPESDATUM IS NULL)
AND TanuloCsoport.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES ErtekeleshezTartozoOsztalyCsoport ON ErtekeleshezTartozoOsztalyCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
AND ErtekeleshezTartozoOsztalyCsoport.C_OSZTALYCSOPORTID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND ErtekeleshezTartozoOsztalyCsoport.C_BELEPESDATUM <= tanuloErtekeles.C_DATUM
AND (ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM >= tanuloErtekeles.C_DATUM OR ErtekeleshezTartozoOsztalyCsoport.C_KILEPESDATUM IS NULL)
AND ErtekeleshezTartozoOsztalyCsoport.TOROLT = 'F'
AND ErtekeleshezTartozoOsztalyCsoport.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tanuloErtekeles.C_TANTARGYID AND tantargy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
AND ertekelesOsztalyzat.C_TYPE = 'OsztalyzatTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
AND magatartasOsztalyzat.C_TANEVID = @tanevId
AND magatartasOsztalyzat.C_TYPE = 'OsztalyzatTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
AND szorgalomOsztalyzat.C_TYPE = 'OsztalyzatTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
AND magatartasErtek.C_TANEVID = @tanevId
AND magatartasErtek.C_TYPE = 'MagatartasErtekelesTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
AND szorgalomErtek.C_TANEVID = @tanevId
AND szorgalomErtek.C_TYPE = 'SzorgalomErtekelesTipus'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.C_FOTARGYID = FotargyTable.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND osztalyCsoport.TOROLT = 'F' and osztalyCsoport.C_FELADATKATEGORIAID = @kategoriaId
LEFT JOIN (
SELECT
tanorai.ID as tanoraiId
,cs.ID as CsoportId
FROM T_CSOPORT_OSSZES cs
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
WHERE tanuloErtekeles.C_TANEVID = @tanevId
AND tanuloErtekeles.TOROLT = 'F'
AND (@atsoroltTanuloErtekelesek = 1 OR (tanuloErtekeles.C_OSZTALYCSOPORTID IN(SELECT ID FROM @kapcsolodoOcsID)))
AND (@ertekelesTipusa IS NULL OR C_TIPUSID = @ertekelesTipusa)
AND (@csakKivlasztottOsztalyCsoport = 0 OR tanuloErtekeles.C_OSZTALYCSOPORTID = @osztalyCsoportId)
AND (@csakTanorai = 0 OR osztaly.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL)
AND ((ISNULL(tantargy.C_TARGYKATEGORIA,0) <> 1248) OR @includeOsztalyfonokiKategoria = 1)
IF @atsoroltTanuloErtekelesek > 0
BEGIN
DECLARE @osztalyTantargyak TABLE (TantargyId INT)
INSERT INTO @osztalyTantargyak (TantargyId)
SELECT DISTINCT
TantargyId
FROM @retTanuloErtekeles
WHERE OsztalyCsoportId IN (SELECT ID FROM @kapcsolodoOcsID)
UNION
SELECT DISTINCT
C_TANTARGYID
FROM T_FOGLALKOZAS_OSSZES
INNER JOIN @kapcsolodoOcsID AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
DELETE FROM @retTanuloErtekeles
WHERE TantargyId NOT IN (SELECT TantargyId FROM @osztalyTantargyak)
END
RETURN
END
GO

View File

@@ -0,0 +1,507 @@
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
,Datum
,RogzitesDatum
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
,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
'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'
,15 Honap
,TanuloId
,TanuloCsoportId
,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, SzorgalomSzovegRovidNev) + Jeloles
,Datum
,RogzitesDatum
FROM #ErtekelesekTemp
WHERE
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzovegRovidNev IS NOT NULL)
AND TipusId = 1519
UNION ALL
SELECT
'Magatartás'
,15 Honap
,TanuloId
,TanuloCsoportId
,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, MagatartasSzovegRovidNev) + Jeloles
,Datum
,RogzitesDatum
FROM #ErtekelesekTemp
WHERE
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzovegRovidNev IS NOT NULL)
AND TipusId = 1519
UNION ALL
SELECT
'Szorgalom'
,16 Honap
,TanuloId
,TanuloCsoportId
,COALESCE(SzorgalomErtek, SzorgalomOsztalyzatNev, SzorgalomSzovegRovidNev) + Jeloles
,Datum
,RogzitesDatum
FROM #ErtekelesekTemp
WHERE
(SzorgalomErtek IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomSzovegRovidNev IS NOT NULL)
AND TipusId = 1520
UNION ALL
SELECT
'Magatartás'
,16 Honap
,TanuloId
,TanuloCsoportId
,COALESCE(MagatartasErtek, MagatartasOsztalyzatNev, MagatartasSzovegRovidNev) + Jeloles
,Datum
,RogzitesDatum
FROM #ErtekelesekTemp
WHERE
(MagatartasErtek IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL OR MagatartasSzovegRovidNev 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
ORDER BY bmsz.Datum,bmsz.RogzitesDatum
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
,Datum
,RogzitesDatum
INTO #magatartasSzorgalom
FROM #magatartasSzorgalomTMP msz
CREATE CLUSTERED INDEX ci111sss on #magatartasSzorgalomTMP (tanulocsoportid)
SELECT
Honap
,TanuloId
,TanuloCsoportId
,TantargyId
,TantargyNev
,Ertekeles
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,Datum
,RogzitesDatum
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
,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
,LOWER(ISNULL(ErtekelesSzovegRovidNev, SUBSTRING(ErtekelesSzoveg, 1, 3))) AS Ertekeles
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,Datum
,RogzitesDatum
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
,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
,ISNULL(CONVERT(NVARCHAR(MAX),ErtekelesOsztalyzatValue), ErtekelesSzazalek) + IIF(@isMegjegyzesMegjelenjen = 1, Jeloles, '')
,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
,Ertekeles
,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
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 AS TanuloId
,tih.TanuloCsoportId AS TanuloCsoportId
,tih.Honap AS Honap
,t.C_NEV AS TantargyNev
,t.ID AS 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
,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
ORDER BY Datum, RogzitesDatum
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
,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,158 @@
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
,RogzitesDatum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegRovidNev
,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