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,40 @@
--<EFBFBD>gazat, szakk<EFBFBD>pes<EFBFBD>t<EFBFBD>se....
UPDATE T_TANULOCSOPORT_OSSZES
SET
T_TANULOCSOPORT_OSSZES.C_AGAZAT = T_TANULO_OSSZES.C_AGAZAT
,T_TANULOCSOPORT_OSSZES.C_SZAKKEPESITES = T_TANULO_OSSZES.C_SZAKKEPESITES
,T_TANULOCSOPORT_OSSZES.C_RESZSZAKKEPESITES = T_TANULO_OSSZES.C_RESZSZAKKEPESITES
,T_TANULOCSOPORT_OSSZES.C_SZAKMACSOPORT = T_TANULO_OSSZES.C_SZAKMACSOPORT
FROM T_TANULO_OSSZES
WHERE
T_TANULOCSOPORT_OSSZES.C_TANULOID = T_TANULO_OSSZES.ID
AND T_TANULOCSOPORT_OSSZES.C_TANEVID = T_TANULO_OSSZES.C_ALTANEVID
AND EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID)
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_TANULO_OSSZES.TOROLT = 'F'
--t<EFBFBD>rzslapsz<EFBFBD>m....
UPDATE T_TANULOCSOPORT_OSSZES
SET
T_TANULOCSOPORT_OSSZES.C_TORZSLAPSZAM = T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM
FROM T_FELHASZNALO_OSSZES
WHERE
T_TANULOCSOPORT_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID
AND T_TANULOCSOPORT_OSSZES.C_TANEVID = T_FELHASZNALO_OSSZES.C_TANEVID
AND EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID)
AND T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM IS NOT NULL
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_FELHASZNALO_OSSZES.TOROLT = 'F'
--napl<EFBFBD>sorsz<EFBFBD>m....
UPDATE T_TANULOCSOPORT_OSSZES
SET
T_TANULOCSOPORT_OSSZES.C_NAPLOSORSZAM = T_TANULO_OSSZES.C_NAPLOSORSZAM
FROM T_TANULO_OSSZES
WHERE
T_TANULOCSOPORT_OSSZES.C_TANULOID = T_TANULO_OSSZES.ID
AND T_TANULOCSOPORT_OSSZES.C_TANEVID = T_TANULO_OSSZES.C_ALTANEVID
AND EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID)
AND T_TANULO_OSSZES.C_NAPLOSORSZAM IS NOT NULL
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_TANULO_OSSZES.TOROLT = 'F'

View File

@@ -0,0 +1,121 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent
END
GO
CREATE FUNCTION fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@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,
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
ErtekelesId,
Datum,
TipusId,
ErtekelesSzoveg,
ErtekelesSzovegRovidNev,
ErtekelesOsztalyzatId,
ErtekelesOsztalyzatValue,
ErtekelesOsztalyzatNev,
ErtekelesSzazalek,
MagatartasOsztalyzatId,
MagatartasOsztalyzatValue,
MagatartasOsztalyzatNev,
MagatartasSzoveg,
MagatartasSzovegRovidNev,
MagatartasErtekId,
MagatartasErtek,
MagatartasErtekOsztalyzatkent,
SzorgalomOsztalyzatId,
SzorgalomOsztalyzatValue,
SzorgalomOsztalyzatNev,
SzorgalomSzoveg,
SzorgalomSzovegRovidNev,
SzorgalomErtekId,
SzorgalomErtek,
SzorgalomErtekOsztalyzatkent,
TanuloId,
OsztalyCsoportId,
TantargyId,
TantargyNevZarojellel,
TantargyNevNyomtatvanyban,
TantargyNev,
TargyKategoriaId,
FotargyE,
Altantargy,
FotargyId,
ErtekelesTema,
ErtekeloId,
ErtekelesModjaId,
IsMagatartasSzorgalom,
Jeloles,
JelolesAndErtekelesTema
FROM fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, @ertekelesTipusa, 0, @csakKivlasztottOsztalyCsoport, @atsoroltTanuloErtekelesek) ErtekelesekTable
INNER JOIN T_CSOPORT_OSSZES CsoportTable ON ErtekelesekTable.OsztalyCsoportId = CsoportTable.Id
WHERE
C_TIPUSA IN
(
1067 --Alapf. müv. okt. zeneművészeti csoport - egyéni főtanszak
,1068 --Alapf. müv. okt. zeneművészeti csoport - csoportos főtanszak
,1069 --Alapf. müv. okt. képző- és iparművészeti csoport
,1070 --Alapf. müv. okt. táncművészeti csoport
,1071 --Alapf. müv. okt. szín- és bábművészeti csoport
,6756 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelezően választható
,6757 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelezően választható
,6758 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelező
,6759 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelező
,6760 --Alapf. műv. okt. zeneművészeti csoport - csoportos választható
,6761 --Alapf. műv. okt. zeneművészeti csoport - egyéni választható
)
RETURN
END
GO

View File

@@ -0,0 +1,187 @@
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 ErtekelesId
,tanuloErtekeles.C_DATUM Datum
,tanuloErtekeles.C_TIPUSID TipusId
,tanuloErtekeles.C_ERTEKELESSZOVEG ErtekelesSzoveg
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV ErtekelesSzovegRovidNev
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID ErtekelesOsztalyzatId
,ertekelesOsztalyzat.C_VALUE ErtekelesOsztalyzatValue
,ertekelesOsztalyzat.C_NAME ErtekelesOsztalyzatNev
,IIF(tanuloErtekeles.C_ERTEKELESSZAZALEK IS NOT NULL --
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK) + '%' --
,NULL) ErtekelesSzazalek
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID MagatartasOsztalyzatId
,magatartasOsztalyzat.C_VALUE MagatartasOsztalyzatValue
,magatartasOsztalyzat.C_NAME MagatartasOsztalyzatNev
,tanuloErtekeles.C_MAGATARTASSZOVEG MagatartasSzoveg
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV MagatartasSzovegRovidNev
,tanuloErtekeles.C_MAGATARTASERTEKID MagatartasErtekId
,magatartasErtek.C_NAME MagatartasErtek
,magatartasErtek.C_VALUE + 1 MagatartasErtekOsztalyzatkent
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID SzorgalomOsztalyzatId
,szorgalomOsztalyzat.C_VALUE SzorgalomOsztalyzatValue
,szorgalomOsztalyzat.C_NAME SzorgalomOsztalyzatNev
,tanuloErtekeles.C_SZORGALOMSZOVEG SzorgalomSzoveg
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV SzorgalomSzovegRovidNev
,tanuloErtekeles.C_SZORGALOMERTEKID SzorgalomErtekId
,szorgalomErtek.C_NAME SzorgalomErtek
,szorgalomErtek.C_VALUE + 1 SzorgalomErtekOsztalyzatkent
,tanuloErtekeles.C_TANULOID TanuloId
,TanuloCsoportId
,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) TantargyNevZarojellel
,tantargy.C_NEVNYOMTATVANYBAN TantargyNevNyomtatvanyban
,tantargy.C_NEV TantargyNev
,tantargy.C_TARGYKATEGORIA TargyKategoriaId
,tantargy.C_FOTARGYE FotargyE
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN Altantargy
,tantargy.C_FOTARGYID FotargyId
,tanuloErtekeles.C_ERTEKELESTEMA ErtekelesTema
,tanuloErtekeles.C_ERTEKELOID ErtekeloId
,tanuloErtekeles.C_ERTEKELESMODID ErtekelesModjaId
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM 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>', ''
) 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, @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 BelepesDatum <= tanuloErtekeles.C_DATUM
AND (KilepesDatum IS NULL OR KilepesDatum >= tanuloErtekeles.C_DATUM)
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))))
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

View File

