init
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
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, @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),
|
||||
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
|
||||
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_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'
|
||||
LEFT JOIN T_CSOPORT_OSSZES csoport ON csoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
tanuloErtekeles.Torolt = 'F'
|
||||
AND (@atsoroltTanuloErtekelesek > 0
|
||||
OR (tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
IN(
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId))
|
||||
)
|
||||
)
|
||||
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)
|
||||
)
|
||||
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
C_TANTARGYID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId) 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
|
Reference in New Issue
Block a user