init
This commit is contained in:
@@ -0,0 +1,235 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumErtekelesekOsztalyonkent
|
||||
GO
|
||||
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (
|
||||
@tanevId INT,
|
||||
@osztalyCsoportId INT,
|
||||
@ertekelesTipusa INT = NULL,
|
||||
@csakTanorai BIT = 1,
|
||||
@csakKivlasztottOsztalyCsoport BIT = 0,
|
||||
@atsoroltTanuloErtekelesek INT = 0,
|
||||
@includeOsztalyfonokiKategoria BIT = 0)
|
||||
RETURNS @retTanuloErtekeles TABLE
|
||||
(
|
||||
ErtekelesId INT NOT NULL,
|
||||
Datum DATE,
|
||||
TipusId INT,
|
||||
ErtekelesSzoveg NVARCHAR(MAX),
|
||||
ErtekelesSzovegRovidNev NVARCHAR(3),
|
||||
ErtekelesOsztalyzatId INT,
|
||||
ErtekelesOsztalyzatValue INT,
|
||||
ErtekelesOsztalyzatNev NVARCHAR(MAX),
|
||||
ErtekelesSzazalek NVARCHAR(MAX),
|
||||
MagatartasOsztalyzatId INT,
|
||||
MagatartasOsztalyzatValue INT,
|
||||
MagatartasOsztalyzatNev NVARCHAR(MAX),
|
||||
MagatartasSzoveg NVARCHAR(MAX),
|
||||
MagatartasSzovegRovidNev NVARCHAR(3),
|
||||
MagatartasErtekId INT,
|
||||
MagatartasErtek NVARCHAR(MAX),
|
||||
MagatartasErtekOsztalyzatkent INT,
|
||||
SzorgalomOsztalyzatId INT,
|
||||
SzorgalomOsztalyzatValue INT,
|
||||
SzorgalomOsztalyzatNev NVARCHAR(MAX),
|
||||
SzorgalomSzoveg NVARCHAR(MAX),
|
||||
SzorgalomSzovegRovidNev NVARCHAR(3),
|
||||
SzorgalomErtekId INT,
|
||||
SzorgalomErtek NVARCHAR(MAX),
|
||||
SzorgalomErtekOsztalyzatkent INT,
|
||||
TanuloId INT,
|
||||
TanuloCsoportId INT,
|
||||
OsztalyCsoportId INT,
|
||||
TantargyId INT,
|
||||
TantargyNevZarojellel NVARCHAR(MAX),
|
||||
TantargyNevNyomtatvanyban NVARCHAR(MAX),
|
||||
TantargyNev NVARCHAR(MAX),
|
||||
TantargyAngolNev NVARCHAR(MAX),
|
||||
TantargyNemetNev NVARCHAR(MAX),
|
||||
TargyKategoriaId INT,
|
||||
FotargyE CHAR(1),
|
||||
Altantargy CHAR(1),
|
||||
FotargyId INT,
|
||||
ErtekelesTema NVARCHAR(MAX),
|
||||
ErtekeloId INT,
|
||||
ErtekelesModjaId INT,
|
||||
IsMagatartasSzorgalom CHAR(1),
|
||||
Jeloles NVARCHAR(MAX),
|
||||
JelolesAndErtekelesTema NVARCHAR(MAX),
|
||||
RogzitesDatum DATE,
|
||||
RENDEZ1 INT,
|
||||
RENDEZ2 NVARCHAR(MAX),
|
||||
RENDEZ3 INT,
|
||||
RENDEZ4 INT,
|
||||
RENDEZ5 NVARCHAR(MAX)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
|
||||
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, tantargy.C_NEVNYOMTATVANYBAN +' (' + tantargy.C_NEV + ')', tantargy.C_NEV),
|
||||
tantargy.C_NEVNYOMTATVANYBAN,
|
||||
tantargy.C_NEV,
|
||||
tantargy.C_ANGOLNEV,
|
||||
tantargy.C_NEMETNEV,
|
||||
tantargy.C_TARGYKATEGORIA,
|
||||
tantargy.C_FOTARGYE,
|
||||
tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN,
|
||||
tantargy.C_FOTARGYID,
|
||||
tanuloErtekeles.C_ERTEKELESTEMA,
|
||||
tanuloErtekeles.C_ERTEKELOID,
|
||||
tanuloErtekeles.C_ERTEKELESMODID,
|
||||
tanuloErtekeles.C_ISMAGATARTASSZORGALOM,
|
||||
IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN (1519, 1520),
|
||||
'<i>(' + CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10))+')</i>',
|
||||
''),
|
||||
IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN(1519, 1520),
|
||||
'<i>('+CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA,
|
||||
'')
|
||||
,tanuloErtekeles.C_ROGZITESDATUM
|
||||
,CASE WHEN tantargy.C_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(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV))
|
||||
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID)
|
||||
,tantargy.C_FOTARGYID
|
||||
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV)
|
||||
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 OR @includeOsztalyfonokiKategoria = 1)
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
|
||||
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
|
||||
AND ertekelesOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
|
||||
AND magatartasOsztalyzat.C_TANEVID = @tanevId
|
||||
AND magatartasOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
|
||||
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
|
||||
AND szorgalomOsztalyzat.C_TYPE LIKE 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
|
||||
AND magatartasErtek.C_TANEVID = @tanevId
|
||||
AND magatartasErtek.C_TYPE LIKE 'MagatartasErtekelesTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
|
||||
AND szorgalomErtek.C_TANEVID = @tanevId
|
||||
AND szorgalomErtek.C_TYPE LIKE 'SzorgalomErtekelesTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
|
||||
AND TargyKategoriaDictionary.TOROLT = 'F'
|
||||
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.C_FOTARGYID = FotargyTable.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
|
||||
AND FotargyKategoriaDictionary.TOROLT = 'F'
|
||||
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
AND osztalyCsoport.TOROLT = 'F'and osztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
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.C_TANEVID = @tanevId
|
||||
AND tanuloErtekeles.TOROLT = 'F'
|
||||
AND (@atsoroltTanuloErtekelesek > 0
|
||||
OR (tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
IN(
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0))
|
||||
)
|
||||
)
|
||||
AND (@ertekelesTipusa IS NULL OR C_TIPUSID = @ertekelesTipusa)
|
||||
AND (@csakKivlasztottOsztalyCsoport = 0 OR tanuloErtekeles.C_OSZTALYCSOPORTID = @osztalyCsoportId)
|
||||
AND (@csakTanorai = 0 OR osztaly.ID IS NOT NULL OR
|
||||
(csoport.ID IS NOT NULL AND csoport.C_TIPUSA
|
||||
IN(
|
||||
SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)
|
||||
)
|
||||
)
|
||||
)
|
||||
AND BelepesDatum <= tanuloErtekeles.C_DATUM
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= tanuloErtekeles.C_DATUM)
|
||||
|
||||
option (recompile);
|
||||
|
||||
IF @atsoroltTanuloErtekelesek = 1
|
||||
BEGIN
|
||||
DECLARE @osztalyTantargyak TABLE
|
||||
(
|
||||
TantargyId INT
|
||||
);
|
||||
|
||||
INSERT INTO @osztalyTantargyak
|
||||
SELECT DISTINCT
|
||||
TantargyId
|
||||
FROM
|
||||
@retTanuloErtekeles
|
||||
WHERE
|
||||
OsztalyCsoportId IN
|
||||
(
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0)
|
||||
)
|
||||
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
C_TANTARGYID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0) AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
|
||||
|
||||
DELETE FROM @retTanuloErtekeles
|
||||
WHERE
|
||||
ErtekelesId NOT IN
|
||||
(
|
||||
SELECT
|
||||
ErtekelesId
|
||||
FROM
|
||||
@retTanuloErtekeles
|
||||
WHERE
|
||||
TantargyId IS NULL
|
||||
OR TantargyId IN
|
||||
(
|
||||
SELECT
|
||||
TantargyId
|
||||
FROM @osztalyTantargyak
|
||||
)
|
||||
)
|
||||
END
|
||||
RETURN
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,760 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].sp_GetCsoportNaplo
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetCsoportNaplo]
|
||||
@tanevId INT,
|
||||
@intezmenyid INT,
|
||||
@csoportId INT,
|
||||
@iskolaErdekuSzamit BIT,
|
||||
@isGyakorlatiTargyak BIT,
|
||||
@isElmeletiTargyak BIT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET DATEFIRST 1; -- Sets the first day of the week to a number from 1 (Monday) through 7 (Sunday).
|
||||
|
||||
DECLARE @isreszletesmulasztasok BIT = 0
|
||||
|
||||
DECLARE @isGyakorlatVagyElmelet BIT /*0 csak elmeleti || 1 csak gyakorlati || NULL elmeleti és gyakorlati*/
|
||||
DECLARE @isGyakorlatVagyElmeletFalse BIT = NULL
|
||||
|
||||
IF(@isGyakorlatiTargyak = 1)
|
||||
SET @isGyakorlatVagyElmelet = 1
|
||||
|
||||
IF(@isElmeletiTargyak = 1)
|
||||
SET @isGyakorlatVagyElmelet = 0
|
||||
|
||||
IF(@isGyakorlatiTargyak = 1 AND @isElmeletiTargyak = 1)
|
||||
SET @isGyakorlatVagyElmelet = NULL
|
||||
|
||||
IF(@isGyakorlatiTargyak = 0 AND @isElmeletiTargyak = 0)
|
||||
SET @isGyakorlatVagyElmeletFalse = 0
|
||||
|
||||
--Kezdőoldal
|
||||
SELECT
|
||||
ia.C_NEV IntezmenyNev
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCim
|
||||
,ia.C_OMKOD OMKOD
|
||||
,ia.C_IGAZGATONEVE IntezmenyVezeto
|
||||
,ocs.C_NEV Csoport
|
||||
,ocs.ID CsoportId
|
||||
,ISNULL(f.C_NYOMTATASINEV,'-') CsoportVezeto
|
||||
,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') CsoportNaploLeiras
|
||||
,FORMAT(cs.C_CSOPORTNAPLOMEGNYITASA, 'yyyy. MMMM dd.', 'hu-hu') Megnyitas
|
||||
,ISNULL(FORMAT(cs.C_CSOPORTNAPLOZARASA, 'yyyy. MMMM dd.', 'hu-hu'),'-') Lezaras
|
||||
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
|
||||
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
|
||||
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,cs.C_TIPUSA CsoportTipusa
|
||||
FROM T_INTEZMENY_OSSZES i
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.c_intezmenyid = i.id
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.c_intezmenyid = i.id AND ocs.c_tanevid = @tanevid
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.id = ocs.id
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id=cs.c_csoportvezetoid
|
||||
WHERE
|
||||
i.id = @intezmenyid
|
||||
AND ia.c_tanevid = @tanevid
|
||||
AND ocs.id = @csoportId
|
||||
|
||||
--Csoportot vezette
|
||||
SELECT
|
||||
ISNULL(felhasznaloNev.C_NYOMTATASINEV,'-') CsoportVezeto
|
||||
,csoport.C_CSOPORTVEZETOID CsoportVezetoId
|
||||
FROM T_CSOPORT_OSSZES csoport
|
||||
INNER JOIN
|
||||
T_FELHASZNALO_OSSZES felhasznaloNev ON felhasznaloNev.id = csoport.C_CSOPORTVEZETOID
|
||||
WHERE
|
||||
csoport.id = @csoportId
|
||||
|
||||
--Tanulók
|
||||
SELECT
|
||||
TanuloId Id
|
||||
,TanuloCsoportId
|
||||
,Sorszam
|
||||
,TorzslapSzam
|
||||
,OktAzon
|
||||
,TajSzam
|
||||
,AnyjaNeve
|
||||
,SzulHely
|
||||
,SzulIdo
|
||||
,SocAdat
|
||||
,Kepzes
|
||||
,TanuloNeve
|
||||
,Allampolgarsaga
|
||||
,DiakIgazolvanySzam
|
||||
,KilepesDatum
|
||||
,BeirasiNaploSorszam
|
||||
,AdottOsztaly Osztaly
|
||||
,AdottOsztalyId OsztalyId
|
||||
,CONVERT(DATE, LEFT(BelepesDatum, LEN(BelepesDatum) - 1), 102) AS BelepesDatum
|
||||
INTO #studentsWithTanuloCsoport
|
||||
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId)
|
||||
|
||||
SELECT
|
||||
Id
|
||||
,Osztaly
|
||||
,OktAzon
|
||||
,TanuloNeve Nev
|
||||
,BelepesDatum AS BelepesDatum
|
||||
FROM #studentsWithTanuloCsoport
|
||||
|
||||
SELECT DISTINCT
|
||||
Id
|
||||
INTO #students
|
||||
FROM #studentsWithTanuloCsoport
|
||||
|
||||
--Napló adatok
|
||||
DECLARE @TanitasiNapTipusok TABLE (Id INT)
|
||||
INSERT INTO @TanitasiNapTipusok
|
||||
SELECT DISTINCT ID FROM T_DICTIONARYITEMBASE_OSSZES WHERE ID IN (1385, 1393, 1394, 1395, 1400, 1402, 1403, 1404)
|
||||
|
||||
DECLARE @ElsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F')
|
||||
DECLARE @UtolsoNapTanevRendje DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
|
||||
DECLARE @ElsoNapTanev DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
|
||||
DECLARE @UtolsoNapTanev DATE = (SELECT TOP 1 C_UTOLSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @tanevId AND TOROLT = 'F')
|
||||
|
||||
DECLARE @isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @csoportId)
|
||||
DECLARE @VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
|
||||
|
||||
DECLARE @NapSorszam TABLE (Datum DATE, Sorszam NVARCHAR(4))
|
||||
INSERT INTO @NapSorszam
|
||||
SELECT
|
||||
C_NAPDATUMA
|
||||
,CAST(DENSE_RANK() OVER(ORDER BY C_NAPDATUMA) AS NVARCHAR(4))
|
||||
FROM T_NAPTARINAP_OSSZES
|
||||
WHERE
|
||||
C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
AND C_NAPTIPUSA IN (SELECT Id FROM @TanitasiNapTipusok)
|
||||
AND C_NAPDATUMA <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)
|
||||
|
||||
DECLARE @datum DATE = GETDATE()
|
||||
|
||||
CREATE TABLE #OraSorszam (TanitasioraId INT PRIMARY KEY, OraSorszam INT)
|
||||
|
||||
INSERT INTO #OraSorszam
|
||||
EXEC sp_GetOraSorszamByOsztaly
|
||||
@osztalyCsoportId = @csoportId,
|
||||
@datum = @datum,
|
||||
@intezmenyId = @intezmenyId,
|
||||
@tanevId = @tanevId
|
||||
|
||||
SELECT
|
||||
tao.Id TanitasioraId
|
||||
,tao.C_DATUM Datum
|
||||
,CONVERT(VARCHAR(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(VARCHAR(5), tao.C_ORAVEGE, 108) KezdetVeg
|
||||
,C_ORATULAJDONOSID PedagogusId
|
||||
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, pedagogus.C_NYOMTATASINEV) PedagogusNev
|
||||
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-'), '-') OraSorszam
|
||||
,IIF(C_MEGTARTOTT = 'T', REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') Tema
|
||||
,IIF(C_MEGTARTOTT = 'T', ISNULL(CONVERT(NVARCHAR(MAX), OraSorszam),'-') +'.: ' + REPLACE(REPLACE(C_TEMA, CHAR(0x0007),''), CHAR(0x000B), ''), 'Elmaradt') TemaOraSzammal
|
||||
,tao.C_HETNAPJA HetNapja
|
||||
,C_HETSORSZAMA HetSorszama
|
||||
,C_MEGTARTOTT Megtartott
|
||||
,C_TANTARGYID TantargyId
|
||||
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) Tantargynev
|
||||
,C_OSZTALYCSOPORTID OsztalyCsoportId
|
||||
,C_NAPSORSZAMA NapSorszama
|
||||
,C_ORAKEZDETE Kezdete
|
||||
INTO #megtartottOrak
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_FELHASZNALO_OSSZES pedagogus ON pedagogus.Id = tao.C_TANARID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.Id = tao.C_HELYETTESITOTANARID
|
||||
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID AND (tantargy.C_GYAKORLATI = CASE @isGyakorlatVagyElmelet
|
||||
WHEN 1 THEN 'T'
|
||||
WHEN 0 THEN 'F'
|
||||
END OR @isGyakorlatVagyElmelet IS NULL)
|
||||
LEFT JOIN (SELECT DISTINCT OraSorszam, TanitasioraId FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = tao.Id
|
||||
WHERE
|
||||
C_OSZTALYCSOPORTID = @csoportId
|
||||
AND tao.TOROLT = 'F'
|
||||
|
||||
CREATE TABLE #hetek (
|
||||
Het int
|
||||
,HetEleje nvarchar(11)
|
||||
,HetVege nvarchar(11)
|
||||
,IsSzombatiMulasztas bit
|
||||
,IsVasarnapiMulasztas bit
|
||||
,PRIMARY KEY (Het)
|
||||
)
|
||||
|
||||
INSERT INTO #Hetek
|
||||
SELECT
|
||||
nn.C_HETSORSZAMA
|
||||
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.')
|
||||
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.')
|
||||
,0 --default
|
||||
,0 --default
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
WHERE
|
||||
nn.C_NAPDATUMA BETWEEN ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND IIF(@isVegzos = 'T', COALESCE(@VegzosUtolsoNap,@UtolsoNapTanevRendje, @UtolsoNapTanev), ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev))
|
||||
AND nn.C_HETNAPJA BETWEEN 1407 AND 1413
|
||||
AND nn.TOROLT='F'
|
||||
AND nn.c_tanevId = @tanevId
|
||||
GROUP BY nn.C_HETSORSZAMA
|
||||
ORDER BY MIN(nn.C_NAPDATUMA)
|
||||
|
||||
/* Naplo */
|
||||
-- Hétfőtől vasárnapig kellenek, mert ez csak segédtábla
|
||||
SELECT DISTINCT
|
||||
nn.C_HETSORSZAMA Het
|
||||
,NapDictionary.C_NAME Nap
|
||||
,FORMAT(nn.C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') Datum
|
||||
,nn.C_NAPDATUMA
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
LEFT JOIN T_TANITASIORA_OSSZES tao ON tao.c_datum = nn.c_napdatuma AND tao.c_osztalycsoportid = @csoportid AND tao.torolt = 'F'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES NapDictionary ON NapDictionary.id = nn.C_ALAPHETNAPJA AND NapDictionary.C_TANEVID = @tanevId
|
||||
WHERE nn.c_napdatuma >= ISNULL(@ElsoNapTanevRendje, @ElsoNapTanev) AND nn.c_napdatuma <= ISNULL(@UtolsoNapTanevRendje, @UtolsoNapTanev)
|
||||
ORDER BY nn.C_HETSORSZAMA, nn.C_NAPDATUMA
|
||||
|
||||
SELECT
|
||||
mto.Datum C_NAPDATUMA
|
||||
,FORMAT(mto.Datum, 'dddd', 'hu-hu') Napneve
|
||||
,null C_MEGJEGYZES
|
||||
,nh.C_HETKEZDONAPJA C_HETKEZDONAPJA
|
||||
,nh.C_HETUTOLSONAPJA C_HETUTOLSONAPJA
|
||||
,HetSorszama C_HETSORSZAMA
|
||||
,KezdetVeg KezdetVeg
|
||||
,nsz.Sorszam Napszam
|
||||
,Tantargynev Tantargy
|
||||
,PedagogusNev Tanar
|
||||
,Tema Oraanyaga
|
||||
,OraSorszam C_ORAEVESSORSZAM
|
||||
,Kezdete Kezdete
|
||||
INTO #szoveges
|
||||
FROM #megtartottOrak mto
|
||||
INNER JOIN T_NAPTARIHET_OSSZES nh ON Datum BETWEEN nh.C_HETKEZDONAPJA AND nh.C_HETUTOLSONAPJA AND nh.C_TANEVID = @tanevId and nh.torolt='F'
|
||||
LEFT JOIN @NapSorszam nsz ON nsz.Datum = mto.Datum
|
||||
|
||||
/* NaploAdatok */
|
||||
IF(@isGyakorlatVagyElmeletFalse IS NULL) BEGIN
|
||||
IF((@isGyakorlatVagyElmelet = 1) OR (@isGyakorlatVagyElmelet = 0) OR (@isGyakorlatVagyElmelet IS NULL)) BEGIN
|
||||
SELECT DISTINCT
|
||||
FORMAT(C_NAPDATUMA, 'yyyy. MMMM dd.', 'hu-hu') Datum
|
||||
, napneve
|
||||
, c_megjegyzes
|
||||
, c_hetkezdonapja
|
||||
, c_hetutolsonapja
|
||||
, c_hetsorszama
|
||||
, KezdetVeg
|
||||
, napszam
|
||||
, STUFF((SELECT ' | ' + CAST(bszov.TANTARGY AS NVARCHAR(max))
|
||||
FROM #szoveges bszov
|
||||
WHERE
|
||||
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
|
||||
and bszov.KezdetVeg=szov.KezdetVeg
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,3,'') TANTARGY
|
||||
, STUFF((SELECT ' | ' + CAST(bszov.TANAR AS NVARCHAR(max))
|
||||
FROM #szoveges bszov
|
||||
WHERE
|
||||
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
|
||||
and bszov.KezdetVeg=szov.KezdetVeg
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,3,'') TANAR
|
||||
, STUFF((SELECT ' | ' + CAST(bszov.ORAANYAGA AS NVARCHAR(max))
|
||||
FROM #szoveges bszov
|
||||
WHERE
|
||||
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
|
||||
and bszov.KezdetVeg=szov.KezdetVeg
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,3,'') ORAANYAGA
|
||||
, STUFF((SELECT ' | ' + CAST(bszov.C_ORAEVESSORSZAM AS NVARCHAR(max))
|
||||
FROM #szoveges bszov
|
||||
WHERE
|
||||
bszov.C_NAPDATUMA=szov.C_NAPDATUMA
|
||||
and bszov.KezdetVeg=szov.KezdetVeg
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,3,'') OraEvesSorszama
|
||||
,Kezdete
|
||||
,C_NAPDATUMA
|
||||
FROM #szoveges szov
|
||||
ORDER BY C_NAPDATUMA, Kezdete
|
||||
END
|
||||
END
|
||||
ELSE IF(@isGyakorlatVagyElmeletFalse = 0) BEGIN
|
||||
SELECT
|
||||
'' Datum, '' napneve, '' c_megjegyzes, '' c_hetkezdonapja, '' c_hetutolsonapja, '' c_hetsorszama, '' KezdetVeg, '' napszam, '' TANTARGY,'' TANAR,'' ORAANYAGA,'' OraEvesSorszama,'' Kezdete
|
||||
END
|
||||
|
||||
CREATE TABLE #hianyzasok (
|
||||
C_HETSORSZAMA int
|
||||
,C_NYOMTATASINEV nvarchar(255)
|
||||
,TanuloId int
|
||||
,Hetfo nvarchar(128)
|
||||
,Kedd nvarchar(128)
|
||||
,Szerda nvarchar(128)
|
||||
,Csutortok nvarchar(128)
|
||||
,Pentek nvarchar(128)
|
||||
,Szombat nvarchar(128)
|
||||
,Vasarnap nvarchar(128)
|
||||
,Primary Key (C_HETSORSZAMA, TanuloId)
|
||||
)
|
||||
/*Hiányzások*/
|
||||
INSERT INTO #hianyzasok
|
||||
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, TanuloId,
|
||||
MAX([1]) AS [Hetfo], MAX([2]) AS [Kedd], MAX([3]) AS [Szerda],
|
||||
MAX([4]) AS [Csutortok], MAX([5]) AS [Pentek],
|
||||
MAX([6]) AS [Szombat], MAX([7]) AS [Vasarnap]
|
||||
FROM (
|
||||
SELECT C_HETSORSZAMA, C_NYOMTATASINEV, C_ORATANULOIID as TanuloId, [1], [2], [3], [4], [5], [6], [7]
|
||||
FROM (
|
||||
SELECT DISTINCT n.C_NAPTARINAPID, DATEPART(dw,n.C_DATUM) AS NAP, t.C_NYOMTATASINEV, C_ORATANULOIID, n.C_HETSORSZAMA,
|
||||
'[' + STUFF((
|
||||
SELECT ', ' + CAST(OraSorszam AS VARCHAR(3)) + IIF(tm.C_TIPUS = 1499, '(k)','')
|
||||
FROM T_TANULOMULASZTAS_OSSZES tm
|
||||
INNER JOIN T_TANITASIORA_OSSZES o ON o.ID = tm.C_TANITASIORAKID
|
||||
INNER JOIN #students s ON s.Id = tm.C_ORATANULOIID
|
||||
LEFT JOIN (SELECT DISTINCT * FROM #OraSorszam) oraSorszam ON oraSorszam.TanitasioraId = O.Id
|
||||
WHERE n.C_NAPTARINAPID = o.C_NAPTARINAPID
|
||||
AND m.C_ORATANULOIID = tm.C_ORATANULOIID
|
||||
AND tm.C_TANEVID = @tanevId
|
||||
AND tm.torolt='F' AND o.c_tanevId=@tanevId
|
||||
AND o.TOROLT = 'F'
|
||||
AND tm.C_TIPUS IN (1499, 1500)
|
||||
AND o.C_OSZTALYCSOPORTID = @csoportId
|
||||
ORDER BY o.C_NAPTARINAPID, o.C_ORASZAM
|
||||
FOR XML PATH(''), TYPE).value('.', 'varchar(max)'),1,2,'') + '] ' + CAST(SUM(IIF(m.C_IGAZOLT = 'T', 1, 0)) AS varchar(2)) + '/' + CAST(SUM(IIF(m.C_IGAZOLT = 'F', 1, 0)) AS varchar(2)) AS hianyzas
|
||||
FROM T_TANITASIORA_OSSZES n
|
||||
INNER JOIN T_TANULOMULASZTAS_OSSZES m ON m.C_TANITASIORAKID = n.ID and m.torolt='F'
|
||||
INNER JOIN #students s ON s.Id = m.C_ORATANULOIID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES t ON t.ID = m.C_ORATANULOIID
|
||||
WHERE
|
||||
n.C_TANEVID = @tanevId
|
||||
AND m.C_TANEVID = @tanevId
|
||||
AND (@iskolaErdekuSzamit = 1 OR C_IGAZOLASTIPUSA <> 1533)
|
||||
and m.C_TIPUS IN (1499, 1500)
|
||||
and n.TOROLT = 'F'
|
||||
AND n.C_OSZTALYCSOPORTID = @csoportId
|
||||
GROUP BY n.C_NAPTARINAPID, C_ORATANULOIID, C_NYOMTATASINEV, n.C_HETSORSZAMA, n.C_DATUM) AS SUB
|
||||
PIVOT
|
||||
(
|
||||
MAX(HIANYZAS)
|
||||
FOR NAP IN ([1], [2], [3], [4], [5], [6], [7])
|
||||
) AS PivotTable
|
||||
) AS ASD
|
||||
GROUP BY C_HETSORSZAMA, C_NYOMTATASINEV, TanuloId
|
||||
|
||||
UPDATE #hetek SET #hetek.IsSzombatiMulasztas=h.Sz, #hetek.IsVasarnapiMulasztas=h.V
|
||||
FROM (SELECT C_HETSORSZAMA AS hetsorszama
|
||||
,(CASE WHEN MAX(Szombat) IS NOT NULL THEN 1 ELSE 0 END) AS Sz
|
||||
,(CASE WHEN MAX(Vasarnap) IS NOT NULL THEN 1 ELSE 0 END) AS V
|
||||
FROM #hianyzasok GROUP BY C_HETSORSZAMA) AS h
|
||||
WHERE h.hetsorszama=#hetek.Het
|
||||
|
||||
/* NaploMulasztas */
|
||||
SELECT
|
||||
hi.C_HETSORSZAMA, hi.C_NYOMTATASINEV, hi.Hetfo, hi.Kedd,
|
||||
hi.Szerda, hi.Csutortok, hi.Pentek, hi.Szombat, hi.Vasarnap
|
||||
FROM #hianyzasok hi
|
||||
ORDER BY hi.C_HETSORSZAMA
|
||||
|
||||
/* NaptariHetek */
|
||||
SELECT
|
||||
h.Het, h.HetEleje, h.HetVege, h.IsSzombatiMulasztas, h.IsVasarnapiMulasztas
|
||||
FROM #hetek h
|
||||
ORDER BY h.Het
|
||||
|
||||
/*TANULÓ adatai*/
|
||||
SELECT
|
||||
Id TanuloId
|
||||
,TanuloCsoportId
|
||||
,Sorszam
|
||||
,TorzslapSzam
|
||||
,OktAzon
|
||||
,TajSzam
|
||||
,AnyjaNeve
|
||||
,SzulHely
|
||||
,SzulIdo
|
||||
,SocAdat
|
||||
,Kepzes
|
||||
,TanuloNeve
|
||||
,Allampolgarsaga
|
||||
,DiakIgazolvanySzam
|
||||
,KilepesDatum
|
||||
,BeirasiNaploSorszam
|
||||
,Osztaly
|
||||
,OsztalyId
|
||||
,BelepesDatum
|
||||
FROM #studentsWithTanuloCsoport
|
||||
|
||||
/*TANULÓ elérhetőségei */
|
||||
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
|
||||
INSERT INTO @TanuloCimTable
|
||||
SELECT DISTINCT
|
||||
TanuloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) btemp
|
||||
WHERE
|
||||
temp.TanuloId = btemp.TanuloId
|
||||
AND temp.CimTipusa = btemp.CimTipusa
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
,cimTipusa.C_NAME
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @tanevId, @csoportid) temp
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
|
||||
|
||||
DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa NVARCHAR(MAX))
|
||||
INSERT INTO @GondViseloCimTable
|
||||
SELECT DISTINCT
|
||||
GondviseloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) btemp
|
||||
WHERE
|
||||
temp.GondviseloId = btemp.GondviseloId
|
||||
AND temp.CimTipusa = btemp.CimTipusa
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
,cimTipusa.C_NAME
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @tanevId, @csoportid) temp
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES cimTipusa ON cimTipusa.Id = temp.CimTipusa
|
||||
|
||||
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
|
||||
INSERT INTO @EmailCimTableTemp
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_EMAILCIM
|
||||
,C_GONDVISELOID
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportid, 'T') tanulo
|
||||
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
|
||||
WHERE
|
||||
email.TOROLT = 'F'
|
||||
AND email.C_TANEVID = @tanevId
|
||||
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 (GondviseloId INT, EmailCim NVARCHAR(MAX))
|
||||
INSERT INTO @EmailCimGondviseloTable
|
||||
SELECT DISTINCT
|
||||
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(@tanevId, @csoportid, 'T') tanulo
|
||||
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
|
||||
WHERE
|
||||
telefon.TOROLT = 'F'
|
||||
AND telefon.C_TANEVID = @tanevId
|
||||
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 (GondviseloId INT, Telefon NVARCHAR(MAX))
|
||||
INSERT INTO @GondviseloTelefonTable
|
||||
SELECT DISTINCT
|
||||
GondviseloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM @TelefonTableTemp btemp
|
||||
WHERE
|
||||
temp.GondviseloId = btemp.GondviseloId
|
||||
AND temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
AND GondviseloId IS NOT NULL
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
FROM @TelefonTableTemp temp
|
||||
WHERE
|
||||
GondviseloId IS NOT NULL
|
||||
|
||||
SELECT
|
||||
s.Id tanuloid
|
||||
,cim.Cimtipusa cimtipus
|
||||
,cim.Cim
|
||||
,email.EmailCim email
|
||||
,telefon.Telefon telefonszam
|
||||
FROM #students s
|
||||
LEFT JOIN @TanuloCimTable cim ON cim.FelhasznaloId = s.Id
|
||||
LEFT JOIN @EmailCimTanuloTable email ON email.FelhasznaloId = s.Id
|
||||
LEFT JOIN @TanuloTelefonTable telefon ON telefon.FelhasznaloId = s.Id
|
||||
ORDER BY Cimtipusa
|
||||
|
||||
/* TANULO mulasztása */
|
||||
DECLARE @Mulasztasok TABLE ( IgazoltE nvarchar(1), Tanulo int, Tipus int)
|
||||
|
||||
--Félév kezdete
|
||||
DECLARE @FelevVege DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES tr WHERE C_NAPTIPUSA = 1400 AND C_TANEVID=@tanevId AND TOROLT = 'F')
|
||||
|
||||
SELECT
|
||||
DATEPART(MONTH, Datum) Honap
|
||||
,TantargyId Id
|
||||
,Igazolt IgazoltE
|
||||
,TanuloId TanuloId
|
||||
,TanuloCsoportId TanuloCsoportId
|
||||
,IgazolasTipusa IgazolasTipus
|
||||
,Datum Datum
|
||||
,Tipusa Tipus
|
||||
,KesesPercben KesesPercben
|
||||
,HetSorszama HetSorszama
|
||||
,Oraszam Oraszam
|
||||
,CAST(DATEPART(MONTH, Datum) AS NVARCHAR(10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') ElmeletGyakorlat
|
||||
,C_GYAKORLATI isGyakorlat
|
||||
INTO #mulasztasTmp
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
|
||||
|
||||
|
||||
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
|
||||
@tanevId = @tanevId,
|
||||
@osztalyCsoportId = @csoportId,
|
||||
@iskolaErdekuSzamit = @iskolaErdekuSzamit,
|
||||
@isReszletesMulasztasok = @isreszletesmulasztasok
|
||||
|
||||
DECLARE @gondviselok TABLE (Id INT)
|
||||
INSERT INTO @gondviselok
|
||||
SELECT
|
||||
GondviseloId
|
||||
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T')
|
||||
|
||||
/*gondviselő elérhetőségei */
|
||||
|
||||
SELECT DISTINCT
|
||||
Gondviselo.TanuloId TanuloId
|
||||
,Gondviselo.Gondviselonev C_NEV
|
||||
,cim.Cimtipusa C_CIMTIPUSA
|
||||
,cim.cim C_OSSZETETTCIM
|
||||
,telefon.telefon C_TELEFONSZAM
|
||||
,email.emailcim C_EMAILCIM
|
||||
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselo
|
||||
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselo.GondviseloId
|
||||
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselo.GondviseloId
|
||||
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselo.GondviseloId
|
||||
ORDER BY Cimtipusa
|
||||
|
||||
/*TANULÓ osztályzatai*/
|
||||
SELECT
|
||||
Datum
|
||||
,TipusId
|
||||
,TanuloCsoportId
|
||||
,ErtekelesSzoveg
|
||||
,ErtekelesSzovegRovidNev
|
||||
,ErtekelesOsztalyzatId
|
||||
,ErtekelesOsztalyzatValue
|
||||
,ErtekelesOsztalyzatNev
|
||||
,ErtekelesSzazalek
|
||||
,MagatartasOsztalyzatId
|
||||
,MagatartasOsztalyzatNev
|
||||
,MagatartasSzoveg
|
||||
,MagatartasErtekId
|
||||
,MagatartasErtek
|
||||
,SzorgalomOsztalyzatId
|
||||
,SzorgalomOsztalyzatNev
|
||||
,SzorgalomSzoveg
|
||||
,SzorgalomErtekId
|
||||
,SzorgalomErtek
|
||||
,TanuloId
|
||||
,OsztalyCsoportId
|
||||
,TantargyId
|
||||
,TantargyNevZarojellel
|
||||
,TantargyNev
|
||||
,TantargyNevNyomtatvanyban
|
||||
,TargyKategoriaId
|
||||
,FotargyE
|
||||
,FotargyId
|
||||
,Altantargy
|
||||
,ErtekelesTema
|
||||
,Jeloles
|
||||
,JelolesAndErtekelesTema
|
||||
,isMagatartasSzorgalom
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
INTO #ErtekelesekTemp
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @csoportId, DEFAULT, 0, 1, DEFAULT, DEFAULT)
|
||||
WHERE
|
||||
OsztalyCsoportId = @csoportId
|
||||
|
||||
CREATE TABLE #Tantargyak(
|
||||
ID INT
|
||||
,C_FOTARGYID INT
|
||||
,C_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT
|
||||
,C_NEVNYOMTATVANYBAN NVARCHAR(255) COLLATE DATABASE_DEFAULT
|
||||
,C_TARGYKATEGORIA INT
|
||||
,c_tanuloid int
|
||||
,c_tanulocsoportid int
|
||||
,RENDEZ1 int
|
||||
,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT
|
||||
,RENDEZ3 int
|
||||
,RENDEZ4 int
|
||||
,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
);
|
||||
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
@tanevId = @tanevId,
|
||||
@osztalyCsoportId = @csoportid,
|
||||
@ertekelesTipusa = NULL,
|
||||
@csakTanorai = 0,
|
||||
@csakKivlasztottOsztalyCsoport = 1,
|
||||
@atsoroltTanuloErtekelesek = 0,
|
||||
@fuggolegesTantargyak = 0,
|
||||
@intezmenyId = @intezmenyid
|
||||
|
||||
/*Szöveges minősítések*/
|
||||
SELECT
|
||||
a.tanuloId
|
||||
,a.TanuloCsoportId
|
||||
,a.Honap
|
||||
,a.Tantargy
|
||||
,a.Ertekeles
|
||||
,a.Tipus
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
s.Id tanuloId
|
||||
,s.TanuloCsoportId
|
||||
,szoveges.Honap
|
||||
,szoveges.Tantargy
|
||||
,szoveges.Ertekeles
|
||||
,szoveges.Tipus
|
||||
,szoveges.RendezHonap
|
||||
FROM #studentsWithTanuloCsoport s
|
||||
LEFT JOIN (SELECT
|
||||
TanuloId tanuloId
|
||||
,TanuloCsoportId
|
||||
,'['+CONVERT(NVARCHAR(MAX),DATEPART(MONTH, Datum))+'. hónap]' Honap
|
||||
,IIF(TantargyNev <> TantargyNevNyomtatvanyban AND TantargyNevNyomtatvanyban IS NOT NULL, TantargyNevNyomtatvanyban + ' (' + TantargyNev + ')', TantargyNev) Tantargy
|
||||
,ErtekelesSzoveg + Jeloles Ertekeles
|
||||
,ErtekelesTipusDictionary.C_NAME Tipus
|
||||
,CASE
|
||||
WHEN DATEPART(MONTH, Datum) = 1 THEN 5
|
||||
WHEN DATEPART(MONTH, Datum) = 2 THEN 6
|
||||
WHEN DATEPART(MONTH, Datum) = 3 THEN 7
|
||||
WHEN DATEPART(MONTH, Datum) = 4 THEN 8
|
||||
WHEN DATEPART(MONTH, Datum) = 5 THEN 9
|
||||
WHEN DATEPART(MONTH, Datum) = 6 THEN 10
|
||||
WHEN DATEPART(MONTH, Datum) = 7 THEN 11
|
||||
WHEN DATEPART(MONTH, Datum) = 8 THEN 12
|
||||
WHEN DATEPART(MONTH, Datum) = 9 THEN 1
|
||||
WHEN DATEPART(MONTH, Datum) = 10 THEN 2
|
||||
WHEN DATEPART(MONTH, Datum) = 11 THEN 3
|
||||
WHEN DATEPART(MONTH, Datum) = 12 THEN 4
|
||||
END AS RendezHonap
|
||||
FROM #ErtekelesekTemp ErtekelesTemp
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTemp.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @tanevId
|
||||
WHERE
|
||||
ErtekelesSzoveg IS NOT NULL
|
||||
) szoveges on szoveges.TANULOID=s.Id AND s.TanuloCsoportId = szoveges.TanuloCsoportId
|
||||
)a
|
||||
ORDER BY RendezHonap, Tantargy
|
||||
|
||||
SELECT
|
||||
COUNT(distinct Id) TanulokSzama
|
||||
,Osztaly
|
||||
FROM #studentsWithTanuloCsoport
|
||||
GROUP BY Osztaly
|
||||
|
||||
--értékelésekhez tartozó feljegyzések
|
||||
SELECT DISTINCT
|
||||
TanuloId
|
||||
,TanuloCsoportId
|
||||
,STUFF((SELECT DISTINCT ', ' + JelolesAndErtekelesTema
|
||||
FROM #ErtekelesekTemp ErtekelesTemavalOsszefuz
|
||||
WHERE
|
||||
LEN(JelolesAndErtekelesTema) > 0
|
||||
AND ErtekelesTemavalOsszefuz.TanuloId = ErtekelesTemaval.TanuloId
|
||||
AND (ErtekelesTemavalOsszefuz.ErtekelesSzoveg IS NULL AND ErtekelesTemavalOsszefuz.MagatartasSzoveg IS NULL AND ErtekelesTemavalOsszefuz.SzorgalomSzoveg IS NULL)
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,'') JelolesTemaval
|
||||
FROM #ErtekelesekTemp ErtekelesTemaval
|
||||
WHERE
|
||||
LEN(JelolesAndErtekelesTema) > 0
|
||||
AND (ErtekelesTemaval.ErtekelesSzoveg IS NULL AND ErtekelesTemaval.MagatartasSzoveg IS NULL AND ErtekelesTemaval.SzorgalomSzoveg IS NULL)
|
||||
|
||||
--megtartott órák száma
|
||||
SELECT
|
||||
COUNT(TantargyId) TantargyOraszam
|
||||
,Tantargynev TantargyNev
|
||||
INTO #megtartottOrakSzama
|
||||
FROM #megtartottOrak
|
||||
WHERE Megtartott = 'T'
|
||||
GROUP BY TantargyId, TantargyNev
|
||||
|
||||
SELECT DISTINCT
|
||||
SUM(tmp.TantargyOraszam) OsszesTantargySzam
|
||||
,STUFF((
|
||||
SELECT DISTINCT ', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS NVARCHAR(MAX)) + ')'
|
||||
FROM #megtartottOrakSzama btmp
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,'') Tantargyak
|
||||
FROM #megtartottOrakSzama tmp
|
||||
|
||||
-- Csoport tanárai
|
||||
SELECT
|
||||
targy.C_NEV TargyNev
|
||||
,tanar.C_NYOMTATASINEV TanarNev
|
||||
,targykategoria.C_ORDER
|
||||
,tanar.ID TanarId
|
||||
,tanar.C_OKTATASIAZONOSITO TanarOktAzon
|
||||
FROM T_FELHASZNALO_OSSZES tanar
|
||||
INNER JOIN T_FOGLALKOZAS_OSSZES f ON f.C_TANARID = tanar.ID and f.TOROLT='F' and f.C_OSZTALYCSOPORTID = @csoportId
|
||||
INNER JOIN T_TANTARGY_OSSZES targy ON targy.ID = f.C_TANTARGYID and targy.TOROLT='F'
|
||||
INNER JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = targy.C_TARGYKATEGORIA
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES targykategoria ON targykategoria.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND targykategoria.TOROLT = 'F' AND targykategoria.C_TANEVID = @tanevId
|
||||
WHERE tanar.TOROLT = 'F' AND f.TOROLT = 'F'
|
||||
AND tanar.C_INTEZMENYID = @intezmenyid
|
||||
AND tanar.c_tanevId = @tanevId
|
||||
GROUP BY
|
||||
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV, tanar.ID, tanar.C_OKTATASIAZONOSITO
|
||||
ORDER BY
|
||||
C_ORDER, targy.C_NEV, tanar.C_NYOMTATASINEV
|
||||
|
||||
DROP TABLE #megtartottOrakSzama
|
||||
DROP TABLE #students
|
||||
DROP TABLE #Tantargyak
|
||||
END
|
||||
GO
|
@@ -0,0 +1,319 @@
|
||||
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,
|
||||
@nyomtatvanyNyelvEnum INT = 0,
|
||||
@isMuveszetOktatasi BIT = 0,
|
||||
@tanitasiHetekSzamaVegzos INT = 32,
|
||||
@tanitasiHetekSzamaNemVegzos INT = 36,
|
||||
@isAltantargyBeszamitasa 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),
|
||||
TantargyAngolNev NVARCHAR(MAX),
|
||||
TantargyNemetNev NVARCHAR(MAX),
|
||||
TargyKategoriaId INT,
|
||||
FotargyE CHAR(1),
|
||||
Altantargy CHAR(1),
|
||||
FotargyId INT,
|
||||
ErtekelesTema NVARCHAR(MAX),
|
||||
ErtekeloId INT,
|
||||
ErtekelesModjaId INT,
|
||||
IsMagatartasSzorgalom CHAR(1),
|
||||
Jeloles NVARCHAR(MAX),
|
||||
JelolesAndErtekelesTema NVARCHAR(MAX),
|
||||
RENDEZ1 INT,
|
||||
RENDEZ2 NVARCHAR(MAX),
|
||||
RENDEZ3 INT,
|
||||
RENDEZ4 INT,
|
||||
RENDEZ5 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
|
||||
,TantargyAngolNev
|
||||
,TantargyNemetNev
|
||||
,TargyKategoriaId
|
||||
,FotargyE
|
||||
,Altantargy
|
||||
,FotargyId
|
||||
,ErtekelesTema
|
||||
,ErtekeloId
|
||||
,ErtekelesModjaId
|
||||
,IsMagatartasSzorgalom
|
||||
,Jeloles
|
||||
,JelolesAndErtekelesTema
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 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
|
||||
,NULL
|
||||
,NULL
|
||||
,TargyKategoriaId
|
||||
,FotargyE
|
||||
,Altantargy
|
||||
,FotargyId
|
||||
,ErtekelesTema
|
||||
,ErtekeloId
|
||||
,ErtekelesModjaId
|
||||
,IsMagatartasSzorgalom
|
||||
,Jeloles
|
||||
,JelolesAndErtekelesTema
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
FROM fnGetDokumentumErtekelesekMuveszetiOktatasbanOsztalyonkent (@tanevId, @osztalyId, DEFAULT, 0, DEFAULT, 2)
|
||||
END
|
||||
|
||||
--Tanulóhoz kapcsolódó óraszámok
|
||||
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam FLOAT)
|
||||
|
||||
INSERT INTO @Oraszamok
|
||||
SELECT TanuloId, TantargyId, Oraszam FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevId, @osztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
|
||||
|
||||
--É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 FLOAT
|
||||
,RENDEZ1 INT
|
||||
,RENDEZ2 NVARCHAR(MAX)
|
||||
,RENDEZ3 INT
|
||||
,RENDEZ4 INT
|
||||
,RENDEZ5 NVARCHAR(MAX)
|
||||
)
|
||||
|
||||
DECLARE @NyelvesitettMagatartasNev NVARCHAR(MAX) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'MAGATARTAS' WHEN 1 THEN 'Betragen' WHEN 2 THEN 'Conduct' END
|
||||
INSERT INTO #temp
|
||||
SELECT
|
||||
ErtekelesTemp.TanuloId TANULOID
|
||||
,TanuloTable.TanuloCsoportId TanuloCsoportId
|
||||
,@NyelvesitettMagatartasNev TARGY
|
||||
,NULL
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId))), ISNULL(MagatartasSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId))))
|
||||
,NULL
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, MagatartasErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasErtekId))), ISNULL(MagatartasSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, MagatartasOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, MagatartasOsztalyzatId)))) ErtekelesJegyzettel
|
||||
,NULL Oraszam
|
||||
,-2
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,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 --????
|
||||
|
||||
|
||||
DECLARE @NyelvesitettSzorgalomNev NVARCHAR(MAX) = CASE @nyomtatvanyNyelvEnum WHEN 0 THEN 'SZORGALOM' WHEN 1 THEN 'Fleiss' WHEN 2 THEN 'Effort' END
|
||||
INSERT INTO #TEMP
|
||||
SELECT
|
||||
ErtekelesTemp.TanuloId TANULOID
|
||||
,TanuloTable.TanuloCsoportId TanuloCsoportId
|
||||
,@NyelvesitettSzorgalomNev TARGY
|
||||
,NULL
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId))), ISNULL(SzorgalomSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId))))
|
||||
,NULL
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomErtek, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomErtekId))), ISNULL(SzorgalomSzoveg, IIF(@nyomtatvanyNyelvEnum = 0, SzorgalomOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, SzorgalomOsztalyzatId)))) ErtekelesJegyzettel
|
||||
,NULL Oraszam
|
||||
,-1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,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
|
||||
,CASE
|
||||
WHEN @nyomtatvanyNyelvEnum = 0 THEN
|
||||
ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev)
|
||||
WHEN @nyomtatvanyNyelvEnum = 1 THEN
|
||||
ISNULL(TantargyNemetNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
|
||||
WHEN @nyomtatvanyNyelvEnum = 2 THEN
|
||||
ISNULL(TantargyAngolNev, ISNULL(ErtekelesTemp.TantargyNevNyomtatvanyban, ErtekelesTemp.TantargyNev))
|
||||
END TARGY
|
||||
,ErtekelesTemp.ErtekelesTema
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek)))
|
||||
,ErtekelesTemp.ErtekelesOsztalyzatValue
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX), IIF(@nyomtatvanyNyelvEnum = 0, ErtekelesTemp.ErtekelesOsztalyzatNev, [dbo].fnGetDokumentumIdegenNyelv(@nyomtatvanyNyelvEnum, ErtekelesTemp.ErtekelesOsztalyzatId))), ISNULL(ErtekelesTemp.ErtekelesSzoveg, CONVERT(NVARCHAR(MAX),ErtekelesTemp.ErtekelesSzazalek))) + IIF(ErtekelesTemp.ErtekelesTema IS NULL, '', +' * ' + ErtekelesTemp.ErtekelesTema) ErtekelesJegyzettel
|
||||
,Oraszam Oraszam
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
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
|
||||
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
|
||||
,REPLACE(Ertekeles, '(', ' (')
|
||||
,ErtekelesValue
|
||||
,REPLACE(ErtekelesJegyzettel, '(', ' (')
|
||||
,Oraszam
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
FROM #temp
|
||||
ORDER BY RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5
|
||||
END
|
||||
|
||||
GO
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,174 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokJegyeiReszletezes
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanulokJegyeiReszletezes]
|
||||
@OsztalyId INT,
|
||||
@TanevId INT,
|
||||
@isNemet BIT = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT DISTINCT
|
||||
@osztalyId OsztalyId
|
||||
,ocs.C_NEV OsztalyNev
|
||||
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
|
||||
,o.C_OSZTALYFONOKID PartnerID
|
||||
,ofo.C_NYOMTATASINEV Osztalyfonok
|
||||
,i.C_IGAZGATONEVE IntezmenyVezeto
|
||||
,i.C_NEV IntezmenyNeve
|
||||
,i.C_IRANYITOSZAM IntezmenyIranyitoszam
|
||||
,i.C_VAROS IntezmenyVaros
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
|
||||
,i.C_OMKOD IntezmenyOMKod
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
|
||||
WHERE
|
||||
ocs.ID = @osztalyId
|
||||
|
||||
SELECT
|
||||
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
|
||||
,CASE --
|
||||
WHEN (CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)) IS NOT NULL --
|
||||
OR ErtekelesSzoveg IS NOT NULL --
|
||||
OR ErtekelesSzazalek IS NOT NULL) --
|
||||
THEN TantargyNevZarojellel --
|
||||
WHEN (CAST(MagatartasOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL --
|
||||
OR MagatartasErtek IS NOT NULL --
|
||||
OR MagatartasSzoveg IS NOT NULL) --
|
||||
THEN 'Magatartás' --
|
||||
WHEN (CAST(SzorgalomOsztalyzatNev AS NVARCHAR(MAX)) IS NOT NULL --
|
||||
OR SzorgalomErtek IS NOT NULL --
|
||||
OR SzorgalomSzoveg IS NOT NULL) --
|
||||
THEN 'Szorgalom' --
|
||||
END AS Tantargy
|
||||
,ErtekelesTipusDictionary.C_NAME ErtTip
|
||||
,ErtekelesModjaDictionary.C_NAME ErtMod
|
||||
,ErtekelesTable.ErtekelesTema Tema
|
||||
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
|
||||
,COALESCE(
|
||||
CAST(ErtekelesTable.ErtekelesOsztalyzatValue AS NVARCHAR(MAX))
|
||||
,ErtekelesTable.ErtekelesSzoveg
|
||||
,ErtekelesTable.ErtekelesSzazalek
|
||||
,ErtekelesTable.MagatartasOsztalyzatNev
|
||||
,ErtekelesTable.MagatartasErtek
|
||||
,ErtekelesTable.MagatartasSzoveg
|
||||
,ErtekelesTable.SzorgalomOsztalyzatNev
|
||||
,ErtekelesTable.SzorgalomErtek
|
||||
,ErtekelesTable.SzorgalomSzoveg
|
||||
) Osztalyzat
|
||||
,TanuloNeve.C_NYOMTATASINEV TanuloNev
|
||||
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
|
||||
,Tanulok.TanuloId AS TanuloId
|
||||
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
|
||||
,ErtekelesTable.ErtekeloId AS ErtekeloId
|
||||
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
|
||||
,@OsztalyId AS OsztalyId
|
||||
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
|
||||
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'F'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
|
||||
,'Magatartás' Tantargy
|
||||
,ErtekelesTipusDictionary.C_NAME ErtTip
|
||||
,ErtekelesModjaDictionary.C_NAME ErtMod
|
||||
,ErtekelesTema Tema
|
||||
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
|
||||
,COALESCE(
|
||||
ErtekelesTable.MagatartasOsztalyzatNev
|
||||
,ErtekelesTable.MagatartasErtek
|
||||
,ErtekelesTable.MagatartasSzoveg
|
||||
) Osztalyzat
|
||||
,TanuloNeve.C_NYOMTATASINEV TanuloNev
|
||||
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
|
||||
,Tanulok.TanuloId AS TanuloId
|
||||
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
|
||||
,ErtekelesTable.ErtekeloId AS ErtekeloId
|
||||
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
|
||||
,@OsztalyId AS OsztalyId
|
||||
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
|
||||
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
|
||||
WHERE
|
||||
MagatartasOsztalyzatNev IS NOT NULL OR MagatartasErtek IS NOT NULL OR MagatartasSzoveg IS NOT NULL
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
dbo.fnGetDokumentumDatumFormatum(Datum) Datum
|
||||
,'Szorgalom' Tantargy
|
||||
,ErtekelesTipusDictionary.C_NAME ErtTip
|
||||
,ErtekelesModjaDictionary.C_NAME ErtMod
|
||||
,ErtekelesTema Tema
|
||||
,ErtekeloNeve.C_NYOMTATASINEV ErtekeloNev
|
||||
,COALESCE(
|
||||
ErtekelesTable.SzorgalomOsztalyzatNev
|
||||
,ErtekelesTable.SzorgalomErtek
|
||||
,ErtekelesTable.SzorgalomSzoveg
|
||||
) Osztalyzat
|
||||
,TanuloNeve.C_NYOMTATASINEV TanuloNev
|
||||
,TanuloNeve.C_NYOMTATASINEV + CAST(Tanulok.TanuloId AS NVARCHAR(MAX)) GroupParameter
|
||||
,Tanulok.TanuloId AS TanuloId
|
||||
,TanuloNeve.C_OKTATASIAZONOSITO AS TanuloOktAzon
|
||||
,ErtekelesTable.ErtekeloId AS ErtekeloId
|
||||
,ErtekeloNeve.C_OKTATASIAZONOSITO AS ErtekeloOktAzon
|
||||
,@OsztalyId AS OsztalyId
|
||||
,dbo.fnGetDokumentumDatumFormatum(ErtekelesTable.RogzitesDatum) AS RogzitesDatum
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'F') AS Tanulok
|
||||
LEFT JOIN fnGetDokumentumErtekelesekOsztalyonkent(@TanevId, @OsztalyId, DEFAULT, 0, DEFAULT, DEFAULT, DEFAULT) ErtekelesTable ON ErtekelesTable.TanuloId = Tanulok.TanuloId AND ErtekelesTable.IsMagatartasSzorgalom = 'T'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesTipusDictionary ON ErtekelesTipusDictionary.ID = ErtekelesTable.TipusId AND ErtekelesTipusDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ErtekelesModjaDictionary ON ErtekelesModjaDictionary.ID = ErtekelesTable.ErtekelesModjaId AND ErtekelesModjaDictionary.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ErtekeloNeve ON ErtekeloNeve.Id = ErtekelesTable.ErtekeloId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES TanuloNeve ON TanuloNeve.Id = Tanulok.TanuloId
|
||||
WHERE
|
||||
SzorgalomOsztalyzatNev IS NOT NULL OR SzorgalomErtek IS NOT NULL OR SzorgalomSzoveg IS NOT NULL
|
||||
ORDER BY TanuloNeve.C_NYOMTATASINEV, Datum
|
||||
|
||||
/* Osztály adatok */
|
||||
SELECT
|
||||
o.ID AS OsztalyId
|
||||
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
|
||||
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
||||
,o.C_KEPZESIFORMA AS KepzesiForma
|
||||
,o.C_OSZTALYFONOKID AS OsztalyfonokId
|
||||
,o.C_TANTERVID AS TantervId
|
||||
,o.C_SZAKMACSOPORT AS SzakmaCsoport
|
||||
,o.C_AGAZAT AS Agazat
|
||||
,o.C_SZAKKEPESITES AS Szakkepesites
|
||||
,o.C_RESZSZAKKEPESITES AS Reszszakkepesites
|
||||
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
|
||||
,o.C_NEMZETISEGI OJNemzetisegi
|
||||
,o.C_KETTANNYELVU OJKettannyelvu
|
||||
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
|
||||
,o.C_LOGOPEDIAI OJLogopediai
|
||||
,o.C_SPORT OJSportOsztaly
|
||||
,o.C_AJPROGRAM OJAranyJanosProgram
|
||||
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
|
||||
FROM T_OSZTALY_OSSZES AS o
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
|
||||
WHERE o.ID = @OsztalyId
|
||||
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,159 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS dbo.sp_GetUzenofuzetErtekelolap
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetUzenofuzetErtekelolap]
|
||||
@osztalyId INT,
|
||||
@tanevId INT,
|
||||
@intezmenyId INT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Intézmény, tanév
|
||||
SELECT T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
|
||||
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
|
||||
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
|
||||
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
|
||||
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
|
||||
T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod,
|
||||
T_INTEZMENYADATOK_OSSZES.C_IGAZGATONEVE Intezmenyvezeto,
|
||||
(SELECT C_OSZTALYFONOKID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @osztalyId AND T_OSZTALY_OSSZES.C_ALTANEVID = @tanevId AND T_OSZTALY_OSSZES.TOROLT = 'F') PartnerID,
|
||||
T_TANEV_OSSZES.C_NEV TANEV
|
||||
,@osztalyId AS OsztalyId
|
||||
FROM T_INTEZMENYADATOK_OSSZES
|
||||
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID AND T_TANEV_OSSZES.C_INTEZMENYID = T_INTEZMENYADATOK_OSSZES.C_INTEZMENYID AND T_TANEV_OSSZES.TOROLT = 'F'
|
||||
WHERE
|
||||
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
|
||||
AND T_TANEV_OSSZES.ID = @tanevId
|
||||
|
||||
--Osztály, évfolyam
|
||||
SELECT ocs.C_NEV,
|
||||
ocs.C_EVFOLYAMTIPUSA,
|
||||
f.C_NYOMTATASINEV Osztalyfonok
|
||||
,ocs.ID AS OsztalyId
|
||||
,f.ID AS OsztalyfonokId
|
||||
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
|
||||
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
|
||||
,o.C_TANTERVID TantervId
|
||||
,o.C_KEPZESIFORMA KepzesiForma
|
||||
,o.C_AGAZAT Agazat
|
||||
,o.C_SZAKMACSOPORT SzakmaCsoport
|
||||
,o.C_SZAKKEPESITES Szakkepesites
|
||||
,o.C_RESZSZAKKEPESITES Reszszakkepesites
|
||||
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
|
||||
,o.C_NEMZETISEGI OJNemzetisegi
|
||||
,o.C_KETTANNYELVU OJKettannyelvu
|
||||
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
|
||||
,o.C_LOGOPEDIAI OJLogopediai
|
||||
,o.C_SPORT OJSportOsztaly
|
||||
,o.C_AJPROGRAM OJAranyJanosProgram
|
||||
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
|
||||
FROM T_OSZTALYCSOPORT_OSSZES AS ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES AS o ON ocs.id = o.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES AS f ON f.id = o.c_osztalyfonokid
|
||||
WHERE ocs.TOROLT='F'
|
||||
AND ocs.ID = @osztalyId
|
||||
AND ocs.C_TANEVID = @tanevId
|
||||
|
||||
|
||||
--Tanuló adatai
|
||||
SELECT
|
||||
TanuloId Id
|
||||
,TanuloCsoportId TanuloCsoportId
|
||||
,OsztalyTanuloi.BelepesDatum BelepesDatum
|
||||
,OsztalyTanuloi.KilepesDatum KilepesDatum
|
||||
INTO #studentsWithTanuloCsoport
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') OsztalyTanuloi
|
||||
|
||||
SELECT
|
||||
T_FELHASZNALO_OSSZES.ID TanuloId,
|
||||
TanuloCsoportId,
|
||||
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TANULONEV,
|
||||
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO OKTATASIAZONOSITO
|
||||
,@osztalyId AS OsztalyId
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN #studentsWithTanuloCsoport Tanulok ON Tanulok.Id = T_FELHASZNALO_OSSZES.Id
|
||||
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
|
||||
|
||||
SELECT
|
||||
Datum
|
||||
,TipusId
|
||||
,ErtekelesSzoveg
|
||||
,ErtekelesSzovegRovidNev
|
||||
,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
|
||||
,RENDEZ1
|
||||
,RENDEZ2
|
||||
,RENDEZ3
|
||||
,RENDEZ4
|
||||
,RENDEZ5
|
||||
INTO #ErtekelesekTemp
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent (@tanevId, @osztalyId, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
|
||||
|
||||
CREATE TABLE #Tantargyak(
|
||||
ID INT
|
||||
,C_FOTARGYID INT
|
||||
,C_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT
|
||||
,C_NEVNYOMTATVANYBAN NVARCHAR(255) COLLATE DATABASE_DEFAULT
|
||||
,C_TARGYKATEGORIA INT
|
||||
,c_tanuloid int
|
||||
,c_tanulocsoportid int
|
||||
,RENDEZ1 int
|
||||
,RENDEZ2 nvarchar(255) COLLATE DATABASE_DEFAULT
|
||||
,RENDEZ3 int
|
||||
,RENDEZ4 int
|
||||
,RENDEZ5 nvarchar(255) COLLATE DATABASE_DEFAULT
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
);
|
||||
EXEC sp_GetDokumentumErtekelesekIdoszakonkent
|
||||
@tanevId = @tanevId,
|
||||
@osztalyCsoportId = @osztalyId,
|
||||
@ertekelesTipusa = NULL,
|
||||
@csakTanorai = 1,
|
||||
@csakKivlasztottOsztalyCsoport = 0,
|
||||
@atsoroltTanuloErtekelesek = 0,
|
||||
@fuggolegesTantargyak = 0,
|
||||
@isMegjegyzesMegjelenjen = 0,
|
||||
@intezmenyId = @intezmenyId
|
||||
|
||||
DROP TABLE #studentsWithTanuloCsoport
|
||||
DROP TABLE #Tantargyak
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,349 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
|
||||
@pTanevId INT,
|
||||
@pOsztalyId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pErtekelestipusaId INT,
|
||||
@pLezaroNaptipusId INT,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pTanoraiDicseretTipusId INT = 1536, -- Tanórai dicséret
|
||||
@pFelszereleshianyTipusId INT = 6324, -- Felszereléshiány
|
||||
@pHaziFeladatHianyTipusId INT = 6325, -- Házi feladat hiány
|
||||
@pAtsoroltTanuloAdatok INT = 1,
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Const
|
||||
DECLARE @ElsoFelveVege INT = 1400
|
||||
DECLARE @IneVege INT = 1403
|
||||
DECLARE @IIIneVege INT = 1404
|
||||
DECLARE @UtolsoTanitasiNap INT = 1395
|
||||
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
|
||||
|
||||
DECLARE @kesespercHianyzashoz INT = 45
|
||||
DECLARE @kesespercGyakHianyzashoz INT = 45
|
||||
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
|
||||
--Iskolaerdeku tavollet szamit
|
||||
DECLARE @iskolaErdekuSzamit BIT = [dbo].fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
|
||||
|
||||
--Osztaly jellemzo
|
||||
DECLARE @keresztFeleves BIT = (SELECT IIF(C_KERESZTFELEVES = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
|
||||
DECLARE @vegzosEvfolyamu BIT = (SELECT IIF(C_VEGZOSEVFOLYAM = 'T', 1, 0) FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
|
||||
|
||||
--Osztalyjellemzok alapjan a lezaro naptipus csereje
|
||||
SET @pLezaroNaptipusId = (
|
||||
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
|
||||
END)
|
||||
)
|
||||
|
||||
CREATE TABLE #aktualisOsztalyCsoportok (OSZTALYCSOPORTID INT);
|
||||
CREATE TABLE #osztalyTanulok (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
CREATE TABLE #szurtErtekeles (
|
||||
T_TANULOERTEKELES_ID INT PRIMARY KEY, C_TANULOID INT, ERTEKELES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELES_SZOVEG_MEGJEGYZES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, C_ERTEKELESDATUM DATETIME,
|
||||
C_TANTARGYID INT, TANTARGY_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, T_TANTARGY_C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT, C_OSZTALYCSOPORTID INT
|
||||
);
|
||||
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, C_TANULOID INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT, HOZOTTIGAZOLTMULTASZTASOK_SZAMA INT, HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA INT);
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
(SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
GETDATE())
|
||||
);
|
||||
|
||||
IF @pAtsoroltTanuloAdatok = 0
|
||||
BEGIN
|
||||
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
--WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
|
||||
END
|
||||
ELSE IF @pAtsoroltTanuloAdatok = 1
|
||||
BEGIN
|
||||
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
--WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
|
||||
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))));
|
||||
END
|
||||
-- TANULÓK
|
||||
INSERT INTO #osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM)
|
||||
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES
|
||||
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
|
||||
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
|
||||
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId;
|
||||
|
||||
-- OSZTÁLY
|
||||
SELECT T_OSZTALY_OSSZES.ID, C_NEV, C_VEGZOSEVFOLYAM, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV, C_OSZTALYNAPLOMEGNYITASA, C_OSZTALYNAPLOZARASA, C_OSZTALYFONOKID
|
||||
FROM T_OSZTALY_OSSZES
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ON T_OSZTALY_OSSZES.C_OSZTALYFONOKID = T_FELHASZNALO_OSSZES.ID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES ON T_FELADATELLATASIHELY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID
|
||||
WHERE T_OSZTALYCSOPORT_OSSZES.ID = @pOsztalyId;
|
||||
|
||||
--TANULÓK LISTA
|
||||
SELECT T_FELHASZNALO_OSSZES.ID AS C_TANULOID, T_FELHASZNALO_OSSZES.C_NYOMTATASINEV AS TANULONEV, T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE, T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO AS OKTATASIAZONOSITO, BELEPESDATUM, KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV;
|
||||
-- ÉRTÉKELÉS
|
||||
INSERT INTO #szurtErtekeles (T_TANULOERTEKELES_ID, C_TANULOID, ERTEKELES, ERTEKELES_SZOVEG_MEGJEGYZES, C_ERTEKELESDATUM, C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN, C_OSZTALYCSOPORTID)
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId), TanuloId
|
||||
,COALESCE(CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)),
|
||||
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
|
||||
ErtekelesSzazalek)
|
||||
,COALESCE(ErtekelesSzoveg, ErtekelesTema, ''), Datum,TantargyId, COALESCE(TantargyNevNyomtatvanyban, TantargyNev) AS TANTARGY_NEV, TARGYKATEG.C_NAME, TARGYKATEG.C_VALUE, FotargyE, Altantargy, OsztalyCsoportId
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
|
||||
-- TANTÁRGYAK (TANTÁRGYFELOSZTÁS, ÉRTÉKELÉS)
|
||||
SELECT DISTINCT C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM (
|
||||
SELECT DISTINCT C_TANTARGYID, COALESCE(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN #aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND (TANTARGY.C_FOTARGYE = 'T' OR C_ALTANTARGYKENTNYOMTATVANYBAN = 'T')
|
||||
UNION
|
||||
SELECT DISTINCT C_TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE AS C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN AS C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM #szurtErtekeles
|
||||
WHERE (@pAtsoroltTanuloAdatok = 2 OR C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok))
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
-- ÉRTÉKELÉS lista
|
||||
SELECT *
|
||||
FROM #szurtErtekeles;
|
||||
|
||||
--MAGATARTÁS-SZORGALOM
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID, TanuloId AS C_TANULOID,
|
||||
COALESCE(CAST(MagatartasOsztalyzatValue AS NVARCHAR(MAX)), CAST(MagatartasErtekOsztalyzatkent AS NVARCHAR(MAX)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat, MagatartasErtek,
|
||||
COALESCE(CAST(SzorgalomOsztalyzatValue AS NVARCHAR(MAX)), CAST(SzorgalomErtekOsztalyzatkent AS NVARCHAR(MAX)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat, SzorgalomErtek,
|
||||
ErtekelesSzoveg AS C_ERTEKELESSZOVEG, Datum AS C_ERTEKELESDATUM, 'F' AS TOROLT
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
|
||||
WHERE TantargyId IS NULL AND (@pAtsoroltTanuloAdatok > 0 OR OsztalyCsoportId IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok));
|
||||
|
||||
--MULASZTÁS
|
||||
CREATE TABLE #Tanulok (TanuloId int)
|
||||
CREATE TABLE #Tipusok (Tipus_Char CHAR(1),Igazolt CHAR(1), Tipus INT, Gyakorlati CHAR(1))
|
||||
INSERT INTO #Tipusok (Tipus_Char,Igazolt,Tipus,Gyakorlati)VALUES
|
||||
('H','T',1500,'T'),('H','F',1500,'T'),('K','T',1499,'T'),('K','F',1499,'T'),
|
||||
('H','T',1500,'F'),('H','F',1500,'F'),('K','T',1499,'F'),('K','F',1499,'F')
|
||||
INSERT INTO #Tanulok
|
||||
SELECT DISTINCT
|
||||
tcs.C_TANULOID
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.TOROLT = 'F' AND tcs.C_TANEVID = @pTanevId
|
||||
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI,KESESPERC,MULASZTASOK_SZAMA, HOZOTTIGAZOLTMULTASZTASOK_SZAMA, HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA)
|
||||
|
||||
SELECT Tipus_Char, Tipus,Igazolt,TanuloId, Gyakorlati,0,0,0,0
|
||||
FROM #Tanulok CROSS APPLY #Tipusok
|
||||
|
||||
UPDATE szm SET
|
||||
KESESPERC = m.KesesPercben
|
||||
,MULASZTASOK_SZAMA = m.MULASZTASOK_SZAMA
|
||||
,HOZOTTIGAZOLTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'T',hianyzas.HOZOTTIGAZOLTHIANYZAS,0),0)
|
||||
,HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA = ISNULL(IIF(szm.C_IGAZOLT = 'F',hianyzas.HOZOTTIGAZOLATLANHIANYZAS,0),0)
|
||||
FROM #szurtMulasztas szm
|
||||
LEFT JOIN
|
||||
( SELECT m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati,SUM(ISNULL(KesesPercben,0)) as KesesPercben, ISNULL(COUNT(m.Tipusa),0) AS MULASZTASOK_SZAMA
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, @idoszakVege, DEFAULT) m
|
||||
WHERE m.Igazolt IS NOT NULL AND m.Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
GROUP BY m.Tipusa, m.Igazolt, m.TanuloId, m.Gyakorlati
|
||||
) m ON m.Gyakorlati = szm.C_GYAKORLATI AND m.Tipusa = szm.C_TIPUS AND m.Igazolt = szm.C_IGAZOLT AND m.TanuloId = szm.C_TANULOID
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tcs.C_TANULOID
|
||||
,SUM(tta.C_HOZOTTIGAZOLTHIANYZAS) as HOZOTTIGAZOLTHIANYZAS
|
||||
,SUM(tta.C_HOZOTTIGAZOLATLANHIANYZAS ) as HOZOTTIGAZOLATLANHIANYZAS
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyId
|
||||
AND tcs.C_TANEVID = @pTanevId
|
||||
AND tcs.C_BELEPESDATUM < @idoszakVege
|
||||
AND tcs.TOROLT = 'F'
|
||||
GROUP BY tcs.C_TANULOID
|
||||
) as hianyzas on hianyzas.C_TANULOID = szm.C_TANULOID AND szm.TIPUS_CHAR = 'H' AND szm.C_GYAKORLATI = 'F'
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
SELECT
|
||||
szm.TIPUS_CHAR,
|
||||
szm.C_TIPUS,
|
||||
szm.C_IGAZOLT,
|
||||
szm.C_TANULOID,
|
||||
szm.KESESPERC,
|
||||
szm.KESESORA,
|
||||
ISNULL(szm.MULASZTASOK_SZAMA,0) +
|
||||
IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
|
||||
AS MULASZTASOK_SZAMA,
|
||||
IIF(szm.TIPUS_CHAR = 'K',0,IIF(szm.C_IGAZOLT = 'T',szm.HOZOTTIGAZOLTMULTASZTASOK_SZAMA,szm.HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA))
|
||||
AS HOZOTTMULASZTASOK_SZAMA
|
||||
FROM (
|
||||
SELECT
|
||||
TIPUS_CHAR,
|
||||
C_TIPUS,
|
||||
C_IGAZOLT,
|
||||
C_TANULOID,
|
||||
SUM(KESESPERC) AS KESESPERC,
|
||||
SUM(KESESPERC)/@kesespercHianyzashoz AS KESESORA,
|
||||
SUM(ISNULL(MULASZTASOK_SZAMA,0)) AS MULASZTASOK_SZAMA,
|
||||
SUM(HOZOTTIGAZOLTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLTMULTASZTASOK_SZAMA,
|
||||
SUM(HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA) AS HOZOTTIGAZOLATLANTMULTASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID) AS szm
|
||||
|
||||
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
|
||||
;
|
||||
SELECT C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(KESESPERC)/@kesespercHianyzashoz AS MULASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'K'
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
|
||||
UNION ALL
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'H'
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
|
||||
) AS KM
|
||||
GROUP BY C_IGAZOLT, C_TANULOID
|
||||
ORDER BY C_TANULOID, C_IGAZOLT DESC;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT
|
||||
szm.TIPUS_CHAR,
|
||||
szm.C_TIPUS,
|
||||
szm.C_IGAZOLT,
|
||||
szm.C_TANULOID,
|
||||
szm.KESESPERC,
|
||||
szm.KESESORA,
|
||||
ISNULL(szm.MULASZTASOK_SZAMA,0) +
|
||||
IIF(szm.TIPUS_CHAR = 'K' OR szm.C_GYAKORLATI = 'T',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
|
||||
AS MULASZTASOK_SZAMA,
|
||||
IIF(szm.TIPUS_CHAR = 'K',0,IIF( tcs.C_BELEPESDATUM < @idoszakVege,IIF(szm.C_IGAZOLT = 'T',tta.C_HOZOTTIGAZOLTHIANYZAS,tta.C_HOZOTTIGAZOLATLANHIANYZAS),0))
|
||||
AS HOZOTTMULASZTASOK_SZAMA,
|
||||
szm.C_GYAKORLATI
|
||||
FROM (
|
||||
SELECT
|
||||
TIPUS_CHAR,
|
||||
C_TIPUS,
|
||||
C_IGAZOLT,
|
||||
C_TANULOID,
|
||||
KESESPERC,
|
||||
KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS KESESORA,
|
||||
MULASZTASOK_SZAMA,
|
||||
C_GYAKORLATI
|
||||
FROM #szurtMulasztas ) AS szm
|
||||
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = szm.C_TANULOID AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId AND tcs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
|
||||
ORDER BY szm.C_TANULOID, szm.C_TIPUS DESC, szm.C_IGAZOLT DESC
|
||||
SELECT C_IGAZOLT, C_TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN @kesespercGyakHianyzashoz ELSE @kesespercHianyzashoz END) AS MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'K'
|
||||
UNION ALL
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'H'
|
||||
) AS KM
|
||||
GROUP BY C_IGAZOLT, C_TANULOID, C_GYAKORLATI
|
||||
ORDER BY C_TANULOID, C_IGAZOLT DESC;
|
||||
END
|
||||
--TANÓRAI FELJEGYZÉSEK
|
||||
SELECT C_TANULOID, SUM(IIF(C_TIPUS = @pTanoraiDicseretTipusId, 1, 0)) AS TanoraiDicseret, SUM(IIF(C_TIPUS = @pFelszereleshianyTipusId, 1, 0)) AS FelszerelesHiany, SUM(IIF(C_TIPUS = @pHaziFeladatHianyTipusId, 1, 0)) AS HaziFeladatHiany, 'F' AS TOROLT
|
||||
FROM T_TANULOESEMENY_OSSZES AS TANULOESEMENY
|
||||
INNER JOIN T_TANITASIORA_OSSZES AS TANITASIORA ON TANITASIORA.ID = TANULOESEMENY.C_TANITASIORAID
|
||||
INNER JOIN T_TANULO_TANULOESEMENY AS TANULO_TANULOE ON TANULO_TANULOE.C_TANULOESEMENYID = TANULOESEMENY.ID
|
||||
INNER JOIN T_DICTIONARYITEMBASE AS TIPUS ON TIPUS.ID = TANULOESEMENY.C_TIPUS AND TIPUS.C_TANEVID = TANULOESEMENY.C_TANEVID
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = TANULO_TANULOE.C_TANULOID
|
||||
INNER JOIN #aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = TANITASIORA.C_OSZTALYCSOPORTID
|
||||
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
|
||||
LEFT JOIN T_OSZTALY_OSSZES AS OSZTALY ON OSZTALY.ID = OSZTALYCSOPORT.OSZTALYCSOPORTID
|
||||
WHERE TANULOESEMENY.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND TANULOESEMENY.C_TANEVID = @pTanevId AND C_TANITASIORAID IS NOT NULL
|
||||
AND TANITASIORA.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
|
||||
AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM #aktualisOsztalyCsoportok)
|
||||
GROUP BY C_TANULOID
|
||||
-- Osztály adatok az iktatáshoz
|
||||
SELECT
|
||||
f.C_NYOMTATASINEV Osztalyfonok
|
||||
,f.ID OsztalyfonokId
|
||||
,ocs.C_NEV Osztalynev
|
||||
,@pOsztalyId OsztalyId
|
||||
,ocs.C_EVFOLYAMTIPUSA EvfolyamTipusa
|
||||
,ocs.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
|
||||
,o.C_TANTERVID TantervId
|
||||
,o.C_KEPZESIFORMA KepzesiForma
|
||||
,o.C_AGAZAT Agazat
|
||||
,o.C_SZAKMACSOPORT SzakmaCsoport
|
||||
,o.C_SZAKKEPESITES Szakkepesites
|
||||
,o.C_RESZSZAKKEPESITES Reszszakkepesites
|
||||
,ocs.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,o.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
|
||||
,o.C_NEMZETISEGI OJNemzetisegi
|
||||
,o.C_KETTANNYELVU OJKettannyelvu
|
||||
,o.C_NYELVIELOKESZITO OJNyelviElokeszito
|
||||
,o.C_LOGOPEDIAI OJLogopediai
|
||||
,o.C_SPORT OJSportOsztaly
|
||||
,o.C_AJPROGRAM OJAranyJanosProgram
|
||||
,o.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.id
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID
|
||||
WHERE
|
||||
ocs.ID = @pOsztalyId AND ocs.C_TANEVID = @pTanevId AND ocs.TOROLT = 'F';
|
||||
SELECT C_TANULOID, [D] AS Dicseret, [K] AS Kituno
|
||||
FROM (
|
||||
SELECT C_TANULOID, T_TANULOERTEKELES_ID, LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
|
||||
FROM #szurtErtekeles
|
||||
WHERE
|
||||
ERTEKELES = '5'
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(ERTEKELES_SZOVEG_MEGJEGYZES,CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) IN ( 'Dicséret', 'Kitűnő' )
|
||||
) AS s
|
||||
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
|
||||
ORDER BY C_TANULOID
|
||||
END
|
||||
GO
|
@@ -0,0 +1,206 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokCsoportokTantargyiStatisztika]
|
||||
@pTanevId INT,
|
||||
@pErtekelestipusaId INT,
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pLezaroNaptipusId INT,
|
||||
@pAtsoroltTanuloAdatok INT = 1
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
DECLARE @ElsoFelveVege INT = 1400
|
||||
DECLARE @IneVege INT = 1403
|
||||
DECLARE @IIIneVege INT = 1404
|
||||
DECLARE @UtolsoTanitasiNap INT = 1395
|
||||
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
|
||||
|
||||
DECLARE @osztalyok TABLE(OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
|
||||
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
DECLARE @osztalyokCsoportokErtekeles TABLE (TECHNIKAIID NVARCHAR(MAX), OSZTALYCSOPORTID INT, OSZTALYCSOPORTNEV NVARCHAR(MAX), SORREND INT, TANTARGYID INT, TANTARGYNEV NVARCHAR(MAX), AKTUALISLETSZAM INT, ATLAG FLOAT);
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
|
||||
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
|
||||
|
||||
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT TANTARGYAK.ID AS TANTARGYID, COALESCE(TANTARGYAK.C_NEVNYOMTATVANYBAN, TANTARGYAK.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, TANTARGYAK.C_FOTARGYE, TANTARGYAK.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_TANTARGY_OSSZES AS TANTARGYAK
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGYAK.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = TANTARGYAK.C_TANEVID
|
||||
WHERE TANTARGYAK.TOROLT = 'F' AND TANTARGYAK.C_TANEVID = @pTanevId
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
SELECT CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) + '_' + CAST(OSZTALYCSOPORT.ID AS nvarchar(MAX)) AS TECHNIKAIID, OSZTALYCSOPORT.ID AS OSZTALYID, OSZTALYCSOPORT.C_NEV AS NEV,
|
||||
OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AS EVFOLYAM, EVFOLYAM.C_ORDER AS SORREND, (SELECT COUNT(TanuloId) FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OSZTALYCSOPORT.ID, 0)) AS AKTUALISLETSZAM,
|
||||
C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM,
|
||||
ROW_NUMBER() OVER(ORDER BY EVFOLYAM.C_ORDER ASC, OSZTALYCSOPORT.C_NEV ASC) AS Row#
|
||||
,@pTanevId TanevId
|
||||
,OSZTALY.C_OSZTALYFONOKID OsztalyfonokId
|
||||
,OSZTALYCSOPORT.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
|
||||
,OSZTALY.C_TANTERVID TantervId
|
||||
,OSZTALY.C_KEPZESIFORMA KepzesiForma
|
||||
,OSZTALY.C_AGAZAT Agazat
|
||||
,OSZTALY.C_SZAKMACSOPORT SzakmaCsoport
|
||||
,OSZTALY.C_SZAKKEPESITES Szakkepesites
|
||||
,OSZTALY.C_RESZSZAKKEPESITES Reszszakkepesites
|
||||
,OSZTALYCSOPORT.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,OSZTALYCSOPORT.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,OSZTALY.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
|
||||
,OSZTALY.C_NEMZETISEGI OJNemzetisegi
|
||||
,OSZTALY.C_KETTANNYELVU OJKettannyelvu
|
||||
,OSZTALY.C_NYELVIELOKESZITO OJNyelviElokeszito
|
||||
,OSZTALY.C_LOGOPEDIAI OJLogopediai
|
||||
,OSZTALY.C_SPORT OJSportOsztaly
|
||||
,OSZTALY.C_AJPROGRAM OJAranyJanosProgram
|
||||
,OSZTALY.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
|
||||
INTO #tempOsztalyok
|
||||
FROM T_OSZTALY_OSSZES AS OSZTALY
|
||||
JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALY.ID = OSZTALYCSOPORT.ID AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
JOIN T_DICTIONARYITEMBASE_OSSZES AS EVFOLYAM ON EVFOLYAM.ID = OSZTALYCSOPORT.C_EVFOLYAMTIPUSA AND EVFOLYAM.TOROLT = 'F' AND EVFOLYAM.C_TANEVID = OSZTALY.C_ALTANEVID
|
||||
WHERE OSZTALYCSOPORT.TOROLT = 'F' AND OSZTALY.C_ALTANEVID = @pTanevId
|
||||
ORDER BY Row#;
|
||||
|
||||
DECLARE @pOsztalyId INT = 0;
|
||||
DECLARE @sorrend INT = 0;
|
||||
DECLARE @keresztFeleves BIT = 0;
|
||||
DECLARE @vegzosEvfolyamu BIT = 0;
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#, @keresztFeleves = IIF(KERESZTFELEVES = 'T', 1, 0), @vegzosEvfolyamu = IIF(VEGZOSEVFOLYAM = 'T', 1, 0)
|
||||
FROM #tempOsztalyok
|
||||
WHERE @sorrend < Row#
|
||||
ORDER BY Row#;
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
BREAK;
|
||||
END
|
||||
|
||||
|
||||
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
|
||||
DECLARE @pKezdeteOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @pLezaroOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
(SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
GETDATE())
|
||||
);
|
||||
|
||||
|
||||
INSERT INTO @osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
|
||||
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES
|
||||
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
|
||||
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
|
||||
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
|
||||
);
|
||||
|
||||
INSERT INTO @osztalyokCsoportokErtekeles(TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, SORREND, TANTARGYID, TANTARGYNEV, AKTUALISLETSZAM, ATLAG)
|
||||
SELECT CAST(@pOsztalyId AS nvarchar(MAX)) + '_' + CAST(OsztalyCsoportId AS nvarchar(MAX)) AS TechnikaiId, OsztalyCsoportId, OSZTALYCSOPORT.C_NEV + (IIF(CSOPORT.ID IS NOT NULL, ' (' + (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) + ')', '')) AS OsztalyCsoportNev, @sorrend,
|
||||
TantargyId, TantargyNev,
|
||||
(SELECT COUNT(TanuloId) FROM (
|
||||
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, OsztalyCsoportId, 0)
|
||||
INTERSECT
|
||||
SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 0)) AS T) AS Aktualisletszam,
|
||||
AVG(CAST (ErtekelesOsztalyzatValue AS float)) AS Atlag
|
||||
FROM fnGetDokumentumErtekelesekOsztalyonkent(@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, 1, DEFAULT) AS ERTEKELESEK
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = OsztalyCsoportId AND OSZTALYCSOPORT.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
LEFT JOIN T_CSOPORT_OSSZES AS CSOPORT ON CSOPORT.ID = OSZTALYCSOPORT.ID
|
||||
WHERE IsMagatartasSzorgalom = 'F'
|
||||
GROUP BY OsztalyCsoportId, OSZTALYCSOPORT.C_NEV, TantargyId, TantargyNev, CSOPORT.ID
|
||||
END
|
||||
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT DISTINCT TECHNIKAIID, OSZTALYCSOPORTID, OSZTALYCSOPORTNEV, AKTUALISLETSZAM, SORREND
|
||||
FROM @osztalyokCsoportokErtekeles
|
||||
UNION
|
||||
SELECT TECHNIKAIID, OSZTALYID AS OSZTALYCSOPORTID, NEV AS OSZTALYCSOPORTNEV, AKTUALISLETSZAM, Row# AS SORREND
|
||||
FROM #tempOsztalyok
|
||||
) AS OSZTALYOKCSOPORTOK
|
||||
ORDER BY SORREND, OSZTALYCSOPORTNEV;
|
||||
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
|
||||
FROM @tantargyak;
|
||||
|
||||
SELECT *
|
||||
FROM @osztalyokCsoportokErtekeles;
|
||||
|
||||
select OSZTALYID AS OsztalyId
|
||||
,EVFOLYAM AS EvfolyamTipusa
|
||||
,FeladatEllatasiHelyId
|
||||
,KepzesiForma
|
||||
,OsztalyfonokId
|
||||
,TantervId
|
||||
,OJAranyJanosProgram
|
||||
,OJCSJKeresztfeleves
|
||||
,OJGyogypedagogiai
|
||||
,OJKettannyelvu
|
||||
,OJLogopediai
|
||||
,OJNemzetisegi
|
||||
,OJNyelviElokeszito
|
||||
,OJSportOsztaly
|
||||
,OJTechnikaiOsztaly
|
||||
,SzakmaCsoport
|
||||
,Agazat
|
||||
,Szakkepesites
|
||||
,Reszszakkepesites from #tempOsztalyok;
|
||||
|
||||
select cs.ID CsoportId
|
||||
,cs.C_CSOPORTVEZETOID as Csoportvezeto
|
||||
,cs.C_TIPUSA as CsoportTipus
|
||||
,ocs.C_KERESZTFELEVES as OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
|
||||
from T_CSOPORT_OSSZES cs
|
||||
inner join @osztalyokCsoportokErtekeles ocse on ocse.OSZTALYCSOPORTID = cs.iD
|
||||
inner join T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID = cs.ID;
|
||||
|
||||
IF OBJECT_ID('tempdb..#tempOsztalyok') IS NOT NULL DROP TABLE #tempOsztalyok
|
||||
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
|
||||
|
||||
END
|
||||
GO
|
@@ -0,0 +1,384 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
|
||||
@pTanevId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pErtekelestipusaId INT,
|
||||
@pLezaroNaptipusId INT,
|
||||
@pTanoraiCsoportTipusIds INT = 1034,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pNemMulasztaIgazolasTipusIds INT = 1532, -- Iskola érdekű távollét
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pAtsoroltTanuloAdatok INT = 1,
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Const
|
||||
DECLARE @ElsoFelveVege INT = 1400
|
||||
DECLARE @IneVege INT = 1403
|
||||
DECLARE @IIIneVege INT = 1404
|
||||
DECLARE @UtolsoTanitasiNap INT = 1395
|
||||
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
|
||||
DECLARE @DefaultFeladatKategoriaId int = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
|
||||
|
||||
CREATE TABLE #osztalyoktanoraicsoportok (OSZTALYCSOPORTID INT PRIMARY KEY, C_TIPUSA INT, C_VEGZOSEVFOLYAM CHAR(1));
|
||||
CREATE TABLE #osztalycsoportok (OSZTALYCSOPORTID INT PRIMARY KEY);
|
||||
CREATE TABLE #aktualisOsztalyCsoportok (OSZTALYCSOPORTID INT);
|
||||
CREATE TABLE #osztalyTanulok (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
CREATE TABLE #tantargyak (TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
CREATE TABLE #osztalyok (OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
|
||||
CREATE TABLE #osztalyokTanulokszama (OSZTALYID INT, TANULOKSZAMA INT);
|
||||
CREATE TABLE #osztalyokErtekeles (OSZTALYID INT, TANTARGYID INT, ATLAG FLOAT);
|
||||
CREATE TABLE #osztalyokMagszorg (OSZTALYID INT, MAGATLAG FLOAT, SZORGATLAG FLOAT);
|
||||
CREATE TABLE #osztalyokMulasztas (OSZTALYID INT, TIPUS_CHAR CHAR(1), C_TIPUS INT, C_IGAZOLT CHAR(1), MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1), DESCR CHAR(3));
|
||||
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1), C_TIPUS INT , C_IGAZOLT CHAR(1), C_TANULOID INT, C_GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT);
|
||||
-- OSZTÁLYOK ÉS TANÓRAI CSOPORTOK
|
||||
INSERT INTO #osztalyoktanoraicsoportok (OSZTALYCSOPORTID, C_TIPUSA, C_VEGZOSEVFOLYAM) (
|
||||
SELECT T_OSZTALYCSOPORT_OSSZES.ID, C_TIPUSA, C_VEGZOSEVFOLYAM
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
LEFT JOIN T_CSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_CSOPORT_OSSZES.ID
|
||||
LEFT JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
|
||||
WHERE ( C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)) OR T_OSZTALY_OSSZES.ID IS NOT NULL)
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
|
||||
);
|
||||
-- TANTÁRGYAK
|
||||
INSERT INTO #tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT T_TANTARGY_OSSZES.ID AS TANTARGYID, COALESCE(T_TANTARGY_OSSZES.C_NEVNYOMTATVANYBAN, T_TANTARGY_OSSZES.C_NEV) AS TANTARGY_NEV, TARGYKAT.C_NAME AS TARGYKATEGORIA_NEV, TARGYKAT.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, T_TANTARGY_OSSZES.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_TANTARGY_OSSZES
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKAT ON TARGYKAT.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA AND TARGYKAT.C_TANEVID = T_TANTARGY_OSSZES.C_TANEVID
|
||||
WHERE T_TANTARGY_OSSZES.TOROLT = 'F' AND T_TANTARGY_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANTARGY_OSSZES.C_TANEVID = @pTanevId
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
-- OSZTÁLYOK
|
||||
SELECT T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV AS NEV, T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AS EVFOLYAM, EVFOLYAMTIPUS.C_ORDER AS SORREND,
|
||||
C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM,
|
||||
ROW_NUMBER() OVER(ORDER BY EVFOLYAMTIPUS.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC) AS Row#
|
||||
,@pTanevId TanevId
|
||||
,T_OSZTALY_OSSZES.C_OSZTALYFONOKID OsztalyfonokId
|
||||
,T_OSZTALYCSOPORT_OSSZES.C_FELADATELLATASIHELYID FeladatEllatasiHelyId
|
||||
,T_OSZTALY_OSSZES.C_TANTERVID TantervId
|
||||
,T_OSZTALY_OSSZES.C_KEPZESIFORMA KepzesiForma
|
||||
,T_OSZTALY_OSSZES.C_AGAZAT Agazat
|
||||
,T_OSZTALY_OSSZES.C_SZAKMACSOPORT SzakmaCsoport
|
||||
,T_OSZTALY_OSSZES.C_SZAKKEPESITES Szakkepesites
|
||||
,T_OSZTALY_OSSZES.C_RESZSZAKKEPESITES Reszszakkepesites
|
||||
,T_OSZTALYCSOPORT_OSSZES.C_KERESZTFELEVES OJCSJKeresztfeleves
|
||||
,T_OSZTALYCSOPORT_OSSZES.C_VEGZOSEVFOLYAM CSJVegzosEvfolyamu
|
||||
,T_OSZTALY_OSSZES.C_TECHNIKAIOSZTALY OJTechnikaiOsztaly
|
||||
,T_OSZTALY_OSSZES.C_NEMZETISEGI OJNemzetisegi
|
||||
,T_OSZTALY_OSSZES.C_KETTANNYELVU OJKettannyelvu
|
||||
,T_OSZTALY_OSSZES.C_NYELVIELOKESZITO OJNyelviElokeszito
|
||||
,T_OSZTALY_OSSZES.C_LOGOPEDIAI OJLogopediai
|
||||
,T_OSZTALY_OSSZES.C_SPORT OJSportOsztaly
|
||||
,T_OSZTALY_OSSZES.C_AJPROGRAM OJAranyJanosProgram
|
||||
,T_OSZTALY_OSSZES.C_GYOGYPEDAGOGIAI OJGyogypedagogiai
|
||||
INTO #tempOsztalyok
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
|
||||
JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
||||
JOIN T_DICTIONARYITEMBASE_OSSZES AS EVFOLYAMTIPUS ON EVFOLYAMTIPUS.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND EVFOLYAMTIPUS.TOROLT = 'F' AND EVFOLYAMTIPUS.C_TANEVID = T_TANEV_OSSZES.ID
|
||||
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
|
||||
AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId
|
||||
AND T_TANEV_OSSZES.TOROLT = 'F'
|
||||
AND T_TANEV_OSSZES.ID = @pTanevId
|
||||
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
|
||||
ORDER BY Row#;
|
||||
|
||||
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL
|
||||
DROP TABLE #tempMulasztas;
|
||||
|
||||
CREATE TABLE #tempMulasztas (
|
||||
ID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
TIPUS_CHAR CHAR(1), TIPUS INT, IGAZOLT CHAR(1), TANULOID NVARCHAR(20), GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT, OSZTALYCSOPORTID INT, DATUM DATETIME);
|
||||
|
||||
INSERT INTO #tempMulasztas(TIPUS_CHAR, TIPUS, IGAZOLT, TANULOID, GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA, OSZTALYCSOPORTID, DATUM)
|
||||
SELECT IIF(C_TIPUS = @pMulasztasTipusIdKeses, 'K', 'H'), C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, SUM(C_KESESPERCBEN), COUNT(1) AS MULASZTASOK_SZAMA, TanitasiOra.C_OSZTALYCSOPORTID, C_DATUM
|
||||
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
|
||||
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_TANTARGY_OSSZES t on t.ID = TanitasiOra.C_TANTARGYID
|
||||
WHERE TanuloMulasztas.C_TIPUS IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
AND TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId))
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
|
||||
AND TanuloMulasztas.TOROLT = 'F' AND TanuloMulasztas.C_IGAZOLT IS NOT NULL
|
||||
AND TanitasiOra.TOROLT = 'F' AND TanitasiOra.C_MEGTARTOTT = 'T'
|
||||
AND TanuloMulasztas.C_TANEVID = @pTanevId
|
||||
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, TanitasiOra.C_OSZTALYCSOPORTID, C_DATUM
|
||||
|
||||
|
||||
DECLARE @pOsztalyId INT = 0;
|
||||
DECLARE @sorrend INT = 0;
|
||||
DECLARE @keresztFeleves BIT = 0;
|
||||
DECLARE @vegzosEvfolyamu BIT = 0;
|
||||
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
TRUNCATE TABLE #szurtMulasztas;
|
||||
TRUNCATE TABLE #osztalycsoportok;
|
||||
TRUNCATE TABLE #aktualisOsztalyCsoportok;
|
||||
TRUNCATE TABLE #osztalyTanulok;
|
||||
|
||||
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#, @keresztFeleves = IIF(KERESZTFELEVES = 'T', 1, 0), @vegzosEvfolyamu = IIF(VEGZOSEVFOLYAM = 'T', 1, 0)
|
||||
FROM #tempOsztalyok
|
||||
WHERE @sorrend < Row#
|
||||
ORDER BY Row#;
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
BREAK;
|
||||
END
|
||||
|
||||
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
|
||||
DECLARE @pKezdeteOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @pLezaroOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
(SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @pOsztalyId)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
GETDATE())
|
||||
);
|
||||
|
||||
INSERT INTO #osztalycsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyId)
|
||||
WHERE (ID IN (SELECT T_OSZTALY_OSSZES.ID FROM T_OSZTALY_OSSZES
|
||||
INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
) OR ID IN (SELECT ID FROM T_CSOPORT WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))))
|
||||
);
|
||||
INSERT INTO #aktualisOsztalyCsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyId, @idoszakEleje, @idoszakVege)
|
||||
WHERE (ID IN (SELECT T_OSZTALY_OSSZES.ID FROM T_OSZTALY_OSSZES INNER JOIN T_OSZTALYCSOPORT OsztalyCsoport ON OsztalyCsoport.ID = T_OSZTALY_OSSZES.ID AND OsztalyCsoport.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
) OR ID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId))))
|
||||
);
|
||||
-- TANULÓK
|
||||
INSERT INTO #osztalyTanulok (TANULOID, BELEPESDATUM, KILEPESDATUM) (
|
||||
SELECT T_FELHASZNALO_OSSZES.ID AS TANULOID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES
|
||||
WHERE T_TANULOCSOPORT_OSSZES.TOROLT = 'F' AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < @idoszakVege
|
||||
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= @idoszakVege)
|
||||
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
WHERE T_FELHASZNALO_OSSZES.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND T_FELHASZNALO_OSSZES.C_TANEVID = @pTanevId
|
||||
);
|
||||
--TANULÓK LISTA
|
||||
INSERT INTO #osztalyokTanulokszama (OSZTALYID, TANULOKSZAMA)
|
||||
SELECT @pOsztalyId AS OSZTALYID, COUNT(T_FELHASZNALO_OSSZES.ID) AS TANULOKSZAMA
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_FELHASZNALO_OSSZES.ID;
|
||||
|
||||
--ÉRTÉKELÉS LISTA
|
||||
IF OBJECT_ID('tempdb..#tempOsztalyErtekelesek') IS NOT NULL
|
||||
DROP TABLE #tempOsztalyErtekelesek;
|
||||
SELECT * INTO #tempOsztalyErtekelesek FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @pOsztalyId, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
|
||||
|
||||
INSERT INTO #osztalyokErtekeles (OSZTALYID, TANTARGYID, ATLAG)
|
||||
SELECT @pOsztalyId AS OSZTALYID, TantargyId, ROUND(AVG(CAST(ErtekelesOsztalyzatValue AS FLOAT)), 2) AS ATLAG
|
||||
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T') AND ErtekelesOsztalyzatValue IS NOT NULL
|
||||
GROUP BY TantargyId;
|
||||
--MAGATARTAS-SZORGALOM LISTA
|
||||
INSERT INTO #osztalyokMagszorg (OSZTALYID, MAGATLAG, SZORGATLAG)
|
||||
SELECT @pOsztalyId AS OSZTALYID, ROUND(AVG(CAST(COALESCE(MagatartasOsztalyzatValue, MagatartasErtekOsztalyzatkent) AS FLOAT)), 2) AS MAGATLAG, ROUND(AVG(CAST(COALESCE(SzorgalomOsztalyzatValue, SzorgalomErtekOsztalyzatkent) AS FLOAT)), 2) AS SZORGATLAG
|
||||
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = ERTEKELESEK.TanuloId
|
||||
WHERE TantargyId IS NULL AND COALESCE(MagatartasOsztalyzatValue, MagatartasErtekOsztalyzatkent) IS NOT NULL AND COALESCE(SzorgalomOsztalyzatValue, SzorgalomErtekOsztalyzatkent) IS NOT NULL ;
|
||||
|
||||
--MULASZTÁS
|
||||
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA)
|
||||
SELECT TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI, SUM(KESESPERC), SUM(MULASZTASOK_SZAMA)
|
||||
FROM #tempMulasztas AS TanuloMulasztas
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.TANULOID
|
||||
INNER JOIN #osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = TanuloMulasztas.TanuloId
|
||||
WHERE TANULO.BelepesDatum <= DATUM
|
||||
AND (TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= DATUM)
|
||||
AND (IIF(@pAtsoroltTanuloAdatok > 0, 1, 0) = 1 OR (OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT))))
|
||||
AND (@idoszakEleje IS NULL OR DATUM >= @idoszakEleje)
|
||||
AND (@idoszakVege IS NULL OR DATUM <= @idoszakVege)
|
||||
GROUP BY TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI
|
||||
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
|
||||
CREATE TABLE #OsztalyHozottMulasztas (OsztalyID INT, HozottIgazolt INT, HozottIgazolatlan INT)
|
||||
INSERT INTO #OsztalyHozottMulasztas (OsztalyID, HozottIgazolt, HozottIgazolatlan)
|
||||
SELECT
|
||||
o.ID
|
||||
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
|
||||
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
|
||||
FROM T_OSZTALY_OSSZES o
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID= o.ID AND ocs.TOROLT = 'F'
|
||||
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
|
||||
LEFT JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
|
||||
WHERE C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
|
||||
GROUP BY o.ID
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
INSERT INTO #osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
|
||||
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, 'F' AS C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + 'F' AS DESCR
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, SUM(KESESPERC) AS KESESPERC, SUM(KESESPERC)/45 AS KESESORA, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID
|
||||
) AS T_SUM_MULASZTAS
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT
|
||||
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #osztalyokMulasztas (OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, MULASZTASOK_SZAMA, C_GYAKORLATI, DESCR)
|
||||
SELECT @pOsztalyId AS OSZTALYID, TIPUS_CHAR, C_TIPUS, C_IGAZOLT, CASE WHEN TIPUS_CHAR = 'K' THEN SUM(KESESORA) ELSE SUM(MULASZTASOK_SZAMA) END MULASZTASOK_SZAMA, C_GYAKORLATI, TIPUS_CHAR + C_IGAZOLT + C_GYAKORLATI
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
) AS T_SUM_MULASZTAS
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_GYAKORLATI, C_IGAZOLT
|
||||
ORDER BY C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
END
|
||||
END
|
||||
UPDATE om SET MULASZTASOK_SZAMA = MULASZTASOK_SZAMA + IIF(om.DESCR = 'HTF',hm.HozottIgazolt, IIF(om.DESCR = 'HFF',hm.HozottIgazolatlan,0)) FROM #osztalyokMulasztas om LEFT JOIN #OsztalyHozottMulasztas hm ON hm.OsztalyID = om.OSZTALYID
|
||||
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
|
||||
|
||||
DECLARE @cols AS NVARCHAR(MAX);
|
||||
DECLARE @colsHeader AS NVARCHAR(MAX);
|
||||
DECLARE @query AS NVARCHAR(MAX);
|
||||
SELECT OSZTALYID, TANTARGYID, ATLAG
|
||||
INTO #tempErtekeles
|
||||
FROM #osztalyokErtekeles;
|
||||
SELECT OSZTALYID, MAGATLAG, SZORGATLAG
|
||||
INTO #tempMagSzorgErtekeles
|
||||
FROM #osztalyokMagszorg;
|
||||
SELECT OSZTALYID, TANULOKSZAMA
|
||||
INTO #tempTanulokszama
|
||||
FROM #osztalyokTanulokszama;
|
||||
|
||||
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID) + ' AS ' + QUOTENAME(TANTARGYAK.TANTARGY_NEV),
|
||||
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(TANTARGYAK.TANTARGYID)
|
||||
FROM (
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_SORSZAM
|
||||
FROM #tantargyak
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
SET @query =
|
||||
'SELECT NEV AS [Osztályok], TANULOILETSZAM.TANULOKSZAMA AS [Tanulók száma], MAGSZORGERTEKELES.MAGATLAG AS [Magatartás átlag], MAGSZORGERTEKELES.SZORGATLAG AS [Szorgalom átlag], ' + @colsHeader + '
|
||||
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
|
||||
LEFT JOIN (
|
||||
SELECT OSZTALYID AS E_OSZTALYID, TANTARGYID, ATLAG
|
||||
FROM #tempErtekeles
|
||||
) AS ERTEKELES ON ERTEKELES.E_OSZTALYID = OSZTALYOK.OSZTALYID
|
||||
PIVOT (
|
||||
MAX(ATLAG)
|
||||
FOR TANTARGYID IN (' + @cols + ')
|
||||
) AS PIVOTTABLE
|
||||
LEFT JOIN #tempTanulokszama AS TANULOILETSZAM ON PIVOTTABLE.OSZTALYID = TANULOILETSZAM.OSZTALYID
|
||||
LEFT JOIN (
|
||||
SELECT OSZTALYID AS MSZE_OSZTALYID, MAGATLAG, SZORGATLAG
|
||||
FROM #tempMagSzorgErtekeles
|
||||
) AS MAGSZORGERTEKELES ON PIVOTTABLE.OSZTALYID = MAGSZORGERTEKELES.MSZE_OSZTALYID
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
SELECT * INTO #tempForPivotMulasztas
|
||||
FROM #osztalyokMulasztas;
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
SET @cols = 'HTF,KTF,HFF,KFF'
|
||||
SET @colsHeader = 'HTF AS [Igazolt hiányzás],KTF AS [Igazolt késés (óra)],HFF AS [Igazolatlan hiányzás],KFF AS [Igazolatlan késés (óra)]'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @cols = 'HTF,KTF,HFF,KFF,HTT,KTT,HFT,KFT'
|
||||
SET @colsHeader = 'HTF AS [Elméleti igazolt hiányzás],KTF AS [Elméleti igazolt késés (óra)],HFF AS [Elméleti igazolatlan hiányzás],KFF AS [Elméleti igazolatlan késés (óra)],HTT AS [Gyakorlati igazolt hiányzás],KTT AS [Gyakorlati igazolt késés (óra)],HFT AS [Gyakorlati igazolatlan hiányzás],KFT AS [Gyakorlati igazolatlan késés (óra)]'
|
||||
END
|
||||
SET @query =
|
||||
'SELECT ' + @colsHeader + '
|
||||
FROM (SELECT OSZTALYID, NEV, Row# FROM #tempOsztalyok) AS OSZTALYOK
|
||||
LEFT JOIN (
|
||||
SELECT OSZTALYID AS M_OSZTALYID, MULASZTASOK_SZAMA, DESCR
|
||||
FROM #tempForPivotMulasztas
|
||||
) AS MULASZTAS ON MULASZTAS.M_OSZTALYID = OSZTALYOK.OSZTALYID
|
||||
PIVOT (
|
||||
MAX(MULASZTASOK_SZAMA)
|
||||
FOR DESCR IN (' + @cols + ')
|
||||
) AS PIVOTTABLE
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
select OSZTALYID AS OsztalyId
|
||||
,EVFOLYAM AS EvfolyamTipusa
|
||||
,FeladatEllatasiHelyId
|
||||
,KepzesiForma
|
||||
,OsztalyfonokId
|
||||
,TantervId
|
||||
,OJAranyJanosProgram
|
||||
,OJCSJKeresztfeleves
|
||||
,OJGyogypedagogiai
|
||||
,OJKettannyelvu
|
||||
,OJLogopediai
|
||||
,OJNemzetisegi
|
||||
,OJNyelviElokeszito
|
||||
,OJSportOsztaly
|
||||
,OJTechnikaiOsztaly
|
||||
,SzakmaCsoport
|
||||
,Agazat
|
||||
,Szakkepesites
|
||||
,Reszszakkepesites from #tempOsztalyok;
|
||||
|
||||
DROP TABLE IF EXISTS #tempOsztalyok
|
||||
DROP TABLE IF EXISTS #tempTanulokszama
|
||||
DROP TABLE IF EXISTS #tempErtekeles
|
||||
DROP TABLE IF EXISTS #tempForPivotMulasztas
|
||||
|
||||
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
|
||||
DROP TABLE IF EXISTS #tempMulasztas;
|
||||
END
|
||||
|
||||
GO
|
@@ -0,0 +1,297 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiTanuloStatisztika]
|
||||
@pTanevId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pErtekelestipusaId INT,
|
||||
@pLezaroNaptipusId INT,
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pAtsoroltTanuloAdatok INT = 1,
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
--Const
|
||||
DECLARE @ElsoFelveVege INT = 1400
|
||||
DECLARE @IneVege INT = 1403
|
||||
DECLARE @IIIneVege INT = 1404
|
||||
DECLARE @UtolsoTanitasiNap INT = 1395
|
||||
DECLARE @VegzosUtolsoTanitasiNap INT = 1402
|
||||
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
|
||||
|
||||
DECLARE @oid int, @onev nvarchar(50), @okf char(1), @ovegz char(1)
|
||||
DECLARE osztaly_cursor CURSOR FOR
|
||||
SELECT T_OSZTALYCSOPORT_OSSZES.ID AS OSZTALYID, T_OSZTALYCSOPORT_OSSZES.C_NEV AS NEV, C_KERESZTFELEVES AS KERESZTFELEVES, C_VEGZOSEVFOLYAM AS VEGZOSEVFOLYAM
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
JOIN T_OSZTALY_OSSZES ON T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
|
||||
JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
||||
JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
|
||||
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId AND T_TANEV_OSSZES.TOROLT = 'F' AND T_TANEV_OSSZES.ID = @pTanevId
|
||||
AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = 7553 /*OktNevelesiKategoriaEnum.Alapkepzes*/
|
||||
ORDER BY T_DICTIONARYITEMBASE_OSSZES.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC;
|
||||
|
||||
CREATE TABLE #osztalyTanulok (TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT PRIMARY KEY, OSZTALYID INT, TANULONEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, OSZTALYNEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
CREATE TABLE #tantargyak (TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT);
|
||||
CREATE TABLE #szurtMulasztas (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT);
|
||||
CREATE TABLE #szurtErtekeles (
|
||||
T_TANULOERTEKELES_ID INT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, ERTEKELES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELES_SZOVEG_MEGJEGYZES NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, C_ERTEKELESDATUM DATETIME,
|
||||
TANTARGYID INT, TANTARGY_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_NEV NVARCHAR(255) COLLATE DATABASE_DEFAULT, TARGYKATEGORIA_SORSZAM INT, T_TANTARGY_C_FOTARGYE CHAR(1) COLLATE DATABASE_DEFAULT, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1) COLLATE DATABASE_DEFAULT, C_OSZTALYCSOPORTID INT
|
||||
);
|
||||
CREATE TABLE #szurtMagszorg (T_TANULOERTEKELES_ID INT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, MagatartasOsztalyzat NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, MagatartasErtek NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, SzorgalomOsztalyzat NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, SzorgalomErtek NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELESSZOVEG NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, ERTEKELESDATUM DATETIME, TOROLT CHAR(1) COLLATE DATABASE_DEFAULT);
|
||||
|
||||
CREATE TABLE #szurtMulasztasRes (TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, C_TIPUS INT , C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, KESESPERC INT, KESESORA INT, MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT);
|
||||
CREATE TABLE #szurtMulasztasOsszesRes (C_IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT);
|
||||
|
||||
INSERT INTO #tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT TANTARGYAK.ID AS TANTARGYID, COALESCE(TANTARGYAK.C_NEVNYOMTATVANYBAN, TANTARGYAK.C_NEV) AS TANTARGY_NEV, TARGYKATEG.C_NAME AS TARGYKATEGORIA_NEV, TARGYKATEG.C_VALUE AS TARGYKATEGORIA_SORSZAM, TANTARGYAK.C_FOTARGYE, TANTARGYAK.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_TANTARGY_OSSZES AS TANTARGYAK
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGYAK.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = TANTARGYAK.C_TANEVID
|
||||
WHERE TANTARGYAK.TOROLT = 'F' AND TANTARGYAK.C_TANEVID = @pTanevId
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
DROP TABLE IF EXISTS #tempMulasztas;
|
||||
|
||||
CREATE TABLE #tempMulasztas (
|
||||
ID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
TIPUS_CHAR CHAR(1) COLLATE DATABASE_DEFAULT, TIPUS INT, IGAZOLT CHAR(1) COLLATE DATABASE_DEFAULT, TANULOID NVARCHAR(20) COLLATE DATABASE_DEFAULT, GYAKORLATI CHAR(1) COLLATE DATABASE_DEFAULT, KESESPERC INT, MULASZTASOK_SZAMA INT, OSZTALYCSOPORTID INT, DATUM DATETIME);
|
||||
|
||||
INSERT INTO #tempMulasztas(TIPUS_CHAR, TIPUS, IGAZOLT, TANULOID, GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA, OSZTALYCSOPORTID, DATUM)
|
||||
SELECT IIF(C_TIPUS = @pMulasztasTipusIdKeses, 'K', 'H'), C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, SUM(C_KESESPERCBEN), COUNT(1) AS MULASZTASOK_SZAMA, TanitasiOra.C_OSZTALYCSOPORTID, C_DATUM
|
||||
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
|
||||
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_TANTARGY_OSSZES t on t.ID = TanitasiOra.C_TANTARGYID
|
||||
WHERE TanuloMulasztas.C_TIPUS IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
AND TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport (@pTanevId))
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
|
||||
AND TanuloMulasztas.TOROLT = 'F' AND TanuloMulasztas.C_IGAZOLT IS NOT NULL
|
||||
AND TanitasiOra.TOROLT = 'F' AND TanitasiOra.C_MEGTARTOTT = 'T'
|
||||
AND TanuloMulasztas.C_TANEVID = @pTanevId
|
||||
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, TanitasiOra.C_OSZTALYCSOPORTID, C_DATUM
|
||||
|
||||
|
||||
OPEN osztaly_cursor
|
||||
|
||||
FETCH NEXT FROM osztaly_cursor
|
||||
INTO @oid, @onev, @okf, @ovegz
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
DECLARE @keresztFeleves BIT = (SELECT IIF(@okf = 'T', 1, 0))
|
||||
DECLARE @vegzosEvfolyamu BIT = (SELECT IIF(@ovegz = 'T', 1, 0))
|
||||
|
||||
--Osztalyjellemzok alapjan a nyito/lezaro naptipus csereje
|
||||
DECLARE @pKezdeteOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, @pTanevrendjeTanevKezdeteNaptipusId,
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @pTanevrendjeTanevKezdeteNaptipusId
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @pLezaroOsztalyNaptipusId INT = (
|
||||
IIF(@keresztFeleves = 0, IIF(@vegzosEvfolyamu = 1 AND @pLezaroNaptipusId = @UtolsoTanitasiNap, @VegzosUtolsoTanitasiNap, @pLezaroNaptipusId),
|
||||
CASE
|
||||
WHEN @pLezaroNaptipusId = @ElsoFelveVege THEN @UtolsoTanitasiNap
|
||||
WHEN @pLezaroNaptipusId = @UtolsoTanitasiNap THEN @ElsoFelveVege
|
||||
WHEN @pLezaroNaptipusId = @IneVege THEN @IIIneVege
|
||||
WHEN @pLezaroNaptipusId = @IIIneVege THEN @IneVege
|
||||
END)
|
||||
)
|
||||
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pKezdeteOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @oid)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
(SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT ISNULL(
|
||||
(SELECT TOP 1 C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE ON T_TANEVRENDJE_OSSZES.ID = T_OSZTALYCSOPORT_TANEVRENDJE.C_TANEVRENDJEID
|
||||
WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroOsztalyNaptipusId AND TOROLT = 'F' AND (C_OSZTALYCSOPORTID IS NULL OR C_OSZTALYCSOPORTID = @oid)
|
||||
ORDER BY C_OSZTALYCSOPORTID DESC),
|
||||
GETDATE())
|
||||
);
|
||||
|
||||
INSERT INTO #osztalyTanulok (TANULOID, OSZTALYID, TANULONEV, OSZTALYNEV, BELEPESDATUM, KILEPESDATUM)
|
||||
SELECT DISTINCT CAST(TANCSOPORT.C_OSZTALYCSOPORTID AS NVARCHAR) + '_' + CAST(FELHASZNALO.ID AS NVARCHAR) /*AS OSZTALYTANULOID, FELHASZNALO.ID*/ AS TANULOID, TANCSOPORT.C_OSZTALYCSOPORTID AS OSZTALYID, C_NYOMTATASINEV, C_NEV, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_NEV, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = TANULOCSOPORT.C_OSZTALYCSOPORTID
|
||||
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @oid AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege AND (@keresztFeleves = 0 OR TANULOCSOPORT.C_BELEPESDATUM >= @idoszakEleje)
|
||||
AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANULOCSOPORT.C_KILEPESDATUM >= @idoszakVege)
|
||||
) AS TANCSOPORT ON TANCSOPORT.C_TANULOID = FELHASZNALO.ID
|
||||
WHERE FELHASZNALO.TOROLT = 'F' AND TANCSOPORT.C_OSZTALYCSOPORTID = @oid AND FELHASZNALO.C_TANEVID = @pTanevId;
|
||||
|
||||
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
|
||||
|
||||
SELECT * INTO #tempOsztalyErtekelesek FROM fnGetDokumentumErtekelesekOsztalyonkent (@pTanevId, @oid, @pErtekelestipusaId, DEFAULT, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT) AS ERTEKELESEK
|
||||
|
||||
INSERT INTO #szurtErtekeles (T_TANULOERTEKELES_ID, TANULOID, ERTEKELES, ERTEKELES_SZOVEG_MEGJEGYZES, C_ERTEKELESDATUM, TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, T_TANTARGY_C_FOTARGYE, T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN, C_OSZTALYCSOPORTID)
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId), CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloId AS NVARCHAR)
|
||||
,COALESCE(CAST(ErtekelesOsztalyzatValue AS NVARCHAR(MAX)),
|
||||
IIF(ErtekelesSzoveg IS NOT NULL, CASE WHEN ErtekelesSzovegRovidNev IN ('1', '2', '3', '4', '5') THEN 'Sz' ELSE ErtekelesSzovegRovidNev END, NULL),
|
||||
ErtekelesSzazalek)
|
||||
,COALESCE(ErtekelesSzoveg, ErtekelesTema, ''), Datum, TantargyId, TantargyNevZarojellel, TARGYKATEG.C_NAME, TARGYKATEG.C_VALUE, FotargyE, Altantargy, OsztalyCsoportId
|
||||
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = ERTEKELESEK.TargyKategoriaId AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE TantargyId IS NOT NULL AND (FotargyE = 'T' OR Altantargy = 'T')
|
||||
|
||||
--MAGATARTÁS-SZORGALOM
|
||||
INSERT INTO #szurtMagszorg (T_TANULOERTEKELES_ID, TANULOID, MagatartasOsztalyzat, MagatartasErtek, SzorgalomOsztalyzat, SzorgalomErtek, ERTEKELESSZOVEG, ERTEKELESDATUM, TOROLT)
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY TanuloId) AS ID, CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloId AS NVARCHAR) AS TANULOID,
|
||||
COALESCE(CAST(MagatartasOsztalyzatValue AS NVARCHAR(MAX)), CAST(MagatartasErtekOsztalyzatkent AS NVARCHAR(MAX)), MagatartasSzovegRovidNev) AS MagatartasOsztalyzat, MagatartasErtek,
|
||||
COALESCE(CAST(SzorgalomOsztalyzatValue AS NVARCHAR(MAX)), CAST(SzorgalomErtekOsztalyzatkent AS NVARCHAR(MAX)), SzorgalomSzovegRovidNev) AS SzorgalomOsztalyzat, SzorgalomErtek,
|
||||
ErtekelesSzoveg AS C_ERTEKELESSZOVEG, Datum AS C_ERTEKELESDATUM, 'F' AS TOROLT
|
||||
FROM #tempOsztalyErtekelesek AS ERTEKELESEK
|
||||
WHERE TantargyId IS NULL;
|
||||
|
||||
--MULASZTÁS
|
||||
DROP TABLE IF EXISTS #HozottMulasztas
|
||||
CREATE TABLE #HozottMulasztas (OsztalyId_TanuloID NVARCHAR(20) COLLATE DATABASE_DEFAULT, HozottIgazolt INT, HozottIgazolatlan INT)
|
||||
INSERT INTO #HozottMulasztas (OsztalyId_TanuloID, HozottIgazolt, HozottIgazolatlan)
|
||||
SELECT
|
||||
CAST(o.ID AS NVARCHAR) + '_' + CAST(tcs.C_TANULOID AS NVARCHAR)
|
||||
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLTHIANYZAS,0),0))
|
||||
,SUM(IIF( tcs.C_BELEPESDATUM < @idoszakVege,ISNULL(tta.C_HOZOTTIGAZOLATLANHIANYZAS,0),0))
|
||||
FROM T_OSZTALY_OSSZES o
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID= o.ID AND ocs.TOROLT = 'F'
|
||||
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.C_TANEVID = @pTanevId AND tcs.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.C_TANEVID = @pTanevId AND tta.TOROLT = 'F'
|
||||
WHERE C_ALTANEVID = @pTanevId AND o.TOROLT = 'F'
|
||||
GROUP BY tcs.C_TANULOID, o.ID
|
||||
|
||||
INSERT INTO #szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA)
|
||||
SELECT TIPUS_CHAR, TIPUS, IGAZOLT, CAST(@oid AS NVARCHAR) + '_' + CAST(TanuloMulasztas.TANULOID AS NVARCHAR), GYAKORLATI, SUM(KESESPERC), SUM(MULASZTASOK_SZAMA)
|
||||
FROM #tempMulasztas AS TanuloMulasztas
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @oid, 'T') AS TANULO ON TANULO.TanuloId = TanuloMulasztas.TANULOID
|
||||
WHERE TANULO.BelepesDatum <= DATUM
|
||||
AND (TANULO.KilepesDatum IS NULL OR TANULO.KilepesDatum >= DATUM)
|
||||
AND (IIF(@pAtsoroltTanuloAdatok > 0, 1, 0) = 1 OR (OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@oid, @pTanevId, DEFAULT))))
|
||||
AND (@idoszakEleje IS NULL OR DATUM >= @idoszakEleje)
|
||||
AND (@idoszakVege IS NULL OR DATUM <= @idoszakVege)
|
||||
GROUP BY TIPUS_CHAR, TIPUS, IGAZOLT, TanuloMulasztas.TANULOID, GYAKORLATI
|
||||
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
INSERT INTO #szurtMulasztasRes
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(KESESPERC) AS KESESPERC, SUM(KESESPERC)/45 AS KESESORA, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, 'F'
|
||||
FROM #szurtMulasztas
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
|
||||
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
|
||||
INSERT INTO #szurtMulasztasOsszesRes
|
||||
SELECT C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, 'F'
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(KESESPERC)/45 AS MULASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'K'
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
|
||||
UNION ALL
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'H'
|
||||
GROUP BY TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID
|
||||
) AS KM
|
||||
GROUP BY C_IGAZOLT, TANULOID
|
||||
ORDER BY TANULOID, C_IGAZOLT DESC;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #szurtMulasztasRes
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
ORDER BY TANULOID, C_TIPUS DESC, C_IGAZOLT DESC;
|
||||
|
||||
INSERT INTO #szurtMulasztasOsszesRes
|
||||
SELECT C_IGAZOLT, TANULOID, SUM(MULASZTASOK_SZAMA) AS MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM (
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 45 ELSE 45 END) AS MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'K'
|
||||
UNION ALL
|
||||
SELECT TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM #szurtMulasztas
|
||||
WHERE TIPUS_CHAR = 'H'
|
||||
) AS KM
|
||||
GROUP BY C_IGAZOLT, TANULOID, C_GYAKORLATI
|
||||
ORDER BY TANULOID, C_IGAZOLT DESC;
|
||||
END
|
||||
|
||||
FETCH NEXT FROM osztaly_cursor
|
||||
INTO @oid, @onev, @okf, @ovegz
|
||||
END
|
||||
CLOSE osztaly_cursor;
|
||||
DEALLOCATE osztaly_cursor;
|
||||
UPDATE szm SET MULASZTASOK_SZAMA = ISNULL(MULASZTASOK_SZAMA,0) +
|
||||
IIF(szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'T' AND szm.C_GYAKORLATI = 'F',hm.HozottIgazolt, IIF(szm.TIPUS_CHAR = 'H' AND szm.C_IGAZOLT = 'F' AND szm.C_GYAKORLATI = 'F',hm.HozottIgazolatlan,0))
|
||||
FROM #szurtMulasztasRes szm LEFT JOIN #HozottMulasztas hm ON hm.OsztalyId_TanuloID = szm.TANULOID
|
||||
|
||||
INSERT INTO #szurtMulasztasRes (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI)
|
||||
SELECT 'H',@pMulasztasTipusIdHianyzas, 'T', hm.OsztalyId_TanuloID, hm.HozottIgazolt, 'F' FROM #HozottMulasztas hm
|
||||
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
|
||||
WHERE szm.TANULOID IS NULL AND hm.OsztalyId_TanuloID IS NOT NULL
|
||||
|
||||
INSERT INTO #szurtMulasztasRes (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, TANULOID, MULASZTASOK_SZAMA, C_GYAKORLATI)
|
||||
SELECT 'H',@pMulasztasTipusIdHianyzas, 'F', hm.OsztalyId_TanuloID, hm.HozottIgazolatlan, 'F' FROM #HozottMulasztas hm
|
||||
LEFT JOIN #szurtMulasztasRes szm ON szm.TANULOID = hm.OsztalyId_TanuloID
|
||||
WHERE (szm.TANULOID IS NULL OR NOT EXISTS (SELECT TOP 1 TANULOID FROM #szurtMulasztasRes szm2 WHERE szm2.TANULOID = hm.OsztalyId_TanuloID AND szm2.C_IGAZOLT='F' AND szm2.TIPUS_CHAR = 'H' AND szm2.C_GYAKORLATI = 'F') ) AND hm.OsztalyId_TanuloID IS NOT NULL
|
||||
|
||||
DROP TABLE IF EXISTS #OsztalyHozottMulasztas
|
||||
SELECT DISTINCT TANULOID, TANULONEV, OSZTALYNEV, FORMAT(BELEPESDATUM, 'yyyy.MM.dd', 'hu-HU') + ' - ' + ISNULL (FORMAT(KILEPESDATUM, 'yyyy.MM.dd', 'hu-HU'), '') AS BESOROLASA, OSZTALYID
|
||||
FROM #osztalyTanulok
|
||||
ORDER BY OSZTALYNEV, TANULONEV;
|
||||
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_SORSZAM
|
||||
FROM #tantargyak
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
SELECT * FROM #szurtErtekeles
|
||||
|
||||
SELECT * FROM #szurtMagszorg
|
||||
|
||||
SELECT * FROM #szurtMulasztasRes
|
||||
|
||||
SELECT * FROM #szurtMulasztasOsszesRes
|
||||
|
||||
SELECT TANULOID, [D] AS Dicseret, [K] AS Kituno
|
||||
FROM (
|
||||
SELECT TANULOID, T_TANULOERTEKELES_ID, LEFT(ERTEKELES_SZOVEG_MEGJEGYZES, 1) AS Szoveg
|
||||
FROM #szurtErtekeles
|
||||
WHERE
|
||||
ERTEKELES = '5'
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(ERTEKELES_SZOVEG_MEGJEGYZES,CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) IN ( 'Dicséret', 'Kitűnő' )
|
||||
) AS s
|
||||
PIVOT(COUNT(T_TANULOERTEKELES_ID) FOR Szoveg IN ([D], [K])) piv
|
||||
ORDER BY TANULOID
|
||||
|
||||
DROP TABLE IF EXISTS #tempOsztalyErtekelesek;
|
||||
|
||||
DROP TABLE IF EXISTS #tempMulasztas;
|
||||
END
|
||||
GO
|
@@ -0,0 +1,274 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetBukasraAlloTanulok
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetBukasraAlloTanulok
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pOsztalyCsoportIdXML XML = NULL
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @ocsId int
|
||||
|
||||
DECLARE @OsztalyCsoport TABLE(Id int)
|
||||
|
||||
IF @pOsztalyCsoportIdXML IS NOT NULL
|
||||
BEGIN
|
||||
INSERT INTO @OsztalyCsoport(Id)
|
||||
SELECT Data FROM fnConvertXmlIntListToTable(@pOsztalyCsoportIdXML, 'a', 'b')
|
||||
END
|
||||
ELSE BEGIN
|
||||
INSERT INTO @OsztalyCsoport
|
||||
SELECT osztalyok.OsztalyId FROM fnGetDokumentumOsztalyokTanevenkent (@pTanevId) osztalyok
|
||||
END
|
||||
|
||||
DECLARE ocsCur CURSOR FOR
|
||||
SELECT DISTINCT k.ID FROM @OsztalyCsoport ocs
|
||||
CROSS APPLY fnGetKapcsolodoOsztalycsoportok(ocs.ID) k
|
||||
|
||||
CREATE TABLE #ErtekelesTemp
|
||||
(
|
||||
[OMKod] NVARCHAR(MAX)
|
||||
,[SzulHelyIdoAnyjaNeve] NVARCHAR(MAX)
|
||||
,[TanuloNev] NVARCHAR(MAX)
|
||||
,[OsztalyCsoportNev] NVARCHAR(MAX)
|
||||
,[TantargyNev] NVARCHAR(MAX)
|
||||
,[Atlag] DECIMAL(10,2)
|
||||
,[TanarNeve] NVARCHAR(MAX)
|
||||
)
|
||||
CREATE TABLE #CsoportNevek (OsztalyCsoportNeve nvarchar(200))
|
||||
CREATE TABLE #OsszErtekeles
|
||||
(
|
||||
ErtekelesId INT NOT NULL,
|
||||
Datum DATE,
|
||||
TipusId INT,
|
||||
ErtekelesSzoveg NVARCHAR(MAX),
|
||||
ErtekelesSzovegRovidNev NVARCHAR(3),
|
||||
ErtekelesOsztalyzatId INT,
|
||||
ErtekelesOsztalyzatValue INT,
|
||||
ErtekelesOsztalyzatNev NVARCHAR(MAX),
|
||||
ErtekelesSzazalek NVARCHAR(MAX),
|
||||
MagatartasOsztalyzatId INT,
|
||||
MagatartasOsztalyzatValue INT,
|
||||
MagatartasOsztalyzatNev NVARCHAR(MAX),
|
||||
MagatartasSzoveg NVARCHAR(MAX),
|
||||
MagatartasSzovegRovidNev NVARCHAR(3),
|
||||
MagatartasErtekId INT,
|
||||
MagatartasErtek NVARCHAR(MAX),
|
||||
MagatartasErtekOsztalyzatkent INT,
|
||||
SzorgalomOsztalyzatId INT,
|
||||
SzorgalomOsztalyzatValue INT,
|
||||
SzorgalomOsztalyzatNev NVARCHAR(MAX),
|
||||
SzorgalomSzoveg NVARCHAR(MAX),
|
||||
SzorgalomSzovegRovidNev NVARCHAR(3),
|
||||
SzorgalomErtekId INT,
|
||||
SzorgalomErtek NVARCHAR(MAX),
|
||||
SzorgalomErtekOsztalyzatkent INT,
|
||||
TanuloId INT,
|
||||
TanuloCsoportId INT,
|
||||
OsztalyCsoportId INT,
|
||||
TantargyId INT,
|
||||
TantargyNevZarojellel NVARCHAR(MAX),
|
||||
TantargyNevNyomtatvanyban NVARCHAR(MAX),
|
||||
TantargyNev NVARCHAR(MAX),
|
||||
TantargyAngolNev NVARCHAR(MAX),
|
||||
TantargyNemetNev NVARCHAR(MAX),
|
||||
TargyKategoriaId INT,
|
||||
FotargyE CHAR(1),
|
||||
Altantargy CHAR(1),
|
||||
FotargyId INT,
|
||||
ErtekelesTema NVARCHAR(MAX),
|
||||
ErtekeloId INT,
|
||||
ErtekelesModjaId INT,
|
||||
IsMagatartasSzorgalom CHAR(1),
|
||||
Jeloles NVARCHAR(MAX),
|
||||
JelolesAndErtekelesTema NVARCHAR(MAX),
|
||||
RogzitesDatum DATE
|
||||
)
|
||||
|
||||
OPEN ocsCur
|
||||
FETCH NEXT FROM ocsCur INTO @ocsId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
TRUNCATE TABLE #OsszErtekeles
|
||||
INSERT INTO #OsszErtekeles
|
||||
(
|
||||
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
|
||||
,TanuloCsoportId
|
||||
,OsztalyCsoportId
|
||||
,TantargyId
|
||||
,TantargyNevZarojellel
|
||||
,TantargyNevNyomtatvanyban
|
||||
,TantargyNev
|
||||
,TantargyAngolNev
|
||||
,TantargyNemetNev
|
||||
,TargyKategoriaId
|
||||
,FotargyE
|
||||
,Altantargy
|
||||
,FotargyId
|
||||
,ErtekelesTema
|
||||
,ErtekeloId
|
||||
,ErtekelesModjaId
|
||||
,IsMagatartasSzorgalom
|
||||
,Jeloles
|
||||
,JelolesAndErtekelesTema
|
||||
,RogzitesDatum
|
||||
)
|
||||
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
|
||||
,TanuloCsoportId
|
||||
,OsztalyCsoportId
|
||||
,TantargyId
|
||||
,TantargyNevZarojellel
|
||||
,TantargyNevNyomtatvanyban
|
||||
,TantargyNev
|
||||
,TantargyAngolNev
|
||||
,TantargyNemetNev
|
||||
,TargyKategoriaId
|
||||
,FotargyE
|
||||
,Altantargy
|
||||
,FotargyId
|
||||
,ErtekelesTema
|
||||
,ErtekeloId
|
||||
,ErtekelesModjaId
|
||||
,IsMagatartasSzorgalom
|
||||
,Jeloles
|
||||
,JelolesAndErtekelesTema
|
||||
,RogzitesDatum
|
||||
FROM [fnGetDokumentumErtekelesekOsztalyonkent] (@pTanevId, @ocsId, 1518, DEFAULT, 1, DEFAULT, 1)
|
||||
|
||||
TRUNCATE TABLE #ErtekelesTemp
|
||||
INSERT INTO #ErtekelesTemp
|
||||
(
|
||||
[OMKod]
|
||||
,[SzulHelyIdoAnyjaNeve]
|
||||
,[TanuloNev]
|
||||
,[OsztalyCsoportNev]
|
||||
,[TantargyNev]
|
||||
,[Atlag]
|
||||
,[TanarNeve]
|
||||
)
|
||||
SELECT
|
||||
tanulo.C_OKTATASIAZONOSITO AS OMKod
|
||||
,tanulo.C_SZULETESIHELY + ', ' + CAST(FORMAT(tanulo.C_SZULETESIDATUM, 'yyyy.MM.dd.') AS nvarchar(200)) + ', '+ tanulo.C_ANYJANEVE AS SzulHelyIdoAnyjaNeve
|
||||
,tanulo.C_NYOMTATASINEV AS TanuloNev
|
||||
,osztalyCsoport.C_NEV AS OsztalyCsoportNev
|
||||
,ertekeles.TantargyNev AS TantargyNev
|
||||
,ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) AS Atlag
|
||||
,STUFF((
|
||||
SELECT DISTINCT ', ' + f.C_NYOMTATASINEV
|
||||
FROM #OsszErtekeles
|
||||
INNER JOIN T_FELHASZNALO_OSSZES AS f ON f.ID = #OsszErtekeles.ErtekeloId AND f.C_TANEVID = @pTanevId
|
||||
WHERE (TantargyId = ertekeles.TantargyId) AND (TanuloId = ertekeles.TanuloId)
|
||||
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)'), 1, 2, '') AS TanarNeve
|
||||
FROM
|
||||
#OsszErtekeles ertekeles
|
||||
LEFT JOIN T_TANARIATLAGSULY tanariAtlagSuly ON
|
||||
tanariAtlagSuly.C_TANEVID = @pTanevId
|
||||
AND tanariAtlagSuly.TOROLT = 'F'
|
||||
AND tanariAtlagSuly.C_ERTEKELESMODID = ertekeles.ErtekelesModjaId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON
|
||||
osztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND osztalyCsoport.TOROLT = 'F'
|
||||
AND osztalyCsoport.ID = ertekeles.OsztalyCsoportId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON
|
||||
tanulo.C_TANEVID = @pTanevId
|
||||
AND tanulo.TOROLT = 'F'
|
||||
AND tanulo.ID = ertekeles.TanuloId
|
||||
WHERE
|
||||
ertekeles.ErtekelesOsztalyzatValue IS NOT NULL
|
||||
GROUP BY
|
||||
tanulo.C_OKTATASIAZONOSITO
|
||||
,tanulo.C_SZULETESIHELY
|
||||
,tanulo.C_SZULETESIDATUM
|
||||
,tanulo.C_ANYJANEVE
|
||||
,tanulo.C_NYOMTATASINEV
|
||||
,osztalyCsoport.C_NEV
|
||||
,ertekeles.TantargyNev
|
||||
,ertekeles.TantargyId
|
||||
,ertekeles.TanuloId
|
||||
HAVING
|
||||
ROUND(SUM(CAST(ertekeles.ErtekelesOsztalyzatValue AS FLOAT) * CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100) / SUM(CAST(ISNULL(tanariAtlagSuly.C_SULY, 100) AS FLOAT) / 100), 2) < 2
|
||||
|
||||
IF EXISTS(SELECT 1 FROM #ErtekelesTemp)
|
||||
BEGIN
|
||||
SELECT
|
||||
tmp.OMKod
|
||||
,tmp.SzulHelyIdoAnyjaNeve
|
||||
,tmp.TanuloNev
|
||||
,tmp.OsztalyCsoportNev
|
||||
,tmp.TantargyNev
|
||||
,tmp.Atlag
|
||||
,tmp.TanarNeve
|
||||
FROM #ErtekelesTemp tmp ORDER BY [TanuloNev],[TantargyNev]
|
||||
|
||||
INSERT INTO #CsoportNevek (OsztalyCsoportNeve)
|
||||
SELECT top 1 [OsztalyCsoportNev] FROM #ErtekelesTemp
|
||||
END
|
||||
|
||||
FETCH NEXT FROM ocsCur INTO @ocsId
|
||||
END
|
||||
|
||||
CLOSE ocsCur
|
||||
DEALLOCATE ocsCur
|
||||
|
||||
SELECT * FROM #CsoportNevek
|
||||
|
||||
DROP TABLE #ErtekelesTemp
|
||||
DROP TABLE #CsoportNevek
|
||||
DROP TABLE #OsszErtekeles
|
||||
|
||||
END
|
||||
GO
|
@@ -0,0 +1,243 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetDokumentumTantargyakErtekeleshez
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
CREATE PROCEDURE uspGetDokumentumTantargyakErtekeleshez
|
||||
@intezmenyId int,
|
||||
@tanevId int,
|
||||
@osztalyCsoportId int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @evfolyamTipusId INT = (SELECT C_EVFOLYAMTIPUSA FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND TOROLT = 'F')
|
||||
|
||||
CREATE TABLE #KapcsopodoTantargyak(
|
||||
ID INT
|
||||
,C_FOTARGYID INT
|
||||
,C_NEV NVARCHAR(255)
|
||||
,C_NEVNYOMTATVANYBAN NVARCHAR(255)
|
||||
,C_TARGYKATEGORIA INT
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
)
|
||||
INSERT INTO
|
||||
#KapcsopodoTantargyak
|
||||
SELECT
|
||||
kt.ID
|
||||
,kt.C_FOTARGYID
|
||||
,kt.C_NEV
|
||||
,t.C_NEVNYOMTATVANYBAN
|
||||
,kt.C_TARGYKATEGORIA
|
||||
,kt.C_INTEZMENYID
|
||||
,kt.C_TANEVID
|
||||
FROM
|
||||
dbo.fnGetKapcsolodoTantargyak(@intezmenyId, @tanevId, NULL) AS kt
|
||||
INNER JOIN T_TANTARGY_OSSZES AS t ON t.ID = kt.ID;
|
||||
|
||||
-- Összeszedjük minden tanuló-tanulócsoporthoz a tárgyakat
|
||||
WITH tantargy_CTE (C_TANTARGYID, C_FOTARGYID, C_TANULOID, C_TANULOCSOPORTID, C_INTEZMENYID, C_TANEVID)
|
||||
AS (
|
||||
-- TTF-es tárgyak
|
||||
SELECT DISTINCT
|
||||
Foglalkozas.C_TANTARGYID,
|
||||
Tantargy.C_FOTARGYID,
|
||||
f.ID as c_tanuloid,
|
||||
tcsOsztaly.ID as c_tanulocsoportid,
|
||||
Tantargy.C_INTEZMENYID,
|
||||
Tantargy.C_TANEVID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
INNER JOIN
|
||||
T_TANTARGY_OSSZES Tantargy ON
|
||||
Tantargy.C_INTEZMENYID = Foglalkozas.C_INTEZMENYID
|
||||
AND Tantargy.C_TANEVID = Foglalkozas.C_TANEVID
|
||||
AND Tantargy.TOROLT = 'F'
|
||||
AND Tantargy.ID = Foglalkozas.C_TANTARGYID
|
||||
INNER JOIN
|
||||
#OsztalyCsoportIdList OsztalyCsoport ON
|
||||
OsztalyCsoport.ID = Foglalkozas.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON
|
||||
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
|
||||
AND tcs.TOROLT = 'F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
||||
INNER JOIN
|
||||
T_TANULOCSOPORT_OSSZES tcsOsztaly ON
|
||||
tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
||||
AND tcsOsztaly.C_TANULOID = f.ID
|
||||
AND tcsOsztaly.TOROLT = 'F'
|
||||
WHERE
|
||||
Foglalkozas.C_INTEZMENYID = @intezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @tanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
-- ttf-ben nem szereplő tárgyak
|
||||
SELECT DISTINCT
|
||||
OrarendiOra.C_TANTARGYID,
|
||||
Tantargy.C_FOTARGYID,
|
||||
f.ID as c_tanuloid,
|
||||
tcsOsztaly.ID as c_tanulocsoportid,
|
||||
Tantargy.C_INTEZMENYID,
|
||||
Tantargy.C_TANEVID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
INNER JOIN
|
||||
T_TANTARGY_OSSZES Tantargy ON
|
||||
Tantargy.C_INTEZMENYID = OrarendiOra.C_INTEZMENYID
|
||||
AND Tantargy.C_TANEVID = OrarendiOra.C_TANEVID
|
||||
AND Tantargy.TOROLT = 'F'
|
||||
AND Tantargy.ID = OrarendiOra.C_TANTARGYID
|
||||
INNER JOIN
|
||||
#OsztalyCsoportIdList OsztalyCsoport ON
|
||||
OsztalyCsoport.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
INNER JOIN
|
||||
T_TANULOCSOPORT_OSSZES tcs ON
|
||||
tcs.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
|
||||
AND (tcs.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
|
||||
AND tcs.TOROLT = 'F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
||||
INNER JOIN
|
||||
T_TANULOCSOPORT_OSSZES tcsOsztaly ON
|
||||
tcsOsztaly.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
||||
AND (tcsOsztaly.C_BELEPESDATUM < OrarendiOra.C_ORAERVENYESSEGVEGE AND (tcsOsztaly.C_KILEPESDATUM IS NULL OR tcsOsztaly.C_KILEPESDATUM >= OrarendiOra.C_ORAERVENYESSEGKEZDETE))
|
||||
AND tcsOsztaly.C_TANULOID = f.ID
|
||||
AND tcsOsztaly.TOROLT = 'F'
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @intezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @tanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
-- Értékelést kapott tárgyak
|
||||
SELECT DISTINCT
|
||||
TanuloErtekeles.TantargyId,
|
||||
TanuloErtekeles.FotargyId,
|
||||
TanuloErtekeles.TanuloId,
|
||||
TanuloErtekeles.TanuloCsoportId as C_TANULOCSOPORTID,
|
||||
@intezmenyId,
|
||||
@tanevId
|
||||
FROM
|
||||
fnGetDokumentumErtekelesekOsztalyonkent(@tanevId, @osztalyCsoportId, DEFAULT, DEFAULT, 1, DEFAULT, DEFAULT) AS TanuloErtekeles
|
||||
|
||||
-- UNION ALL
|
||||
-- -- AMI-s értékelés
|
||||
---- összevonható-e az alap értékeléssel
|
||||
-- SELECT DISTINCT
|
||||
-- TanuloErtekeles.C_TANTARGYID,
|
||||
-- Tantargy.C_FOTARGYID,
|
||||
-- TanuloErtekeles.C_TANULOID,
|
||||
-- tcs.ID as C_TANULOCSOPORTID,
|
||||
-- Tantargy.C_INTEZMENYID,
|
||||
-- Tantargy.C_TANEVID
|
||||
-- FROM
|
||||
---- helyett az fnGetDokumentumErtekelesekOsztalyonkent
|
||||
-- T_TANULOERTEKELES_OSSZES TanuloErtekeles
|
||||
-- INNER JOIN
|
||||
-- T_TANTARGY_OSSZES Tantargy ON
|
||||
-- Tantargy.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
||||
-- AND Tantargy.C_TANEVID = TanuloErtekeles.C_TANEVID
|
||||
-- AND Tantargy.TOROLT = 'F'
|
||||
-- AND Tantargy.ID = TanuloErtekeles.C_TANTARGYID
|
||||
-- INNER JOIN
|
||||
-- T_OSZTALYCSOPORT_OSSZES Osztaly ON
|
||||
-- Osztaly.C_INTEZMENYID = TanuloErtekeles.C_INTEZMENYID
|
||||
-- AND Osztaly.C_TANEVID = TanuloErtekeles.C_TANEVID
|
||||
-- AND Osztaly.TOROLT = 'F'
|
||||
-- AND Osztaly.ID = TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID
|
||||
-- AND Osztaly.C_EVFOLYAMTIPUSA = @evfolyamTipusId
|
||||
-- INNER JOIN
|
||||
-- T_TANULOCSOPORT_OSSZES tcs ON
|
||||
-- tcs.C_OSZTALYCSOPORTID = Osztaly.ID
|
||||
-- AND tcs.C_TANULOID = TanuloErtekeles.C_TANULOID
|
||||
---- and ertekels-datum between tcs.belépés and tcs. kilépés
|
||||
-- WHERE
|
||||
-- TanuloErtekeles.C_INTEZMENYID = @intezmenyId
|
||||
-- AND TanuloErtekeles.C_TANEVID = @tanevId
|
||||
-- AND TanuloErtekeles.TOROLT = 'F'
|
||||
-- AND TanuloErtekeles.C_TANTARGYID IS NOT NULL
|
||||
-- AND TanuloErtekeles.C_ROGZITESKORITANULOOSZTALYID IS NULL
|
||||
)
|
||||
SELECT
|
||||
NULL,
|
||||
NULL,
|
||||
'Magatartás',
|
||||
'',
|
||||
0,
|
||||
f.ID,
|
||||
tcs.ID
|
||||
,0
|
||||
,''
|
||||
,0
|
||||
,0
|
||||
,''
|
||||
,@intezmenyId
|
||||
,@tanevId
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
NULL,
|
||||
NULL,
|
||||
'Szorgalom',
|
||||
'',
|
||||
0,
|
||||
f.ID,
|
||||
tcs.ID
|
||||
,1
|
||||
,''
|
||||
,0
|
||||
,0
|
||||
,''
|
||||
,@intezmenyId
|
||||
,@tanevId
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID AND f.TOROLT = 'F'
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId AND tcs.TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
KapcsopodoTantargy.ID,
|
||||
KapcsopodoTantargy.C_FOTARGYID,
|
||||
KapcsopodoTantargy.C_NEV,
|
||||
KapcsopodoTantargy.C_NEVNYOMTATVANYBAN,
|
||||
KapcsopodoTantargy.C_TARGYKATEGORIA,
|
||||
tantargy_CTE.c_tanuloId,
|
||||
tantargy_CTE.c_tanulocsoportid
|
||||
,CASE WHEN KapcsopodoTantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END
|
||||
,ISNULL(ISNULL(Fotargy.C_NEVNYOMTATVANYBAN, Fotargy.C_NEV), ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV)) AS RENDEZ2
|
||||
,ISNULL(KapcsopodoTantargy.C_FOTARGYID, KapcsopodoTantargy.ID) AS RENDEZ3
|
||||
,KapcsopodoTantargy.C_FOTARGYID AS RENDEZ4
|
||||
,ISNULL(KapcsopodoTantargy.C_NEVNYOMTATVANYBAN, KapcsopodoTantargy.C_NEV) AS RENDEZ5
|
||||
,KapcsopodoTantargy.C_INTEZMENYID
|
||||
,KapcsopodoTantargy.C_TANEVID
|
||||
FROM tantargy_CTE
|
||||
INNER JOIN
|
||||
#KapcsopodoTantargyak KapcsopodoTantargy ON
|
||||
tantargy_CTE.C_TANTARGYID = KapcsopodoTantargy.ID
|
||||
OR tantargy_CTE.C_FOTARGYID = KapcsopodoTantargy.ID
|
||||
LEFT JOIN
|
||||
T_TANTARGY_OSSZES Fotargy ON
|
||||
Fotargy.C_INTEZMENYID = tantargy_CTE.C_INTEZMENYID
|
||||
AND Fotargy.C_TANEVID = tantargy_CTE.C_TANEVID
|
||||
AND Fotargy.TOROLT = 'F'
|
||||
AND Fotargy.ID = tantargy_CTE.C_FOTARGYID
|
||||
LEFT JOIN
|
||||
T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON
|
||||
TargyKategoriaDictionary.Id = KapcsopodoTantargy.C_TARGYKATEGORIA
|
||||
AND TargyKategoriaDictionary.TOROLT = 'F'
|
||||
AND TargyKategoriaDictionary.C_TANEVID = @tanevId
|
||||
LEFT JOIN
|
||||
T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON
|
||||
FotargyKategoriaDictionary.ID = Fotargy.C_TARGYKATEGORIA
|
||||
AND FotargyKategoriaDictionary.TOROLT = 'F'
|
||||
AND FotargyKategoriaDictionary.C_TANEVID = Fotargy.C_TANEVID
|
||||
END
|
||||
GO
|
Reference in New Issue
Block a user