@@ -0,0 +1,12 @@
IF OBJECT_ID('fnGetDokumentumKozossegiSzolgalatOsztalyonkent') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumKozossegiSzolgalatOsztalyonkent
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (

View File

@@ -0,0 +1,55 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('fnGetDokumentumMulasztasokOsztalyonkentReszletes') IS NOT NULL
BEGIN
DROP FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes
END
GO
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (@tanevId INT, @osztalyCsoportId INT, @iskolaErdekuSzamit BIT, @csakKivlasztottOsztalyCsoport BIT = 0, @atsoroltTanuloMulasztas BIT = 1, @idoszakEleje DATE = NULL, @idoszakVege DATE = NULL)
RETURNS TABLE
RETURN (
SELECT
C_ORATANULOIID TanuloId
,TanuloCsoportId
,TanitasiOra.C_OSZTALYCSOPORTID OsztalyCsoportId
,OsztalyCsoport.C_NEV OsztalyCsoportNev
,C_TIPUS Tipusa
,C_IGAZOLT Igazolt
,C_IGAZOLASTIPUSA IgazolasTipusa
,C_KESESPERCBEN KesesPercben
,C_DATUM Datum
,IIF(C_CSENGETESIRENDORAID IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), C_ORAKEZDETE, 108), @tanevId), TanitasiOra.C_ORASZAM) Oraszam
,C_TANTARGYID TantargyId
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) TantargyNev
,NaptariHetek.C_HETSORSZAMA HetSorszama
,C_GYAKORLATI Gyakorlati
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON
TanuloCsoport.C_TANULOID = TanuloMulasztas.C_ORATANULOIID
AND TanuloCsoport.C_OSZTALYCSOPORTID = TanitasiOra.C_OSZTALYCSOPORTID
AND TanuloCsoport.TOROLT = 'F'
AND TanitasiOra.C_DATUM BETWEEN TanuloCsoport.C_BELEPESDATUM AND ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
INNER JOIN T_TANTARGY_OSSZES t on t.ID = TanitasiOra.C_TANTARGYID
INNER JOIN T_NAPTARIHET_OSSZES NaptariHetek ON TanitasiOra.C_DATUM BETWEEN NaptariHetek.C_HETKEZDONAPJA AND NaptariHetek.C_HETUTOLSONAPJA
WHERE
TanuloMulasztas.C_TIPUS IN (1499, 1500)
AND TANULO.BelepesDatum <= TanitasiOra.C_DATUM
AND (TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= TanitasiOra.C_DATUM)
AND TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
AND TanuloMulasztas.TOROLT = 'F'
AND NaptariHetek.C_TANEVID = @tanevId
AND (@atsoroltTanuloMulasztas = 1 OR (TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId))))
AND (@csakKivlasztottOsztalyCsoport = 0 OR TanitasiOra.C_OSZTALYCSOPORTID = @osztalyCsoportId)
AND (@idoszakEleje IS NULL OR C_DATUM >= @idoszakEleje)
AND (@idoszakVege IS NULL OR C_DATUM <= @idoszakVege)
)
GO

View File

@@ -0,0 +1,33 @@
IF OBJECT_ID('fnGetDokumentumOsztalyokCsoportokTanuloi') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumOsztalyokCsoportokTanuloi
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumOsztalyokCsoportokTanuloi (@tanevId INT, @osztalyId INT, @isKilepettTanulokMegjelenjenek NVARCHAR(1))
RETURNS TABLE
RETURN (
SELECT DISTINCT
C_TANULOID TanuloId
,tanuloCsoport.ID TanuloCsoportId
,tanuloCsoport.C_BELEPESDATUM BelepesDatum
,tanuloCsoport.C_KILEPESDATUM KilepesDatum
,C_AGAZAT AgazatId
,C_SZAKKEPESITES SzakkepesitesId
,C_RESZSZAKKEPESITES ReszSzakkepeitesId
,C_SZAKMACSOPORT SzakmaCsoportId
,C_NAPLOSORSZAM NaploSorszam
,C_TORZSLAPSZAM Torzslapszam
FROM T_TANULOCSOPORT_OSSZES tanuloCsoport
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
osztalyCsoport.ID = tanuloCsoport.C_OSZTALYCSOPORTID
AND osztalyCsoport.TOROLT = 'F'
WHERE
tanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND tanuloCsoport.C_TANEVID = @tanevId
AND tanuloCsoport.TOROLT = 'F'
)

View File

@@ -0,0 +1,37 @@
IF OBJECT_ID('fnGetDokumentumTanuloMentessegei') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanuloMentessegei
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanuloMentessegei (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,mentesseg.mentessegOka MentessegOka
,mentesseg.tantargyNev + ' ' + ISNULL(IIF(mentesseg = '', '', '(' + LEFT(mentesseg, LEN(mentesseg)- 1) + ')'),' ') TantargyNev
,C_KEZDETE Kezdete
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
INNER JOIN (SELECT DISTINCT
mentesseg.C_TANULOID tanuloId
,s.TanuloCsoportId
,IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) tantargyNev
,mentesseg.C_MENTESSEGOKA + ' ' + ISNULL('(' + FORMAT(C_KEZDETE, 'yyyy.MM.dd.') + ' - ' + FORMAT(C_VEGE, 'yyyy.MM.dd.') + ')', '' ) mentessegOka
,IIF(mentesseg.C_ERTEKELESMENTESITES = 'T', 'Értékelésmentesség, ', '') + IIF(mentesseg.C_ORAMENTESITES = 'T', 'Óramentesség, ', '') as mentesseg
,mentesseg.C_KEZDETE
FROM T_TANULOMENTESSEG_OSSZES mentesseg
INNER JOIN T_TANTARGY_OSSZES t on t.ID = mentesseg.C_TANTARGYID
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s ON s.TanuloId = mentesseg.C_TANULOID
WHERE
mentesseg.TOROLT='F'
AND BelepesDatum <= C_KEZDETE
AND (KilepesDatum IS NULL OR KilepesDatum >= C_VEGE)
) mentesseg ON OsztalyTanuloi.TanuloId = mentesseg.TANULOID AND OsztalyTanuloi.TanuloCsoportId = mentesseg.TanuloCsoportId
)

View File

@@ -0,0 +1,35 @@
IF OBJECT_ID('fnGetDokumentumTanuloZaradekai') IS NOT NULL BEGIN
DROP FUNCTION fnGetDokumentumTanuloZaradekai
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION fnGetDokumentumTanuloZaradekai (@tanevId INT, @osztalyId INT)
RETURNS TABLE
RETURN (
SELECT DISTINCT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,tcs.C_ZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi ON OsztalyTanuloi.TanuloId = tcs.C_TANULOID AND OsztalyTanuloi.TanuloCsoportId = tcs.ID
WHERE
C_ZARADEK IS NOT NULL
AND LEN(C_ZARADEK) > 0
UNION
SELECT DISTINCT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,tcs.C_VEGZARADEK Bejegyzes
FROM T_TANULOCSOPORT_OSSZES tcs
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi ON OsztalyTanuloi.TanuloId = tcs.C_TANULOID AND OsztalyTanuloi.TanuloCsoportId = tcs.ID
WHERE
C_VEGZARADEK IS NOT NULL
AND LEN(C_VEGZARADEK) > 0
)

View File

