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,96 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumErtekelesekOsztalyonkent') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumErtekelesekOsztalyonkent
END
GO
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_TIPUSID TipusId
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
,ertekelesOsztalyzat.C_VALUE ErtekelesOsztalyzat
,IIF(tanuloErtekeles.C_ERTEKELESSZAZALEK IS NOT NULL --
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK) + '%' --
,NULL) ErtekelesSzazalek
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
,magatartasOsztalyzat.C_VALUE MagatartasOsztalyzat
,tanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
,magatartasErtek.C_NAME MagatartasErtek
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
,szorgalomOsztalyzat.C_VALUE SzorgalomOsztalyzat
,tanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
,szorgalomErtek.C_NAME SzorgalomErtek
,tanuloErtekeles.C_TANULOID TanuloId
,tanuloErtekeles.C_OSZTALYCSOPORTID OsztalyCsoportId
,tanuloErtekeles.C_TANTARGYID TantargyId
,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL --
,C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')' --
,tantargy.C_NEV) TantargyNev
,tantargy.C_TARGYKATEGORIA TargyKategoriaId
,tantargy.C_FOTARGYE FotargyE
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN Altantargy
,tanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
,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>', ''
) 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, ''
) JelolesAndErtekelesTema
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
INNER JOIN
fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON
tanulo.TanuloId = tanuloErtekeles.C_TANULOID
LEFT JOIN
T_TANTARGY_OSSZES tantargy ON
tantargy.Id = tanuloErtekeles.C_TANTARGYID
AND (tantargy.C_TARGYKATEGORIA <> 1248 OR tantargy.C_TARGYKATEGORIA IS NULL)
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON
ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
AND ertekelesOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON
magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
AND magatartasOsztalyzat.C_TANEVID = @tanevId
AND magatartasOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON
szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
AND szorgalomOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON
magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
AND magatartasErtek.C_TANEVID = @tanevId
AND magatartasErtek.C_TYPE LIKE 'MagatartasErtekelesTipus'
LEFT JOIN
T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON
szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
AND szorgalomErtek.C_TANEVID = @tanevId
AND szorgalomErtek.C_TYPE LIKE 'SzorgalomErtekelesTipus'
LEFT JOIN
T_CSOPORT_OSSZES csoport ON
csoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
AND (csoport.ID IS NULL OR csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
WHERE
tanuloErtekeles.Torolt = 'F'
AND tanuloErtekeles.C_DATUM >= BelepesDatum
AND (tanuloErtekeles.C_DATUM <= KilepesDatum OR KilepesDatum IS NULL)
)
GO

View File

@@ -0,0 +1,63 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_CheckTanuloEgyszerAdhatoTanuloErtekelesValidation]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_CheckTanuloEgyszerAdhatoTanuloErtekelesValidation]
END
GO
-- =============================================
-- Description: <Ellenőrizzuk, hogy a tanulónak van-e már egyszer adható tanuló értékelése, ha nincs akkor true, ha van akkor false>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CheckTanuloEgyszerAdhatoTanuloErtekelesValidation]
@pId INT
,@pTipusId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets frominterfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TanuloId INT
DECLARE @TantargyId INT
SELECT
@TanuloId = T_TANULOERTEKELES_OSSZES.C_TANULOID
,@TantargyId = T_TANULOERTEKELES_OSSZES.C_TANTARGYID
FROM
T_TANULOERTEKELES_OSSZES
WHERE
T_TANULOERTEKELES_OSSZES.ID = @pId
SET @TanuloId = (
SELECT
T_TANULOERTEKELES_OSSZES.C_TANULOID
FROM
T_TANULOERTEKELES_OSSZES
WHERE
T_TANULOERTEKELES_OSSZES.ID = @pId
)
IF EXISTS (
SELECT 1
FROM
T_TANULOERTEKELES_OSSZES
WHERE
T_TANULOERTEKELES_OSSZES.TOROLT = 'F'
AND T_TANULOERTEKELES_OSSZES.C_TIPUSID = @pTipusId
AND T_TANULOERTEKELES_OSSZES.C_TANULOID = @TanuloId
AND T_TANULOERTEKELES_OSSZES.C_TANTARGYID = @TantargyId
AND T_TANULOERTEKELES_OSSZES.ID != @pId
)
SELECT 1
ELSE
SELECT 0
END
GO

View File

@@ -0,0 +1,49 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation]
END
GO
-- =============================================
-- Description: <Ellenőrizzuk, hogy a tanulóknak van-e már egyszer adható tanuló értékelése, ha nincs akkor true, ha van akkor false>
-- =============================================
CREATE PROCEDURE [dbo].[sp_CheckTanuloListEgyszerAdhatoTanuloErtekelesValidation]
@pTanuloIdList XML
,@pTantargyId INT = NULL
,@pTipusId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @tempTanuloIdList TABLE (tanuloId INT)
INSERT INTO @tempTanuloIdList
SELECT DISTINCT tanuloId = tanuloId.value('(.)[1]', 'INT')
FROM @pTanuloIdList.nodes('tanuloIdList/tanuloId') as tanuloIdList(tanuloId)
IF EXISTS (
SELECT 1
FROM
T_TANULOERTEKELES_OSSZES
WHERE
T_TANULOERTEKELES_OSSZES.TOROLT = 'F'
AND T_TANULOERTEKELES_OSSZES.C_TIPUSID = @pTipusId
AND T_TANULOERTEKELES_OSSZES.C_TANULOID IN (SELECT tanuloId FROM @tempTanuloIdList)
AND ((@pTantargyId IS NULL AND T_TANULOERTEKELES_OSSZES.C_TANTARGYID IS NULL) OR T_TANULOERTEKELES_OSSZES.C_TANTARGYID = @pTantargyId)
)
SELECT 1
ELSE
SELECT 0
END
GO

