init
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
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)
|
||||
RETURNS @retTanuloErtekeles TABLE
|
||||
(
|
||||
ErtekelesId INT NOT NULL,
|
||||
Datum DATE,
|
||||
TipusId INT,
|
||||
ErtekelesSzoveg NVARCHAR(MAX),
|
||||
ErtekelesSzovegRovidNev NVARCHAR(3),
|
||||
ErtekelesOsztalyzatId INT,
|
||||
ErtekelesOsztalyzatValue INT,
|
||||
ErtekelesOsztalyzatNev NVARCHAR(MAX),
|
||||
ErtekelesSzazalek NVARCHAR(MAX),
|
||||
MagatartasOsztalyzatId INT,
|
||||
MagatartasOsztalyzatValue INT,
|
||||
MagatartasOsztalyzatNev NVARCHAR(MAX),
|
||||
MagatartasSzoveg NVARCHAR(MAX),
|
||||
MagatartasSzovegRovidNev NVARCHAR(3),
|
||||
MagatartasErtekId INT,
|
||||
MagatartasErtek NVARCHAR(MAX),
|
||||
MagatartasErtekOsztalyzatkent INT,
|
||||
SzorgalomOsztalyzatId INT,
|
||||
SzorgalomOsztalyzatValue INT,
|
||||
SzorgalomOsztalyzatNev NVARCHAR(MAX),
|
||||
SzorgalomSzoveg NVARCHAR(MAX),
|
||||
SzorgalomSzovegRovidNev NVARCHAR(3),
|
||||
SzorgalomErtekId INT,
|
||||
SzorgalomErtek NVARCHAR(MAX),
|
||||
SzorgalomErtekOsztalyzatkent INT,
|
||||
TanuloId INT,
|
||||
TanuloCsoportId INT,
|
||||
OsztalyCsoportId INT,
|
||||
TantargyId INT,
|
||||
TantargyNevZarojellel NVARCHAR(MAX),
|
||||
TantargyNevNyomtatvanyban NVARCHAR(MAX),
|
||||
TantargyNev NVARCHAR(MAX),
|
||||
TantargyAngolNev NVARCHAR(MAX),
|
||||
TantargyNemetNev NVARCHAR(MAX),
|
||||
TargyKategoriaId INT,
|
||||
FotargyE CHAR(1),
|
||||
Altantargy CHAR(1),
|
||||
FotargyId INT,
|
||||
ErtekelesTema NVARCHAR(MAX),
|
||||
ErtekeloId INT,
|
||||
ErtekelesModjaId INT,
|
||||
IsMagatartasSzorgalom CHAR(1),
|
||||
Jeloles NVARCHAR(MAX),
|
||||
JelolesAndErtekelesTema NVARCHAR(MAX)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @DefaultFeladatKategoriaId int = (SELECT tev.C_DEFAULTFELADATKATEGORIAID FROM T_TANEV_OSSZES tev WHERE C_AKTIV = 'T' and tev.ID = @tanevId)
|
||||
INSERT INTO @retTanuloErtekeles
|
||||
SELECT DISTINCT
|
||||
tanuloErtekeles.ID,
|
||||
tanuloErtekeles.C_DATUM,
|
||||
tanuloErtekeles.C_TIPUSID,
|
||||
tanuloErtekeles.C_ERTEKELESSZOVEG,
|
||||
tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV,
|
||||
tanuloErtekeles.C_ERTEKELESOSZTALYZATID,
|
||||
ertekelesOsztalyzat.C_VALUE,
|
||||
ertekelesOsztalyzat.C_NAME,
|
||||
IIF(tanuloErtekeles.C_ERTEKELESSZAZALEK IS NOT NULL, CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%', NULL),
|
||||
tanuloErtekeles.C_MAGATARTASOSZTALYZATID,
|
||||
magatartasOsztalyzat.C_VALUE,
|
||||
magatartasOsztalyzat.C_NAME,
|
||||
tanuloErtekeles.C_MAGATARTASSZOVEG,
|
||||
tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV,
|
||||
tanuloErtekeles.C_MAGATARTASERTEKID,
|
||||
magatartasErtek.C_NAME,
|
||||
magatartasErtek.C_VALUE + 1,
|
||||
tanuloErtekeles.C_SZORGALOMOSZTALYZATID,
|
||||
szorgalomOsztalyzat.C_VALUE,
|
||||
szorgalomOsztalyzat.C_NAME,
|
||||
tanuloErtekeles.C_SZORGALOMSZOVEG,
|
||||
tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV,
|
||||
tanuloErtekeles.C_SZORGALOMERTEKID,
|
||||
szorgalomErtek.C_NAME,
|
||||
szorgalomErtek.C_VALUE + 1,
|
||||
tanuloErtekeles.C_TANULOID,
|
||||
TanuloCsoportId,
|
||||
tanuloErtekeles.C_OSZTALYCSOPORTID,
|
||||
tanuloErtekeles.C_TANTARGYID,
|
||||
IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN +' ('+tantargy.C_NEV+')', tantargy.C_NEV),
|
||||
tantargy.C_NEVNYOMTATVANYBAN,
|
||||
tantargy.C_NEV,
|
||||
tantargy.C_ANGOLNEV,
|
||||
tantargy.C_NEMETNEV,
|
||||
tantargy.C_TARGYKATEGORIA,
|
||||
tantargy.C_FOTARGYE,
|
||||
tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN,
|
||||
tantargy.C_FOTARGYID,
|
||||
tanuloErtekeles.C_ERTEKELESTEMA,
|
||||
tanuloErtekeles.C_ERTEKELOID,
|
||||
tanuloErtekeles.C_ERTEKELESMODID,
|
||||
tanuloErtekeles.C_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>',
|
||||
''),
|
||||
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,
|
||||
'')
|
||||
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') tanulo ON tanulo.TanuloId = tanuloErtekeles.C_TANULOID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
AND tanuloErtekeles.C_DATUM BETWEEN TanuloCsoport.C_BELEPESDATUM AND ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
|
||||
AND TanuloCsoport.TOROLT = 'F'
|
||||
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'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
AND osztalyCsoport.TOROLT = 'F'and osztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
LEFT JOIN T_CSOPORT_OSSZES csoport ON csoport.ID = osztalyCsoport.ID
|
||||
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = osztalyCsoport.ID
|
||||
WHERE
|
||||
tanuloErtekeles.C_TANEVID = @tanevId
|
||||
AND tanuloErtekeles.TOROLT = 'F'
|
||||
AND (@atsoroltTanuloErtekelesek > 0
|
||||
OR (tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
IN(
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0))
|
||||
)
|
||||
)
|
||||
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
|
||||
(csoport.ID IS NOT NULL AND csoport.C_TIPUSA
|
||||
IN(
|
||||
SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)
|
||||
)
|
||||
)
|
||||
)
|
||||
AND BelepesDatum <= tanuloErtekeles.C_DATUM
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= tanuloErtekeles.C_DATUM)
|
||||
|
||||
option (recompile);
|
||||
|
||||
IF @atsoroltTanuloErtekelesek = 1
|
||||
BEGIN
|
||||
DECLARE @osztalyTantargyak TABLE
|
||||
(
|
||||
TantargyId INT
|
||||
);
|
||||
|
||||
INSERT INTO @osztalyTantargyak
|
||||
SELECT DISTINCT
|
||||
TantargyId
|
||||
FROM
|
||||
@retTanuloErtekeles
|
||||
WHERE
|
||||
OsztalyCsoportId IN
|
||||
(
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0)
|
||||
)
|
||||
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
C_TANTARGYID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0) AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
|
||||
|
||||
DELETE FROM @retTanuloErtekeles
|
||||
WHERE
|
||||
ErtekelesId NOT IN
|
||||
(
|
||||
SELECT
|
||||
ErtekelesId
|
||||
FROM
|
||||
@retTanuloErtekeles
|
||||
WHERE
|
||||
TantargyId IS NULL
|
||||
OR TantargyId IN
|
||||
(
|
||||
SELECT
|
||||
TantargyId
|
||||
FROM @osztalyTantargyak
|
||||
)
|
||||
)
|
||||
END
|
||||
RETURN
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,130 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetBukasraAlloTanulok
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetBukasraAlloTanulok
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pOsztalyCsoportIdXML XML = NULL
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @ocsId int
|
||||
|
||||
DECLARE @OsztalyCsoport TABLE(Id int)
|
||||
|
||||
IF @pOsztalyCsoportIdXML IS NOT NULL
|
||||
BEGIN
|
||||
DECLARE @ValasztottOsztalyok TABLE(Id int)
|
||||
INSERT INTO @ValasztottOsztalyok(Id)
|
||||
SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
|
||||
|
||||
INSERT INTO @OsztalyCsoport
|
||||
SELECT Id
|
||||
FROM @ValasztottOsztalyok
|
||||
END
|
||||
ELSE BEGIN
|
||||
INSERT INTO @OsztalyCsoport
|
||||
SELECT osztalyok.OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
|
||||
END
|
||||
|
||||
DECLARE ocsCur CURSOR FOR
|
||||
SELECT Id FROM @OsztalyCsoport
|
||||
|
||||
CREATE TABLE #ErtekelesTemp
|
||||
(
|
||||
[OMKod] NVARCHAR(MAX)
|
||||
,[SzulHelyIdoAnyjaNeve] NVARCHAR(MAX)
|
||||
,[TanuloNev] NVARCHAR(MAX)
|
||||
,[OsztalyCsoportNev] NVARCHAR(MAX)
|
||||
,[TantargyNev] NVARCHAR(MAX)
|
||||
,[Atlag] DECIMAL(10,2)
|
||||
,[TanarNeve] NVARCHAR(MAX)
|
||||
)
|
||||
CREATE TABLE #CsoportNevek (OsztalyCsoportNeve nvarchar(200))
|
||||
|
||||
OPEN ocsCur
|
||||
FETCH NEXT FROM ocsCur INTO @ocsId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
TRUNCATE TABLE #ErtekelesTemp
|
||||
INSERT INTO #ErtekelesTemp
|
||||
(
|
||||
[OMKod]
|
||||
,[SzulHelyIdoAnyjaNeve]
|
||||
,[TanuloNev]
|
||||
,[OsztalyCsoportNev]
|
||||
,[TantargyNev]
|
||||
,[Atlag]
|
||||
,[TanarNeve]
|
||||
)
|
||||
SELECT
|
||||
tanulo.C_OKTATASIAZONOSITO AS OMKod
|
||||
,tanulo.C_SZULETESIHELY + ', ' + CAST(FORMAT(tanulo.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS nvarchar(200)) + ', '+ tanulo.C_ANYJANEVE AS SzulHelyIdoAnyjaNeve
|
||||
,tanulo.C_NYOMTATASINEV AS TanuloNev
|
||||
,osztalyCsoport.C_NEV AS OsztalyCsoportNev
|
||||
,ertekeles.TantargyNev AS TantargyNev
|
||||
,ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) AS Atlag
|
||||
,tanar.C_NYOMTATASINEV AS TanarNeve
|
||||
FROM
|
||||
[fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, DEFAULT, DEFAULT, 1, DEFAULT) ertekeles
|
||||
INNER JOIN T_TANARIATLAGSULY tanariAtlagSuly ON
|
||||
tanariAtlagSuly.C_TANEVID = @pTanevId
|
||||
AND tanariAtlagSuly.TOROLT = 'F'
|
||||
AND tanariAtlagSuly.C_ERTEKELESMODID = ertekeles.ErtekelesModjaId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
|
||||
osztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND osztalyCsoport.TOROLT = 'F'
|
||||
AND osztalyCsoport.ID = ertekeles.OsztalyCsoportId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON
|
||||
tanulo.C_TANEVID = @pTanevId
|
||||
AND tanulo.TOROLT = 'F'
|
||||
AND tanulo.ID = ertekeles.TanuloId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanar ON
|
||||
tanar.C_TANEVID = @pTanevId
|
||||
AND tanar.TOROLT = 'F'
|
||||
AND tanar.ID = ertekeles.ErtekeloId
|
||||
WHERE
|
||||
ertekeles.ErtekelesOsztalyzatValue IS NOT NULL
|
||||
GROUP BY
|
||||
tanulo.C_OKTATASIAZONOSITO
|
||||
,tanulo.C_SZULETESIHELY
|
||||
,tanulo.C_SZULETESIDATUM
|
||||
,tanulo.C_ANYJANEVE
|
||||
,tanulo.C_NYOMTATASINEV
|
||||
,osztalyCsoport.C_NEV
|
||||
,ertekeles.TantargyNev
|
||||
,tanar.C_NYOMTATASINEV
|
||||
HAVING
|
||||
ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) < 2
|
||||
|
||||
IF EXISTS(SELECT 1 FROM #ErtekelesTemp)
|
||||
BEGIN
|
||||
SELECT
|
||||
tmp.OMKod
|
||||
,tmp.SzulHelyIdoAnyjaNeve
|
||||
,tmp.TanuloNev
|
||||
,tmp.OsztalyCsoportNev
|
||||
,tmp.TantargyNev
|
||||
,tmp.Atlag
|
||||
,tmp.TanarNeve
|
||||
FROM #ErtekelesTemp tmp ORDER BY [TanuloNev],[TantargyNev]
|
||||
|
||||
INSERT INTO #CsoportNevek (OsztalyCsoportNeve)
|
||||
SELECT top 1 [OsztalyCsoportNev] FROM #ErtekelesTemp
|
||||
END
|
||||
|
||||
FETCH NEXT FROM ocsCur INTO @ocsId
|
||||
END
|
||||
|
||||
CLOSE ocsCur
|
||||
DEALLOCATE ocsCur
|
||||
|
||||
SELECT * FROM #CsoportNevek
|
||||
|
||||
DROP TABLE #ErtekelesTemp
|
||||
DROP TABLE #CsoportNevek
|
||||
|
||||
END
|
||||
GO
|
Reference in New Issue
Block a user