@@ -0,0 +1,290 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.[sp_GetDokumentumErtekelesek]') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.[sp_GetDokumentumErtekelesek]
END
GO
CREATE PROCEDURE dbo.[sp_GetDokumentumErtekelesek]
@osztalyId INT,
@tanevId INT,
@ertekelesTipus INT,
@isBizonyitvany INT = 0,
@isNemet BIT = 0,
@isMuveszetOktatasi BIT = 0
AS
BEGIN
SET NOCOUNT ON;
--Osztályhoz tartozó tanulók
DECLARE @TANULO TABLE (TanuloId INT, TanuloCsoportId INT, BelepesDatum DATE, KilepesDatum DATE)
INSERT INTO @TANULO
SELECT
TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
--Osztályhoz tartozó értékelések
CREATE TABLE #ErtekelesekTemp
(
ErtekelesId INT primary key 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,
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)
)
IF (@isMuveszetOktatasi = 0)
BEGIN
INSERT INTO #ErtekelesekTemp
SELECT
ErtekelesId
,Datum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatValue
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,MagatartasErtekOsztalyzatkent
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatValue
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegRovidNev
,SzorgalomErtekId
,SzorgalomErtek
,SzorgalomErtekOsztalyzatkent
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNevNyomtatvanyban
,TantargyNev
,TargyKategoriaId
,FotargyE
,Altantargy
,FotargyId
,ErtekelesTema
,ErtekeloId
,ErtekelesModjaId
,IsMagatartasSzorgalom
,Jeloles
,JelolesAndErtekelesTema
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
END
ELSE
BEGIN
INSERT INTO #ErtekelesekTemp
SELECT
ErtekelesId
,Datum
,TipusId
,ErtekelesSzoveg
,ErtekelesSzovegRovidNev
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatValue
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasSzovegRovidNev
,MagatartasErtekId
,MagatartasErtek
,MagatartasErtekOsztalyzatkent
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatValue
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomSzovegRovidNev
,SzorgalomErtekId
,SzorgalomErtek
,SzorgalomErtekOsztalyzatkent
,TanuloId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNevNyomtatvanyban
,TantargyNev
,TargyKategoriaId
,FotargyE
,Altantargy
,FotargyId
,ErtekelesTema
,ErtekeloId
,ErtekelesModjaId
,IsMagatartasSzorgalom
,Jeloles
,JelolesAndErtekelesTema
FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2)
END
--Tanulóhoz kapcsolódó óraszámok
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
INSERT INTO @Oraszamok
SELECT * FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevId, @osztalyId)
--Értékelések
CREATE TABLE #temp
(
TANULOID INT
,TANULOCSOPORTID INT
,TARGY NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesValue INT
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam INT
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(MAX)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(MAX)
)
INSERT INTO #temp
SELECT
ErtekelesTemp.TanuloId TANULOID
,TanuloTable.TanuloCsoportId TanuloCsoportId
,IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
,NULL
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))))
,NULL
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, MagatartasErtek, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId))), ISNULL(MagatartasSzoveg, IIF(@isNemet = 0, MagatartasOsztalyzatNev, dbo.fnGetDokumentumNemet(MagatartasOsztalyzatId)))) ErtekelesJegyzettel
,NULL Oraszam
,-1 RENDEZ1
,'aaa' RENDEZ2
,-1 RENDEZ3
,-1 RENDEZ4
,'aaa' RENDEZ5
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
WHERE
(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND (MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL OR MagatartasOsztalyzatNev IS NOT NULL)
AND TipusId = @ertekelesTipus --????
INSERT INTO #TEMP
SELECT
ErtekelesTemp.TanuloId TANULOID
,TanuloTable.TanuloCsoportId TanuloCsoportId
,IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
,NULL
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))))
,NULL
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, SzorgalomErtek, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId))), ISNULL(SzorgalomSzoveg, IIF(@isNemet = 0, SzorgalomOsztalyzatNev, dbo.fnGetDokumentumNemet(SzorgalomOsztalyzatId)))) ErtekelesJegyzettel
,NULL Oraszam
,0 RENDEZ1
,'aab' RENDEZ2
,0 RENDEZ3
,0 RENDEZ4
,'aab' RENDEZ5
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
WHERE
(KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND (SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL OR SzorgalomOsztalyzatNev IS NOT NULL)
AND TipusId = @ertekelesTipus --????
INSERT INTO #TEMP
SELECT
ErtekelesTemp.TanuloId TANULOID
,TanuloTable.TanuloCsoportId TanuloCsoportId
,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev) TARGY
,ErtekelesTemp.ErtekelesTema
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)))
,ErtekelesTemp.ErtekelesOsztalyzatValue
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, dbo.fnGetDokumentumNemet(ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) ErtekelesJegyzettel
,Oraszam Oraszam
,CASE WHEN ErtekelesTemp.FotargyId IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
,ISNULL(ISNULL(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV), ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
,ISNULL(ErtekelesTemp.FotargyId, ErtekelesTemp.TantargyId)
,ErtekelesTemp.FotargyId
,ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
FROM #ErtekelesekTemp ErtekelesTemp
INNER JOIN @TANULO TanuloTable ON TanuloTable.TanuloId = ErtekelesTemp.TanuloId
LEFT JOIN @Oraszamok OraszamTable ON OraszamTable.Tantargy = ErtekelesTemp.TantargyId AND OraszamTable.TanuloId = ErtekelesTemp.TanuloId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = ErtekelesTemp.TargyKategoriaId AND TargyKategoriaDictionary.TOROLT = 'F' AND TargyKategoriaDictionary.C_TANEVID = @tanevId
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON Ertekelestemp.FotargyId = FotargyTable.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
WHERE
ErtekelesTemp.TipusId = @ertekelesTipus
AND (ErtekelesTemp.FotargyE = 'T' OR ErtekelesTemp.Altantargy = 'T')
AND (KilepesDatum IS NULL OR KilepesDatum >= ErtekelesTemp.Datum)
AND ErtekelesTemp.TargyKategoriaId <> 1248
AND ErtekelesTemp.isMagatartasSzorgalom = 'F'
SELECT
TANULOID
,TanuloCsoportId
,TARGY
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
FROM #temp
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
END
GO

View File

@@ -0,0 +1,373 @@
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 * 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
SELECT * 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)'
END AS Ertekeles
,TargyKategoriaId Rendez
FROM #ErtekelesekTemp
WHERE
isMagatartasSzorgalom = 'F'
AND (ErtekelesOsztalyzatValue IS NOT NULL OR ErtekelesSzazalek IS NOT NULL)
AND TipusId IN (1518, 1522, 1523, 1524, 1525, 1521, 1526, 1527, 1528, 6916, 6917, 6918)
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
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, t.c_nev 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
drop table #magatartasSzorgalomTMP
drop table #magatartasSzorgalom
drop table #jegyekTMP
END
GO

View File

@@ -0,0 +1,314 @@