View File

@@ -0,0 +1,304 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GenerateErtekelesekTempTabla]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GenerateErtekelesekTempTabla]
END
GO
-- =============================================
-- Description: <El<45>szedi a tanul<75> <20>rt<72>kel<65>seket, havi bont<6E>sban tant<6E>rgy <20>s oszt<7A>lycsoport alapj<70>n>
-- NOTE: EZT A H<>ROM T<>ROLT ELJ<4C>R<EFBFBD>ST EGYBEN KELL KEZELNI, HA M<>DOS<4F>TJUK!!!
-- - sp_GenerateErtekelesekTempTabla
-- - sp_GenerateErtekelesekMagatartasSzorgalomTempTabla
-- - sp_GenerateErtekelesekTempTablaByTanulo
-- =============================================
CREATE PROCEDURE [dbo].[sp_GenerateErtekelesekTempTabla]
@pTantargyId INT
,@pOsztalyCsoportId INT
,@pFelevVegeDatum DATE
,@pErtekelesTipusEvkozi INT
,@pErtekelesTipusFelevi INT
,@pErtekelesTipusEvvegi INT
,@pDatum DATE = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = GETDATE()
DECLARE @TempDictionaryItem TABLE (
ID INT PRIMARY KEY
,C_VALUE INT
,C_ORDER INT
,C_INTEZMENYID INT
,C_TANEVID INT
,TOROLT CHAR(1)
)
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_OSZTALYZATTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_OSZTALYZATTIPUS.ID
AND C_TYPE LIKE 'OsztalyzatTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_MAGATARTASERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_MAGATARTASERTEKELESTIPUS.ID
AND C_TYPE LIKE 'MagatartasErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_SZORGALOMERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_SZORGALOMERTEKELESTIPUS.ID
AND C_TYPE LIKE 'SzorgalomErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_TARGYKATEGORIATIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_TARGYKATEGORIATIPUS.ID
AND C_TYPE LIKE 'TargyKategoriaTipus'
DECLARE @TempTanuloErtekeles TABLE (
ID INT
,Datum NVARCHAR(255)
,TipusId INT
,Honap NVARCHAR(2)
,TanuloId INT
,Nev NVARCHAR(255)
,ErtekelesOsztalyzat INT
,ErtekelesSzoveg NVARCHAR(MAX)
,ErtekelesSzovegRovidNev NVARCHAR(3)
,ErtekelesSzazalek INT
,Suly INT
)
INSERT INTO @TempTanuloErtekeles
SELECT DISTINCT *
FROM (
SELECT DISTINCT
tanuloErtekeles.ID ID
,tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_TIPUSID TipusId
,CASE WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusFelevi
THEN 'I'
WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusEvvegi
THEN 'II'
ELSE
CASE
WHEN CAST(tanuloErtekeles.C_DATUM AS DATE) > @pFelevVegeDatum
THEN CAST(MONTH(tanuloErtekeles.C_DATUM) + 1 AS NVARCHAR(2))
ELSE CAST(MONTH(tanuloErtekeles.C_DATUM) AS NVARCHAR(2))
END
END Honap
,tanuloCsoport.C_TANULOID TanuloId
,felhasznalo.C_NYOMTATASINEV Nev
,ertekelesOsztalyzat.C_VALUE ErtekelesOsztalyzat
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
,tanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
,tanariAtlagSuly.C_SULY Suly
FROM (
SELECT
C_TANULOID
FROM
T_TANULOCSOPORT
WHERE
TOROLT = 'F'
AND C_BELEPESDATUM <= @pDatum
AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= @pDatum)
AND C_OSZTALYCSOPORTID = @pOsztalyCsoportId
) AS tanuloCsoport
INNER JOIN (
SELECT
ID
,C_NYOMTATASINEV
FROM
T_FELHASZNALO
WHERE
TOROLT = 'F'
) AS felhasznalo ON
felhasznalo.ID = tanuloCsoport.C_TANULOID
LEFT JOIN (
SELECT
ID
,C_DATUM
,C_TIPUSID
,C_TANULOID
,C_ERTEKELESOSZTALYZATID
,C_ERTEKELESSZOVEG
,C_ERTEKELESSZOVEGROVIDNEV
,C_ERTEKELESSZAZALEK
,C_ERTEKELESMODID
FROM
T_TANULOERTEKELES
WHERE
TOROLT = 'F'
AND C_TANTARGYID = @pTantargyId
) AS tanuloErtekeles ON
tanuloErtekeles.C_TANULOID = tanuloCsoport.C_TANULOID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS ertekelesOsztalyzat
ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
LEFT JOIN T_TANARIATLAGSULY tanariAtlagSuly ON
tanariAtlagSuly.C_ERTEKELESMODID = tanuloErtekeles.C_ERTEKELESMODID
AND tanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
AND tanariAtlagSuly.TOROLT = 'F'
) AS temp
SELECT
result.*
,result2.ErtkelesMentesseg
,result2.SzovegesenErtekelheto
FROM (
SELECT
pivotErtekelesek.TanuloId ID
,Nev Nev
,[9] [09]
,[10] [10]
,[11] [11]
,[12] [12]
,[1] [01I]
,[2] [01II]
,[3] [02]
,[4] [03]
,[5] [04]
,[6] [05]
,[7] [06]
,[I] [I]
,[II] [II]
,atlag.Jegy Atlag
,@pTantargyId TantargyId
FROM (
SELECT DISTINCT
tempErtekeles1.Nev
,STUFF (
(SELECT
','
+ ISNULL(CAST(tempErtekeles2.ErtekelesOsztalyzat AS VARCHAR(1)), '')
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.ErtekelesSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.ErtekelesSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.ErtekelesSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '')
+ ISNULL(CAST(tempErtekeles2.ErtekelesSzazalek AS VARCHAR(3)), '')
FROM
@TempTanuloErtekeles tempErtekeles2
WHERE
tempErtekeles1.TanuloId = tempErtekeles2.TanuloId AND
tempErtekeles1.Honap = tempErtekeles2.Honap
FOR XML PATH ('')
), 1, 1, ''
) TanuloErtekelesList
,tempErtekeles1.Honap
,tempErtekeles1.TanuloId
FROM
@TempTanuloErtekeles tempErtekeles1
) AS erdemjegyek
PIVOT (
MAX(TanuloErtekelesList)
FOR Honap
IN ([I], [II], [9] ,[10] ,[11] ,[12] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6], [7])
) AS pivotErtekelesek
LEFT JOIN (
SELECT
TanuloId TanuloId
,ROUND (
SUM(CAST(ErtekelesOsztalyzat AS FLOAT) * CAST(ISNULL(Suly, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(Suly, 100) AS FLOAT) / 100), 2
) Jegy
FROM
@TempTanuloErtekeles
WHERE
TipusId = @pErtekelesTipusEvkozi
AND ErtekelesOsztalyzat IS NOT NULL
GROUP BY
TanuloId
) AS atlag ON
pivotErtekelesek.TanuloId = atlag.TanuloId
) AS result
INNER JOIN (
SELECT DISTINCT
felhasznalo.ID ID
,tanuloMentesseg.C_ERTEKELESMENTESITES ErtkelesMentesseg
,tanuloMentesseg.C_SZOVEGESENERTEKELHETO SzovegesenErtekelheto
FROM
T_TANULOCSOPORT AS tanuloCsoport
INNER JOIN T_FELHASZNALO felhasznalo ON
felhasznalo.ID = tanuloCsoport.C_TANULOID
LEFT JOIN T_TANULOMENTESSEG tanuloMentesseg ON
tanuloMentesseg.C_TANULOID = felhasznalo.ID
AND tanuloMentesseg.TOROLT = 'F'
AND tanuloMentesseg.C_TANTARGYID = @pTantargyId
AND (tanuloMentesseg.C_KEZDETE IS NULL OR tanuloMentesseg.C_KEZDETE <= @pDatum)
AND (tanuloMentesseg.C_VEGE IS NULL OR tanuloMentesseg.C_VEGE >= @pDatum)
WHERE
tanuloCsoport.TOROLT = 'F'
AND tanuloCsoport.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
AND tanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (tanuloCsoport.C_KILEPESDATUM IS NULL OR tanuloCsoport.C_KILEPESDATUM >= @pDatum)
) AS result2 ON
result2.ID = result.ID
ORDER BY
result.Nev
IF OBJECT_ID('tempdb..#TempDictionaryItem') IS NOT NULL DROP TABLE #TempDictionaryItem
IF OBJECT_ID('tempdb..#TempTanuloErtekeles') IS NOT NULL DROP TABLE #TempTanuloErtekeles
END
GO

View File

@@ -0,0 +1,446 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GenerateErtekelesekTempTablaByTanulo]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GenerateErtekelesekTempTablaByTanulo]
END
GO
-- =============================================
-- Description: <El<45>szedi a tanul<75> <20>rt<72>kel<65>seket, havi bont<6E>sban tanul<75> alapj<70>n>
-- NOTE: EZT A H<>ROM T<>ROLT ELJ<4C>R<EFBFBD>ST EGYBEN KELL KEZELNI, HA M<>DOS<4F>TJUK!!!
-- - sp_GenerateErtekelesekTempTabla
-- - sp_GenerateErtekelesekMagatartasSzorgalomTempTabla
-- - sp_GenerateErtekelesekTempTablaByTanulo
-- =============================================
CREATE PROCEDURE [dbo].[sp_GenerateErtekelesekTempTablaByTanulo]
@pTanuloId INT
,@pFotargyAltargyId INT = NULL
,@pFelevVegeDatum DATE
,@pErtekelesTipusEvkozi INT
,@pErtekelesTipusFelevi INT
,@pErtekelesTipusEvvegi INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @TempDictionaryItem TABLE (
ID INT PRIMARY KEY
,C_VALUE INT
,C_ORDER INT
,C_INTEZMENYID INT
,C_TANEVID INT
,TOROLT CHAR(1)
)
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_OSZTALYZATTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_OSZTALYZATTIPUS.ID
AND C_TYPE LIKE 'OsztalyzatTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_MAGATARTASERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_MAGATARTASERTEKELESTIPUS.ID
AND C_TYPE LIKE 'MagatartasErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_SZORGALOMERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_SZORGALOMERTEKELESTIPUS.ID
AND C_TYPE LIKE 'SzorgalomErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_TARGYKATEGORIATIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_TARGYKATEGORIATIPUS.ID
AND C_TYPE LIKE 'TargyKategoriaTipus'
DECLARE @TempTanuloErtekeles TABLE (
ID INT
,Datum NVARCHAR(255)
,TipusId INT
,Honap NVARCHAR(2)
,TanuloId INT
,Nev NVARCHAR(255)
,ErtekelesOsztalyzat INT
,ErtekelesSzoveg NVARCHAR(MAX)
,ErtekelesSzovegRovidNev NVARCHAR(3)
,ErtekelesSzazalek INT
,MagatartasOsztalyzat INT
,MagatartasSzoveg NVARCHAR(MAX)
,MagatartasSzovegRovidNev NVARCHAR(3)
,MagatartasErtek INT
,SzorgalomOsztalyzat INT
,SzorgalomSzoveg NVARCHAR(MAX)
,SzorgalomSzovegRovidNev NVARCHAR(3)
,SzorgalomErtek INT
,Suly INT
,TantargyId INT
,TantargyKategoria INT
,FotargyId INT
)
INSERT INTO @TempTanuloErtekeles
SELECT DISTINCT *
FROM (
SELECT DISTINCT
tanuloErtekeles.ID ID
,tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_TIPUSID TipusId
,CASE WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusFelevi
THEN 'I'
WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusEvvegi
THEN 'II'
ELSE
CASE
WHEN CAST(tanuloErtekeles.C_DATUM AS DATE) > @pFelevVegeDatum
THEN CAST(MONTH(tanuloErtekeles.C_DATUM) + 1 AS NVARCHAR(2))
ELSE CAST(MONTH(tanuloErtekeles.C_DATUM) AS NVARCHAR(2))
END
END Honap
,tanuloCsoport.C_TANULOID TanuloId
,tantargy.C_NEV Nev
,ertekelesOsztalyzat.C_VALUE ErtekelesOsztalyzat
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
,tanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
,magatartasOsztalyzat.C_VALUE MagatartasOsztalyzat
,tanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
,magatartasErtek.C_VALUE MagatartasErtek
,szorgalomOsztalyzat.C_VALUE SzorgalomOsztalyzat
,tanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
,szorgalomErtek.C_VALUE SzorgalomErtek
,tanariAtlagSuly.C_SULY Suly
,tantargy.ID TantargyId
,tantargyKategoria.C_ORDER TantargyKategoria
,tantargy.C_FOTARGYID FotargyId
FROM (
SELECT
ID
,C_NYOMTATASINEV
FROM
T_FELHASZNALO
WHERE
TOROLT = 'F'
AND ID = @pTanuloId
) AS felhasznalo
INNER JOIN (
SELECT
C_TANULOID
,C_OSZTALYCSOPORTID
FROM
T_TANULOCSOPORT
WHERE
TOROLT = 'F'
) AS tanuloCsoport ON
tanuloCsoport.C_TANULOID = felhasznalo.ID
INNER JOIN (
SELECT
ID
FROM
T_OSZTALYCSOPORT
WHERE
TOROLT = 'F'
) AS osztalyCsoport ON
osztalyCsoport.ID = tanuloCsoport.C_OSZTALYCSOPORTID
INNER JOIN (
SELECT
C_OSZTALYCSOPORTID
,C_TANTARGYID
FROM
T_ORARENDIORA
WHERE
TOROLT = 'F'
) AS orarendiOra ON
orarendiOra.C_OSZTALYCSOPORTID = osztalyCsoport.ID
INNER JOIN (
SELECT
ID
,C_NEV
,C_TARGYKATEGORIA
,C_FOTARGYID
FROM
fnGetKapcsolodoTantargyak(@pFotargyAltargyId)
) AS tantargy ON
(@pFotargyAltargyId IS NULL AND tantargy.ID = orarendiOra.C_TANTARGYID)
OR (@pFotargyAltargyId IS NOT NULL AND tantargy.ID <> @pFotargyAltargyId)
OR (tantargy.ID IN (
SELECT
C_FOTARGYID
FROM
T_TANTARGY
WHERE
ID = orarendiOra.C_TANTARGYID
AND @pFotargyAltargyId IS NULL
AND TOROLT = 'F'
)
)
LEFT JOIN (
SELECT
ID
,C_ORDER
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS tantargyKategoria ON
tantargyKategoria.ID = tantargy.C_TARGYKATEGORIA
LEFT JOIN (
SELECT
ID
,C_DATUM
,C_TIPUSID
,C_TANULOID
,C_TANTARGYID
,C_ERTEKELESOSZTALYZATID
,C_ERTEKELESSZOVEG
,C_ERTEKELESSZOVEGROVIDNEV
,C_ERTEKELESSZAZALEK
,C_ERTEKELESMODID
,C_MAGATARTASOSZTALYZATID
,C_MAGATARTASSZOVEG
,C_MAGATARTASSZOVEGROVIDNEV
,C_MAGATARTASERTEKID
,C_SZORGALOMOSZTALYZATID
,C_SZORGALOMSZOVEG
,C_SZORGALOMSZOVEGROVIDNEV
,C_SZORGALOMERTEKID
FROM
T_TANULOERTEKELES
WHERE
TOROLT = 'F'
) AS tanuloErtekeles ON
tanuloErtekeles.C_TANULOID = @pTanuloId
AND tanuloErtekeles.C_TANTARGYID = tantargy.ID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS ertekelesOsztalyzat
ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS magatartasOsztalyzat ON
magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS szorgalomOsztalyzat ON
szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS magatartasErtek ON
magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS szorgalomErtek ON
szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
LEFT JOIN
T_TANARIATLAGSULY tanariAtlagSuly ON
tanariAtlagSuly.C_ERTEKELESMODID = tanuloErtekeles.C_ERTEKELESMODID
AND tanuloErtekeles.C_ERTEKELESOSZTALYZATID IS NOT NULL
AND tanariAtlagSuly.TOROLT = 'F'
) AS temp
SELECT
result.ID,
Nev,
[09],
[10],
[11],
[12],
[01I],
[01II],
[02],
[03],
[04],
[05],
[06],
[I],
[II],
Atlag,
TantargyKategoria,
FotargyId
FROM (
SELECT
pivotErtekelesek.TantargyId ID
,Nev Nev
,[9] [09]
,[10] [10]
,[11] [11]
,[12] [12]
,[1] [01I]
,[2] [01II]
,[3] [02]
,[4] [03]
,[5] [04]
,[6] [05]
,[7] [06]
,[I] [I]
,[II] [II]
,atlag.Jegy Atlag
,pivotErtekelesek.TantargyKategoria TantargyKategoria
,pivotErtekelesek.FotargyId FotargyId
FROM (
SELECT DISTINCT
tempErtekeles1.Nev
,STUFF (
(SELECT
','
+ ISNULL(CAST(tempErtekeles2.ErtekelesOsztalyzat AS VARCHAR(1)), '')
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.ErtekelesSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.ErtekelesSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.ErtekelesSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '')
+ ISNULL(CAST(tempErtekeles2.ErtekelesSzazalek AS VARCHAR(3)), '')
+ ISNULL(CAST(tempErtekeles2.MagatartasOsztalyzat AS VARCHAR(1)), '') + ','
+ ISNULL(CAST(tempErtekeles2.SzorgalomOsztalyzat AS VARCHAR(1)), '')
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.MagatartasSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.MagatartasSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.MagatartasSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '') + ','
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.SzorgalomSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.SzorgalomSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.SzorgalomSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '')
+ ISNULL(CAST(tempErtekeles2.MagatartasErtek AS VARCHAR(1)), '') + ','
+ ISNULL(CAST(tempErtekeles2.SzorgalomErtek AS VARCHAR(1)), '')
FROM
@TempTanuloErtekeles tempErtekeles2
WHERE
tempErtekeles1.TantargyId = tempErtekeles2.TantargyId AND
tempErtekeles1.Honap = tempErtekeles2.Honap
FOR XML PATH ('')
), 1, 1, ''
) TanuloErtekelesList
,tempErtekeles1.Honap
,tempErtekeles1.TanuloId
,tempErtekeles1.TantargyId
,tempErtekeles1.TantargyKategoria
,tempErtekeles1.FotargyId
FROM
@TempTanuloErtekeles tempErtekeles1
) AS erdemjegyek
PIVOT (
MAX(TanuloErtekelesList)
FOR Honap
IN ([I], [II], [9] ,[10] ,[11] ,[12] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6], [7])
) AS pivotErtekelesek
LEFT JOIN (
SELECT
TantargyId TantargyId
,ROUND (
SUM(CAST(ErtekelesOsztalyzat AS FLOAT) * CAST(ISNULL(Suly, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(Suly, 100) AS FLOAT) / 100), 2
) Jegy
FROM
@TempTanuloErtekeles
WHERE
TipusId = @pErtekelesTipusEvkozi
AND ErtekelesOsztalyzat IS NOT NULL
GROUP BY
TantargyId
) AS atlag ON
pivotErtekelesek.TantargyId = atlag.TantargyId
) AS result
LEFT JOIN
T_TANTARGY fotargy ON
result.FotargyId = fotargy.ID
LEFT JOIN
@TempDictionaryItem targykategoria ON
targykategoria.ID = fotargy.C_TARGYKATEGORIA
AND targykategoria.C_INTEZMENYID = fotargy.C_INTEZMENYID
AND targykategoria.C_TANEVID = fotargy.C_TANEVID
ORDER BY
CASE WHEN result.FotargyId IS NULL THEN result.TantargyKategoria ELSE targykategoria.C_ORDER END
,ISNULL(fotargy.C_NEV, result.Nev)
,ISNULL(result.FotargyId, result.ID)
,result.FotargyId
,result.Nev
IF OBJECT_ID('tempdb..#TempDictionaryItem') IS NOT NULL DROP TABLE #TempDictionaryItem
IF OBJECT_ID('tempdb..#TempTanuloErtekeles') IS NOT NULL DROP TABLE #TempTanuloErtekeles
END
GO