IF OBJECT_ID('sp_GetDokumentumMulasztasok') IS NOT NULL BEGIN
DROP PROCEDURE sp_GetDokumentumMulasztasok
END
GO
-- ===========================================================================
-- Description: Dokumentumokban használt mulasztás összesítő osztály alapján
-- ===========================================================================
CREATE PROCEDURE sp_GetDokumentumMulasztasok
@osztalyId INT
,@tanevId INT
,@elmeletGyakorlat BIT = 0
,@kesesTipus INT = 1499
,@elmeletiOraPercben INT = 45
,@gyakorlatiOraPercben INT = 45
,@ertekelesTipus INT
,@iskolaErdekuSzamit BIT
,@isMuveszetOktatasi BIT = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Tanulok TABLE (TanuloId INT, TanuloCsoportId INT, BelepesDatum DATE, KilepesDatum DATE)
INSERT INTO @Tanulok
SELECT
TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
DECLARE @Idoszak INT
DECLARE @IdoszakElsoNap INT
DECLARE @IdoszakKezdete DATE
DECLARE @IdoszakVege DATE
SET @Idoszak =
CASE @ertekelesTipus
WHEN 1519 THEN 1400 --félévi
WHEN 1520 THEN 1395 --év végi
WHEN 1522 THEN 1403 --I. negyedévi
WHEN 1524 THEN 1400 --II. negyedévi
WHEN 1523 THEN 1404 --III. negyedévi
END
SET @IdoszakElsoNap =
CASE @ertekelesTipus
WHEN 1519 THEN 1394 --félévi
WHEN 1520 THEN 1394 --év végi
WHEN 1522 THEN 1394 --I. negyedévi
WHEN 1524 THEN 1403 --II. negyedévi
WHEN 1523 THEN 1400 --III. negyedévi
END
DECLARE @SzurtCsoportTipusok TABLE (CsoportTipusId INT)
IF (@isMuveszetOktatasi = 0)
BEGIN
INSERT INTO @SzurtCsoportTipusok
SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)
END
ELSE
BEGIN
INSERT INTO @SzurtCsoportTipusok
SELECT Id FROM T_CSOPORTTIPUS_OSSZES
WHERE
C_ALTANEVID = @tanevId
AND TOROLT = 'F'
AND Id IN
(
1067 --Alapf. müv. okt. zeneművészeti csoport - egyéni főtanszak
,1068 --Alapf. müv. okt. zeneművészeti csoport - csoportos főtanszak
,1069 --Alapf. müv. okt. képző- és iparművészeti csoport
,1070 --Alapf. müv. okt. táncművészeti csoport
,1071 --Alapf. müv. okt. szín- és bábművészeti csoport
,6756 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelezően választható
,6757 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelezően választható
,6758 --Alapf. műv. okt. zeneművészeti csoport - csoportos kötelező
,6759 --Alapf. műv. okt. zeneművészeti csoport - egyéni kötelező
,6760 --Alapf. műv. okt. zeneművészeti csoport - csoportos választható
,6761 --Alapf. műv. okt. zeneművészeti csoport - egyéni választható
)
END
SET @IdoszakKezdete = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = @IdoszakElsoNap AND C_TANEVID = @tanevId AND TOROLT='F')
SET @IdoszakVege = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = @Idoszak AND C_TANEVID = @tanevId AND TOROLT='F')
SELECT
t.TANULOID tanuloid
,t.TanuloCsoportId tanulocsoportid
,m.Igazolt
,m.Igazolatlan
,m.ElmeletIgazolt
,m.ElmeletIgazolatlan
,m.GyakorlatiIgazolt
,m.GyakorlatiIgazolatlan
,m.ElmeletOsszes
,m.GyakorlatOsszes
,m.Osszes
FROM @Tanulok t
LEFT JOIN (
SELECT DISTINCT
m.tanuloId
,m.tanulocsoportid
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) Igazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Igazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) ElmeletIgazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletIgazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) GyakorlatiIgazolt
,ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatiIgazolatlan
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletOsszes
,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatOsszes
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)
+ ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Osszes
FROM (
SELECT
tanuloId, tanulocsoportid,
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
FROM (
SELECT
x.tanuloId, x.tanulocsoportid
,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END +
CASE isGyakorlati WHEN 'T' THEN 'Gyakorlati' WHEN 'F' THEN 'Elmeleti' END
AS piv
,cnt
FROM (
SELECT
m.C_ORATANULOIID AS tanuloId
,tanulok.TanuloCsoportId
,m.C_TIPUS mulasztasTipus
,m.C_IGAZOLT isIgazolt
,IIF((@isMuveszetOktatasi = 0 AND cs.ID IS NULL), 'T', IIF((@isMuveszetOktatasi = 1 AND csmuv.ID IS NOT NULL),'T','F')) AS isTanorai
,IIF(t.C_GYAKORLATI='T', 'T', 'F') as isGyakorlati
,COUNT(1) AS cnt
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
LEFT JOIN T_CSOPORT_OSSZES csmuv ON tn.C_OSZTALYCSOPORTID = csmuv.ID AND csmuv.C_TIPUSA IN (SELECT CsoportTipusId FROM @SzurtCsoportTipusok)
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
WHERE
tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
AND m.C_TANEVID = @tanevId
AND m.Torolt ='F'
AND tn.Torolt ='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
AND tanulok.BelepesDatum <= tn.C_DATUM
AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum > tn.C_DATUM)
AND m.C_TIPUS IN (1500 ,1499)
AND
(
(@isMuveszetOktatasi = 0)
OR
(@isMuveszetOktatasi = 1 AND csmuv.ID IS NOT NULL)
)
GROUP BY m.C_ORATANULOIID, tanulok.TanuloCsoportId, m.C_TIPUS, m.C_IGAZOLT, IIF((@isMuveszetOktatasi = 0 AND cs.ID IS NULL), 'T', IIF((@isMuveszetOktatasi = 1 AND csmuv.ID IS NOT NULL),'T','F')), t.C_GYAKORLATI
) x
) p
PIVOT (
MAX(cnt)
FOR piv IN (
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
)
) AS pvt
) m
LEFT JOIN (
SELECT
tanuloId
,tanulocsoportid
,[kesesIgazolandoTanoraiPerc]
,[kesesIgazoltTanoraiPerc]
,[kesesIgazolatlanTanoraiPerc]
FROM (
SELECT
x.tanuloId, x.tanulocsoportid
,'Keses' +
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
'TanoraiPerc' AS piv
,kesesPercben
FROM (
SELECT
m.C_ORATANULOIID AS tanuloId
,tanulok.TanuloCsoportId
,m.C_IGAZOLT isIgazolt
,SUM(m.C_KESESPERCBEN) AS kesesPercben
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
LEFT JOIN T_CSOPORT_OSSZES csmuv ON tn.C_OSZTALYCSOPORTID = csmuv.ID AND csmuv.C_TIPUSA IN (SELECT CsoportTipusId FROM @SzurtCsoportTipusok)
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
WHERE
tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
AND m.C_TANEVID = @tanevId
AND m.Torolt ='F'
AND tn.Torolt ='F'
AND
(
(@isMuveszetOktatasi = 0 AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT CsoportTipusId FROM @SzurtCsoportTipusok)))
OR
(@isMuveszetOktatasi = 1 AND csmuv.ID IS NOT NULL)
)
AND m.C_TIPUS = 1499
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
AND tanulok.BelepesDatum <= tn.C_DATUM
AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum > tn.C_DATUM)
GROUP BY m.C_ORATANULOIID, tanulok.TanuloCsoportId, m.C_IGAZOLT
) x
) p
PIVOT (
MAX(kesesPercben)
FOR piv IN
([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
) AS pvt
) k ON k.tanuloId = m.tanuloId and k.TanuloCsoportId = m.TanuloCsoportId
LEFT JOIN (
SELECT
tanuloId
,tanulocsoportid
,SUM(kesesIgazolandoTanoraiPluszOra) AS kesesIgazolandoTanoraiPluszOra
,SUM(kesesIgazoltTanoraiPluszOra) AS kesesIgazoltTanoraiPluszOra
,SUM(kesesIgazolatlanTanoraiPluszOra) AS kesesIgazolatlanTanoraiPluszOra
,SUM(kesesIgazoltElmeletiOraban) AS kesesIgazoltElmeletiOraban
,SUM(kesesIgazolatlanElmeletiOraban) AS kesesIgazolatlanElmeletiOraban
,SUM(kesesIgazoltGyakorlatiOraban) AS kesesIgazoltGyakorlatiOraban
,SUM(kesesIgazolatlanGyakorlatiOraban) AS kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
x.tanuloId
,x.tanulocsoportid
,'Keses' +
CASE
WHEN isIgazolt IS NULL THEN 'Igazolando'
WHEN isIgazolt = 'T' THEN 'Igazolt'
WHEN isIgazolt = 'F' THEN 'Igazolatlan'
END + 'TanoraiPluszOra' AS piv
,kesesOraban
,kesesIgazoltElmeletiOraban
,kesesIgazolatlanElmeletiOraban
,kesesIgazoltGyakorlatiOraban
,kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
xx.tanuloId
,xx.tanulocsoportid
,xx.isIgazolt
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='T' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazoltElmeletiOraban
,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='F' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazolatlanElmeletiOraban
,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='T' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazoltGyakorlatiOraban
,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='F' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazolatlanGyakorlatiOraban
FROM (
SELECT
m.C_ORATANULOIID AS tanuloId
,tanulok.tanulocsoportid
,m.C_IGAZOLT isIgazolt
,t.C_GYAKORLATI AS isGyakorlati
,SUM(m.C_KESESPERCBEN) AS keses
FROM T_TANULOMULASZTAS_OSSZES m
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID AND cs.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
LEFT JOIN T_CSOPORT_OSSZES csmuv ON tn.C_OSZTALYCSOPORTID = csmuv.ID AND csmuv.C_TIPUSA IN (SELECT CsoportTipusId FROM @SzurtCsoportTipusok)
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID and tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
WHERE m.C_TANEVID = @tanevId
AND
(
(@isMuveszetOktatasi = 0 AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT CsoportTipusId FROM @SzurtCsoportTipusok)))
OR
(@isMuveszetOktatasi = 1 AND csmuv.ID IS NOT NULL)
)
AND m.C_TIPUS = 1499
AND m.TOROLT = 'F'
AND tn.Torolt ='F'
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
AND tanulok.BelepesDatum <= tn.C_DATUM
AND (tanulok.KilepesDatum IS NULL OR tanulok.KilepesDatum > tn.C_DATUM)
AND tn.C_DATUM BETWEEN @IdoszakKezdete AND @IdoszakVege
GROUP BY m.C_ORATANULOIID, tanulok.TanuloCsoportId, m.C_IGAZOLT, t.C_GYAKORLATI
) xx
GROUP BY tanuloId, TanuloCsoportId, xx.isIgazolt
) x
) p
PIVOT (
MAX(kesesOraban)
FOR piv IN (
kesesIgazolandoTanoraiPluszOra, kesesIgazoltTanoraiPluszOra, kesesIgazolatlanTanoraiPluszOra
)
) AS pvt
GROUP BY tanuloId, TanuloCsoportId
) kp ON m.tanuloId = kp.tanuloId
) m on m.tanuloId=t.tanuloId and m.TanuloCsoportId = t.TanuloCsoportId
END
GO