View File

@@ -0,0 +1,305 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GenerateMagatartasSzorgalomTempTabla]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GenerateMagatartasSzorgalomTempTabla]
END
GO
-- =============================================
-- Description: <El<45>szedi a magatart<72>s/szorgalom tanul<75> <20>rt<72>kel<65>seket, havi bont<6E>sban oszt<7A>lycsoport alapj<70>n>
-- NOTE: EZT A H<>ROM T<>ROLT ELJ<4C>R<EFBFBD>ST EGYBEN KELL KEZELNI, HA M<>DOS<4F>TJUK!!!
-- - sp_GenerateErtekelesekTempTabla
-- - sp_GenerateErtekelesekMagatartasSzorgalomTempTabla
-- - sp_GenerateErtekelesekTempTablaByTanulo
-- =============================================
CREATE PROCEDURE [dbo].[sp_GenerateMagatartasSzorgalomTempTabla]
@pOsztalyCsoportId INT
,@pFelevVegeDatum DATE
,@pErtekelesTipusEvkozi INT
,@pErtekelesTipusFelevi INT
,@pErtekelesTipusEvvegi INT
,@pDatum DATE = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
IF @pDatum IS NULL
SET @pDatum = GETDATE()
DECLARE @TempDictionaryItem TABLE (
ID INT PRIMARY KEY
,C_VALUE INT
,C_ORDER INT
,C_INTEZMENYID INT
,C_TANEVID INT
,TOROLT CHAR(1)
)
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_OSZTALYZATTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_OSZTALYZATTIPUS.ID
AND C_TYPE LIKE 'OsztalyzatTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_MAGATARTASERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_MAGATARTASERTEKELESTIPUS.ID
AND C_TYPE LIKE 'MagatartasErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_SZORGALOMERTEKELESTIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_SZORGALOMERTEKELESTIPUS.ID
AND C_TYPE LIKE 'SzorgalomErtekelesTipus'
INSERT INTO @TempDictionaryItem
SELECT
T_DICTIONARYITEMBASE.ID
,C_VALUE
,C_ORDER
,C_INTEZMENYID
,C_TANEVID
,T_DICTIONARYITEMBASE.TOROLT
FROM
T_TARGYKATEGORIATIPUS
LEFT JOIN
T_DICTIONARYITEMBASE ON
T_DICTIONARYITEMBASE.ID = T_TARGYKATEGORIATIPUS.ID
AND C_TYPE LIKE 'TargyKategoriaTipus'
DECLARE @TempTanuloErtekeles TABLE (
ID INT
,Datum NVARCHAR(255)
,TipusId INT
,Honap NVARCHAR(2)
,TanuloId INT
,Nev NVARCHAR(255)
,MagatartasOsztalyzat INT
,MagatartasSzoveg NVARCHAR(MAX)
,MagatartasSzovegRovidNev NVARCHAR(3)
,MagatartasErtek INT
,SzorgalomOsztalyzat INT
,SzorgalomSzoveg NVARCHAR(MAX)
,SzorgalomSzovegRovidNev NVARCHAR(3)
,SzorgalomErtek INT
)
INSERT INTO @TempTanuloErtekeles
SELECT DISTINCT *
FROM (
SELECT DISTINCT
tanuloErtekeles.ID ID
,tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_TIPUSID TipusId
,CASE WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusFelevi
THEN 'I'
WHEN tanuloErtekeles.C_TIPUSID = @pErtekelesTipusEvvegi
THEN 'II'
ELSE
CASE
WHEN CAST(tanuloErtekeles.C_DATUM AS DATE) > @pFelevVegeDatum
THEN CAST(MONTH(tanuloErtekeles.C_DATUM) + 1 AS NVARCHAR(2))
ELSE CAST(MONTH(tanuloErtekeles.C_DATUM) AS NVARCHAR(2))
END
END Honap
,tanuloCsoport.C_TANULOID TanuloId
,felhasznalo.C_NYOMTATASINEV Nev
,magatartasOsztalyzat.C_VALUE MagatartasOsztalyzat
,tanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
,magatartasErtek.C_VALUE MagatartasErtek
,szorgalomOsztalyzat.C_VALUE SzorgalomOsztalyzat
,tanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
,szorgalomErtek.C_VALUE SzorgalomErtek
FROM (
SELECT
C_TANULOID
FROM
T_TANULOCSOPORT
WHERE
TOROLT = 'F'
AND C_BELEPESDATUM <= @pDatum
AND (C_KILEPESDATUM IS NULL OR C_KILEPESDATUM >= @pDatum)
AND C_OSZTALYCSOPORTID = @pOsztalyCsoportId
) AS tanuloCsoport
INNER JOIN (
SELECT
ID
,C_NYOMTATASINEV
FROM
T_FELHASZNALO
WHERE
TOROLT = 'F'
) AS felhasznalo ON
felhasznalo.ID = tanuloCsoport.C_TANULOID
LEFT JOIN (
SELECT
ID
,C_DATUM
,C_TIPUSID
,C_TANULOID
,C_MAGATARTASOSZTALYZATID
,C_MAGATARTASSZOVEG
,C_MAGATARTASSZOVEGROVIDNEV
,C_MAGATARTASERTEKID
,C_SZORGALOMOSZTALYZATID
,C_SZORGALOMSZOVEG
,C_SZORGALOMSZOVEGROVIDNEV
,C_SZORGALOMERTEKID
FROM
T_TANULOERTEKELES
WHERE
TOROLT = 'F'
AND C_TANTARGYID IS NULL
) AS tanuloErtekeles ON
tanuloErtekeles.C_TANULOID = tanuloCsoport.C_TANULOID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS magatartasOsztalyzat ON
magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS szorgalomOsztalyzat ON
szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS magatartasErtek ON
magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
LEFT JOIN (
SELECT
ID
,C_VALUE
FROM
@TempDictionaryItem
WHERE
TOROLT = 'F'
) AS szorgalomErtek ON
szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
) AS temp
SELECT *
FROM (
SELECT
pivotErtekelesek.TanuloId ID
,Nev Nev
,[9] [09]
,[10] [10]
,[11] [11]
,[12] [12]
,[1] [01I]
,[2] [01II]
,[3] [02]
,[4] [03]
,[5] [04]
,[6] [05]
,[7] [06]
,[I] [I]
,[II] [II]
FROM (
SELECT DISTINCT
tempErtekeles1.Nev
,STUFF (
(SELECT
','
+ ISNULL(CAST(tempErtekeles2.MagatartasOsztalyzat AS VARCHAR(1)), '') + ','
+ ISNULL(CAST(tempErtekeles2.SzorgalomOsztalyzat AS varchar(1)), '')
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.MagatartasSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.MagatartasSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.MagatartasSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '') + ','
+ ISNULL(CAST(
CASE
WHEN tempErtekeles2.SzorgalomSzoveg IS NULL OR LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(tempErtekeles2.SzorgalomSzoveg, CHAR(9), ''), CHAR(10), ''), CHAR(13), ''))) = ''
THEN NULL
ELSE
ISNULL(tempErtekeles2.SzorgalomSzovegRovidNev, 'sz')
END AS VARCHAR(3)), '')
+ ISNULL(CAST(tempErtekeles2.MagatartasErtek AS varchar(1)), '') + ','
+ ISNULL(CAST(tempErtekeles2.SzorgalomErtek AS varchar(1)), '')
FROM
@TempTanuloErtekeles tempErtekeles2
WHERE
tempErtekeles1.TanuloId = tempErtekeles2.TanuloId AND
tempErtekeles1.Honap = tempErtekeles2.Honap
FOR XML PATH ('')
), 1, 1, ''
) TanuloErtekelesList
,tempErtekeles1.Honap
,tempErtekeles1.TanuloId
FROM
@TempTanuloErtekeles tempErtekeles1
) AS erdemjegyek
PIVOT (
MAX(TanuloErtekelesList)
FOR Honap
IN ([I], [II], [9] ,[10] ,[11] ,[12] ,[1] ,[2] ,[3] ,[4] ,[5] ,[6], [7])
) AS pivotErtekelesek
) AS result
ORDER BY
result.Nev
IF OBJECT_ID('tempdb..#TempDictionaryItem') IS NOT NULL DROP TABLE #TempDictionaryItem
IF OBJECT_ID('tempdb..#TempTanuloErtekeles') IS NOT NULL DROP TABLE #TempTanuloErtekeles
END
GO

View File

@@ -0,0 +1,141 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloErtekelesDetailDataSet]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
END
GO
-- =============================================
-- Description: <Előszedjük a tanuló értékeléseket részletesen>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesDetailDataSet]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloId INT
,@pTantargyId INT = NULL
,@pShowToroltElemek BIT
,@pIsFotargyAltargyLekerdezes BIT
,@pTanarId INT
,@pErtekelesMegjelenesFajtaEnumTantargyId INT
,@pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId INT
,@pErtekelesMegjelenesFajtaEnumTanuloId INT
,@pErtekelesMegjelenesFajtaId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloErtekeles.ID ID
,TanuloErtekeles.C_DATUM Datum
,TanuloErtekeles.C_TIPUSID TipusId
,TanuloErtekeles.C_TANORAID TanoraId
,TanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
,TanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,TanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
,TanuloErtekeles.C_ERTEKELESSZAZALEK ErtekelesSzazalek
,TanuloErtekeles.C_ERTEKELESMODID ErtekelesModId
,TanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
,TanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
,TanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,TanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
,TanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
,TanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
,TanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,TanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
,TanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
,TanuloErtekeles.C_ISMAGATARTASSZORGALOM IsMagatartasSzorgalom
,TanuloErtekeles.TOROLT Torolt
,TanuloCsoport.C_TANULOID TanuloId
,TanariAtlagSuly.C_SULY Suly
,Felhasznalo.C_NYOMTATASINEV ErtekeloNyomtatasiNev
,CASE
WHEN TanuloErtekeles.C_ERTEKELOID = @pTanarId
THEN 'T'
ELSE 'F'
END Modosithato
FROM (
SELECT DISTINCT
C_TANULOID
FROM
T_TANULOCSOPORT
WHERE
TOROLT = 'F'
AND C_TANULOID = @pTanuloId
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanuloCsoport
INNER JOIN (
SELECT
ID
,C_DATUM
,C_TIPUSID
,C_ERTEKELESOSZTALYZATID
,C_ERTEKELESSZOVEG
,C_ERTEKELESSZOVEGROVIDNEV
,C_ERTEKELESSZAZALEK
,C_ERTEKELESMODID
,C_ERTEKELESTEMA
,C_MAGATARTASOSZTALYZATID
,C_MAGATARTASSZOVEG
,C_MAGATARTASSZOVEGROVIDNEV
,C_MAGATARTASERTEKID
,C_SZORGALOMOSZTALYZATID
,C_SZORGALOMSZOVEG
,C_SZORGALOMSZOVEGROVIDNEV
,C_SZORGALOMERTEKID
,C_ISMAGATARTASSZORGALOM
,C_TANULOID
,C_ERTEKELOID
,C_TANORAID
,TOROLT
,CREATOR
FROM
T_TANULOERTEKELES_OSSZES
WHERE
(@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTantargyId AND C_ISMAGATARTASSZORGALOM = 'F' AND C_TANTARGYID = @pTantargyId OR
@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumMagatartasSzorgalomId AND C_ISMAGATARTASSZORGALOM = 'T' AND C_TANTARGYID IS NULL OR
@pErtekelesMegjelenesFajtaId = @pErtekelesMegjelenesFajtaEnumTanuloId AND C_ISMAGATARTASSZORGALOM = 'F' AND C_TANTARGYID = @pTantargyId)
--Ha a @pShowToroltElemek változó True, akkor a törölt elemeket is visszaadjuk!
AND TOROLT = IIF(@pShowToroltElemek = 1, TOROLT, 'F')
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanuloErtekeles
ON TanuloCsoport.C_TANULOID = TanuloErtekeles.C_TANULOID
INNER JOIN (
SELECT
ID
,C_NYOMTATASINEV
FROM
T_FELHASZNALO
WHERE
TOROLT = 'F'
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS Felhasznalo
ON Felhasznalo.ID = TanuloErtekeles.C_ERTEKELOID
LEFT JOIN (
SELECT
C_SULY
,C_ERTEKELESMODID
FROM
T_TANARIATLAGSULY_OSSZES
WHERE
TOROLT = 'F'
AND C_INTEZMENYID = @pIntezmenyId
AND C_TANEVID = @pTanevId
) AS TanariAtlagSuly ON
TanuloErtekeles.C_ISMAGATARTASSZORGALOM = 'F'
AND TanariAtlagSuly.C_ERTEKELESMODID = TanuloErtekeles.C_ERTEKELESMODID
END
GO

View File

@@ -0,0 +1,57 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloErtekelesMondatbankData]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloErtekelesMondatbankData]
END
GO
-- =============================================
-- Description: <Előszedjük az intézmény értékelés mondatbank adatait a bemenő paraméterek alapján>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesMondatbankData]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloErtekelesTipusId INT = NULL
,@pEvfolyamTipusId INT = NULL
,@pTantargyId INT = NULL
,@pEvfolyamTipusNaId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
TanuloErtekelesMondatbank.ID ID
,TanuloErtekelesMondatbank.C_ROVIDNEV RovidNev
,TanuloErtekelesMondatbank.C_SZOVEG Szoveg
,TanuloErtekelesMondatbank.C_ERTEKELESTIPUSA TanuloErtekelesTipusId
,TanuloErtekelesMondatbank.C_EVFOLYAMTIPUSA EvfolyamTipusId
,Tantargy.C_NEV TantargyNev
FROM
T_ERTEKELESMONDATBANK_OSSZES TanuloErtekelesMondatbank
LEFT JOIN
T_TANTARGY_OSSZES Tantargy ON
Tantargy.ID = TanuloErtekelesMondatbank.C_TANTARGYID
AND Tantargy.C_INTEZMENYID = @pIntezmenyId
AND Tantargy.C_TANEVID = @pTanevId
AND Tantargy.TOROLT = 'F'
WHERE
(@pTanuloErtekelesTipusId IS NULL OR TanuloErtekelesMondatbank.C_ERTEKELESTIPUSA IS NULL OR TanuloErtekelesMondatbank.C_ERTEKELESTIPUSA = @pTanuloErtekelesTipusId)
AND (@pEvfolyamTipusId IS NULL OR @pEvfolyamTipusId = @pEvfolyamTipusNaId OR TanuloErtekelesMondatbank.C_EVFOLYAMTIPUSA IS NULL OR TanuloErtekelesMondatbank.C_EVFOLYAMTIPUSA = @pEvfolyamTipusId)
AND (@pTantargyId IS NULL OR TanuloErtekelesMondatbank.C_TANTARGYID IS NULL OR TanuloErtekelesMondatbank.C_TANTARGYID = @pTantargyId)
AND TanuloErtekelesMondatbank.C_INTEZMENYID = @pIntezmenyId
AND TanuloErtekelesMondatbank.C_TANEVID = @pTanevId
AND TanuloErtekelesMondatbank.TOROLT = 'F'
END
GO