View File

@@ -0,0 +1,326 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetErtesitesAltEsMulAdatok') IS NOT NULL BEGIN
DROP PROCEDURE [sp_GetErtesitesAltEsMulAdatok]
END
GO
CREATE PROCEDURE [dbo].[sp_GetErtesitesAltEsMulAdatok]
@pOsztalyId INT,
@pTanevId INT,
@pTankoteles BIT,
@pIskolaErdekuSzamit BIT
AS
BEGIN
SET NOCOUNT ON;
--Mulasztasok
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyID = @pOsztalyId,
@tanevId = @pTanevId,
@elmeletGyakorlat = 0,
@kesesTipus = 1499,
@elmeletiOraPercben = 45,
@gyakorlatiOraPercben = 45,
@ertekelesTipus = 1520, --évvégi
@iskolaErdekuSzamit = @pIskolaErdekuSzamit
SELECT
TanuloId Id
,TanuloCsoportId
,BelepesDatum
,ISNULL(KilepesDatum, GETDATE()) KilepesDatum
INTO #students
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T')
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT)
INSERT INTO @Gondviselok
SELECT
TanuloId
,gondviselo.Id
FROM T_GONDVISELO_OSSZES gondviselo
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo ON tanulo.TanuloId = gondviselo.C_TANULOID AND gondviselo.TOROLT = 'F'
DECLARE @CimTableTemp TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), CimTipus INT, GondviseloId INT)
INSERT INTO @CimTableTemp
SELECT
TanuloId
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
,C_CIMTIPUSA
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @pTanevId
UNION
SELECT
TanuloId
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM
,C_CIMTIPUSA
,GondviseloId
FROM @Gondviselok gonviselo
INNER JOIN T_CIM_OSSZES cim ON cim.C_GONDVISELOID = GondviseloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @pTanevId
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO @TanuloCimTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @CimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND temp.CimTipus = btemp.CimTipus
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,CimTipus
FROM @CimTableTemp temp
WHERE
GondviseloId IS NULL
DECLARE @GondViseloCimTable TABLE (FelhasznaloId INT, GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
INSERT INTO @GondViseloCimTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @CimTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND temp.CimTipus = btemp.CimTipus
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
,CimTipus
FROM @CimTableTemp temp
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = Cimtipus
WHERE
GondviseloId IS NOT NULL
AND CimTipus = 907
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @EmailCimTableTemp
SELECT
TanuloId
,C_EMAILCIM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
UNION
SELECT
TanuloId
,C_EMAILCIM
,GondviseloId
FROM @Gondviselok
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
WHERE
email.TOROLT = 'F'
AND email.C_TANEVID = @pTanevId
AND LEN(C_EMAILCIM) > 0
DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO @EmailCimTanuloTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND btemp.GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE
GondviseloId IS NULL
DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX))
INSERT INTO @EmailCimGondviseloTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @EmailCimTableTemp btemp
WHERE
temp.GondviseloId = btemp.GondviseloId
AND btemp.GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Email
FROM @EmailCimTableTemp temp
WHERE
GondviseloId IS NOT NULL
DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT)
INSERT INTO @TelefonTableTemp
SELECT
TanuloId
,C_TELEFONSZAM
,C_GONDVISELOID
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
UNION
SELECT
TanuloId
,C_TELEFONSZAM
,GondviseloId
FROM @Gondviselok gondviselo
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
WHERE
telefon.TOROLT = 'F'
AND telefon.C_TANEVID = @pTanevId
AND LEN(telefon.C_TELEFONSZAM) > 0
DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX))
INSERT INTO @TanuloTelefonTable
SELECT DISTINCT
FelhasznaloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
AND GondviseloId IS NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE
GondviseloId IS NULL
DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX))
INSERT INTO @GondviseloTelefonTable
SELECT DISTINCT
FelhasznaloId
,GondviseloId
,STUFF((
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
FROM @TelefonTableTemp btemp
WHERE
temp.FelhasznaloId = btemp.FelhasznaloId
and temp.GondviseloId = btemp.GondviseloId
AND GondviseloId IS NOT NULL
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'')
FROM @TelefonTableTemp temp
WHERE
GondviseloId IS NOT NULL
SELECT
TanuloId
,Gondviselok.GondviseloId
,GondviseloAdatok.C_NEV GondviseloNev
,Cim GondviseloAllandoCim
,Telefon GondviseloTelefon
,RokonsagiFok.C_NAME GondviseloRokonsagiFoka
INTO #GondviseloAdatok
FROM @Gondviselok Gondviselok
INNER JOIN T_GONDVISELO_OSSZES GondviseloAdatok ON GondviseloAdatok.Id = Gondviselok.GondviseloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = GondviseloAdatok.C_ROKONSAGFOKA AND RokonsagiFok.C_TANEVID = @pTanevId
LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId
LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId
ORDER BY TanuloId
--Tanulói adatok
SELECT DISTINCT
TanuloAdatok.ID
,OsztalyTanuloi.TanuloCsoportId
,TanuloAdatok.C_NYOMTATASINEV TANULONEV
,TanuloAdatok.C_ANYJANEVE ANYJANEVE
,TanuloAdatok.C_SZULETESIHELY SZULETESIHELY
,TanuloAdatok.C_SZULETESIDATUM SZULETESIDATUM
,TanuloAdatok.C_NYILVANTARTASISZAM TorzslapSzam
,IntezmenyAdatok.C_IGAZGATONEVE INT_IGAZGATO_NEV
,IntezmenyAdatok.C_NEV INT_NEV
,IntezmenyAdatok.C_OMKOD INT_OMKOD
,IntezmenyAdatok.C_VAROS INT_VAROS
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) INT_CIM
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) OSZTALYCSOPORT_NEV
,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV
,ISNULL(Mulasztas.Igazolt,0) IGAZOLT
,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN
,GondviseloAdatok.GondviseloNev
,GondviseloAdatok.GondviseloAllandoCim
,GondviseloAdatok.GondviseloTelefon
,GondviseloRokonsagiFoka
,TanuloAllandoCimTable.CIM TanuloAllandoCim
,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim
FROM #students OsztalyTanuloi
INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = OsztalyTanuloi.ID AND TanuloAdatok.TOROLT = 'F'
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloAdatok.C_TANEVID
AND IntezmenyAdatok.TOROLT = 'F'
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES Osztalyfonok ON Osztalyfonok.ID = Osztaly.C_OSZTALYFONOKID AND Osztalyfonok.TOROLT = 'F'
LEFT JOIN @Mulasztasok Mulasztas ON Mulasztas.TanuloId = TanuloAdatok.ID AND Mulasztas.TanuloCsoportId = OsztalyTanuloi.TanuloCsoportId
LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = OsztalyTanuloi.ID
LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloAllandoCimTable.Cimtipusa = 907
LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloTartozkodasiCimTable.Cimtipusa = 908
WHERE
Tanulo.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
ORDER BY TanuloAdatok.C_NYOMTATASINEV
--Mulasztások részletezése
SELECT
Mulasztasok.TanuloId
,Mulasztasok.TanuloCsoportId
,Mulasztasok.OsztalyCsoportId
,Mulasztasok.OsztalyCsoportNev
,MulasztasTipus.C_NAME Tipusa
,Mulasztasok.Igazolt
,Mulasztasok.IgazolasTipusa
,Mulasztasok.KesesPercben
,Mulasztasok.Datum
,Mulasztasok.Oraszam
,Mulasztasok.TantargyId
,Mulasztasok.TantargyNev
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT) Mulasztasok
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId
WHERE
Igazolt = 'F'
DROP TABLE #GondviseloAdatok
END
GO

View File