View File

@@ -0,0 +1,46 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanuloErtekelesMondatbankExportData]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanuloErtekelesMondatbankExportData]
END
GO
-- =============================================
-- Description: <Előszedjük az értékelés mondatbank exporthoz az adatokat>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetTanuloErtekelesMondatbankExportData]
@pIntezmenyId INT
,@pTanevId INT
,@pTanuloErtekelesTipusId INT = NULL
,@pEvfolyamTipusId INT = NULL
,@pTantargyId INT = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
T_ERTEKELESMONDATBANK_OSSZES.C_ROVIDNEV RovidNev
,T_ERTEKELESMONDATBANK_OSSZES.C_SZOVEG Szoveg
FROM
T_ERTEKELESMONDATBANK_OSSZES
WHERE
(@pTanuloErtekelesTipusId IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_ERTEKELESTIPUSA IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_ERTEKELESTIPUSA = @pTanuloErtekelesTipusId)
AND (@pEvfolyamTipusId IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_EVFOLYAMTIPUSA IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_EVFOLYAMTIPUSA = @pEvfolyamTipusId)
AND (@pTantargyId IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_TANTARGYID IS NULL OR T_ERTEKELESMONDATBANK_OSSZES.C_TANTARGYID = @pTantargyId)
AND T_ERTEKELESMONDATBANK_OSSZES.C_INTEZMENYID = @pIntezmenyId
AND T_ERTEKELESMONDATBANK_OSSZES.C_TANEVID = @pTanevId
AND T_ERTEKELESMONDATBANK_OSSZES.TOROLT = 'F'
END
GO

View File

@@ -0,0 +1,39 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_HasTantargyFotargyAltargy]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_HasTantargyFotargyAltargy]
END
GO
-- =============================================
-- Description: <Megn<67>zz<7A>k, hogy tant<6E>gyhoz tartozik-e f<>t<EFBFBD>rgy vagy alt<6C>rgy>
-- =============================================
CREATE PROCEDURE [dbo].[sp_HasTantargyFotargyAltargy]
@pFotargyAltargyId INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
IF EXISTS (
SELECT 1
FROM
fnGetKapcsolodoTantargyak(@pFotargyAltargyId)
WHERE
ID <> @pFotargyAltargyId
)
SELECT 1
ELSE
SELECT 0
END
GO

View File

@@ -0,0 +1,101 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_ImportTanuloErtekelesMondatbank]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_ImportTanuloErtekelesMondatbank]
END
GO
-- =============================================
-- Description: <Beimport<72>ljuk a tanul<75> <20>rt<72>kel<65>s mondatbankot>
-- =============================================
CREATE PROCEDURE [dbo].[sp_ImportTanuloErtekelesMondatbank]
@pIntezmenyId INT
,@pTanevId INT
,@pFelhasznaloId INT
,@pImportDataXml XML
,@pTanuloErtekelesTipusId INT = NULL
,@pEvfolyamTipusId INT = NULL
,@pTantargyId INT = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @tempImportData TABLE (
RovidNev NVARCHAR(3) NOT NULL
,Szoveg NVARCHAR(MAX) NULL
)
DECLARE @currentDateTime DATETIME
SET @currentDateTime = (SELECT GETDATE())
-- XML param<61>ter <20>rtelmez<65>se
INSERT INTO
@tempImportData
SELECT
--Egyszer<EFBFBD> import adatok
TanuloErtekelesMondatbankItem.value('(RovidNev)[1]', 'NVARCHAR(3)') RovidNev
,TanuloErtekelesMondatbankItem.value('(Szoveg)[1]', 'NVARCHAR(MAX)') Szoveg
FROM
@pImportDataXml.nodes('/TanuloErtekelesMondatbankImport/TanuloErtekelesMondatbank/TanuloErtekelesMondatbankItem') AS TanuloErtekelesMondatbank(TanuloErtekelesMondatbankItem)
BEGIN TRY
SET XACT_ABORT ON
BEGIN TRANSACTION
INSERT INTO T_ERTEKELESMONDATBANK_OSSZES (
--Egyszer<EFBFBD> import adatok
C_ROVIDNEV
,C_SZOVEG
,C_ERTEKELESTIPUSA
,C_EVFOLYAMTIPUSA
,C_TANTARGYID
--Technikai adatok
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR)
SELECT
--Egyszer<EFBFBD> import adatok
tempTable.RovidNev
,tempTable.Szoveg
,@pTanuloErtekelesTipusId
,@pEvfolyamTipusId
,@pTantargyId
--Technikai adatok
,@pIntezmenyId
,@pTanevId
,'F'
,@currentDateTime
,@currentDateTime
,@pFelhasznaloId
,@pFelhasznaloId
FROM
@tempImportData tempTable
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0
ROLLBACK TRANSACTION;
THROW
END CATCH
END
GO