@@ -0,0 +1,323 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetErtesitoNyomtatvany]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
END
GO
-- =====================================================================
-- Description: értesítõ nyomtatvány (félévi, év végi, I. negyedévi...)
-- =====================================================================
CREATE PROCEDURE [dbo].[sp_GetErtesitoNyomtatvany]
@pOsztalyId INT,
@pTanevId INT,
@pErtekelesTipus INT,
@pElmeletGyakorlat BIT = 0,
@pKesesTipus INT = 1499,
@pElmeletiOraPercben INT = 45,
@pGyakorlatiOraPercben INT = 45,
@pIskolaErdekuSzamit BIT,
@pIsKozossegiSzolgalat BIT,
@pTanuloId INT = NULL,
@pIsMuveszetOktatasi BIT = 0,
@pIsShowTanuloiAtlag BIT = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EsemenyTipus INT
SET @EsemenyTipus = (SELECT
CASE
WHEN @pErtekelesTipus = 1519 THEN 1547 --félévi
WHEN @pErtekelesTipus = 1520 THEN 1548 --év végi
WHEN @pErtekelesTipus = 1522 THEN 1549 --I. negyedévi
WHEN @pErtekelesTipus = 1524 THEN 1550 --II. negyedévi
WHEN @pErtekelesTipus = 1523 THEN 1551 --III. negyedévi
END
)
DECLARE @IdoszakVegeTanevRendje INT
SET @IdoszakVegeTanevRendje =
CASE @pErtekelesTipus
WHEN 1519 THEN 1400 --félévi
WHEN 1520 THEN 1395 --év végi
WHEN 1522 THEN 1403 --I. negyedévi
WHEN 1524 THEN 1400 --II. negyedévi
WHEN 1523 THEN 1404 --III. negyedévi
END
DECLARE @IdoszakVege DATE = (SELECT TOP 1 ISNULL(C_DATUM, GETDATE()) FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = @IdoszakVegeTanevRendje AND C_TANEVID = @pTanevId AND TOROLT = 'F')
-- Fejléc
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
dbo.fnGetDokumentumIntezmenyCime(@pTanevId) IntezmenyCime,
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
T_TANEV_OSSZES.C_NEV TANEV,
T_INTEZMENYADATOK_OSSZES.C_VAROS VAROS,
(SELECT OFO.C_NYOMTATASINEV FROM T_OSZTALY_OSSZES
INNER JOIN T_FELHASZNALO_OSSZES OFO
ON OFO.ID = T_OSZTALY_OSSZES.C_OSZTALYFONOKID
WHERE T_OSZTALY_OSSZES.ID=@pOsztalyId
AND T_OSZTALY_OSSZES.TOROLT = 'F') OSZTALYFONOK,
(SELECT to2.C_NEV FROM T_OSZTALYCSOPORT_OSSZES to2 WHERE ID = @pOsztalyId AND TOROLT = 'F') OSZTALYNEV,
GETDATE() Datum
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 = @pTanevId
-- TANULÓK
DECLARE @Tanulok TABLE
(
TANULOID INT
,TanuloCsoportId INT
,BelepesDatum DATE
,KilepesDatum DATE
,TANULONEV NVARCHAR(MAX)
,OKTATASIAZONOSITO NVARCHAR(MAX)
,TORZSLAPSZAM NVARCHAR(MAX)
,SZULHELY NVARCHAR(MAX), SZULIDO NVARCHAR(MAX)
,ANYJANEVE NVARCHAR(MAX)
)
IF @pTanuloId IS NOT NULL BEGIN
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,felhasznalo.C_NYOMTATASINEV
,felhasznalo.C_OKTATASIAZONOSITO
,felhasznalo.C_NYILVANTARTASISZAM
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
WHERE
tanulok.TanuloId = @pTanuloId
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
FROM @Tanulok
ORDER BY TANULONEV
END
ELSE BEGIN
INSERT INTO @Tanulok
SELECT
tanulok.TanuloId
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,felhasznalo.C_NYOMTATASINEV
,felhasznalo.C_OKTATASIAZONOSITO
,felhasznalo.C_NYILVANTARTASISZAM
,felhasznalo.C_SZULETESIHELY
,dbo.fnGetDokumentumDatumFormatum(felhasznalo.C_SZULETESIDATUM)
,felhasznalo.C_ANYJANEVE
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulok
INNER JOIN T_FELHASZNALO_OSSZES felhasznalo on felhasznalo.Id=tanulok.TanuloId
SELECT
TANULOID
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
,TANULONEV
,OKTATASIAZONOSITO
,TORZSLAPSZAM
,SZULHELY
,SZULIDO
,ANYJANEVE
FROM @Tanulok
ORDER BY TANULONEV
END
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,TanuloCsoportId INT
,Targy NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesValue FLOAT
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam INT
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(MAX)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(MAX)
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @pOsztalyId,
@tanevId = @pTanevId,
@ertekelesTipus = @pErtekelesTipus,
@isMuveszetOktatasi = @pIsMuveszetOktatasi
SELECT
ertekeles.TanuloId
,ertekeles.TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesValue
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1
,RENDEZ2
,RENDEZ3
,RENDEZ4
,RENDEZ5
,'' TanarNev
FROM @Ertekelesek ertekeles
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = ertekeles.TanuloId AND Tanulok.TanuloCsoportId = ertekeles.TanuloCsoportId
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
IF(@pIsShowTanuloiAtlag = 1) BEGIN
--Tanuló Átlaga
SELECT
TanuloId TanuloId
,TanuloCsoportId
,AVG(ErtekelesValue) ErtekelesAtlag
FROM @Ertekelesek
GROUP BY TanuloId, TanuloCsoportId
END
-- MULASZTÁSOK
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @pOsztalyId,
@tanevId = @pTanevId,
@elmeletGyakorlat = @pElmeletGyakorlat,
@kesesTipus = @pKesesTipus,
@elmeletiOraPercben = @pElmeletiOraPercben,
@gyakorlatiOraPercben = @pGyakorlatiOraPercben,
@ertekelesTipus = @pErtekelesTipus,
@iskolaErdekuSzamit = @pIskolaErdekuSzamit,
@isMuveszetOktatasi = @pIsMuveszetOktatasi
SELECT
mulasztasok.TanuloId
,mulasztasok.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM @Mulasztasok mulasztasok
INNER JOIN @Tanulok Tanulok ON Tanulok.TANULOID = mulasztasok.TanuloId AND Tanulok.TanuloCsoportId = mulasztasok.TanuloCsoportId
-- TANTÁRGYI MENTESSÉGEK
SELECT
TanuloId
,TanuloCsoportId
,TantargyNev
,MentessegOka
FROM fnGetDokumentumTanuloMentessegei(@pTanevId, @pOsztalyId)
--Bejegyzések
SELECT
TanuloTable.TanuloId
,TanuloTable.TanuloCsoportId
,'A félév során ' + CAST(SUM(Oraszam) AS NVARCHAR(MAX)) + ' óra közösségi szolgálatot teljesített.' Bejegyzes
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent (@pTanevId, @pOsztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId AND bejegyzes.TanuloCsoportId = TanuloTable.TanuloCsoportId
WHERE
@pIsKozossegiSzolgalat = 1
AND Datum <= @IdoszakVege
GROUP BY TanuloTable.TanuloId, TanuloTable.TanuloCsoportId
UNION
SELECT
bejegyzes.TanuloId TanuloId
,TanuloCsoportId
,Tartalom Bejegyzes
FROM fnGetDokumentumTanulokFeljegyzesei(@pTanevId, @pOsztalyId) bejegyzes
INNER JOIN @Tanulok TanuloTable ON bejegyzes.TanuloId = TanuloTable.TanuloId
WHERE
Tipusa IN (1546, @EsemenyTipus)
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum >= Datum)
UNION
-- Határozatok
SELECT
TanuloId
,TanuloCsoportId
,Bejegyzes Zaradek
FROM fnGetDokumentumTanuloZaradekai(@pOsztalyId, @pTanevId)
WHERE
@pErtekelesTipus = 1520
--TANULÓ elérhetőségei
SELECT DISTINCT
tanulo.TanuloId tanuloID
,Gondviselo.C_NEV + IIF(Gondviselo.C_ISTORVENYESKEPVISELO = 'T', ' (törvényes)', '') GondviseloNeve
FROM T_GONDVISELO_OSSZES Gondviselo
INNER JOIN @Tanulok TanuloTable ON Gondviselo.C_TANULOID = TanuloTable.TanuloId
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'F') tanulo ON tanulo.TanuloId = Gondviselo.C_TANULOID
WHERE
Gondviselo.TOROLT = 'F'
SELECT DISTINCT
TanuloTable.TanuloId tanuloID
,C_IRANYITOSZAM + ' ' + C_VAROS + ', ' + C_KOZTERULET + ' ' + kozterulet.C_NAME + ' ' + C_HAZSZAM CimText
,cimTipus.C_NAME CimTipusa
FROM @Tanulok TanuloTable
INNER JOIN T_CIM_OSSZES cim ON cim.C_FELHASZNALOID = TanuloTable.TanuloId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES kozterulet ON kozterulet.Id = C_KOZTERULETJELLEGE AND kozterulet.C_TANEVID = @pTanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipus ON cim.C_CIMTIPUSA = cimTipus.ID AND cimTipus.C_TANEVID = @pTanevId
WHERE
cim.TOROLT = 'F'
AND cim.C_TANEVID = @pTanevId
END
GO

View File

@@ -0,0 +1,320 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('sp_GetTorzslap') IS NOT NULL
BEGIN
DROP PROCEDURE sp_GetTorzslap
END
GO
CREATE PROCEDURE sp_GetTorzslap
@osztalyId INT,
@tanevId INT,
@ertekelesTipus INT,
@kesesTipus INT,
@elmeletiOraPercben INT = 45,
@gyakorlatiOraPercben INT = 45,
@iskolaErdekuSzamit BIT,
@isNemet BIT ,
@isKozossegiSzolgalat BIT
AS
BEGIN
SET NOCOUNT ON;
SELECT
OsztalyTanuloi.TanuloId TanuloId
,OsztalyTanuloi.NaploSorszam NaploSorszam
,OsztalyTanuloi.TorzslapSzam TorzslapSzam
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,OsztalyTanuloi.BelepesDatum BelepesDatum
,OsztalyTanuloi.KilepesDatum KilepesDatum
,Agazat.C_NAME Agazat
,Szakkep.C_NAME Szakkepesites
,ReszSzakkep.C_NAME ReszSzakkepesites
,SzakmaCsop.C_NAME SzakmaCsoport
INTO #students
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Agazat ON Agazat.ID = OsztalyTanuloi.AgazatId AND Agazat.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES Szakkep ON Szakkep.ID = OsztalyTanuloi.SzakkepesitesId AND Szakkep.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ReszSzakkep ON ReszSzakkep.ID = OsztalyTanuloi.ReszSzakkepeitesId AND ReszSzakkep.C_TANEVID = @tanevId
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES SzakmaCsop ON SzakmaCsop.ID = OsztalyTanuloi.SzakmaCsoportId AND SzakmaCsop.C_TANEVID = @tanevId
--Intézmény, tanév
SELECT DISTINCT
OsztalyCsoport.C_NEV OsztalyNev
,Osztaly.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
,Osztaly.C_OSZTALYFONOKID PartnerID
,IIF(@isNemet = 0, ofo.C_NYOMTATASINEV, ofo.C_UTONEV + ' ' + ofo.C_VEZETEKNEV) Osztalyfonok
,i.C_IGAZGATONEVE IntezmenyVezeto
,i.C_NEV IntezmenyNeve
,i.C_VAROS IntezmenyVaros
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
,i.C_OMKOD IntezmenyOMKod
,IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOMEGNYITASA), FORMAT(Osztaly.C_OSZTALYNAPLOMEGNYITASA, 'dd. MM. yyyy')) NaploMegnyitasanakDatuma
,IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(Osztaly.C_OSZTALYNAPLOZARASA), FORMAT(Osztaly.C_OSZTALYNAPLOZARASA, 'dd. MM. yyyy')) NaploZarasanakDatuma
,tanev.C_NEV Tanev
,(SELECT COUNT(TanuloId) FROM #students) TanuloSzam
,(SELECT MIN(NaploSorszam) FROM #students) MinNaploSorszam
,(SELECT MAX(NaploSorszam) FROM #students) MaxNaploSorszam
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_OSZTALY_OSSZES Osztaly ON OsztalyCsoport.ID = Osztaly.ID AND Osztaly.TOROLT = 'F'
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = Osztaly.C_OSZTALYFONOKID
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = OsztalyCsoport.C_INTEZMENYID AND i.C_TANEVID = @tanevId
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = i.C_TANEVID and tanev.TOROLT = 'F'
WHERE OsztalyCsoport.ID = @osztalyId
--Osztály, évfolyam
SELECT
OsztalyCsoport.C_NEV
,EvfolyamTipusa.C_NAME C_EVFOLYAMTIPUSA_DNAME
FROM T_OSZTALYCSOPORT_OSSZES OsztalyCsoport
INNER JOIN T_DICTIONARYITEMBASE_OSSZES EvfolyamTipusa ON EvfolyamTipusa.Id = OsztalyCsoport.C_EVFOLYAMTIPUSA
WHERE
OsztalyCsoport.ID = @osztalyId
AND EvfolyamTipusa.C_TANEVID = @tanevId
--Tanuló adatok
SELECT
felhasznalo.ID TanuloId
,felhasznalo.Azonosito Azonosito
,IIF(@isNemet = 0, felhasznalo.Nev, felhasznalo.Elotag + ' ' + felhasznalo.VezetekNev)
Nev
,IIF(@isNemet = 0, dbo.fnGetDokumentumDatumFormatum(felhasznalo.SzuletesiDatum), FORMAT(felhasznalo.SzuletesiDatum, 'dd. MM. yyyy'))
SzuletesiDatum
,felhasznalo.SzuletesiHely SzuletesiHely
,IIF(@isNemet = 0, allampolgarsag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.Allampolgarsag))
Allampolgarsag
,felhasznalo.Anyjaneve AnyjaNeve
,IIF(@isNemet = 0, szorszag.C_NAME, dbo.fnGetDokumentumNemet(felhasznalo.SzuletesiOrszag))
SzuletesiOrszag
,OsztalyTanuloi.TorzslapSzam TorzslapSzam
,gondviselo.Gondviselok GondviseloNeve
,OsztalyTanuloi.NaploSorszam NaploSorszam
,felhasznalo.Nev Nev2
,Tanulo.C_SAJATOSNEVELESU SajatosNevelesu
,OsztalyTanuloi.TanuloCsoportId TanuloCsoportId
,OsztalyTanuloi.BelepesDatum BelepesDatum
,OsztalyTanuloi.KilepesDatum KilepesDatum
,OsztalyTanuloi.Agazat Agazat
,OsztalyTanuloi.Szakkepesites Szakkepesites
,OsztalyTanuloi.ReszSzakkepesites ReszSzakkepesites
,OsztalyTanuloi.SzakmaCsoport SzakmaCsoport
INTO #TanuloAdatok
FROM
(
SELECT
ID ID
,C_OKTATASIAZONOSITO Azonosito
,C_NYOMTATASINEV Nev
,C_VEZETEKNEV VezetekNev
,C_UTONEV Elotag
,C_SZULETESIDATUM SzuletesiDatum
,C_SZULETESIHELY SzuletesiHely
,C_SZULETESIORSZAG SzuletesiOrszag
,C_ALLAMPOLGARSAGA Allampolgarsag
,IIF(@isNemet = 0, C_ANYJANEVE, LTRIM(SUBSTRING(C_ANYJANEVE, C_ANYJANEVEELVALASZTO + 1 , LEN(C_ANYJANEVE) - C_ANYJANEVEELVALASZTO)) + ' ' + LTRIM(SUBSTRING(C_ANYJANEVE, 0, C_ANYJANEVEELVALASZTO + 1)))
Anyjaneve
FROM T_FELHASZNALO_OSSZES
) felhasznalo
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.Id = felhasznalo.Id
INNER JOIN T_DICTIONARYITEMBASE_OSSZES allampolgarsag ON allampolgarsag.ID = felhasznalo.Allampolgarsag AND allampolgarsag.C_TANEVID = @tanevId
INNER JOIN T_DICTIONARYITEMBASE_OSSZES szorszag ON szorszag.ID = felhasznalo.SzuletesiOrszag AND szorszag.C_TANEVID = @tanevId
LEFT JOIN
(
SELECT DISTINCT
g.C_TANULOID TanuloId
,STUFF((SELECT C_NEV + IIF(@isNemet = 0, ' (' + d.C_NAME +')', '') + CHAR(13) + CHAR(10)
FROM T_GONDVISELO_OSSZES bg
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d on d.ID = bg.C_ROKONSAGFOKA AND d.C_TANEVID = bg.C_TANEVID
WHERE
bg.C_TANULOID=g.C_TANULOID
AND bg.C_ISTORVENYESKEPVISELO = 'T'
AND bg.TOROLT = 'F'
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') Gondviselok
FROM T_GONDVISELO_OSSZES g
) gondviselo on felhasznalo.ID = gondviselo.TanuloId
INNER JOIN #students OsztalyTanuloi ON OsztalyTanuloi.TanuloId = felhasznalo.ID
ORDER BY felhasznalo.Nev
SELECT
TanuloId
,Azonosito
,Nev
,SzuletesiDatum
,SzuletesiHely
,Allampolgarsag
,Anyjaneve
,SzuletesiOrszag
,TorzslapSzam
,GondviseloNeve
,NaploSorszam
,Nev2
,SajatosNevelesu
,TanuloCsoportId
,BelepesDatum
,KilepesDatum
FROM #TanuloAdatok ORDER BY NaploSorszam
--Határozat
SELECT
TanuloId
,TanuloCsoportId
,Bejegyzes
FROM fnGetDokumentumTanuloZaradekai(@osztalyId, @tanevId)
--Egyéb bejegyzések
SELECT
Tanuloid
,TanuloCsoportId
,Bejegyzes
,Tipus_DNAME
FROM
(
SELECT
bejegyzes.TanuloId TanuloId
,s.TanuloCsoportId
,Tartalom Bejegyzes
,C_NAME Tipus_DNAME
,dbo.fnGetDokumentumDatumFormatum(bejegyzes.Datum) Datum
FROM fnGetDokumentumTanulokFeljegyzesei(@tanevId, @osztalyId) bejegyzes
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = Tipusa AND C_TANEVID = @tanevId AND d.TOROLT = 'F'
INNER JOIN #students s ON s.TanuloId = bejegyzes.TanuloId
WHERE
Tipusa IN (1539, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 5477, 5478, 5478, 5479, 5481, 5480)
AND BelepesDatum <= Datum
AND (KilepesDatum IS NULL OR KilepesDatum >= Datum)
UNION
SELECT
TanuloId
,TanuloCsoportId
,TantargyNev
,MentessegOka
,dbo.fnGetDokumentumDatumFormatum(Kezdete)
FROM fnGetDokumentumTanuloMentessegei(@tanevId, @osztalyId)
)a
ORDER BY Datum
-- MULASZTÁSOK
DECLARE @Mulasztasok TABLE (
TanuloId INT
,TanuloCsoportId INT
,Igazolt INT
,Igazolatlan INT
,ElmeletIgazolt INT
,ElmeletIgazolatlan INT
,GyakorlatIgazolt INT
,GyakorlatIgazolatlan INT
,ElmeletOsszes INT
,GyakorlatOsszes INT
,Osszes INT
)
INSERT INTO @Mulasztasok
EXEC sp_GetDokumentumMulasztasok
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@elmeletGyakorlat = 0,
@kesesTipus = @kesesTipus,
@elmeletiOraPercben = @elmeletiOraPercben,
@gyakorlatiOraPercben = @gyakorlatiOraPercben,
@ertekelesTipus = @ertekelesTipus,
@iskolaErdekuSzamit = @iskolaErdekuSzamit
SELECT
TanuloTable.TanuloId
,TanuloTable.TanuloCsoportId
,Igazolt
,Igazolatlan
,ElmeletIgazolt
,ElmeletIgazolatlan
,GyakorlatIgazolt
,GyakorlatIgazolatlan
,ElmeletOsszes
,GyakorlatOsszes
,Osszes
FROM @Mulasztasok mulasztasok
INNER JOIN #students TanuloTable ON mulasztasok.TanuloId = TanuloTable.TanuloId AND TanuloTable.TanuloCsoportId = mulasztasok.TanuloCsoportId
-- ÉRTÉKELÉSEK
DECLARE @Ertekelesek TABLE (
TanuloId INT
,TanuloCsoportId INT
,Targy NVARCHAR(MAX)
,Jegyzet NVARCHAR(MAX)
,Ertekeles NVARCHAR(MAX)
,ErtekelesValue INT
,ErtekelesJegyzettel NVARCHAR(MAX)
,Oraszam INT
,RENDEZ1 INT
,RENDEZ2 NVARCHAR(MAX)
,RENDEZ3 INT
,RENDEZ4 INT
,RENDEZ5 NVARCHAR(MAX)
)
INSERT INTO @Ertekelesek
EXEC sp_GetDokumentumErtekelesek
@osztalyId = @osztalyId,
@tanevId = @tanevId,
@ertekelesTipus =@ertekelesTipus,
@isNemet = @isNemet
SELECT
TanuloId
,TanuloCsoportId
,Targy
,Jegyzet
,Ertekeles
,ErtekelesJegyzettel
,Oraszam
,RENDEZ1 RENDEZ
FROM @Ertekelesek
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
--Tanuló lista
SELECT
Nev
,NaploSorszam
,TorzslapSzam
,dbo.fnGetDokumentumDatumFormatum (KilepesDatum) KilepesDatum
FROM #TanuloAdatok
ORDER BY NaploSorszam
--Közösségi szolgálat
SELECT DISTINCT
OsztalyTanuloi.TanuloId
,OsztalyTanuloi.TanuloCsoportId
,dbo.fnGetDokumentumDatumFormatum(Datum) Datum
,ISNULL(' - ' + Megjegyzes, '') Megjegyzes
,Oraszam
,TeljesitesHelye
,FeljegyzoNeve
,Tipus
,KozossegiSzolgalatId
FROM fnGetDokumentumKozossegiSzolgalatOsztalyonkent(@tanevId, @osztalyId) KozossegiSzolgalat
INNER JOIN #students OsztalyTanuloi ON OsztalyTanuloi.TanuloId = KozossegiSzolgalat.TanuloId
WHERE
BelepesDatum <= Datum
AND (OsztalyTanuloi.KilepesDatum IS NULL OR OsztalyTanuloi.KilepesDatum >= Datum)
AND @isKozossegiSzolgalat = 1
ORDER BY Datum
SELECT
TanuloId
,TanuloCsoportId
FROM #TanuloAdatok
WHERE
SajatosNevelesu = 'T'
AND (KilepesDatum IS NULL OR KilepesDatum >= GETDATE())
DROP TABLE #students
DROP TABLE #TanuloAdatok
END
GO

View File

@@ -0,0 +1,115 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetUzenofuzetErtekelolap]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
END
GO
CREATE PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
@osztalyId INT,
@tanevId 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
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 T_OSZTALYCSOPORT_OSSZES.C_NEV,
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA,
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV Osztalyfonok
FROM T_OSZTALYCSOPORT_OSSZES
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.id = T_OSZTALY_OSSZES.ID
INNER JOIN T_FELHASZNALO_OSSZES ON T_FELHASZNALO_OSSZES.id = T_OSZTALY_OSSZES.c_osztalyfonokid
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.ID = @osztalyId
AND T_OSZTALYCSOPORT_OSSZES.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
FROM T_FELHASZNALO_OSSZES
INNER JOIN #studentsWithTanuloCsoport Tanulok ON Tanulok.Id = T_FELHASZNALO_OSSZES.Id
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
SELECT
Datum
,TipusId
,ErtekelesSzoveg
,ErtekelesOsztalyzatId
,ErtekelesOsztalyzatValue
,ErtekelesOsztalyzatNev
,ErtekelesSzazalek
,MagatartasOsztalyzatId
,MagatartasOsztalyzatNev
,MagatartasSzoveg
,MagatartasErtekId
,MagatartasErtek
,SzorgalomOsztalyzatId
,SzorgalomOsztalyzatNev
,SzorgalomSzoveg
,SzorgalomErtekId
,SzorgalomErtek
,TanuloId
,TanuloCsoportId
,OsztalyCsoportId
,TantargyId
,TantargyNevZarojellel
,TantargyNev
,TantargyNevNyomtatvanyban
,TargyKategoriaId
,FotargyE
,FotargyId
,Altantargy
,ErtekelesTema
,Jeloles
,JelolesAndErtekelesTema
,isMagatartasSzorgalom
INTO #ErtekelesekTemp
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
@tanevId = @tanevId,
@osztalyCsoportId = @osztalyId,
@ertekelesTipusa = NULL,
@csakTanorai = 1,
@csakKivlasztottOsztalyCsoport = 0,
@atsoroltTanuloErtekelesek = 0,
@fuggolegesTantargyak = 0,
@isMegjegyzesMegjelenjen = 0
DROP TABLE #studentsWithTanuloCsoport
END
GO