init
This commit is contained in:
+191
@@ -0,0 +1,191 @@
|
||||
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(500)
|
||||
,ErtekelesSzazalek NVARCHAR(4)
|
||||
,MagatartasOsztalyzatId INT
|
||||
,MagatartasOsztalyzatValue INT
|
||||
,MagatartasOsztalyzatNev NVARCHAR(500)
|
||||
,MagatartasSzoveg NVARCHAR(MAX)
|
||||
,MagatartasSzovegRovidNev NVARCHAR(6)
|
||||
,MagatartasErtekId INT
|
||||
,MagatartasErtek NVARCHAR(500)
|
||||
,MagatartasErtekOsztalyzatkent INT
|
||||
,SzorgalomOsztalyzatId INT
|
||||
,SzorgalomOsztalyzatValue INT
|
||||
,SzorgalomOsztalyzatNev NVARCHAR(500)
|
||||
,SzorgalomSzoveg NVARCHAR(MAX)
|
||||
,SzorgalomSzovegRovidNev NVARCHAR(6)
|
||||
,SzorgalomErtekId INT
|
||||
,SzorgalomErtek NVARCHAR(500)
|
||||
,SzorgalomErtekOsztalyzatkent INT
|
||||
,TanuloId INT
|
||||
,TanuloCsoportId INT
|
||||
,OsztalyCsoportId INT
|
||||
,TantargyId INT
|
||||
,TantargyNevZarojellel NVARCHAR(1023)
|
||||
,TantargyNevNyomtatvanyban NVARCHAR(510)
|
||||
,TantargyNev NVARCHAR(510)
|
||||
,TantargyAngolNev NVARCHAR(510)
|
||||
,TantargyNemetNev NVARCHAR(510)
|
||||
,TargyKategoriaId INT
|
||||
,FotargyE CHAR(1)
|
||||
,Altantargy CHAR(1)
|
||||
,FotargyId INT
|
||||
,ErtekelesTema NVARCHAR(510)
|
||||
,ErtekeloId INT
|
||||
,ErtekelesModjaId INT
|
||||
,IsMagatartasSzorgalom CHAR(1)
|
||||
,Jeloles NVARCHAR(MAX)
|
||||
,JelolesAndErtekelesTema NVARCHAR(MAX)
|
||||
,RogzitesDatum DATE
|
||||
,RENDEZ1 INT
|
||||
,RENDEZ2 NVARCHAR(510)
|
||||
,RENDEZ3 INT
|
||||
,RENDEZ4 INT
|
||||
,RENDEZ5 NVARCHAR(510)
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
|
||||
DECLARE @kapcsolodoOcsID TABLE(ID INT)
|
||||
INSERT INTO @kapcsolodoOcsID (ID)
|
||||
SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, 0)
|
||||
|
||||
DECLARE @DefaultFeladatKategoriaId int = 7553
|
||||
|
||||
INSERT INTO @retTanuloErtekeles
|
||||
SELECT
|
||||
tanuloErtekeles.ID as ErtekelesId
|
||||
,tanuloErtekeles.C_DATUM as Datum
|
||||
,tanuloErtekeles.C_TIPUSID as TipusId
|
||||
,tanuloErtekeles.C_ERTEKELESSZOVEG as ErtekelesSzoveg
|
||||
,tanuloErtekeles.C_ERTEKELESSZOVEGROVIDNEV as ErtekelesSzovegRovidNev
|
||||
,tanuloErtekeles.C_ERTEKELESOSZTALYZATID as ErtekelesOsztalyzatId
|
||||
,ertekelesOsztalyzat.C_VALUE as ErtekelesOsztalyzatValue
|
||||
,ertekelesOsztalyzat.C_NAME as ErtekelesOsztalyzatNev
|
||||
,CONVERT(NVARCHAR(3), tanuloErtekeles.C_ERTEKELESSZAZALEK)+'%' as ErtekelesSzazalek
|
||||
,tanuloErtekeles.C_MAGATARTASOSZTALYZATID as MagatartasOsztalyzatId
|
||||
,magatartasOsztalyzat.C_VALUE as MagatartasOsztalyzatValue
|
||||
,magatartasOsztalyzat.C_NAME as MagatartasOsztalyzatNev
|
||||
,tanuloErtekeles.C_MAGATARTASSZOVEG as MagatartasSzoveg
|
||||
,tanuloErtekeles.C_MAGATARTASSZOVEGROVIDNEV as MagatartasSzovegRovidNev
|
||||
,tanuloErtekeles.C_MAGATARTASERTEKID as MagatartasErtekId
|
||||
,magatartasErtek.C_NAME as MagatartasErtek
|
||||
,magatartasErtek.C_VALUE + 1 as MagatartasErtekOsztalyzatken
|
||||
,tanuloErtekeles.C_SZORGALOMOSZTALYZATID as SzorgalomOsztalyzatId
|
||||
,szorgalomOsztalyzat.C_VALUE as SzorgalomOsztalyzatValue
|
||||
,szorgalomOsztalyzat.C_NAME as SzorgalomOsztalyzatNev
|
||||
,tanuloErtekeles.C_SZORGALOMSZOVEG as SzorgalomSzoveg
|
||||
,tanuloErtekeles.C_SZORGALOMSZOVEGROVIDNEV as SzorgalomSzovegRovidNev
|
||||
,tanuloErtekeles.C_SZORGALOMERTEKID as SzorgalomErtekId
|
||||
,szorgalomErtek.C_NAME as SzorgalomErtek
|
||||
,szorgalomErtek.C_VALUE + 1 as SzorgalomErtekOsztalyzatkent
|
||||
,tanuloErtekeles.C_TANULOID as TanuloId
|
||||
,TanuloCsoport.ID AS TanuloCsoportId
|
||||
,tanuloErtekeles.C_OSZTALYCSOPORTID as OsztalyCsoportId
|
||||
,tanuloErtekeles.C_TANTARGYID as TantargyId
|
||||
,IIF(tantargy.C_NEV <> tantargy.C_NEVNYOMTATVANYBAN AND tantargy.C_NEVNYOMTATVANYBAN IS NOT NULL, tantargy.C_NEVNYOMTATVANYBAN +' (' + tantargy.C_NEV + ')', tantargy.C_NEV) as TantargyNevZarojellel
|
||||
,tantargy.C_NEVNYOMTATVANYBAN as TantargyNevNyomtatvanyban
|
||||
,tantargy.C_NEV as TantargyNev
|
||||
,tantargy.C_ANGOLNEV as TantargyAngolNev
|
||||
,tantargy.C_NEMETNEV as TantargyNemetNev
|
||||
,tantargy.C_TARGYKATEGORIA as TargyKategoriaId
|
||||
,tantargy.C_FOTARGYE as FotargyE
|
||||
,tantargy.C_ALTANTARGYKENTNYOMTATVANYBAN as Altantargy
|
||||
,tantargy.C_FOTARGYID as FotargyId
|
||||
,tanuloErtekeles.C_ERTEKELESTEMA as ErtekelesTema
|
||||
,tanuloErtekeles.C_ERTEKELOID as ErtekeloId
|
||||
,tanuloErtekeles.C_ERTEKELESMODID as ErtekelesModjaId
|
||||
,tanuloErtekeles.C_ISMAGATARTASSZORGALOM as 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>',
|
||||
'') as Jeloles
|
||||
,IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL AND tanuloErtekeles.C_TIPUSID IN(1519, 1520),
|
||||
'<i>('+CAST(CHAR(ROW_NUMBER() OVER(PARTITION BY tanuloErtekeles.C_TANULOID, tanuloErtekeles.C_TIPUSID, IIF(tanuloErtekeles.C_ERTEKELESTEMA IS NOT NULL, 1, 0) ORDER BY tanuloErtekeles.C_DATUM) + 96) AS NVARCHAR(10)) + ')</i>: ' + tanuloErtekeles.C_ERTEKELESTEMA,
|
||||
'') as JelolesAndErtekelesTema
|
||||
,tanuloErtekeles.C_ROGZITESDATUM as RogzitesDatum
|
||||
,CASE WHEN tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
|
||||
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tantargy.C_NEV) as RENDEZ2
|
||||
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
|
||||
,tantargy.C_FOTARGYID as RENDEZ4
|
||||
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
|
||||
FROM T_TANULOERTEKELES_OSSZES tanuloErtekeles
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = tanuloErtekeles.C_TANULOID
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
||||
AND TanuloCsoport.TOROLT = 'F'
|
||||
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tanuloErtekeles.C_TANTARGYID AND ((ISNULL(tantargy.C_TARGYKATEGORIA,0) <> 1248) OR @includeOsztalyfonokiKategoria = 1)
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertekelesOsztalyzat ON ertekelesOsztalyzat.ID = tanuloErtekeles.C_ERTEKELESOSZTALYZATID
|
||||
AND ertekelesOsztalyzat.C_TANEVID = @tanevId
|
||||
AND ertekelesOsztalyzat.C_TYPE = 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasOsztalyzat ON magatartasOsztalyzat.ID = tanuloErtekeles.C_MAGATARTASOSZTALYZATID
|
||||
AND magatartasOsztalyzat.C_TANEVID = @tanevId
|
||||
AND magatartasOsztalyzat.C_TYPE = 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomOsztalyzat ON szorgalomOsztalyzat.ID = tanuloErtekeles.C_SZORGALOMOSZTALYZATID
|
||||
AND szorgalomOsztalyzat.C_TANEVID = @tanevId
|
||||
AND szorgalomOsztalyzat.C_TYPE = 'OsztalyzatTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartasErtek ON magatartasErtek.ID = tanuloErtekeles.C_MAGATARTASERTEKID
|
||||
AND magatartasErtek.C_TANEVID = @tanevId
|
||||
AND magatartasErtek.C_TYPE = 'MagatartasErtekelesTipus'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalomErtek ON szorgalomErtek.ID = tanuloErtekeles.C_SZORGALOMERTEKID
|
||||
AND szorgalomErtek.C_TANEVID = @tanevId
|
||||
AND szorgalomErtek.C_TYPE = '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 = @kategoriaId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanorai.ID as tanoraiId
|
||||
,cs.ID as CsoportId
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
|
||||
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
|
||||
LEFT JOIN T_OSZTALY_OSSZES osztaly ON osztaly.ID = tanuloErtekeles.C_OSZTALYCSOPORTID
|
||||
WHERE tanuloErtekeles.C_TANEVID = @tanevId
|
||||
AND tanuloErtekeles.TOROLT = 'F'
|
||||
AND (@atsoroltTanuloErtekelesek = 1 OR (tanuloErtekeles.C_OSZTALYCSOPORTID IN(SELECT ID FROM @kapcsolodoOcsID)))
|
||||
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 tanorai.tanoraiId IS NOT NULL)
|
||||
|
||||
IF @atsoroltTanuloErtekelesek > 0
|
||||
BEGIN
|
||||
DECLARE @osztalyTantargyak TABLE (TantargyId INT)
|
||||
|
||||
INSERT INTO @osztalyTantargyak (TantargyId)
|
||||
SELECT DISTINCT
|
||||
TantargyId
|
||||
FROM @retTanuloErtekeles
|
||||
WHERE OsztalyCsoportId IN (SELECT ID FROM @kapcsolodoOcsID)
|
||||
UNION
|
||||
SELECT DISTINCT
|
||||
C_TANTARGYID
|
||||
FROM T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN @kapcsolodoOcsID AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
|
||||
|
||||
DELETE FROM @retTanuloErtekeles
|
||||
WHERE TantargyId NOT IN (SELECT TantargyId FROM @osztalyTantargyak)
|
||||
END
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumKapcsolodoOsztalycsoportok
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok (@osztalyCsoportId int, @ptanevId int, @csakTanoraiCelu INT= 1)
|
||||
RETURNS @ocs TABLE (ID int)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @ocs
|
||||
|
||||
SELECT @osztalyCsoportId AS ID
|
||||
|
||||
UNION
|
||||
|
||||
SELECT cs.ID
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
|
||||
WHERE C_OSZTALYBONTASID = @osztalyCsoportId
|
||||
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT tcs.C_OSZTALYCSOPORTID
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
|
||||
INNER JOIN (
|
||||
SELECT DISTINCT x.C_TANULOID, x.C_BELEPESDATUM, x.C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES x
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = x.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANEV_OSSZES ON T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
||||
WHERE x.C_OSZTALYCSOPORTID = @osztalyCsoportId AND x.TOROLT = 'F' AND (x.C_KILEPESDATUM > T_TANEV_OSSZES.C_KEZDONAP OR x.C_KILEPESDATUM IS NULL)
|
||||
) OSZTALY_TANULO ON OSZTALY_TANULO.C_TANULOID = tcs.C_TANULOID
|
||||
AND tcs.C_BELEPESDATUM >= OSZTALY_TANULO.C_BELEPESDATUM
|
||||
AND (OSZTALY_TANULO.C_KILEPESDATUM IS NULL OR tcs.C_BELEPESDATUM < OSZTALY_TANULO.C_KILEPESDATUM)
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId AND tcs.TOROLT = 'F'
|
||||
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT C_OSZTALYBONTASID AS ID
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
|
||||
WHERE cs.ID = @osztalyCsoportId
|
||||
AND C_OSZTALYBONTASID IS NOT NULL
|
||||
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT cs.ID
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
INNER JOIN T_CSOPORTTIPUS_OSSZES cst ON cs.C_TIPUSA = cst.ID AND cs.C_ALTANEVID = cst.C_ALTANEVID
|
||||
WHERE C_OSZTALYBONTASID IN (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
AND (@csakTanoraiCelu = 0 OR C_ISTANORAICELU = 'T')
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumMulasztasokOsztalyonkentReszletes
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumMulasztasokOsztalyonkentReszletes (
|
||||
@tanevId INT
|
||||
,@osztalyCsoportId int
|
||||
,@iskolaErdekuSzamit bit
|
||||
,@csakKivlasztottOsztalyCsoport bit = 0
|
||||
,@atsoroltTanuloMulasztas bit = 1
|
||||
,@idoszakEleje date = NULL
|
||||
,@idoszakVege date = NULL
|
||||
,@csakTanoraiCelu int = 1
|
||||
)
|
||||
RETURNS @result TABLE (
|
||||
TanuloId int
|
||||
,TanuloCsoportId int
|
||||
,OsztalyCsoportId int
|
||||
,OsztalyCsoportNev nvarchar (255)
|
||||
,Tipusa int
|
||||
,Igazolt char (1)
|
||||
,IgazolasTipusa int
|
||||
,KesesPercben int null
|
||||
,Datum datetime
|
||||
,Oraszam nvarchar (255)
|
||||
,OraszamWithOrakezdeteVege nvarchar (255)
|
||||
,TantargyId int
|
||||
,TantargyNev nvarchar (255)
|
||||
,HetSorszama int
|
||||
,Gyakorlati char(1)
|
||||
,Tanorai char(1)
|
||||
)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @result
|
||||
SELECT
|
||||
C_ORATANULOIID AS TanuloId
|
||||
,TanuloCsoport.ID AS TanuloCsoportId
|
||||
,TanitasiOra.C_OSZTALYCSOPORTID AS OsztalyCsoportId
|
||||
,OsztalyCsoport.C_NEV AS OsztalyCsoportNev
|
||||
,C_TIPUS AS Tipusa
|
||||
,C_IGAZOLT AS Igazolt
|
||||
,C_IGAZOLASTIPUSA AS IgazolasTipusa
|
||||
,C_KESESPERCBEN AS KesesPercben
|
||||
,C_DATUM AS Datum
|
||||
,IIF(C_CSENGETESIRENDORAID IS NULL, dbo.fnGetDokumentumOrakezdetToOraszam(CONVERT(VARCHAR(5), C_ORAKEZDETE, 108), @tanevId), TanitasiOra.C_ORASZAM) AS Oraszam
|
||||
,IIF(C_CSENGETESIRENDORAID IS NULL, CONCAT(CONVERT(NVARCHAR(5), TanitasiOra.C_ORAKEZDETE, 108), '-',
|
||||
CONVERT(NVARCHAR(5), TanitasiOra.C_ORAVEGE, 108)), CAST(TanitasiOra.C_ORASZAM AS NVARCHAR)) AS OraszamWithOrakezdeteVege
|
||||
,C_TANTARGYID AS TantargyId
|
||||
,ISNULL(t.C_NEVNYOMTATVANYBAN, t.C_NEV) AS TantargyNev
|
||||
,C_HETSORSZAMA AS HetSorszama
|
||||
,C_GYAKORLATI AS Gyakorlati
|
||||
,IIF(o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL, 'T', 'F') AS Tanorai
|
||||
FROM T_TANULOMULASZTAS_OSSZES TanuloMulasztas
|
||||
INNER JOIN T_TANITASIORA_OSSZES TanitasiOra ON TanitasiOra.ID = TanuloMulasztas.C_TANITASIORAKID
|
||||
AND TanitasiOra.TOROLT='F'
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = TanuloMulasztas.C_ORATANULOIID
|
||||
AND TanuloCsoport.TOROLT = 'F'
|
||||
AND TanitasiOra.C_DATUM >= TanuloCsoport.C_BELEPESDATUM
|
||||
AND TanitasiOra.C_DATUM < ISNULL(TanuloCsoport.C_KILEPESDATUM, GETDATE())
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID=@osztalyCsoportId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON OsztalyCsoport.ID = TanitasiOra.C_OSZTALYCSOPORTID
|
||||
AND OsztalyCsoport.C_FELADATKATEGORIAID = @kategoriaId
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = TanitasiOra.C_TANTARGYID
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanorai.ID AS tanoraiId
|
||||
,cs.ID AS CsoportId
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
INNER JOIN fnGetTanoraiCeluCsoportTipusok(@tanevId) tanorai ON tanorai.ID = cs.C_TIPUSA
|
||||
) tanorai ON tanorai.CsoportId = OsztalyCsoport.ID
|
||||
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID=TanitasiOra.C_OSZTALYCSOPORTID
|
||||
WHERE TanuloMulasztas.C_TIPUS IN (1499, 1500) AND TanuloMulasztas.C_INTEZMENYID=TanitasiOra.C_INTEZMENYID
|
||||
AND (@csakTanoraiCelu = 0 OR (o.ID IS NOT NULL OR tanorai.tanoraiId IS NOT NULL))
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA <> 1533))
|
||||
AND TanuloMulasztas.TOROLT = 'F'
|
||||
AND (@atsoroltTanuloMulasztas = 1 OR (TanitasiOra.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@osztalyCsoportId, @tanevId, @csakTanoraiCelu))))
|
||||
AND (@csakKivlasztottOsztalyCsoport = 0 OR TanitasiOra.C_OSZTALYCSOPORTID = @osztalyCsoportId)
|
||||
AND (@idoszakEleje IS NULL OR C_DATUM >= @idoszakEleje)
|
||||
AND (@idoszakVege IS NULL OR C_DATUM <= @idoszakVege)
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@tanevId INT, @osztalyCsoportId INT, @atsoroltTanuloOrak BIT = 1)
|
||||
RETURNS @result TABLE (
|
||||
Orakszama int
|
||||
,TanuloId int
|
||||
,TantargyId int
|
||||
,TantargyNev nvarchar (255)
|
||||
,Fotargye char(1)
|
||||
,Altargye char(1)
|
||||
,Gyakorlati char(1)
|
||||
)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @result
|
||||
SELECT
|
||||
COUNT(1) AS Orakszama
|
||||
,TANULO.TanuloId
|
||||
,TANTARGY.ID AS TantargyId
|
||||
,ISNULL(TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV) AS TantargyNev
|
||||
,C_FOTARGYE AS Fotargye
|
||||
,C_ALTANTARGYKENTNYOMTATVANYBAN AS Altargye
|
||||
,C_GYAKORLATI AS Gyakorlati
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') AS TANULO
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT ON TANULOCSOPORT.C_TANULOID = TANULO.TanuloId
|
||||
INNER JOIN T_TANITASIORA_OSSZES AS TANITASIORA ON TANITASIORA.C_OSZTALYCSOPORTID = TANULOCSOPORT.C_OSZTALYCSOPORTID AND TANITASIORA.C_DATUM >= TANULOCSOPORT.C_BELEPESDATUM AND (TANULOCSOPORT.C_KILEPESDATUM IS NULL OR TANITASIORA.C_DATUM <= TANULOCSOPORT.C_KILEPESDATUM)
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS OSZTALYCSOPORT ON OSZTALYCSOPORT.ID = TANITASIORA.C_OSZTALYCSOPORTID
|
||||
and OSZTALYCSOPORT.C_FELADATKATEGORIAID = @kategoriaId
|
||||
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = TANITASIORA.C_TANTARGYID
|
||||
INNER JOIN T_NAPTARIHET_OSSZES AS NAPTARIHETEK ON TANITASIORA.C_DATUM BETWEEN NAPTARIHETEK.C_HETKEZDONAPJA AND NAPTARIHETEK.C_HETUTOLSONAPJA
|
||||
WHERE
|
||||
TANULOCSOPORT.TOROLT = 'F' AND TANITASIORA.TOROLT = 'F' AND OSZTALYCSOPORT.TOROLT = 'F' AND TANTARGY.TOROLT = 'F'
|
||||
AND TANITASIORA.C_OSZTALYCSOPORTID IN (SELECT Id FROM fnGetDokumentumOsztalyVagyTanoraiCsoport(@tanevId))
|
||||
AND TANITASIORA.C_MEGTARTOTT = 'T'
|
||||
AND NaptariHetek.C_TANEVID = @tanevId
|
||||
AND (@atsoroltTanuloOrak = 1 OR TANITASIORA.C_DATUM >= TANULO.BelepesDatum )
|
||||
AND (TANULO.KilepesDatum IS NULL OR TANITASIORA.C_DATUM <= TANULO.KilepesDatum)
|
||||
GROUP BY TANULO.TanuloId, TANTARGY.ID, C_GYAKORLATI, TANTARGY.C_NEVNYOMTATVANYBAN, TANTARGY.C_NEV, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
IF OBJECT_ID('fnGetDokumentumOsztalyokTanevenkent') IS NOT NULL BEGIN
|
||||
DROP FUNCTION fnGetDokumentumOsztalyokTanevenkent
|
||||
END
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumOsztalyokTanevenkent (@tanevId int)
|
||||
RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT
|
||||
T_OSZTALY_OSSZES.ID OsztalyId
|
||||
,ocs.C_NEV OsztalyNev
|
||||
FROM T_OSZTALY_OSSZES
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = T_OSZTALY_OSSZES.ID
|
||||
WHERE
|
||||
ocs.C_TANEVID = @tanevId
|
||||
AND ocs.TOROLT = 'F'
|
||||
)
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumTanuloAktualisOsztaly
|
||||
GO
|
||||
|
||||
CREATE FUNCTION dbo.fnGetDokumentumTanuloAktualisOsztaly (@tanuloId INT)
|
||||
RETURNS NVARCHAR(MAX)
|
||||
BEGIN
|
||||
DECLARE @value NVARCHAR(MAX)
|
||||
SELECT TOP 1
|
||||
@value = ocs.C_NEV
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON tcs.C_OSZTALYCSOPORTID = o.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID
|
||||
WHERE C_TANULOID = @tanuloId AND tcs.TOROLT = 'F'
|
||||
ORDER BY C_KILEPESDATUM
|
||||
RETURN @value
|
||||
END;
|
||||
GO
|
||||
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
DROP FUNCTION IF EXISTS fnGetDokumentumTanulokAdatai
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumTanulokAdatai (
|
||||
@tanevId int
|
||||
,@osztalyCsoportId int
|
||||
)
|
||||
RETURNS @tanuloAdatok TABLE (
|
||||
TanuloId int
|
||||
,TanuloCsoportId int
|
||||
,Sorszam int
|
||||
,TorzslapSzam varchar(1000)
|
||||
,OktAzon nvarchar(40)
|
||||
,TajSzam nvarchar(18)
|
||||
,AnyjaNeve nvarchar(128)
|
||||
,SzulHely nvarchar(100)
|
||||
,SzulIdo nvarchar(20)--formázás miatt
|
||||
,SocAdat nvarchar(200)
|
||||
,Kepzes nvarchar(510)
|
||||
,TanuloNeve nvarchar(510)
|
||||
,Allampolgarsaga nvarchar(500)
|
||||
,DiakIgazolvanySzam nvarchar(510)
|
||||
,KilepesDatum nvarchar(20) --formázás miatt
|
||||
,BeirasiNaploSorszam nvarchar(100)
|
||||
,AktualisOsztaly nvarchar(200)
|
||||
,AktualisOsztalyId int
|
||||
,AdottOsztaly nvarchar(200)
|
||||
,AdottOsztalyId int
|
||||
,BelepesDatum nvarchar(20) --formázás miatt
|
||||
)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @tanuloAdatok
|
||||
SELECT DISTINCT
|
||||
tmp.TanuloId
|
||||
,tmp.TanuloCsoportId
|
||||
,tmp.Sorszam
|
||||
,tmp.TorzslapSzam
|
||||
,tmp.OktAzon
|
||||
,tmp.TajSzam
|
||||
,tmp.AnyjaNeve
|
||||
,tmp.SzulHely
|
||||
,dbo.fnGetDokumentumDatumFormatum(tmp.szulIdo) AS SzulIdo
|
||||
,tmp.SocAdat
|
||||
,tmp.Kepzes
|
||||
,tmp.TanuloNeve
|
||||
,tmp.Allampolgarsaga
|
||||
,tmp.DiakIgazolvanySzam
|
||||
,dbo.fnGetDokumentumDatumFormatum(tmp.KilepesDatum) AS KilepesDatum
|
||||
,tmp.BeirasiNaploSorszam
|
||||
,tmp.AktualisOsztaly
|
||||
,tmp.AktualisOsztalyId
|
||||
,tmp.AdottOsztaly
|
||||
,tmp.AdottOsztalyId
|
||||
,dbo.fnGetDokumentumDatumFormatum(tmp.BelepesDatum) AS BelepesDatum
|
||||
FROM (
|
||||
SELECT
|
||||
OsztalyCsoportTanuloi.TanuloId AS TanuloId
|
||||
,OsztalyCsoportTanuloi.TanuloCsoportId AS TanuloCsoportId
|
||||
,tta.C_NAPLOSORSZAM AS Sorszam
|
||||
,tta.C_TORZSLAPSZAM AS TorzslapSzam
|
||||
,Felhasznalo.C_OKTATASIAZONOSITO AS OktAzon
|
||||
,Felhasznalo.C_TAJSZAM AS TajSzam
|
||||
,Felhasznalo.C_ANYJANEVE AS AnyjaNeve
|
||||
,Felhasznalo.C_SZULETESIHELY AS SzulHely
|
||||
,Felhasznalo.C_SZULETESIDATUM AS SzulIdo
|
||||
,IIF(tta.C_MAGANTANULO = 'T', N'Magántanuló ('
|
||||
+ ISNULL(MagantanulosagOka.C_NAME, N'-') + N')', N'')
|
||||
+ IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', N', Jogviszony szüneteltetve', N'')
|
||||
+ IIF(tta.C_SZAKMAIGYAKORLATON = 'T', N', Szakmai gyakorlat', N'')
|
||||
+ IIF(Tanulo.C_SZOCIALISTAMOGATAS = 'T', N', Szociális támogatás', N'')
|
||||
+ IIF(tta.C_BEJARO = 'T', N', Bejáró', N'') AS SocAdat
|
||||
,Tanterv.C_NEV AS Kepzes
|
||||
,Felhasznalo.C_NYOMTATASINEV AS TanuloNeve
|
||||
,AllampolgarsagDic.C_NAME AS Allampolgarsaga
|
||||
,Tanulo.C_DIAKIGAZOLVANYSZAM AS DiakIgazolvanySzam
|
||||
,OsztalyCsoportTanuloi.KilepesDatum AS KilepesDatum
|
||||
,tta.C_BEIRASINAPLOSORSZAM AS BeirasiNaploSorszam
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztaly(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztaly
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(OsztalyCsoportTanuloi.TanuloId) AS AktualisOsztalyId
|
||||
,TanuloOsztaly.OsztalyNev AS AdottOsztaly
|
||||
,TanuloOsztaly.ID AS AdottOsztalyId
|
||||
,OsztalyCsoportTanuloi.BelepesDatum AS BelepesDatum
|
||||
FROM T_TANULO_OSSZES Tanulo
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyCsoportId, 'T') OsztalyCsoportTanuloi ON OsztalyCsoportTanuloi.TanuloId = Tanulo.ID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulo.ID
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AllampolgarsagDic ON AllampolgarsagDic.ID = Felhasznalo.C_ALLAMPOLGARSAGA
|
||||
AND AllampolgarsagDic.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND AllampolgarsagDic.TOROLT = 'F'
|
||||
CROSS APPLY (
|
||||
SELECT TOP 1
|
||||
ID
|
||||
,OsztalyNev
|
||||
FROM dbo.fnGetTanuloOsztaly(OsztalyCsoportTanuloi.TanuloId, OsztalyCsoportTanuloi.BelepesDatum, @kategoriaId, 1)
|
||||
) TanuloOsztaly
|
||||
LEFT JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@osztalyCsoportId, DEFAULT) tta ON tta.TanuloId = Tanulo.ID
|
||||
LEFT JOIN T_TANTERV_OSSZES AS Tanterv ON Tanterv.ID = tta.C_TANTERVID
|
||||
AND Tanterv.TOROLT = 'F'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
|
||||
AND MagantanulosagOka.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND MagantanulosagOka.TOROLT = 'F'
|
||||
WHERE Tanulo.TOROLT = 'F'
|
||||
) tmp
|
||||
|
||||
RETURN
|
||||
|
||||
END
|
||||
GO
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
DROP FUNCTION IF EXISTS dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange
|
||||
GO
|
||||
|
||||
CREATE FUNCTION dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange (
|
||||
@pOsztalyCsoportId int
|
||||
,@pStartDate datetime
|
||||
,@pEndDate datetime
|
||||
,@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
)
|
||||
RETURNS @Result TABLE (
|
||||
Id int primary key NOT NULL
|
||||
,Kezdete datetime NOT NULL
|
||||
,Vege datetime NOT NULL
|
||||
) AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@tanevStart datetime
|
||||
,@tanevEnd datetime
|
||||
,@osztalyId int
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
|
||||
|
||||
IF EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pOsztalyCsoportId) BEGIN
|
||||
|
||||
INSERT INTO @Result (Id, Kezdete, Vege) /* maga az osztály */
|
||||
SELECT
|
||||
o.Id
|
||||
,@pStartDate
|
||||
,@pEndDate
|
||||
FROM T_OSZTALY_OSSZES o
|
||||
WHERE o.ID = @pOsztalyCsoportId
|
||||
AND o.C_ALTANEVID = @pTanevID
|
||||
AND o.C_ALINTEZMENYID = @pIntezmenyId
|
||||
AND o.TOROLT = 'F'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT /* Az osztály bontott csoportjai */
|
||||
cs.ID
|
||||
,@pStartDate
|
||||
,@pEndDate
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
WHERE C_OSZTALYBONTASID = @pOsztalyCsoportId
|
||||
AND cs.TOROLT = 'F'
|
||||
AND cs.C_ALTANEVID = @pTanevID
|
||||
AND cs.C_ALINTEZMENYID = @pIntezmenyId
|
||||
|
||||
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály tanulóinak más csoportjai */
|
||||
SELECT
|
||||
tcs.C_OSZTALYCSOPORTID AS Id
|
||||
,CASE
|
||||
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(oszt.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
|
||||
WHEN MIN(oszt.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(oszt.C_BELEPESDATUM) > @pStartDate THEN MIN(oszt.C_BELEPESDATUM)
|
||||
ELSE @pStartDate
|
||||
END AS Kezdete -- A három közül a legnagyobb
|
||||
,CASE
|
||||
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
|
||||
WHEN MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(oszt.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(oszt.C_KILEPESDATUM, @pEndDate))
|
||||
ELSE @pEndDate -- A három közül a legkisebb
|
||||
END AS Vege
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES oszt
|
||||
ON oszt.C_TANULOID = tcs.C_TANULOID
|
||||
AND oszt.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND oszt.C_BELEPESDATUM <= @pEndDate
|
||||
AND (oszt.C_KILEPESDATUM > @pStartDate OR oszt.C_KILEPESDATUM IS NULL)
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = tcs.C_OSZTALYCSOPORTID AND cs.C_OSZTALYBONTASID IS NULL
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE tcs.TOROLT = 'F'
|
||||
AND oszt.TOROLT = 'F'
|
||||
AND tcs.C_TANEVID = @pTanevId
|
||||
AND tcs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tcs.C_BELEPESDATUM <= @pEndDate
|
||||
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND NOT EXISTS (SELECT 1 FROM @Result r WHERE r.ID = tcs.C_OSZTALYCSOPORTID)
|
||||
GROUP BY tcs.C_OSZTALYCSOPORTID
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F') BEGIN
|
||||
|
||||
|
||||
SELECT @osztalyId = C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId
|
||||
|
||||
INSERT INTO @Result (Id, Kezdete, Vege) /* Az osztály, amelyiknek a bontása */
|
||||
SELECT
|
||||
@osztalyId
|
||||
,@pStartDate
|
||||
,@pEndDate
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT /* Maga a csoport */
|
||||
@pOsztalyCsoportId
|
||||
,@pStartDate
|
||||
,@pEndDate
|
||||
|
||||
|
||||
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
|
||||
SELECT
|
||||
tcs.C_OSZTALYCSOPORTID AS Id
|
||||
,CASE
|
||||
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
|
||||
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
|
||||
ELSE @pStartDate
|
||||
END AS Kezdete -- A három közül a legnagyobb
|
||||
,CASE
|
||||
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
|
||||
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
|
||||
ELSE @pEndDate
|
||||
END AS Vege -- A három közül a legkisebb
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES csop
|
||||
ON tcs.C_TANULOID = csop.C_TANULOID
|
||||
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND csop.C_BELEPESDATUM <= @pEndDate
|
||||
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
|
||||
AND csop.TOROLT = 'F'
|
||||
INNER JOIN T_CSOPORT_OSSZES cs
|
||||
ON cs.ID = tcs.C_OSZTALYCSOPORTID
|
||||
AND (cs.C_OSZTALYBONTASID IS NULL OR cs.C_OSZTALYBONTASID = @osztalyId)
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = cs.ID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE tcs.C_OSZTALYCSOPORTID <> @pOsztalyCsoportId
|
||||
AND tcs.C_TANEVID = @pTanevId
|
||||
AND tcs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tcs.C_BELEPESDATUM <= @pEndDate
|
||||
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
|
||||
GROUP BY tcs.C_OSZTALYCSOPORTID
|
||||
END
|
||||
|
||||
IF EXISTS (SELECT 1 FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId AND C_OSZTALYBONTASID IS NULL AND TOROLT = 'F') BEGIN
|
||||
|
||||
INSERT INTO @Result (Id, Kezdete, Vege) /* Az csoport tanulóinak más csoportjai */
|
||||
SELECT
|
||||
tcs.C_OSZTALYCSOPORTID AS Id
|
||||
,CASE
|
||||
WHEN MIN(tcs.C_BELEPESDATUM) > MIN(csop.C_BELEPESDATUM) AND MIN(tcs.C_BELEPESDATUM) > @pStartDate THEN MIN(tcs.C_BELEPESDATUM)
|
||||
WHEN MIN(csop.C_BELEPESDATUM) > MIN(tcs.C_BELEPESDATUM) AND MIN(csop.C_BELEPESDATUM) > @pStartDate THEN MIN(csop.C_BELEPESDATUM)
|
||||
ELSE @pStartDate
|
||||
END AS Kezdete -- A három közül a legnagyobb
|
||||
,CASE
|
||||
WHEN MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(tcs.C_KILEPESDATUM, @pEndDate))
|
||||
WHEN MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < MAX(ISNULL(tcs.C_KILEPESDATUM, @pEndDate)) AND MAX(ISNULL(csop.C_KILEPESDATUM, @pEndDate)) < @pEndDate THEN MIN(ISNULL(csop.C_KILEPESDATUM, @pEndDate))
|
||||
ELSE @pEndDate
|
||||
END AS Vege -- A három közül a legkisebb
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES csop
|
||||
ON tcs.C_TANULOID = csop.C_TANULOID
|
||||
AND csop.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND csop.C_BELEPESDATUM <= @pEndDate
|
||||
AND (csop.C_KILEPESDATUM > @pStartDate OR csop.C_KILEPESDATUM IS NULL)
|
||||
AND csop.TOROLT = 'F'
|
||||
AND csop.C_BELEPESDATUM <= ISNULL(tcs.C_KILEPESDATUM, @pEndDate) AND ISNULL(csop.C_KILEPESDATUM, @pEndDate) > tcs.C_BELEPESDATUM
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT='F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE tcs.C_TANEVID = @pTanevId
|
||||
AND tcs.C_INTEZMENYID = @pIntezmenyId
|
||||
AND tcs.C_BELEPESDATUM <= @pEndDate
|
||||
AND (tcs.C_KILEPESDATUM > @pStartDate OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND tcs.TOROLT = 'F' AND csop.TOROLT = 'F'
|
||||
GROUP BY tcs.C_OSZTALYCSOPORTID
|
||||
END
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
Minden olyan esetben amikor egy osztályhoz tartozó csoportokat kell meghatározni,
|
||||
akkor az alábbi módon kell ezeket megadni:
|
||||
a. Egy osztályhoz tartozik minden olyan csoport, amelynek tagja az osztály bármelyik tanulója.
|
||||
Tehát ha egy osztályból akár egyetlen tanuló is tagja egy csoportnak, akkor az az osztályhoz is kapcsolódik.
|
||||
b. Továbbá egy osztályhoz mindig kapcsolódnak az osztálybontásosnak jelölt csoportjaik is,
|
||||
függetlenül attól, hogy abban van-e tanuló!
|
||||
*/
|
||||
|
||||
DROP FUNCTION IF EXISTS fnGetKapcsolodoOsztalycsoportok
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetKapcsolodoOsztalycsoportok (
|
||||
@osztalyCsoportId int
|
||||
)
|
||||
RETURNS @ocs TABLE (ID int)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @ocs
|
||||
SELECT @osztalyCsoportId AS ID /* Önmaga */
|
||||
|
||||
UNION
|
||||
|
||||
SELECT ID /* Osztály esetén, a bontott csoportok */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId
|
||||
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID IN (
|
||||
SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
|
||||
) AND TOROLT ='F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT tcs2.C_OSZTALYCSOPORTID /* Azok az osztálycsoportok, ahová járnak tanulók a @osztalyCsoportId-ból */
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANEV_OSSZES tanev ON tanev.ID = tcs.C_TANEVID AND tanev.TOROLT = 'F'
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
||||
AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
|
||||
AND tcs2.C_BELEPESDATUM <= GETDATE() AND (tcs2.C_KILEPESDATUM > GETDATE() OR tcs2.C_KILEPESDATUM IS NULL OR tcs2.C_KILEPESDATUM >= tanev.C_UTOLSOTANITASINAP)
|
||||
AND tcs.TOROLT = 'F'
|
||||
AND tcs2.TOROLT = 'F'
|
||||
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
Minden olyan esetben amikor egy osztályhoz tartozó csoportokat kell meghatározni,
|
||||
akkor az alábbi módon kell ezeket megadni:
|
||||
a. Egy osztályhoz tartozik minden olyan csoport, amelynek tagja az osztály bármelyik tanulója.
|
||||
Tehát ha egy osztályból akár egyetlen tanuló is tagja egy csoportnak, akkor az az osztályhoz is kapcsolódik.
|
||||
b. Továbbá egy osztályhoz mindig kapcsolódnak az osztálybontásosnak jelölt csoportjaik is,
|
||||
függetlenül attól, hogy abban van-e tanuló!
|
||||
*/
|
||||
|
||||
DROP FUNCTION IF EXISTS fnGetKapcsolodoOsztalycsoportokByDate
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetKapcsolodoOsztalycsoportokByDate (
|
||||
@osztalyCsoportId int
|
||||
,@start datetime
|
||||
,@end datetime
|
||||
)
|
||||
RETURNS @ocs TABLE (ID int)
|
||||
AS BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
|
||||
INSERT INTO @ocs
|
||||
|
||||
SELECT @osztalyCsoportId AS ID /* Önmaga */
|
||||
|
||||
UNION
|
||||
|
||||
SELECT ID /* Osztály esetén, a bontott csoportok */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT C_OSZTALYBONTASID AS ID /* Csoport esetén, a ha bontott, akkor az osztálya */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId
|
||||
AND C_OSZTALYBONTASID IS NOT NULL AND TOROLT = 'F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT ID /* Csoport esetén, a ha bontott, akkor az osztályának a többi csoportbontása */
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID IN (
|
||||
SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId AND TOROLT = 'F'
|
||||
) AND TOROLT ='F'
|
||||
|
||||
UNION
|
||||
|
||||
SELECT tcs2.C_OSZTALYCSOPORTID /* Azok az osztálycsoportok, ahová járnak tanulók a @osztalyCsoportId-ból */
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs2 ON tcs2.C_TANULOID = tcs.C_TANULOID
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs2.C_OSZTALYCSOPORTID
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @osztalyCsoportId
|
||||
AND tcs.C_BELEPESDATUM <= @end AND (tcs.C_KILEPESDATUM > @start OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND tcs2.C_BELEPESDATUM <= @end AND (tcs2.C_KILEPESDATUM > @start OR tcs2.C_KILEPESDATUM IS NULL)
|
||||
AND tcs.TOROLT = 'F'
|
||||
AND tcs2.TOROLT = 'F'
|
||||
AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
DROP FUNCTION IF EXISTS fnGetNapirendUtkozesByOsztalycsoport
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetNapirendUtkozesByOsztalycsoport (
|
||||
@startTime datetime
|
||||
,@endTime datetime
|
||||
,@osztalyCsoportId int
|
||||
,@intezmenyId int
|
||||
,@tanevId int
|
||||
) RETURNS INT
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM T_NAPTARINAP_OSSZES n
|
||||
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
|
||||
INNER JOIN T_ORARENDIORA_OSSZES o ON ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND
|
||||
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
|
||||
AND n.C_INTEZMENYID = o.C_INTEZMENYID
|
||||
AND n.C_TANEVID = o.C_TANEVID
|
||||
WHERE CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) <= @endTime
|
||||
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) >= @startTime
|
||||
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
|
||||
AND n.C_TANEVID = @tanevId AND n.C_INTEZMENYID = @intezmenyId
|
||||
AND n.C_NAPDATUMA BETWEEN CAST(@startTime AS DATE) AND CAST(@endTime AS DATE)
|
||||
UNION ALL
|
||||
SELECT 1 FROM T_TANITASIORA_OSSZES o
|
||||
WHERE o.C_ORAKEZDETE <= @endTime
|
||||
AND o.C_ORAVEGE >= @startTime
|
||||
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
|
||||
)
|
||||
BEGIN
|
||||
RETURN 1
|
||||
END
|
||||
RETURN 0
|
||||
END
|
||||
GO
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
DROP FUNCTION IF EXISTS fnGetUtkozesByOsztalycsoport
|
||||
GO
|
||||
|
||||
CREATE FUNCTION [fnGetUtkozesByOsztalycsoport] (
|
||||
@startTime datetime,
|
||||
@endTime datetime,
|
||||
@osztalyCsoportId int,
|
||||
@intezmenyId int,
|
||||
@tanevId int
|
||||
) RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT o.ID AS OrarendiOraId, NULL AS TanitasioraId, NULL AS OsztalyCsoportId, NULL as NemKotottMunkaido
|
||||
FROM T_NAPTARINAP_OSSZES n
|
||||
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = n.C_NAPDATUMA
|
||||
INNER JOIN T_ORARENDIORA_OSSZES o ON (ISNULL(tr.C_HETIREND, n.C_HETIREND) = o.C_HETIREND OR o.C_HETIREND = 1554)
|
||||
AND ISNULL(tr.C_HETNAPJA, n.C_HETNAPJA) = o.C_HETNAPJA
|
||||
AND n.C_INTEZMENYID = o.C_INTEZMENYID
|
||||
AND n.C_TANEVID = o.C_TANEVID
|
||||
WHERE CAST(CAST(@startTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAKEZDETE AS TIME) AS DATETIME) < @endTime
|
||||
AND CAST(CAST(@endTime AS DATE) AS DATETIME) + CAST(CAST(o.C_ORAVEGE AS TIME) AS DATETIME) > @startTime
|
||||
AND o.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
|
||||
AND n.C_TANEVID = @tanevId
|
||||
AND n.C_INTEZMENYID = @intezmenyId
|
||||
AND n.C_NAPDATUMA >= CAST(@startTime AS DATE) AND n.C_NAPDATUMA <= CAST(@endTime AS DATE)
|
||||
AND n.TOROLT = 'F' AND (tr.TOROLT = 'F' OR tr.TOROLT IS NULL) AND o.TOROLT = 'F' and o.C_PARHUZAMOSORA = 'F'
|
||||
AND o.C_ORAERVENYESSEGKEZDETE <= CAST(@endTime AS DATE) AND o.C_ORAERVENYESSEGVEGE >= CAST(@startTime AS DATE)
|
||||
|
||||
UNION
|
||||
|
||||
SELECT o.ID AS OrarendiOraId, tn.ID AS TanitasioraId, tn.C_OSZTALYCSOPORTID AS OsztalyCsoportID, NULL as NemKotottMunkaido
|
||||
FROM T_TANITASIORA_OSSZES tn
|
||||
LEFT JOIN T_ORARENDIORA o ON tn.C_ORARENDIORAGROUPID = o.C_ORARENDIORAGROUPID AND tn.C_DATUM BETWEEN o.C_ORAERVENYESSEGKEZDETE AND o.C_ORAERVENYESSEGVEGE
|
||||
WHERE tn.C_ORAKEZDETE <= @endTime
|
||||
AND tn.C_ORAVEGE >= @startTime
|
||||
AND tn.C_OSZTALYCSOPORTID IN (SELECT ID FROM dbo.fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId))
|
||||
AND tn.C_TANEVID = @tanevId
|
||||
AND tn.C_INTEZMENYID = @intezmenyId
|
||||
AND tn.TOROLT = 'F' and tn.C_PARHUZAMOSORA = 'F'
|
||||
);
|
||||
GO
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
-- =============================================
|
||||
-- Author: Dőrr Tamás
|
||||
-- Create date: 2017.02.24.
|
||||
-- Description: Visszaadja, hogy megy diákok hiányoztak az aktuális tanítási óra előtti órájukról
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS sp_GetElozoOranHianyzottTanulok
|
||||
GO
|
||||
CREATE PROCEDURE [sp_GetElozoOranHianyzottTanulok]
|
||||
@OsztalyCsoportId int
|
||||
,@Datum datetime
|
||||
,@OraKezdete datetime
|
||||
,@HianyzasTipus int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
CREATE TABLE #OsztalyTanuloi (TanuloId int)
|
||||
|
||||
INSERT INTO #OsztalyTanuloi (TanuloId)
|
||||
SELECT C_TANULOID
|
||||
FROM T_TANULOCSOPORT
|
||||
WHERE C_OSZTALYCSOPORTID = @OsztalyCsoportId
|
||||
AND C_BELEPESDATUM <= @Datum AND ISNULL(C_KILEPESDATUM, GETDATE()) > @Datum
|
||||
AND TOROLT = 'F'
|
||||
|
||||
CREATE TABLE #Temp (
|
||||
TanuloId int
|
||||
,Tipus int
|
||||
,Orakezdete datetime
|
||||
)
|
||||
|
||||
INSERT INTO #Temp (TanuloId, Tipus, Orakezdete)
|
||||
SELECT
|
||||
ot.TanuloId as TanuloId
|
||||
,tm.C_TIPUS as Tipus
|
||||
,tn.C_ORAKEZDETE AS Orakezdete
|
||||
FROM [fnGetKapcsolodoOsztalycsoportok] (@OsztalyCsoportId) ocs
|
||||
INNER JOIN T_TANITASIORA tn ON tn.TOROLT = 'F' AND ocs.ID = tn.C_OSZTALYCSOPORTID AND tn.C_DATUM = @Datum AND tn.C_ORAKEZDETE <= @OraKezdete
|
||||
LEFT JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tcs.TOROLT = 'F'
|
||||
LEFT JOIN T_TANULOMULASZTAS tm ON tm.TOROLT = 'F' AND tm.C_TANITASIORAKID = tn.ID AND tm.C_TIPUS = @HianyzasTipus AND tcs.C_TANULOID = tm.C_ORATANULOIID
|
||||
INNER JOIN #osztalytanuloi ot ON ot.TanuloId = tcs.C_TANULOID
|
||||
|
||||
SELECT sub.TanuloId
|
||||
FROM #OsztalyTanuloi ot
|
||||
OUTER APPLY (SELECT TOP(1) * FROM #Temp t WHERE ot.TanuloId = t.TanuloId ORDER BY Orakezdete DESC) sub
|
||||
WHERE Tipus = @HianyzasTipus
|
||||
|
||||
|
||||
|
||||
END
|
||||
GO
|
||||
+348
@@ -0,0 +1,348 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS sp_GetErtesitesAltEsMulAdatok
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetErtesitesAltEsMulAdatok
|
||||
@pOsztalyId INT,
|
||||
@pTanevId INT,
|
||||
@pTankoteles BIT,
|
||||
@pIskolaErdekuSzamit BIT,
|
||||
@pIsSzulonek BIT = 1,
|
||||
@pIgazolatlanOrakSzama INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Mulasztasok
|
||||
DECLARE @Mulasztasok TABLE (
|
||||
TanuloId INT
|
||||
,TanuloCsoportId INT
|
||||
,Igazolt INT
|
||||
,Igazolatlan INT
|
||||
,ElmeletIgazolt INT
|
||||
,ElmeletIgazolatlan INT
|
||||
,GyakorlatIgazolt INT
|
||||
,GyakorlatIgazolatlan INT
|
||||
,ElmeletOsszes INT
|
||||
,GyakorlatOsszes INT
|
||||
,Osszes INT
|
||||
)
|
||||
|
||||
INSERT INTO @Mulasztasok
|
||||
EXEC sp_GetDokumentumMulasztasok
|
||||
@osztalyID = @pOsztalyId,
|
||||
@tanevId = @pTanevId,
|
||||
@elmeletiOraPercben = 45,
|
||||
@gyakorlatiOraPercben = 45,
|
||||
@ertekelesTipus = 1520, --évvégi
|
||||
@iskolaErdekuSzamit = @pIskolaErdekuSzamit
|
||||
|
||||
SELECT
|
||||
TanuloId Id
|
||||
,TanuloCsoportId
|
||||
,BelepesDatum
|
||||
,ISNULL(KilepesDatum, GETDATE()) KilepesDatum
|
||||
INTO #students
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T')
|
||||
|
||||
DECLARE @Gondviselok TABLE (TanuloId INT, GondviseloId INT, RokonsagiFokId INT, GondviseloNev NVARCHAR(MAX))
|
||||
INSERT INTO @Gondviselok
|
||||
SELECT
|
||||
TanuloId
|
||||
,GondviseloId
|
||||
,RokonsagifokId
|
||||
,GondviseloNev
|
||||
FROM fnGetDokumentumGondviselok (@pOsztalyId, @pTanevId, 'F', 'T')
|
||||
|
||||
DECLARE @TanuloCimTable TABLE (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
|
||||
INSERT INTO @TanuloCimTable
|
||||
SELECT DISTINCT
|
||||
TanuloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) btemp
|
||||
WHERE
|
||||
temp.TanuloId = btemp.TanuloId
|
||||
AND temp.CimTipusa = btemp.CimTipusa
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
,temp.CimTipusa
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (0, @pTanevId, @pOsztalyId) temp
|
||||
|
||||
DECLARE @GondViseloCimTable TABLE (GondviseloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
|
||||
INSERT INTO @GondViseloCimTable
|
||||
SELECT DISTINCT
|
||||
GondviseloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) btemp
|
||||
WHERE
|
||||
temp.GondviseloId = btemp.GondviseloId
|
||||
AND temp.CimTipusa = btemp.CimTipusa
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
,temp.CimTipusa
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim (1, @pTanevId, @pOsztalyId) temp
|
||||
|
||||
|
||||
DECLARE @EmailCimTableTemp TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX), GondviseloId INT)
|
||||
INSERT INTO @EmailCimTableTemp
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_EMAILCIM
|
||||
,C_GONDVISELOID
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
|
||||
INNER JOIN T_EMAIL_OSSZES email ON email.C_FELHASZNALOID = TanuloId
|
||||
WHERE
|
||||
email.TOROLT = 'F'
|
||||
AND email.C_TANEVID = @pTanevId
|
||||
AND LEN(C_EMAILCIM) > 0
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_EMAILCIM
|
||||
,GondviseloId
|
||||
FROM @Gondviselok
|
||||
INNER JOIN T_EMAIL_OSSZES email ON email.C_GONDVISELOID = GondviseloId
|
||||
WHERE
|
||||
email.TOROLT = 'F'
|
||||
AND email.C_TANEVID = @pTanevId
|
||||
AND LEN(C_EMAILCIM) > 0
|
||||
|
||||
DECLARE @EmailCimTanuloTable TABLE (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
|
||||
INSERT INTO @EmailCimTanuloTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM @EmailCimTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
AND btemp.GondviseloId IS NULL
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Email
|
||||
FROM @EmailCimTableTemp temp
|
||||
WHERE
|
||||
GondviseloId IS NULL
|
||||
|
||||
DECLARE @EmailCimGondviseloTable TABLE (FelhasznaloId INT, GondviseloId INT, EmailCim NVARCHAR(MAX))
|
||||
INSERT INTO @EmailCimGondviseloTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,GondviseloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM @EmailCimTableTemp btemp
|
||||
WHERE
|
||||
temp.GondviseloId = btemp.GondviseloId
|
||||
AND btemp.GondviseloId IS NOT NULL
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Email
|
||||
FROM @EmailCimTableTemp temp
|
||||
WHERE
|
||||
GondviseloId IS NOT NULL
|
||||
|
||||
DECLARE @TelefonTableTemp TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX), GondviseloId INT)
|
||||
INSERT INTO @TelefonTableTemp
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_TELEFONSZAM
|
||||
,C_GONDVISELOID
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') tanulo
|
||||
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
|
||||
WHERE
|
||||
telefon.TOROLT = 'F'
|
||||
AND telefon.C_TANEVID = @pTanevId
|
||||
AND LEN(telefon.C_TELEFONSZAM) > 0
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_TELEFONSZAM
|
||||
,GondviseloId
|
||||
FROM @Gondviselok gondviselo
|
||||
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_GONDVISELOID = GondviseloId
|
||||
WHERE
|
||||
telefon.TOROLT = 'F'
|
||||
AND telefon.C_TANEVID = @pTanevId
|
||||
AND LEN(telefon.C_TELEFONSZAM) > 0
|
||||
|
||||
DECLARE @TanuloTelefonTable TABLE (FelhasznaloId INT, Telefon NVARCHAR(MAX))
|
||||
INSERT INTO @TanuloTelefonTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM @TelefonTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
AND GondviseloId IS NULL
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
FROM @TelefonTableTemp temp
|
||||
WHERE
|
||||
GondviseloId IS NULL
|
||||
|
||||
DECLARE @GondviseloTelefonTable TABLE (FelhasznaloID INT, GondviseloId INT, Telefon NVARCHAR(MAX))
|
||||
INSERT INTO @GondviseloTelefonTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,GondviseloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(btemp.Telefon AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM @TelefonTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
and temp.GondviseloId = btemp.GondviseloId
|
||||
AND GondviseloId IS NOT NULL
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'')
|
||||
FROM @TelefonTableTemp temp
|
||||
WHERE
|
||||
GondviseloId IS NOT NULL
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,Gondviselok.GondviseloId
|
||||
,Gondviselok.GondviseloNev GondviseloNev
|
||||
,Cim GondviseloAllandoCim
|
||||
,Telefon GondviseloTelefon
|
||||
,RokonsagiFok.C_NAME GondviseloRokonsagiFoka
|
||||
INTO #GondviseloAdatok
|
||||
FROM @Gondviselok Gondviselok
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.Id = Gondviselok.RokonsagiFokId AND RokonsagiFok.C_TANEVID = @pTanevId
|
||||
LEFT JOIN @GondViseloCimTable GondviseloCim ON GondviseloCim.GondviseloId = Gondviselok.GondviseloId
|
||||
LEFT JOIN @GondviseloTelefonTable GondviseloTelefon ON GondviseloTelefon.GondviseloId = Gondviselok.GondviseloId
|
||||
ORDER BY TanuloId
|
||||
|
||||
--Tanulói adatok
|
||||
SELECT
|
||||
TanuloAdatok.ID AS TanuloId
|
||||
,OsztalyTanuloi.TanuloCsoportId
|
||||
,TanuloAdatok.C_NYOMTATASINEV TANULONEV
|
||||
,TanuloAdatok.C_ANYJANEVE ANYJANEVE
|
||||
,TanuloAdatok.C_SZULETESIHELY SZULETESIHELY
|
||||
,TanuloAdatok.C_SZULETESIDATUM SZULETESIDATUM
|
||||
,TanuloAdatok.C_NYILVANTARTASISZAM TorzslapSzam
|
||||
,IntezmenyAdatok.C_IGAZGATONEVE INT_IGAZGATO_NEV
|
||||
,IntezmenyAdatok.C_NEV INT_NEV
|
||||
,IntezmenyAdatok.C_OMKOD INT_OMKOD
|
||||
,IntezmenyAdatok.C_VAROS INT_VAROS
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) INT_CIM
|
||||
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) OSZTALYCSOPORT_NEV
|
||||
,Osztalyfonok.C_NYOMTATASINEV OSZTFO_NEV
|
||||
,ISNULL(Mulasztas.Igazolt,0) IGAZOLT
|
||||
,ISNULL(Mulasztas.Igazolatlan,0) IGAZOLATLAN
|
||||
,TanuloAllandoCimTable.CIM TanuloAllandoCim
|
||||
,TanuloTartozkodasiCimTable.Cim TanuloTartozkodasiCim
|
||||
,TanuloAdatok.C_OKTATASIAZONOSITO AS TanuloOktAzon
|
||||
INTO #tanuloiAdatok
|
||||
FROM #students OsztalyTanuloi
|
||||
INNER JOIN T_FELHASZNALO_OSSZES TanuloAdatok ON TanuloAdatok.ID = OsztalyTanuloi.ID AND TanuloAdatok.TOROLT = 'F'
|
||||
INNER JOIN T_TANULO_OSSZES Tanulo ON Tanulo.ID = TanuloAdatok.ID AND Tanulo.TOROLT = 'F'
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES IntezmenyAdatok ON IntezmenyAdatok.C_TANEVID = TanuloAdatok.C_TANEVID
|
||||
AND IntezmenyAdatok.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOTANUGYIADATOK AS TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = OsztalyTanuloi.TanuloCsoportId
|
||||
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = @pOsztalyId AND Osztaly.TOROLT = 'F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES Osztalyfonok ON Osztalyfonok.ID = Osztaly.C_OSZTALYFONOKID AND Osztalyfonok.TOROLT = 'F'
|
||||
LEFT JOIN @Mulasztasok Mulasztas ON Mulasztas.TanuloId = TanuloAdatok.ID AND Mulasztas.TanuloCsoportId = OsztalyTanuloi.TanuloCsoportId
|
||||
LEFT JOIN @TanuloCimTable TanuloAllandoCimTable ON TanuloAllandoCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloAllandoCimTable.Cimtipusa = 907
|
||||
LEFT JOIN @TanuloCimTable TanuloTartozkodasiCimTable ON TanuloTartozkodasiCimTable.FelhasznaloId = OsztalyTanuloi.ID AND TanuloTartozkodasiCimTable.Cimtipusa = 909
|
||||
WHERE
|
||||
TanugyiAdatok.C_TANKOTELEZETT = IIF(@pTankoteles = 0, 'F', 'T')
|
||||
ORDER BY TanuloAdatok.C_NYOMTATASINEV
|
||||
|
||||
IF @pIsSzulonek = 1 BEGIN
|
||||
SELECT DISTINCT
|
||||
ta.*
|
||||
,GondviseloAdatok.GondviseloNev
|
||||
,GondviseloAdatok.GondviseloAllandoCim
|
||||
,GondviseloAdatok.GondviseloTelefon
|
||||
,GondviseloRokonsagiFoka
|
||||
FROM #tanuloiAdatok AS ta
|
||||
LEFT JOIN #GondviseloAdatok GondviseloAdatok ON GondviseloAdatok.TanuloId = ta.TanuloId
|
||||
WHERE
|
||||
ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
|
||||
ORDER BY TANULONEV
|
||||
END
|
||||
ELSE BEGIN
|
||||
SELECT DISTINCT
|
||||
ta.*
|
||||
FROM #tanuloiAdatok AS ta
|
||||
WHERE
|
||||
ta.Igazolatlan >= @pIgazolatlanOrakSzama
|
||||
ORDER BY TANULONEV
|
||||
END
|
||||
|
||||
--Mulasztások részletezése
|
||||
SELECT
|
||||
Mulasztasok.TanuloId
|
||||
,Mulasztasok.TanuloCsoportId
|
||||
,Mulasztasok.OsztalyCsoportId
|
||||
,Mulasztasok.OsztalyCsoportNev
|
||||
,MulasztasTipus.C_NAME Tipusa
|
||||
,Mulasztasok.Igazolt
|
||||
,Mulasztasok.IgazolasTipusa
|
||||
,Mulasztasok.KesesPercben
|
||||
,Mulasztasok.Datum
|
||||
,Mulasztasok.Oraszam
|
||||
,Mulasztasok.TantargyId
|
||||
,Mulasztasok.TantargyNev
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT) Mulasztasok
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasTipus.Id = Mulasztasok.Tipusa AND MulasztasTipus.C_TANEVID = @pTanevId
|
||||
INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
|
||||
WHERE
|
||||
Mulasztasok.Igazolt = 'F'
|
||||
|
||||
--Gondviselo adatok
|
||||
SELECT * from #GondviseloAdatok AS Gondviselok
|
||||
LEFT JOIN @Mulasztasok Mulasztasok ON Mulasztasok.TanuloId = Gondviselok.TanuloId
|
||||
INNER JOIN #tanuloiAdatok AS ta ON ta.TanuloId = Mulasztasok.TanuloId AND ta.IGAZOLATLAN >= @pIgazolatlanOrakSzama
|
||||
|
||||
--Iktatási adatok
|
||||
DECLARE @IktatasAdatok TABLE (OsztalyId INT, Evfolyam INT, FeladatEllatasiHelyId INT, KepzesiForma INT, OsztalyFonokId INT,
|
||||
TantervId INT, SzakmaCsoport INT, Agazat INT, Szakkepesites INT, Reszszakkepesites INT,
|
||||
OJCSJKeresztfeleves CHAR, OJTechnikaiOsztaly CHAR, OJNemzetisegi CHAR, OJKettannyelvu CHAR, OJNyelviElokeszito CHAR,
|
||||
OJLogopediai CHAR, OJSportOsztaly CHAR, OJAranyJanosProgram CHAR, OJGyogypedagogiai CHAR)
|
||||
INSERT INTO @IktatasAdatok
|
||||
SELECT
|
||||
@pOsztalyId,
|
||||
ocs.C_EVFOLYAMTIPUSA,
|
||||
ocs.C_FELADATELLATASIHELYID,
|
||||
o.C_KEPZESIFORMA,
|
||||
o.C_OSZTALYFONOKID,
|
||||
o.C_TANTERVID,
|
||||
o.C_SZAKMACSOPORT,
|
||||
o.C_AGAZAT,
|
||||
o.C_SZAKKEPESITES,
|
||||
o.C_RESZSZAKKEPESITES,
|
||||
ocs.C_KERESZTFELEVES,
|
||||
o.C_TECHNIKAIOSZTALY,
|
||||
o.C_NEMZETISEGI,
|
||||
o.C_KETTANNYELVU,
|
||||
o.C_NYELVIELOKESZITO,
|
||||
o.C_LOGOPEDIAI,
|
||||
o.C_SPORT,
|
||||
o.C_AJPROGRAM,
|
||||
o.C_GYOGYPEDAGOGIAI
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY o ON o.ID = ocs.ID
|
||||
WHERE ocs.ID = @pOsztalyId AND ocs.TOROLT = 'F'
|
||||
AND ocs.C_TANEVID = @pTanevId;
|
||||
|
||||
SELECT * from @IktatasAdatok;
|
||||
|
||||
DROP TABLE #GondviseloAdatok
|
||||
DROP TABLE #tanuloiAdatok
|
||||
DROP TABLE #students
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_GetKozossegiJelentkezesLap]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetKozossegiJelentkezesLap]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pOsztalyId INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId)
|
||||
|
||||
/* TANULO */
|
||||
SELECT
|
||||
dbo.fnGetDokumentumDatumFormatum(f.C_SZULETESIDATUM) AS SzulIdo
|
||||
,f.C_NYOMTATASINEV AS TanuloNeve
|
||||
,f.C_SZULETESINEV AS SzuletesiNev
|
||||
,ocs.C_NEV AS Osztaly
|
||||
,t.ID AS TanuloId
|
||||
,f.C_OKTATASIAZONOSITO AS OktAzon
|
||||
INTO #Tanulok
|
||||
FROM T_TANULO_OSSZES AS t
|
||||
INNER JOIN T_TANTERV_OSSZES AS tt ON tt.ID = t.C_TANTERVID AND tt.TOROLT ='F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES AS f ON f.ID = t.ID AND f.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES AS tcs ON tcs.C_TANULOID = t.ID AND tcs.TOROLT = 'F' AND tcs.C_OSZTALYCSOPORTID = @pOsztalyId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS d ON d.id=f.C_ALLAMPOLGARSAGA AND d.C_TANEVID = f.C_TANEVID AND d.C_INTEZMENYID = f.C_INTEZMENYID
|
||||
WHERE ocs.ID = @pOsztalyId
|
||||
AND t.C_ALINTEZMENYID = @pIntezmenyId
|
||||
AND t.C_ALTANEVID = @pTanevId
|
||||
|
||||
SELECT * FROM #Tanulok
|
||||
|
||||
/* INTEZMENYADATOK */
|
||||
SELECT DISTINCT
|
||||
ia.C_NEV AS IntezmenyNev
|
||||
,ia.C_IGAZGATONEVE AS IgazgatoNev
|
||||
,dbo.fnGetDokumentumIntezmenyCime (@pTanevId) AS IntezmenyCim
|
||||
,ia.C_TELEFONSZAM AS IntezmenyTelefonszam
|
||||
,ia.C_EMAILCIM AS IntezmenyEmail
|
||||
,ia.C_OMKOD AS OktAzon
|
||||
,tv.C_NEV AS Tanev
|
||||
FROM T_TANEV_OSSZES AS tv
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES AS ia ON tv.ID = ia.C_TANEVID
|
||||
WHERE tv.ID = @pTanevId
|
||||
|
||||
/* GONDVISELO */
|
||||
SELECT g.C_NEV AS GondviseloNeve
|
||||
,g.C_TANULOID AS TanuloId
|
||||
FROM T_GONDVISELO_OSSZES AS g
|
||||
INNER JOIN #Tanulok AS Tanulok ON Tanulok.TanuloId = g.C_TANULOID
|
||||
WHERE g.C_ISTORVENYESKEPVISELO = 'T'
|
||||
AND (g.C_ISCSOKKENTETTGONDVISELO IS NULL OR g.C_ISCSOKKENTETTGONDVISELO = 'F')
|
||||
AND g.C_TANEVID = @pTanevId
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
DROP PROCEDURE IF EXISTS dbo.sp_GetMulasztasokNaploNezetData
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dbo.sp_GetMulasztasokNaploNezetData
|
||||
@pOsztalyCsoportId INT
|
||||
,@pDatum DATE
|
||||
,@pCsoportTipusTanoraiCeluId INT
|
||||
,@pIsCsoportVez INT = 0
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
CREATE TABLE #TempTable(
|
||||
TanitasiOraId INT NOT NULL,
|
||||
OsztalyCsoportId INT NOT NULL,
|
||||
OsztalyCsoportNev NVARCHAR(255) NOT NULL,
|
||||
OsztalyNev NVARCHAR(255) NOT NULL,
|
||||
IsOsztalyOraja BIT NOT NULL,
|
||||
IsTanoraiCelu BIT NOT NULL,
|
||||
IsTanoraiCelunakJelolt BIT NOT NULL,
|
||||
TantargyId INT NOT NULL,
|
||||
TantargyNev NVARCHAR(255) NOT NULL,
|
||||
TanarId INT NOT NULL,
|
||||
TanarNev NVARCHAR(255) NOT NULL,
|
||||
OraSorszam INT NULL,
|
||||
OraKezdete DATETIME NULL
|
||||
);
|
||||
|
||||
DECLARE @sql nvarchar(max) = ''
|
||||
|
||||
SET @sql += N'
|
||||
INSERT INTO #TempTable
|
||||
SELECT
|
||||
tn.ID AS TanitasiOraId
|
||||
,ocs.ID AS OsztalyCsoportId
|
||||
,ocs.C_NEV AS OsztalyCsoportNev
|
||||
,o.C_NEV AS OsztalyNev
|
||||
,IIF(ocs.ID = @pOsztalyCsoportId, 1, 0) AS IsOsztalyOraja
|
||||
,IIF(cst.ID = @pCsoportTipusTanoraiCeluId, 1, 0) AS IsTanoraiCelu
|
||||
,IIF(cst.C_ISTANORAICELU = ''T'', 1, 0) AS IsTanoraiCelunakJelolt
|
||||
,tt.ID AS TantargyId
|
||||
,tt.C_NEV AS TantargyNev
|
||||
,fa.ID AS TanarId
|
||||
,fa.C_NYOMTATASINEV AS TanarNev
|
||||
,IIF(tn.C_CSENGETESIRENDORAID IS NOT NULL, tn.C_ORASZAM, NULL) AS OraSorszam
|
||||
,IIF(tn.C_CSENGETESIRENDORAID IS NULL, tn.C_ORAKEZDETE, NULL) AS OraKezdete
|
||||
FROM T_TANITASIORA tn
|
||||
' + IIF(@pIsCsoportVez = 0, N' INNER JOIN dbo.fnGetKapcsolodoOsztalycsoportokByDate(@pOsztalyCsoportId, @pDatum, @pDatum) kocs ON kocs.ID = tn.C_OSZTALYCSOPORTID ', '')
|
||||
SET @sql += N'
|
||||
INNER JOIN T_TANTARGY tt ON tt.ID = tn.C_TANTARGYID AND tt.TOROLT = ''F''
|
||||
INNER JOIN T_FELHASZNALO fa ON fa.ID = tn.C_ORATULAJDONOSID AND fa.TOROLT = ''F''
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tn.C_OSZTALYCSOPORTID AND ocs.TOROLT = ''F''
|
||||
LEFT JOIN T_CSOPORT cs ON cs.ID = tn.C_OSZTALYCSOPORTID AND cs.TOROLT = ''F''
|
||||
LEFT JOIN T_CSOPORTTIPUS cst ON cst.ID = cs.C_TIPUSA AND cst.TOROLT = ''F''
|
||||
INNER JOIN T_OSZTALYCSOPORT o ON o.ID = @pOsztalyCsoportId AND o.TOROLT = ''F''
|
||||
WHERE
|
||||
tn.C_DATUM = @pDatum
|
||||
AND tn.C_MEGTARTOTT = ''T''
|
||||
AND tn.TOROLT = ''F''
|
||||
' + IIF(@pIsCsoportVez = 1, N' AND tn.C_OSZTALYCSOPORTID = @pOsztalyCsoportId ','')
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@pOsztalyCsoportId INT
|
||||
,@pDatum DATE
|
||||
,@pCsoportTipusTanoraiCeluId INT
|
||||
,@pIsCsoportVez INT'
|
||||
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
||||
,@pDatum = @pDatum
|
||||
,@pCsoportTipusTanoraiCeluId = @pCsoportTipusTanoraiCeluId
|
||||
,@pIsCsoportVez = @pIsCsoportVez
|
||||
|
||||
SELECT
|
||||
tcs.C_TANULOID AS TanuloId
|
||||
,ft.C_NYOMTATASINEV AS TanuloNev
|
||||
,ft.C_ANYJANEVE AS AnyjaNeve
|
||||
,ft.C_SZULETESIDATUM AS SzuletesiIdo
|
||||
,tbl.OsztalyCsoportId
|
||||
,tbl.OsztalyCsoportNev
|
||||
,tbl.OsztalyNev
|
||||
,tbl.IsOsztalyOraja
|
||||
,tbl.IsTanoraiCelu
|
||||
,tbl.IsTanoraiCelunakJelolt
|
||||
,tbl.TantargyId
|
||||
,tbl.TantargyNev
|
||||
,tbl.TanarId
|
||||
,tbl.TanarNev
|
||||
,tbl.OraSorszam
|
||||
,tbl.OraKezdete
|
||||
,tbl.TanitasiOraId
|
||||
,tm.ID AS MulasztasId
|
||||
,tm.C_TIPUS AS MulasztasTipus
|
||||
,tm.C_IGAZOLT AS IsIgazolt
|
||||
,tm.C_IGAZOLASTIPUSA AS IgazolasTipus
|
||||
,tm.C_MEGJEGYZES AS Megjegyzes
|
||||
,tm.C_KESESPERCBEN AS KesesPercben
|
||||
FROM (
|
||||
SELECT
|
||||
C_TANULOID, C_OSZTALYCSOPORTID
|
||||
FROM
|
||||
T_TANULOCSOPORT
|
||||
WHERE
|
||||
C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND C_BELEPESDATUM <= @pDatum
|
||||
AND (C_KILEPESDATUM > @pDatum OR C_KILEPESDATUM IS NULL)
|
||||
AND TOROLT = 'F'
|
||||
AND C_TANULOID IN (
|
||||
SELECT C_TANULOID
|
||||
FROM T_TANULOCSOPORT
|
||||
WHERE
|
||||
T_TANULOCSOPORT.C_OSZTALYCSOPORTID IN (SELECT OsztalyCsoportId FROM #TempTable)
|
||||
AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDatum
|
||||
AND (T_TANULOCSOPORT.C_KILEPESDATUM > @pDatum OR T_TANULOCSOPORT.C_KILEPESDATUM IS NULL)
|
||||
)
|
||||
) tcs
|
||||
CROSS JOIN #TempTable tbl
|
||||
INNER JOIN T_FELHASZNALO ft ON
|
||||
tcs.C_TANULOID = ft.ID
|
||||
AND ft.TOROLT = 'F'
|
||||
LEFT JOIN T_TANULOMULASZTAS tm ON
|
||||
tcs.C_TANULOID = tm.C_ORATANULOIID
|
||||
AND tm.C_TANITASIORAKID = tbl.TanitasiOraId
|
||||
AND tm.TOROLT = 'F'
|
||||
WHERE
|
||||
tcs.C_TANULOID IN (
|
||||
SELECT C_TANULOID
|
||||
FROM T_TANULOCSOPORT
|
||||
WHERE
|
||||
tbl.OsztalyCsoportId = T_TANULOCSOPORT.C_OSZTALYCSOPORTID
|
||||
AND T_TANULOCSOPORT.C_BELEPESDATUM <= @pDatum
|
||||
AND (T_TANULOCSOPORT.C_KILEPESDATUM > @pDatum OR T_TANULOCSOPORT.C_KILEPESDATUM IS NULL)
|
||||
)
|
||||
AND (tm.C_TIPUS IS NULL OR tm.C_TIPUS <> 1817)
|
||||
ORDER BY
|
||||
ft.C_NYOMTATASINEV
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
||||
+716
@@ -0,0 +1,716 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_GetMunkaidoElszamoloLap]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetMunkaidoElszamoloLap]
|
||||
@pIntezmenyId INT,
|
||||
@pTanarId INT,
|
||||
@tanevId INT,
|
||||
@honapId INT,
|
||||
@isKlebersberg BIT,
|
||||
@feladatKategoriaId INT = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @backDate datetime
|
||||
|
||||
SELECT
|
||||
ID pedagogusId
|
||||
,Nev pedagogusNev
|
||||
FROM fnGetDokumentumIntezmenyPedagogusok (@pIntezmenyId, @tanevId )
|
||||
WHERE ID = @pTanarId
|
||||
|
||||
|
||||
DECLARE @Honap INT = (
|
||||
SELECT TOP 1
|
||||
dictionaryItemBase.C_VALUE
|
||||
FROM
|
||||
T_DICTIONARYITEMBASE_OSSZES dictionaryItemBase
|
||||
WHERE
|
||||
dictionaryItemBase.ID = @honapId
|
||||
AND dictionaryItemBase.C_TANEVID = @tanevId
|
||||
AND dictionaryItemBase.TOROLT = 'F'
|
||||
)
|
||||
|
||||
CREATE TABLE #EvHonap (Ev int, Honap int)
|
||||
INSERT INTO #EvHonap
|
||||
SELECT TOP 1
|
||||
FORMAT(C_NAPDATUMA, 'yyyy') Ev,
|
||||
FORMAT(C_NAPDATUMA, 'MM') Honap
|
||||
FROM
|
||||
T_NAPTARINAP_OSSZES naptariNap
|
||||
WHERE
|
||||
DATEPART(MONTH,naptariNap.C_NAPDATUMA) = @Honap
|
||||
AND naptariNap.C_TANEVID = @tanevId
|
||||
AND naptariNap.TOROLT = 'F'
|
||||
SELECT * FROM #EvHonap
|
||||
|
||||
SET @backDate = DATEADD(MONTH, 1, DATEFROMPARTS((SELECT Ev FROM #EvHonap), (SELECT Honap FROM #EvHonap), 1))
|
||||
|
||||
--===================================
|
||||
--FEJLÉC
|
||||
--===================================
|
||||
SELECT
|
||||
f.ID pedagogusId
|
||||
,f.C_NYOMTATASINEV TanarNev
|
||||
,f.C_OKTATASIAZONOSITO OktatasiAzonosito
|
||||
,munkakor.C_NAME Munkakor
|
||||
,dbo.fnGetDokumentumPedagogusOraszam(f.id, @isKlebersberg) KotelezoOraszam
|
||||
,ISNULL(CONVERT(NVARCHAR(MAX),m.C_MUNKAIDOKEDVEZMENYORASZAM),'-') MunkaidoKedvezmenyOraszam
|
||||
,ISNULL(munkaidoKedvezmenyOka.C_NAME,'-') MunkaidoKedvezmenyOka
|
||||
,ia.C_NEV + ' (' + ia.C_OMKOD +')' IntezmenyNeve
|
||||
,ia.C_IGAZGATONEVE Igazgato
|
||||
,m.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
||||
FROM T_FELHASZNALO_OSSZES f
|
||||
INNER JOIN T_MUNKAUGYIADATOK_OSSZES m ON m.C_ALKALMAZOTTID = f.Id
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkakor ON munkakor.Id = m.C_MUNKAKORTIPUSA AND munkakor.C_TANEVID = m.C_TANEVID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES munkaidoKedvezmenyOka ON munkaidoKedvezmenyOka.Id = m.C_MUNKAIDOKEDVEZMENYOKA AND munkaidoKedvezmenyOka.C_TANEVID = m.C_TANEVID
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_TANEVID = f.C_TANEVID
|
||||
WHERE
|
||||
ia.TOROLT = 'F'
|
||||
AND m.TOROLT = 'F'
|
||||
AND f.ID = @pTanarId
|
||||
|
||||
--===================================
|
||||
--MEGTARTOTT TANÓRÁK, HELYETTESÍTÉSEK
|
||||
--===================================
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #MegtartottOrakHelyesitesek_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T_TANITASIORA_OSSZES.C_ORATULAJDONOSID AS pedagogusId
|
||||
,DATEPART(DAY, T_TANITASIORA_OSSZES.C_DATUM) Nap
|
||||
,DATEPART(Month, T_TANITASIORA_OSSZES.C_DATUM) Honap
|
||||
,T_OSZTALYCSOPORT_OSSZES.ID OsztalyCsoportID
|
||||
,T_OSZTALYCSOPORT_OSSZES.ID ocsId
|
||||
,T_OSZTALYCSOPORT_OSSZES.C_NEV OsztalyCsoportNev
|
||||
,IIF(T_TANITASIORA_OSSZES.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / 45, 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES on T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = T_OSZTALYCSOPORT_OSSZES.ID AND (T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.Id = T_OSZTALYCSOPORT_OSSZES.ID
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.ID = C_FOGLALKOZASID
|
||||
WHERE
|
||||
T_TANITASIORA_OSSZES.C_TANEVID = @tanevId
|
||||
AND T_TANITASIORA_OSSZES.C_ORATULAJDONOSID = @pTanarId
|
||||
AND DATEPART(MONTH, T_TANITASIORA_OSSZES.C_DATUM) = @Honap
|
||||
AND T_TANITASIORA_OSSZES.TOROLT = 'F'
|
||||
AND T_TANITASIORA_OSSZES.C_MEGTARTOTT = 'T'
|
||||
AND T_TANITASIORA_OSSZES.C_HELYETTESITOTANARID IS NULL
|
||||
AND (T_CSOPORT_OSSZES.Id IS NULL OR T_CSOPORT_OSSZES.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND (T_TANITASIORA_OSSZES.C_PARHUZAMOSORA = 'F' OR T_TANITASIORA_OSSZES.C_PARHUZAMOSORA IS NULL)
|
||||
AND (fog.C_FOGLALKOZASTIPUSA IS NULL OR fog.C_FOGLALKOZASTIPUSA <> 1371)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
) OsszTanora
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #MegtartottOrakHelyesitesek_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #MegtartottOrakHelyesitesek_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--szakszerű helyettesítés
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #SzakszeruHelyetesites_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_HELYETTESITOTANARID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) Honap
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,tao.C_OSZTALYCSOPORTID oraid
|
||||
,tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_HELYETTESITOTANARID = @pTanarId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_HELYETTESITESTIPUSA = 1494
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) SzakszeruHelyettesites
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #SzakszeruHelyetesites_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #SzakszeruHelyetesites_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--nem szakszerű helyettesítés
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #NemSzakszeruHelyetesites_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_HELYETTESITOTANARID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) Honap
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,tao.C_OSZTALYCSOPORTID oraid
|
||||
,tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_HELYETTESITOTANARID = @pTanarId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_HELYETTESITESTIPUSA = 1495
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) NemSzakszeruHelyettesites
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #NemSzakszeruHelyetesites_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #NemSzakszeruHelyetesites_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--óraösszevonás
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #OraOsszevonas_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_HELYETTESITOTANARID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) Honap
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,tao.C_OSZTALYCSOPORTID oraid
|
||||
,tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_HELYETTESITOTANARID = @pTanarId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_HELYETTESITESTIPUSA = 1496
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) Oraosszevonas
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #OraOsszevonas_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #OraOsszevonas_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
|
||||
--tanóránkívüli
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #TanoranKivuli_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_ORATULAJDONOSID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) Honap
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,tao.C_OSZTALYCSOPORTID oraid
|
||||
,tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / 60, 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fog on fog.id=tao.C_FOGLALKOZASID
|
||||
INNER JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.Id = ocs.ID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_ORATULAJDONOSID = @pTanarId
|
||||
AND tao.C_HELYETTESITOTANARID IS NULL
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND T_CSOPORT_OSSZES.C_TIPUSA NOT IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
AND (fog.C_FOGLALKOZASTIPUSA IS NULL OR fog.C_FOGLALKOZASTIPUSA <> 1371)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) TanoranKivuli
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #TanoranKivuli_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #TanoranKivuli_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--egyéni foglalkozas
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #EgyeniFoglalkozas_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_ORATULAJDONOSID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap,
|
||||
DATEPART(MONTH,tao.C_DATUM) Honap,
|
||||
ocs.C_NEV OsztalyCsoportNev,
|
||||
tao.C_OSZTALYCSOPORTID oraid,
|
||||
tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.id=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ocs.Id
|
||||
INNER JOIN T_FOGLALKOZAS_OSSZES fog on fog.id=tao.C_FOGLALKOZASID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_ORATULAJDONOSID = @pTanarId
|
||||
AND fog.C_FOGLALKOZASTIPUSA = 1371
|
||||
AND tao.C_HELYETTESITOTANARID IS NULL
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) EgyeniFoglalkozas
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
|
||||
SELECT * FROM #EgyeniFoglalkozas_tmp
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #EgyeniFoglalkozas_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--============================================
|
||||
--NEVELÉSSEL-OKTATÁSSAL LE NEM KÖTÖTT MUNKAIDŐ
|
||||
--============================================
|
||||
--ÖSSZESEN
|
||||
SELECT
|
||||
pedagogusId
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1],0)+ISNULL([2],0)+ISNULL([3],0)+ISNULL([4],0)+ISNULL([5],0)+
|
||||
ISNULL([6],0)+ISNULL([7],0)+ISNULL([8],0)+ISNULL([9],0)+ISNULL([10],0)+
|
||||
ISNULL([11],0)+ISNULL([12],0)+ISNULL([13],0)+ISNULL([14],0)+ISNULL([15],0)+
|
||||
ISNULL([16],0)+ISNULL([17],0)+ISNULL([18],0)+ISNULL([19],0)+ISNULL([20],0)+
|
||||
ISNULL([21],0)+ISNULL([22],0)+ISNULL([23],0)+ISNULL([24],0)+ISNULL([25],0)+
|
||||
ISNULL([26],0)+ISNULL([27],0)+ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0) Ossz
|
||||
INTO #LeNemKotottMunkaido_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T_NEMKOTOTTMUNKAIDO_OSSZES.C_TANARID AS pedagogusId
|
||||
,DATEPART(DAY, C_KEZDETE) Nap
|
||||
,DATEPART(MONTH, C_KEZDETE) Honap
|
||||
,ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_VEGE - C_KEZDETE) * 60 + DATEPART(MINUTE, C_VEGE - C_KEZDETE))) / 60, 2) Oraszam
|
||||
FROM T_NEMKOTOTTMUNKAIDO_OSSZES
|
||||
WHERE
|
||||
C_MEGTARTOTT = 'T'
|
||||
AND T_NEMKOTOTTMUNKAIDO_OSSZES.C_TANARID = @pTanarId
|
||||
AND TOROLT = 'F'
|
||||
AND DATEPART(MONTH, C_KEZDETE) = @Honap
|
||||
AND DATEPART(MONTH, C_VEGE) = @Honap
|
||||
) Orak
|
||||
PIVOT
|
||||
(
|
||||
SUM(Oraszam)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
) Tevekenyseg
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #LeNemKotottMunkaido_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #LeNemKotottMunkaido_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
|
||||
--sorokra (tipusokra) lebontva
|
||||
SELECT
|
||||
pedagogusId
|
||||
,Honap
|
||||
,TipusId TipusId
|
||||
,Tipus Tipus
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1],0)+ISNULL([2],0)+ISNULL([3],0)+ISNULL([4],0)+ISNULL([5],0)+
|
||||
ISNULL([6],0)+ISNULL([7],0)+ISNULL([8],0)+ISNULL([9],0)+ISNULL([10],0)+
|
||||
ISNULL([11],0)+ISNULL([12],0)+ISNULL([13],0)+ISNULL([14],0)+ISNULL([15],0)+
|
||||
ISNULL([16],0)+ISNULL([17],0)+ISNULL([18],0)+ISNULL([19],0)+ISNULL([20],0)+
|
||||
ISNULL([21],0)+ISNULL([22],0)+ISNULL([23],0)+ISNULL([24],0)+ISNULL([25],0)+
|
||||
ISNULL([26],0)+ISNULL([27],0)+ISNULL([28],0)+ISNULL([29],0)+ISNULL([30],0)+ISNULL([31],0) Ossz
|
||||
INTO #NemKotottSorok_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
nemKotottMunkaido.C_TANARID AS pedagogusId
|
||||
,nemKotottMunkaido.C_TEVEKENYSEGTIPUSA TipusId
|
||||
,tipusNeve.C_NAME Tipus
|
||||
,DATEPART(DAY, nemKotottMunkaido.C_KEZDETE) Nap
|
||||
,DATEPART(MONTH, nemKotottMunkaido.C_KEZDETE) Honap
|
||||
,ROUND(CONVERT(FLOAT,(DATEPART(HOUR, nemKotottMunkaido.C_VEGE - nemKotottMunkaido.C_KEZDETE) * 60 + DATEPART(MINUTE, nemKotottMunkaido.C_VEGE - nemKotottMunkaido.C_KEZDETE))) / 60, 2) Oraszam
|
||||
FROM T_NEMKOTOTTMUNKAIDO_OSSZES nemKotottMunkaido
|
||||
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE) tipusNeve ON tipusNeve.ID=nemKotottMunkaido.C_TEVEKENYSEGTIPUSA
|
||||
WHERE
|
||||
C_MEGTARTOTT='T'
|
||||
AND nemKotottMunkaido.C_TANARID = @pTanarId
|
||||
AND TOROLT = 'F'
|
||||
AND DATEPART(MONTH, C_KEZDETE) = @Honap
|
||||
AND DATEPART(MONTH, C_VEGE) = @Honap
|
||||
) Orak
|
||||
PIVOT
|
||||
(
|
||||
SUM(Oraszam)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
) Soronkent
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #NemKotottSorok_tmp
|
||||
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #NemKotottSorok_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
-- Túlóra
|
||||
SELECT
|
||||
pedagogusId
|
||||
,OsztalyCsoportID
|
||||
,OsztalyCsoportNev
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) +
|
||||
ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) + ISNULL([9], 0) + ISNULL([10], 0) +
|
||||
ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([13], 0) + ISNULL([14], 0) + ISNULL([15], 0) +
|
||||
ISNULL([16], 0) + ISNULL([17], 0) + ISNULL([18], 0) + ISNULL([19], 0) + ISNULL([20], 0) +
|
||||
ISNULL([21], 0) + ISNULL([22], 0) + ISNULL([23], 0) + ISNULL([24], 0) + ISNULL([25], 0) +
|
||||
ISNULL([26], 0) + ISNULL([27], 0) + ISNULL([28], 0) + ISNULL([29], 0) + ISNULL([30], 0) + ISNULL([31], 0) Ossz
|
||||
INTO #Tulora_tmp
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tao.C_ORATULAJDONOSID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) Honap
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,tao.C_OSZTALYCSOPORTID oraid
|
||||
,tao.C_OSZTALYCSOPORTID OsztalyCsoportID
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
)SumOra
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs on ocs.ID=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.ID = C_FOGLALKOZASID
|
||||
WHERE
|
||||
DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
AND tao.C_ORATULAJDONOSID = @pTanarId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND tao.C_TULORA = 'T'
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
)a
|
||||
PIVOT
|
||||
(
|
||||
SUM(SumOra)
|
||||
FOR Nap IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])
|
||||
|
||||
) Tulora
|
||||
|
||||
----ITT ADOM VISSZA A TABLAT=======================================<<<<<<
|
||||
SELECT * FROM #Tulora_tmp
|
||||
SELECT
|
||||
pedagogusId
|
||||
,SUM([1]) AS [1], SUM([2]) AS [2], SUM([3]) AS [3], SUM([4]) AS [4], SUM([5]) AS [5], SUM([6]) AS [6], SUM([7]) AS [7], SUM([8]) AS [8], SUM([9]) AS [9], SUM([10]) AS [10],
|
||||
SUM([11]) AS [11], SUM([12]) AS [12], SUM([13]) AS [13], SUM([14]) AS [14], SUM([15]) AS [15], SUM([16]) AS [16], SUM([17]) AS [17], SUM([18]) AS [18], SUM([19]) AS [19], SUM([20]) AS [20],
|
||||
SUM([21]) AS [21], SUM([22]) AS [22], SUM([23]) AS [23], SUM([24]) AS [24], SUM([25]) AS [25], SUM([26]) AS [26], SUM([27]) AS [27], SUM([28]) AS [28], SUM([29]) AS [29], SUM([30]) AS [30], SUM([31]) AS [31]
|
||||
,SUM(Ossz) as Ossz
|
||||
FROM #Tulora_tmp
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
--==================
|
||||
--TABLA OSSZESITESEK
|
||||
--==================
|
||||
SELECT
|
||||
pedagogusId,
|
||||
SUM([1]) O1, SUM([2]) O2, SUM([3]) O3, SUM([4]) O4, SUM([5]) O5, SUM([6]) O6, SUM([7]) O7, SUM([8]) O8, SUM([9]) O9, SUM([10]) O10,
|
||||
SUM([11]) O11, SUM([12]) O12, SUM([13]) O13, SUM([14]) O14, SUM([15]) O15, SUM([16]) O16, SUM([17]) O17, SUM([18]) O18, SUM([19]) O19, SUM([20]) O20,
|
||||
SUM([21]) O21, SUM([22]) O22, SUM([23]) O23, SUM([24]) O24, SUM([25]) O25, SUM([26]) O26, SUM([27]) O27, SUM([28]) O28, SUM([29]) O29, SUM([30]) O30, SUM([31]) O31,
|
||||
SUM(Ossz) AS Ossz
|
||||
FROM
|
||||
(
|
||||
SELECT * FROM #MegtartottOrakHelyesitesek_tmp
|
||||
UNION ALL
|
||||
SELECT * FROM #NemSzakszeruHelyetesites_tmp
|
||||
UNION ALL
|
||||
SELECT * FROM #OraOsszevonas_tmp
|
||||
UNION ALL
|
||||
SELECT * FROM #SzakszeruHelyetesites_tmp
|
||||
UNION ALL
|
||||
SELECT * FROM #TanoranKivuli_tmp
|
||||
UNION ALL
|
||||
SELECT
|
||||
pedagogusId
|
||||
,NULL
|
||||
,NULL
|
||||
,Honap
|
||||
,[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
|
||||
[11], [12], [13], [14], [15], [16], [17], [18], [19], [20],
|
||||
[21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31],
|
||||
Ossz
|
||||
FROM #LeNemKotottMunkaido_tmp
|
||||
UNION ALL
|
||||
SELECT * FROM #EgyeniFoglalkozas_tmp
|
||||
|
||||
) as TablaOsszesito
|
||||
GROUP BY
|
||||
pedagogusId
|
||||
|
||||
CREATE TABLE #helyettesitesek (pedagogusId int, Nap int, Honap int, SumOra float, HelyettesitesTipusa int)
|
||||
INSERT INTO #helyettesitesek
|
||||
SELECT
|
||||
tao.C_HELYETTESITOTANARID AS pedagogusId
|
||||
,DATEPART(DAY, tao.C_DATUM) AS Nap
|
||||
,DATEPART(MONTH,tao.C_DATUM) AS Honap
|
||||
,IIF(tao.C_CSENGETESIRENDORAID IS NOT NULL,
|
||||
1,
|
||||
ROUND(CONVERT(FLOAT,(DATEPART(HOUR, C_ORAVEGE - C_ORAKEZDETE) * 60 + DATEPART(MINUTE, C_ORAVEGE - C_ORAKEZDETE))) / IIF(cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 45, 60), 2)
|
||||
) AS SumOra
|
||||
,tao.C_HELYETTESITESTIPUSA AS HelyettesitesTipusa
|
||||
FROM T_TANITASIORA_OSSZES AS tao
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES AS ocs ON ocs.id=tao.C_OSZTALYCSOPORTID AND (ocs.C_FELADATKATEGORIAID = @feladatKategoriaId OR @feladatKategoriaId IS NULL)
|
||||
LEFT JOIN T_CSOPORT_OSSZES AS cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
tao.C_DATUM < @backDate
|
||||
AND tao.C_HELYETTESITOTANARID = @pTanarId
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_MEGTARTOTT = 'T'
|
||||
AND tao.C_TANEVID = @tanevId
|
||||
AND (tao.C_PARHUZAMOSORA = 'F' OR tao.C_PARHUZAMOSORA IS NULL)
|
||||
|
||||
SELECT
|
||||
pedagogusId,
|
||||
HelyettesitesTipusa
|
||||
,[9],[10],[11],[12],[1],[2],[3],[4],[5],[6],[7],[8]
|
||||
,ISNULL([9], 0) + ISNULL([10], 0) + ISNULL([11], 0) + ISNULL([12], 0) + ISNULL([1], 0) + ISNULL([2], 0) + ISNULL([3], 0) + ISNULL([4], 0) + ISNULL([5], 0) + ISNULL([6], 0) + ISNULL([7], 0) + ISNULL([8], 0) AS Ossz
|
||||
FROM (
|
||||
SELECT
|
||||
pedagogusId
|
||||
,Honap
|
||||
,SumOra
|
||||
,d.C_NAME AS HelyettesitesTipusa
|
||||
FROM #helyettesitesek AS h
|
||||
INNER JOIN T_DICTIONARYITEMBASE AS d ON h.HelyettesitesTipusa = d.ID AND d.C_TANEVID = @tanevId AND d.C_INTEZMENYID = @pIntezmenyId AND d.TOROLT = 'F'
|
||||
)a
|
||||
PIVOT (
|
||||
SUM(SumOra) FOR Honap IN ([9],[10],[11],[12],[1],[2],[3],[4],[5],[6],[7],[8])
|
||||
) piv
|
||||
|
||||
END
|
||||
GO
|
||||
+569
@@ -0,0 +1,569 @@
|
||||
-- =============================================
|
||||
-- Author: Telek Ákos
|
||||
-- Create date: 2018.01.15.
|
||||
-- Description: Órarend lekérdezése
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[sp_GetOrarend]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetOrarend]
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pIdoszakKezdete datetime
|
||||
,@pIdoszakVege datetime
|
||||
,@pTanarId int = NULL
|
||||
,@pIsHelyettesitesNelkul bit = 0
|
||||
,@pOsztalyCsoportId int = NULL
|
||||
,@pTanuloId int = NULL
|
||||
,@pTantargyId int = NULL
|
||||
,@pTeremId int = NULL
|
||||
,@pCsakOrarendiOrak bit
|
||||
,@pIsNapirend bit = 0 /*0 csak orarendi ora, 1 csak napirend, NULL mindkettő*/
|
||||
,@pFeladatKategoriaId int = NULL
|
||||
AS
|
||||
BEGIN /*TODO:Tobb Osztaly*//*OM-1575*/
|
||||
SET NOCOUNT ON;
|
||||
DECLARE
|
||||
@sql nvarchar(max) = ''
|
||||
,@sqlOrarendiora nvarchar(max) = ''
|
||||
|
||||
CREATE TABLE #OsztalyCsoportok (
|
||||
Id int
|
||||
,Nev nvarchar(255)
|
||||
,Oka nvarchar(50)
|
||||
,IsVegzos char(1)
|
||||
,IdoszakKezdete datetime
|
||||
,IdoszakVege datetime
|
||||
,IsAlapkepzeses char(1)
|
||||
,INDEX IX1 CLUSTERED(Id, IdoszakKezdete, IdoszakVege)
|
||||
);
|
||||
|
||||
CREATE TABLE #NaptariNapok (
|
||||
Datum datetime
|
||||
,HetirendId int
|
||||
,HetNapjaId int
|
||||
,OrarendiNap char(1)
|
||||
,OsztalyCsoportId int
|
||||
,HetSorszam int
|
||||
,CsengetesiRendId int
|
||||
,Nev nvarchar(255)
|
||||
,Oka nvarchar(50)
|
||||
,IsVegzos char(1)
|
||||
,IdoszakKezdete datetime
|
||||
,IdoszakVege datetime
|
||||
,IsEgyediNap char(1) COLLATE DATABASE_DEFAULT
|
||||
,PRIMARY KEY CLUSTERED (OsztalyCsoportId, Datum, HetNapjaId, HetirendId)
|
||||
);
|
||||
|
||||
CREATE TABLE #OrarendTable (
|
||||
Id int
|
||||
,ORARENDIID int
|
||||
,Datum datetime
|
||||
,Bontott char(1)
|
||||
,Hetirend int
|
||||
,HetNapja int
|
||||
,HetSorszam int
|
||||
,ErvenyessegKezdete datetime
|
||||
,ErvenyessegVege datetime
|
||||
,OraKezdete datetime
|
||||
,OraVege datetime
|
||||
,Oraszam int
|
||||
,TargyNev nvarchar(300)
|
||||
,TargyNevForMobile nvarchar(300)
|
||||
,TargykategoriaID int
|
||||
,Megtartott char(1)
|
||||
,CsengetesiRendOraID int
|
||||
,CsengetesiRendID int
|
||||
,MaxNapiOraszam int
|
||||
,OsztalyNev nvarchar(255)
|
||||
,TanevRendOsztalyCsoportId int
|
||||
,MegjelenesOka nvarchar(300)
|
||||
,TanarNev nvarchar(255)
|
||||
,TeremNev nvarchar(255)
|
||||
,TeremId int
|
||||
,OraTipus nvarchar(200)
|
||||
,Hianyzas char(1)
|
||||
,Keses char(1)
|
||||
,Ures char(1)
|
||||
,HelyettesitoTanarID int
|
||||
,HelyettesitoTanarNev nvarchar(255)
|
||||
,HelyettesitesId int
|
||||
,TanarID int
|
||||
,AdminAltalKiirt char(1)
|
||||
,GroupId int
|
||||
,Tema nvarchar(max)
|
||||
,TantargyId int
|
||||
,OsztCsopId int
|
||||
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
|
||||
);
|
||||
|
||||
/* Változók deklarálása */
|
||||
SET @sql += N'
|
||||
DECLARE
|
||||
@KezdoHet int = DATEPART( ISO_WEEK, @pIdoszakKezdete)
|
||||
,@ZaroHet int = DATEPART( ISO_WEEK, @pIdoszakVege);
|
||||
DECLARE @VegzosUtolsoTanitasiNap datetime;
|
||||
|
||||
SELECT @VegzosUtolsoTanitasiNap = MIN(C_DATUM)
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
WHERE TOROLT = ''F''
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603, 1395) --
|
||||
AND C_OSSZESCSOPORTRAVONATKOZIK = ''T''
|
||||
|
||||
DECLARE @IsVegzosEvfolyam char(1)
|
||||
'
|
||||
|
||||
/* A kapcsolódó osztálycsoportok összegyűjtése */
|
||||
SET @sql += N'
|
||||
IF @pOsztalyCsoportId IS NOT NULL BEGIN
|
||||
SELECT @IsVegzosEvfolyam = C_VEGZOSEVFOLYAM
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
WHERE ID = @pOsztalyCsoportId
|
||||
|
||||
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakKezdete, IdoszakVege, IsAlapkepzeses)
|
||||
SELECT
|
||||
kocs.ID
|
||||
,ocs.C_NEV
|
||||
,'''' AS OKA
|
||||
,ocs.C_VEGZOSEVFOLYAM
|
||||
,kocs.Kezdete
|
||||
,CASE
|
||||
WHEN ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND kocs.Vege > @VegzosUtolsoTanitasiNap THEN @VegzosUtolsoTanitasiNap + 1
|
||||
WHEN kocs.Vege < @pIdoszakVege THEN kocs.Vege
|
||||
ELSE @pIdoszakVege
|
||||
END
|
||||
,IIF(C_FELADATKATEGORIAID = 7553, ''T'', ''F'')
|
||||
FROM dbo.fnGetKapcsolodoOsztalyCsoportokByDateRange(@pOsztalyCsoportId, @pIdoszakKezdete, @pIdoszakVege, @pIntezmenyId, @pTanevId) kocs
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = kocs.ID AND ocs.TOROLT = ''F''
|
||||
END
|
||||
ELSE BEGIN
|
||||
IF @pTanuloId IS NOT NULL BEGIN
|
||||
|
||||
SELECT @IsVegzosEvfolyam = ocs.C_VEGZOSEVFOLYAM
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID
|
||||
WHERE EXISTS (SELECT 1 FROM T_OSZTALY_OSSZES o WHERE o.ID = ocs.ID)
|
||||
AND tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
|
||||
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
|
||||
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
|
||||
|
||||
|
||||
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakKezdete, IdoszakVege, IsAlapkepzeses)
|
||||
SELECT
|
||||
tcs.C_OSZTALYCSOPORTID
|
||||
,ocs.C_NEV
|
||||
,'''' AS Oka
|
||||
,@IsVegzosEvfolyam
|
||||
,IIF(tcs.C_BELEPESDATUM < @pIdoszakKezdete, @pIdoszakKezdete, tcs.C_BELEPESDATUM)
|
||||
,CASE
|
||||
WHEN @pIdoszakVege <= @VegzosUtolsoTanitasiNap AND @pIdoszakVege <= ISNULL(tcs.C_KILEPESDATUM, @pIdoszakVege)
|
||||
THEN @pIdoszakVege
|
||||
WHEN @IsVegzosEvfolyam = ''T'' AND @VegzosUtolsoTanitasiNap <= @pIdoszakVege AND @VegzosUtolsoTanitasiNap <= ISNULL(tcs.C_KILEPESDATUM, @pIdoszakVege)
|
||||
THEN @VegzosUtolsoTanitasiNap+1
|
||||
ELSE ISNULL(tcs.C_KILEPESDATUM, @pIdoszakVege)
|
||||
END
|
||||
,IIF(C_FELADATKATEGORIAID = 7553, ''T'', ''F'')
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON tcs.C_OSZTALYCSOPORTID = ocs.ID AND ocs.TOROLT = ''F''
|
||||
WHERE tcs.C_TANULOID = @pTanuloId AND tcs.TOROLT = ''F''
|
||||
AND tcs.C_BELEPESDATUM <= @pIdoszakVege
|
||||
AND (tcs.C_KILEPESDATUM > @pIdoszakKezdete OR tcs.C_KILEPESDATUM IS NULL)
|
||||
' + IIF(@pFeladatKategoriaId IS NULL, '', 'AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + '
|
||||
|
||||
END'
|
||||
|
||||
SET @sql += N'
|
||||
--Performancia noveles miatt
|
||||
ELSE IF @pTanarId IS NOT NULL BEGIN
|
||||
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakKezdete, IdoszakVege, IsAlapkepzeses)
|
||||
SELECT
|
||||
ID
|
||||
,ocs.C_NEV
|
||||
,''''
|
||||
,ocs.C_VEGZOSEVFOLYAM
|
||||
,@pIdoszakKezdete
|
||||
,IIF(ocs.C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
|
||||
,IIF(C_FELADATKATEGORIAID = 7553, ''T'', ''F'')
|
||||
FROM (
|
||||
SELECT
|
||||
oo.C_OSZTALYCSOPORTID
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
WHERE oo.C_TANARID = @pTanarId
|
||||
-- AND oo.C_ORAERVENYESSEGKEZDETE <= @pIdoszakVege
|
||||
-- AND oo.C_ORAERVENYESSEGVEGE >= @pIdoszakKezdete
|
||||
AND oo.TOROLT = ''F''
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
oo.C_OSZTALYCSOPORTID
|
||||
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo ON oo.ID = hi.C_HELYETTESITETTORARENDID AND oo.TOROLT = ''F''
|
||||
WHERE hi.C_HELYETTESTANAROKID = @pTanarId
|
||||
AND hi.C_HELYETTESITESNAPJA >= @pIdoszakKezdete
|
||||
AND hi.C_HELYETTESITESNAPJA < @pIdoszakVege
|
||||
AND hi.TOROLT = ''F''
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
tno.C_OSZTALYCSOPORTID
|
||||
FROM T_TANITASIORA_OSSZES tno
|
||||
WHERE tno.C_HELYETTESITOTANARID = @pTanarId
|
||||
AND tno.C_DATUM < @pIdoszakVege
|
||||
AND tno.C_DATUM >= @pIdoszakKezdete
|
||||
AND tno.TOROLT = ''F''
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
tno.C_OSZTALYCSOPORTID
|
||||
FROM T_TANITASIORA_OSSZES tno
|
||||
WHERE tno.C_TANARID = @pTanarId
|
||||
AND tno.C_DATUM < @pIdoszakVege
|
||||
AND tno.C_DATUM >= @pIdoszakKezdete
|
||||
AND tno.TOROLT = ''F''
|
||||
) x
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = x.C_OSZTALYCSOPORTID
|
||||
' + IIF(@pFeladatKategoriaId IS NULL, '', 'WHERE ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + '
|
||||
END
|
||||
|
||||
--Performancia noveles miatt
|
||||
ELSE BEGIN
|
||||
INSERT INTO #OsztalyCsoportok (Id, Nev, Oka, IsVegzos, IdoszakKezdete, IdoszakVege, IsAlapkepzeses)
|
||||
SELECT ID, C_NEV, '''' AS Oka, C_VEGZOSEVFOLYAM, @pIdoszakKezdete
|
||||
,IIF(C_VEGZOSEVFOLYAM = ''T'' AND @VegzosUtolsoTanitasiNap IS NOT NULL AND @pIdoszakVege > @VegzosUtolsoTanitasiNap, @VegzosUtolsoTanitasiNap + 1, @pIdoszakVege)
|
||||
,IIF(C_FELADATKATEGORIAID = 7553, ''T'', ''F'')
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
WHERE ocs.C_TANEVID = @pTanevId
|
||||
AND ocs.TOROLT = ''F''
|
||||
' + IIF(@pFeladatKategoriaId IS NULL, '', 'AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId') + '
|
||||
END
|
||||
END'
|
||||
|
||||
SET @sql += N'
|
||||
UPDATE ocs SET
|
||||
ocs.IdoszakVege = NewVegeDatum
|
||||
FROM #OsztalyCsoportok ocs
|
||||
INNER JOIN (
|
||||
SELECT MIN(tr.C_DATUM) + 1 AS NewVegeDatum, ocstr.C_OSZTALYCSOPORTID
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
WHERE tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
|
||||
AND tr.TOROLT = ''F''
|
||||
AND tr.C_NAPTIPUSA IN (1402, 7600, 7601, 7602, 7603)
|
||||
AND tr.C_TANEVID = @pTanevId
|
||||
GROUP BY ocstr.C_OSZTALYCSOPORTID
|
||||
) x ON x.C_OSZTALYCSOPORTID = ocs.Id
|
||||
WHERE ocs.IsVegzos = ''T''
|
||||
'
|
||||
/* A naptári napok összegyűjtése tanév rendje alapján */
|
||||
SET @sql += N'
|
||||
INSERT INTO #NaptariNapok (
|
||||
Datum
|
||||
,HetirendId
|
||||
,HetNapjaId
|
||||
,OrarendiNap
|
||||
,OsztalyCsoportId
|
||||
,HetSorszam
|
||||
,CsengetesiRendId
|
||||
,Nev
|
||||
,Oka
|
||||
,IsVegzos
|
||||
,IdoszakKezdete
|
||||
,IdoszakVege
|
||||
,IsEgyediNap
|
||||
) SELECT
|
||||
nn.Datum
|
||||
,ISNULL(tr.HetirendId, nn.HetirendId) AS HetirendId
|
||||
,ISNULL(tr.HetNapjaId, nn.HetNapjaId) AS HetNapjaId
|
||||
,ISNULL(tr.OrarendiNap, nn.OrarendiNap) AS OrarendiNap
|
||||
,nn.OsztalyCsoportId
|
||||
,ISNULL(tr.HetSorszam, nn.HetSorszam) AS HetSorszam
|
||||
,ISNULL(tr.CsengetesiRendId, nn.CsengetesiRendId) AS CsengetesiRendId
|
||||
,ISNULL(tr.Nev, nn.Nev)
|
||||
,ISNULL(tr.Oka, nn.Oka)
|
||||
,ISNULL(tr.IsVegzos, nn.IsVegzos)
|
||||
,ISNULL(tr.IdoszakKezdete, nn.IdoszakKezdete)
|
||||
,ISNULL(tr.IdoszakVege, nn.IdoszakVege)
|
||||
,COALESCE(tr.IsEgyediNap, nn.IsEgyediNap, ''F'')
|
||||
FROM (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,nn.C_HETIREND AS HetirendId
|
||||
,nn.C_HETNAPJA AS HetNapjaId
|
||||
,nn.C_ORARENDINAP AS OrarendiNap
|
||||
,ocs.ID AS OsztalyCsoportId
|
||||
,nn.C_HETSORSZAMA AS HetSorszam
|
||||
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
|
||||
,ocs.Nev
|
||||
,ocs.Oka
|
||||
,ocs.IsVegzos
|
||||
,ocs.IdoszakKezdete
|
||||
,ocs.IdoszakVege
|
||||
,tr.C_EGYEDINAP AS IsEgyediNap
|
||||
,ocs.IsAlapkepzeses
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN #OsztalyCsoportok ocs ON ocs.IdoszakKezdete <= nn.C_NAPDATUMA AND ocs.IdoszakVege > nn.C_NAPDATUMA
|
||||
LEFT JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''T''
|
||||
WHERE nn.TOROLT = ''F''
|
||||
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
|
||||
) nn
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,tr.C_HETIREND AS HetirendId
|
||||
,tr.C_HETNAPJA AS HetNapjaId
|
||||
,tr.C_ORARENDINAP AS OrarendiNap
|
||||
,ocstr.C_OSZTALYCSOPORTID AS OsztalyCsoportId
|
||||
,nn.C_HETSORSZAMA AS HetSorszam
|
||||
,tr.C_CSENGETESIRENDID AS CsengetesiRendId
|
||||
,ocs.Nev
|
||||
,ocs.Oka
|
||||
,ocs.IsVegzos
|
||||
,ocs.IdoszakKezdete
|
||||
,ocs.IdoszakVege
|
||||
,tr.C_EGYEDINAP AS IsEgyediNap
|
||||
,ocs.IsAlapkepzeses
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND nn.C_INTEZMENYID = tr.C_INTEZMENYID AND nn.C_TANEVID = tr.C_TANEVID AND tr.TOROLT = ''F'' AND tr.C_OSSZESCSOPORTRAVONATKOZIK = ''F''
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON tr.ID = ocstr.C_TANEVRENDJEID
|
||||
INNER JOIN #OsztalyCsoportok ocs ON ocs.Id = ocstr.C_OSZTALYCSOPORTID AND ocs.IdoszakKezdete <= nn.C_NAPDATUMA AND ocs.IdoszakVege > nn.C_NAPDATUMA
|
||||
WHERE nn.TOROLT = ''F''
|
||||
AND nn.C_INTEZMENYID = @pIntezmenyId AND nn.C_TANEVID = @pTanevId
|
||||
AND nn.C_NAPDATUMA >= @pIdoszakKezdete AND nn.C_NAPDATUMA < ocs.IdoszakVege
|
||||
) tr ON nn.Datum = tr.datum AND nn.OsztalyCsoportId = tr.OsztalyCsoportId
|
||||
WHERE (ISNULL(tr.OrarendiNap, nn.OrarendiNap) = ''T'' OR ISNULL(tr.IsAlapkepzeses, nn.IsAlapkepzeses) = ''F'')
|
||||
'
|
||||
|
||||
/* Órarend lekérdezés */
|
||||
IF @pCsakOrarendiOrak = 0 BEGIN
|
||||
SET @sql += N'
|
||||
INSERT INTO #OrarendTable
|
||||
'
|
||||
|
||||
END
|
||||
|
||||
SET @sqlOrarendiora += N'
|
||||
SELECT DISTINCT
|
||||
oo.ID AS Id
|
||||
,oo.ID AS ORARENDIID
|
||||
,nn.Datum AS Datum
|
||||
,oo.C_BONTOTT AS Bontott
|
||||
,oo.C_HETIREND AS Hetirend
|
||||
,oo.C_HETNAPJA AS HetNapja
|
||||
,nn.HetSorszam AS HetSorszam
|
||||
,oo.C_ORAERVENYESSEGKEZDETE AS ErvenyessegKezdete
|
||||
,oo.C_ORAERVENYESSEGVEGE AS ErvenyessegVege
|
||||
,nn.Datum + oo.C_ORAKEZDETE AS OraKezdete
|
||||
,nn.Datum + oo.C_ORAVEGE AS OraVege
|
||||
,oo.C_ORASZAM AS Oraszam
|
||||
,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
|
||||
,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
|
||||
,tt.C_TARGYKATEGORIA AS TargykategoriaID
|
||||
,''F'' AS Megtartott
|
||||
,csro.ID AS CsengetesiRendOraID
|
||||
,csro.C_CSENGETESIRENDID AS CsengetesiRendID
|
||||
,MAX(oo.C_ORASZAM) OVER() AS MaxNapiOraszam
|
||||
,nn.Nev AS OsztalyNev
|
||||
,nn.OsztalyCsoportId AS TanevRendOsztalyCsoportId
|
||||
,nn.OKA AS MegjelenesOka
|
||||
,tanar.C_NYOMTATASINEV AS TanarNev
|
||||
,terem.C_NEV AS TeremNev
|
||||
,terem.ID AS TeremId
|
||||
,''OrarendiOra'' AS OraTipus
|
||||
,''F'' AS Hianyzas
|
||||
,''F'' AS Keses
|
||||
,''F'' AS Ures
|
||||
,hisz.C_HELYETTESTANAROKID AS HelyettesitoTanarID
|
||||
,helyettes.C_NYOMTATASINEV AS HelyettesitoTanarNev
|
||||
,hisz.Id AS HelyettesitesId
|
||||
,tanar.ID AS TanarID
|
||||
,NULL AS AdminAltalKiirt
|
||||
,oo.C_ORARENDIORAGROUPID AS GroupId
|
||||
,NULL AS Tema
|
||||
,oo.C_TANTARGYID AS TantargyId
|
||||
,oo.C_OSZTALYCSOPORTID AS OsztCsopId
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
INNER JOIN #OsztalyCsoportok ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN #NaptariNapok nn ON nn.HetnapjaId = oo.C_HETNAPJA
|
||||
AND ocs.ID = nn.OsztalyCsoportId
|
||||
AND nn.Datum >= oo.C_ORAERVENYESSEGKEZDETE
|
||||
AND ((nn.Datum < oo.C_ORAERVENYESSEGVEGE) OR (oo.C_ORAERVENYESSEGKEZDETE = oo.C_ORAERVENYESSEGVEGE AND nn.Datum = oo.C_ORAERVENYESSEGKEZDETE))
|
||||
AND (oo.C_HETIREND = 1554 OR nn.HetirendId = oo.C_HETIREND)
|
||||
AND C_TANEVID = @pTanevId
|
||||
AND oo.C_EGYEDINAP = nn.IsEgyediNap
|
||||
INNER JOIN T_TANTARGY_OSSZES tt ON tt.ID = oo.C_TANTARGYID AND tt.TOROLT = ''F''
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanar ON tanar.ID = oo.C_TANARID AND tanar.TOROLT = ''F''
|
||||
LEFT JOIN T_TEREM_OSSZES terem ON terem.id = oo.C_TEREMID AND terem.TOROLT = ''F''
|
||||
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hisz ON oo.ID = hisz.C_HELYETTESITETTORARENDID AND hisz.C_HELYETTESITESNAPJA = nn.Datum AND hisz.TOROLT = ''F''
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON hisz.C_HELYETTESTANAROKID = helyettes.ID AND helyettes.TOROLT = ''F''
|
||||
' + IIF(@pIsNapirend = 0, 'INNER', 'LEFT') + ' JOIN T_CSENGETESIRENDORA_OSSZES csro ON csro.C_CSENGETESIRENDID = ISNULL(nn.CsengetesiRendId, oo.C_CSENGETESIRENDID) AND csro.C_ORASZAM = oo.C_ORASZAM AND csro.TOROLT = ''F''
|
||||
WHERE oo.TOROLT = ''F''
|
||||
' + CASE WHEN @pIsNapirend = 1 THEN N'AND oo.C_CSENGETESIRENDID IS NULL ' WHEN @pIsNapirend IS NULL THEN N'AND ((oo.C_CSENGETESIRENDID IS NOT NULL AND csro.C_CSENGETESIRENDID IS NOT NULL) OR (oo.C_CSENGETESIRENDID IS NULL AND csro.C_CSENGETESIRENDID IS NULL))' ELSE '' END + '
|
||||
AND oo.C_TANEVID = @pTanevId
|
||||
' + IIF(@pTantargyId IS NULL, N'', N'AND oo.C_TANTARGYID = @pTantargyId') + N'
|
||||
' + IIF(@pTeremId IS NULL, N'', 'AND oo.C_TEREMID = @pTeremId')
|
||||
|
||||
|
||||
SET @sql += @sqlOrarendiOra + N'
|
||||
' + IIF(@pTanarId IS NULL, N'', 'AND oo.C_TANARID = @pTanarId')
|
||||
|
||||
IF @pTanarId IS NOT NULL AND @pIsHelyettesitesNelkul = 0 BEGIN
|
||||
SET @sql += N'
|
||||
UNION ALL
|
||||
' + @sqlOrarendiOra + '
|
||||
AND hisz.C_HELYETTESTANAROKID = @pTanarId
|
||||
AND hisz.C_HELYETTESITESNAPJA >= @pIdoszakKezdete AND hisz.C_HELYETTESITESNAPJA < ocs.IdoszakVege
|
||||
'
|
||||
END
|
||||
|
||||
|
||||
IF @pCsakOrarendiOrak = 0 BEGIN
|
||||
|
||||
/* TanításiÓra lekérdezés */
|
||||
SET @sql += N'
|
||||
SELECT
|
||||
ISNULL(tn.Id, oo.Id) AS Id
|
||||
,ISNULL(tn.ORARENDIID, oo.ORARENDIID) AS ORARENDIID
|
||||
,ISNULL(tn.Datum, oo.Datum) AS Datum
|
||||
,ISNULL(tn.Bontott, oo.Bontott) AS Bontott
|
||||
,ISNULL(tn.Hetirend, oo.Hetirend) AS Hetirend
|
||||
,ISNULL(tn.HetNapja, oo.HetNapja) AS HetNapja
|
||||
,ISNULL(tn.HetSorszam, oo.HetSorszam) AS HetSorszam
|
||||
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegKezdete) AS ErvenyessegKezdete
|
||||
,IIF(tn.Id IS NOT NULL, NULL, oo.ErvenyessegVege) AS ErvenyessegVege
|
||||
,ISNULL(tn.OraKezdete, oo.OraKezdete) AS OraKezdete
|
||||
,ISNULL(tn.OraVege, oo.OraVege) AS OraVege
|
||||
,ISNULL(tn.Oraszam, oo.Oraszam) AS Oraszam
|
||||
,ISNULL(tn.TargyNev, oo.TargyNev) AS TargyNev
|
||||
,ISNULL(tn.TargyNevForMobile, oo.TargyNevForMobile) AS TargyNevForMobile
|
||||
,ISNULL(tn.TargykategoriaID, oo.TargykategoriaID) AS TargykategoriaID
|
||||
,ISNULL(tn.Megtartott, oo.Megtartott) AS Megtartott
|
||||
,ISNULL(tn.CsengetesiRendOraID, oo.CsengetesiRendOraID) AS CsengetesiRendOraID
|
||||
,ISNULL(tn.CsengetesiRendID, oo.CsengetesiRendID) AS CsengetesiRendID
|
||||
,ISNULL(tn.MaxNapiOraszam, oo.MaxNapiOraszam) AS MaxNapiOraszam
|
||||
,ISNULL(tn.OsztalyNev, oo.OsztalyNev) AS OsztalyNev
|
||||
,ISNULL(tn.TanevRendOsztalyCsoportId, oo.TanevRendOsztalyCsoportId) AS TanevRendOsztalyCsoportId
|
||||
,ISNULL(tn.MegjelenesOka, oo.MegjelenesOka) AS MegjelenesOka
|
||||
,ISNULL(tn.TanarNev, oo.TanarNev) AS TanarNev
|
||||
,ISNULL(tn.TeremNev, oo.TeremNev) AS TeremNev
|
||||
,ISNULL(tn.TeremId, oo.TeremId) AS TeremId
|
||||
,ISNULL(tn.OraTipus, oo.OraTipus) AS OraTipus
|
||||
,ISNULL(tn.Hianyzas, oo.Hianyzas) AS Hianyzas
|
||||
,ISNULL(tn.Keses, oo.Keses) AS Keses
|
||||
,ISNULL(tn.Ures, oo.Ures) AS Ures
|
||||
,ISNULL(tn.HelyettesitoTanarID, oo.HelyettesitoTanarID) AS HelyettesitoTanarID
|
||||
,ISNULL(tn.HelyettesitoTanarNev, oo.HelyettesitoTanarNev) AS HelyettesitoTanarNev
|
||||
,oo.HelyettesitesId AS HelyettesitesId
|
||||
,ISNULL(tn.TanarID, oo.TanarID) AS TanarID
|
||||
,ISNULL(tn.AdminAltalKiirt, oo.AdminAltalKiirt) AS AdminAltalKiirt
|
||||
,ISNULL(tn.GroupId, oo.GroupId) AS GroupId
|
||||
,tn.Tema AS Tema
|
||||
,ISNULL(tn.TantargyId, oo.TantargyId) AS TantargyId
|
||||
,ISNULL(tn.OsztCsopId, oo.OsztCsopId) AS OsztCsopId
|
||||
FROM #OrarendTable oo
|
||||
'
|
||||
|
||||
SET @sql += N'
|
||||
FULL JOIN (
|
||||
SELECT
|
||||
tao.ID AS Id
|
||||
,NULL AS ORARENDIID
|
||||
,tao.C_DATUM AS Datum
|
||||
,tao.C_BONTOTT AS Bontott
|
||||
,1554 AS Hetirend
|
||||
,tao.C_HETNAPJA AS HetNapja
|
||||
,tao.C_HETSORSZAMA AS HetSorszam
|
||||
,tao.C_ORAKEZDETE AS OraKezdete
|
||||
,tao.C_ORAVEGE AS OraVege
|
||||
,tao.C_ORASZAM AS Oraszam
|
||||
,ISNULL(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNev
|
||||
,COALESCE(tt.C_ROVIDNEV, tt.C_NEV) AS TargyNevForMobile
|
||||
,tt.C_TARGYKATEGORIA AS TargykategoriaID
|
||||
,tao.C_MEGTARTOTT AS Megtartott
|
||||
,tao.C_CSENGETESIRENDORAID AS CsengetesiRendOraID
|
||||
,tao.C_CSENGETESIRENDID AS CsengetesiRendID
|
||||
,MAX(tao.C_ORASZAM) OVER() AS MaxNapiOraszam
|
||||
,oo.Nev AS OsztalyNev
|
||||
,tao.C_OSZTALYCSOPORTID AS TanevRendOsztalyCsoportId
|
||||
,'''' AS MegjelenesOka
|
||||
,tanar.C_NYOMTATASINEV AS TanarNev
|
||||
,terem.C_NEV AS TeremNev
|
||||
,terem.ID as TeremId
|
||||
,''TanitasiOra'' AS OraTipus
|
||||
,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mh.ID IS NULL, ''F'', ''T'')') + N' AS Hianyzas
|
||||
,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mk.ID IS NULL, ''F'', ''T'')') + N' AS Keses
|
||||
,' + IIF(@pTanuloId IS NULL, N'''F''', N'IIF(mu.ID IS NULL, ''F'', ''T'')') + N' AS Ures
|
||||
,helyettes.ID HelyettesitoTanarID
|
||||
,helyettes.C_NYOMTATASINEV HelyettesitoTanarNev
|
||||
,tanar.ID AS TanarID
|
||||
,tao.C_ADMINALTALKIIRT AS AdminAltalKiirt
|
||||
,tao.C_ORARENDIORAGROUPID AS GroupId
|
||||
,tao.C_TEMA AS Tema
|
||||
,tao.C_TANTARGYID AS TantargyId
|
||||
,tao.C_OSZTALYCSOPORTID AS OsztCsopId
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
INNER JOIN #OsztalyCsoportok oo ON tao.C_OSZTALYCSOPORTID = oo.Id AND tao.C_DATUM >= oo.IdoszakKezdete AND tao.C_DATUM < oo.IdoszakVege
|
||||
INNER JOIN T_TANTARGY_OSSZES tt ON tao.C_TANTARGYID = tt.ID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanar ON tao.C_TANARID = tanar.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES helyettes ON helyettes.ID = tao.C_HELYETTESITOTANARID
|
||||
INNER JOIN T_TEREM_OSSZES terem ON terem.ID = tao.C_TEREMID
|
||||
'
|
||||
IF @pTanuloId IS NOT NULL BEGIN
|
||||
SET @sql += N'
|
||||
LEFT JOIN T_TANULOMULASZTAS_OSSZES mh ON mh.C_TANITASIORAKID = tao.ID AND mh.C_ORATANULOIID = @pTanuloId AND mh.C_TIPUS = 1500 AND mh.TOROLT = ''F''
|
||||
LEFT JOIN T_TANULOMULASZTAS_OSSZES mk ON mk.C_TANITASIORAKID = tao.ID AND mk.C_ORATANULOIID = @pTanuloId AND mk.C_TIPUS = 1499 AND mk.TOROLT = ''F''
|
||||
LEFT JOIN T_TANULOMULASZTAS_OSSZES mu ON mu.C_TANITASIORAKID = tao.ID AND mu.C_ORATANULOIID = @pTanuloId AND mu.C_TIPUS = 1817 AND mu.TOROLT = ''F''
|
||||
'
|
||||
END
|
||||
SET @sql += N'
|
||||
WHERE tao.TOROLT = ''F'' AND tao.C_TANEVID = @pTanevId
|
||||
--AND tao.C_DATUM >= @pIdoszakKezdete AND tao.C_DATUM < @pIdoszakVege
|
||||
|
||||
' + CASE @pIsNapirend WHEN 1 THEN N'AND tao.C_CSENGETESIRENDID IS NULL ' WHEN 0 THEN 'AND tao.C_CSENGETESIRENDID IS NOT NULL ' ELSE '' END + '
|
||||
' + IIF(@pTanarId IS NULL, N'', IIF(@pIsHelyettesitesNelkul = 0, 'AND (tao.C_TANARID = @pTanarId OR tao.C_HELYETTESITOTANARID = @pTanarId)', 'AND tao.C_TANARID = @pTanarId')) + '
|
||||
' + IIF(@pTantargyId IS NULL, N'', 'AND tao.C_TANTARGYID = @pTantargyId') + '
|
||||
' + IIF(@pTeremId IS NULL, N'', 'AND tao.C_TEREMID = @pTeremId') + '
|
||||
|
||||
) tn ON tn.Datum = oo.Datum
|
||||
AND tn.HetNapja = oo.HetNapja
|
||||
' + CASE @pIsNapirend WHEN 1 THEN N'AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege ' WHEN 0 THEN N'AND tn.Oraszam = oo.Oraszam ' ELSE N'AND ((tn.CsengetesiRendID IS NULL AND tn.OraKezdete = oo.OraKezdete AND tn.OraVege = oo.OraVege) OR (tn.CsengetesiRendID IS NOT NULL AND tn.Oraszam = oo.Oraszam)) ' END + '
|
||||
AND tn.TanevRendOsztalyCsoportId = oo.TanevRendOsztalyCsoportId
|
||||
AND tn.TantargyId = oo.TantargyId
|
||||
AND tn.TanarID = oo.TanarID
|
||||
'
|
||||
END
|
||||
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@pIntezmenyId int
|
||||
,@pTanevId int
|
||||
,@pIdoszakKezdete datetime
|
||||
,@pIdoszakVege datetime
|
||||
,@pTanarId int
|
||||
,@pIsHelyettesitesNelkul bit
|
||||
,@pOsztalyCsoportId int
|
||||
,@pTanuloId int
|
||||
,@pTantargyId int
|
||||
,@pTeremId int
|
||||
,@pCsakOrarendiOrak bit
|
||||
,@pIsNapirend bit
|
||||
,@pFeladatKategoriaId int'
|
||||
,@pIntezmenyId = @pIntezmenyId
|
||||
,@pTanevId = @pTanevId
|
||||
,@pIdoszakKezdete = @pIdoszakKezdete
|
||||
,@pIdoszakVege = @pIdoszakVege
|
||||
,@pTanarId = @pTanarId
|
||||
,@pIsHelyettesitesNelkul = @pIsHelyettesitesNelkul
|
||||
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
||||
,@pTanuloId = @pTanuloId
|
||||
,@pTantargyId = @pTantargyId
|
||||
,@pTeremId = @pTeremId
|
||||
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
|
||||
,@pIsNapirend = @pIsNapirend
|
||||
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
||||
END
|
||||
GO
|
||||
|
||||
+212
@@ -0,0 +1,212 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetOrarendKereszttabla_Osztaly') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetOrarendKereszttabla_Osztaly
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetOrarendKereszttabla_Osztaly
|
||||
@tanevId INT,
|
||||
@aktivTanevId INT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
|
||||
,@HetEleje DATE
|
||||
,@HetVege DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
|
||||
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
|
||||
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
|
||||
END
|
||||
|
||||
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
|
||||
INSERT INTO #KapcsolodoCsoportok
|
||||
SELECT DISTINCT
|
||||
o.ID Osztaly
|
||||
,k.ID KapcsolodoCsoport
|
||||
FROM T_OSZTALY_OSSZES o
|
||||
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
AND C_ALTANEVID = @tanevId
|
||||
|
||||
DECLARE @OsztalyhozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, TanarId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
|
||||
INSERT INTO @OsztalyhozKapcsolodoOsszesOrarendiora
|
||||
SELECT
|
||||
k.OsztalyId
|
||||
,k.OsztalyCsoportId
|
||||
,o.ID
|
||||
,C_TANTARGYID
|
||||
,C_TANARID
|
||||
,C_TEREMID
|
||||
,C_HETIREND
|
||||
,C_HETNAPJA
|
||||
,C_ORASZAM
|
||||
,C_ORAERVENYESSEGKEZDETE
|
||||
,C_ORAERVENYESSEGVEGE
|
||||
FROM #KapcsolodoCsoportok k
|
||||
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
|
||||
DECLARE @temp TABLE (OsztalyId INT, OsztalyCsoportNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX), HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), PedagogusNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX))
|
||||
INSERT INTO @temp
|
||||
SELECT
|
||||
OrarendiOra.OsztalyId OsztalyId
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
,osztalyNev.C_NEV OsztalyNev
|
||||
,OrarendiOra.HetirendId HetirendId
|
||||
,hetirend.C_NAME HetirendNev
|
||||
,OrarendiOra.HetnapjaId HetnapjaId
|
||||
,OrarendiOra.Oraszam Oraszam
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Pedagogus.C_NYOMTATASINEV PedagogusNev
|
||||
,Terem.C_NEV TeremNev
|
||||
FROM @OsztalyhozKapcsolodoOsszesOrarendiora OrarendiOra
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.TanarId
|
||||
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.OsztalyCsoportId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyNev ON osztalyNev.ID = OrarendiOra.OsztalyId
|
||||
WHERE
|
||||
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
|
||||
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
|
||||
|
||||
DECLARE @Hetirendek TABLE (Id INT)
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT HetirendId FROM @temp
|
||||
|
||||
DECLARE @OsszesOra TABLE (OsztalyId INT, Hetirend INT, Nap INT, Oraszam INT)
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT Osztaly, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT DISTINCT OsztalyId FROM #KapcsolodoCsoportok) Osztaly(Osztaly)
|
||||
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
|
||||
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
|
||||
|
||||
DECLARE @TenylegesOra TABLE (OsztalyId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
|
||||
INSERT INTO @TenylegesOra
|
||||
SELECT
|
||||
OsztalyId
|
||||
,HetnapjaId
|
||||
,Oraszam
|
||||
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' ('+IIF(bveg.OsztalyCsoportNev <> bveg.OsztalyNev, bveg.OsztalyCsoportNev +', ', '') +bveg.PedagogusNev+', '+bveg.TeremNev+', ' +HetirendNev+')' AS VARCHAR(max))
|
||||
FROM @temp bveg
|
||||
WHERE
|
||||
bveg.HetnapjaId=veg.HetnapjaId
|
||||
AND bveg.Oraszam=veg.Oraszam
|
||||
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
|
||||
AND bveg.OsztalyId = veg.OsztalyId
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
|
||||
FROM @temp veg
|
||||
|
||||
/*Végleges órarend*/
|
||||
CREATE TABLE #Orarend (OsztalyId INT, OsztalyNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
|
||||
INSERT INTO #Orarend
|
||||
SELECT
|
||||
OsszesOra.OsztalyId
|
||||
,ocs.C_NEV
|
||||
,OsszesOra.Oraszam
|
||||
,OsszesOra.Nap
|
||||
,TenylegesOra.Foglalkozas
|
||||
FROM @OsszesOra OsszesOra
|
||||
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.OsztalyId = OsszesOra.OsztalyId
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OsszesOra.OsztalyId
|
||||
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------
|
||||
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
|
||||
INSERT INTO #Napok
|
||||
SELECT DISTINCT
|
||||
*
|
||||
, CASE
|
||||
WHEN nap = 'hetfo' THEN 1
|
||||
WHEN nap = 'kedd' THEN 2
|
||||
WHEN nap = 'szerda' THEN 3
|
||||
WHEN nap = 'csutortok' THEN 4
|
||||
WHEN nap = 'pentek' THEN 5
|
||||
END
|
||||
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
|
||||
CROSS JOIN (SELECT DISTINCT Oraszam FROM @temp) OraSzam (OraSzam)
|
||||
|
||||
DECLARE @Oraszamok NVARCHAR(MAX),
|
||||
@OraszamokAlias NVARCHAR(MAX)
|
||||
|
||||
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
|
||||
FROM (SELECT DISTINCT Oraszam FROM @temp ) o
|
||||
|
||||
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
|
||||
|
||||
DECLARE @sql NVARCHAR(MAX)
|
||||
SET @sql = '
|
||||
SELECT DISTINCT
|
||||
ocs.C_NEV OsztalyNev,
|
||||
' + @OraszamokAlias + '
|
||||
FROM #KapcsolodoCsoportok k
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
OsztalyId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1408
|
||||
) hetfo ON hetfo.OsztalyId = k.OsztalyId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
OsztalyId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1409
|
||||
) kedd ON kedd.OsztalyId = k.OsztalyId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
OsztalyId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1410
|
||||
) szerda ON szerda.OsztalyId = k.OsztalyId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
OsztalyId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1411
|
||||
) csutortok ON csutortok.OsztalyId = k.OsztalyId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
OsztalyId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1412
|
||||
) pentek ON pentek.OsztalyId = k.OsztalyId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = k.OsztalyId
|
||||
ORDER BY C_NEV
|
||||
'
|
||||
|
||||
EXEC sp_executesql @sql
|
||||
|
||||
DROP TABLE #Napok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #KapcsolodoCsoportok
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetOrarendKereszttabla_Pedagogus') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetOrarendKereszttabla_Pedagogus
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetOrarendKereszttabla_Pedagogus
|
||||
@tanevId INT,
|
||||
@aktivTanevId INT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA=1395 AND C_TANEVID=@tanevid AND TOROLT='F')
|
||||
,@HetEleje DATE
|
||||
,@HetVege DATE
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, NH.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
|
||||
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE CONVERT(DATE, GETDATE())>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND CONVERT(DATE, GETDATE())<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) and nh.TOROLT='F' and nh.C_TANEVID=@tanevid)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
|
||||
SET @HetEleje = (SELECT TOP 1 nh.C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
|
||||
SET @HetVege = (SELECT TOP 1 nh.C_HETUTOLSONAPJA FROM T_NAPTARIHET_OSSZES nh WHERE @UtolsoNap>=CONVERT(DATE, nh.C_HETKEZDONAPJA) AND @UtolsoNap<=CONVERT(DATE, nh.C_HETUTOLSONAPJA) AND nh.TOROLT='F' AND nh.C_TANEVID=@tanevId)
|
||||
END
|
||||
|
||||
CREATE TABLE #KapcsolodoCsoportok (OsztalyId INT, OsztalyCsoportId INT)
|
||||
INSERT INTO #KapcsolodoCsoportok
|
||||
SELECT DISTINCT
|
||||
o.ID Osztaly
|
||||
,k.ID KapcsolodoCsoport
|
||||
FROM T_OSZTALY_OSSZES o
|
||||
CROSS APPLY fnGetKapcsolodoOsztalycsoportokByDate(ID, @HetEleje, @HetVege) k
|
||||
WHERE
|
||||
o.TOROLT = 'F'
|
||||
AND o.C_ALTANEVID = @tanevId
|
||||
|
||||
DECLARE @PedagogushozKapcsolodoOsszesOrarendiora TABLE (OsztalyId INT, OsztalyCsoportId INT, OrarendiOraId INT, TantargyId INT, PedagogusId INT, TeremId INT, HetirendId INT, HetnapjaId INT, Oraszam INT, OraErvenyessegKezdete DATE, OraErvenyessegVege DATE)
|
||||
INSERT INTO @PedagogushozKapcsolodoOsszesOrarendiora
|
||||
SELECT
|
||||
k.OsztalyId
|
||||
,K.OsztalyCsoportId
|
||||
,o.ID
|
||||
,C_TANTARGYID
|
||||
,C_TANARID
|
||||
,C_TEREMID
|
||||
,C_HETIREND
|
||||
,C_HETNAPJA
|
||||
,C_ORASZAM
|
||||
,C_ORAERVENYESSEGKEZDETE
|
||||
,C_ORAERVENYESSEGVEGE
|
||||
FROM #KapcsolodoCsoportok k
|
||||
LEFT JOIN T_ORARENDIORA_OSSZES o ON o.C_OSZTALYCSOPORTID = k.OsztalyCsoportId
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
|
||||
CREATE TABLE #temp (PedagogusId INT, HetirendId INT, HetirendNev NVARCHAR(MAX), HetnapjaId INT, Oraszam INT, TantargyNev NVARCHAR(MAX), TeremNev NVARCHAR(MAX), OsztalyNev NVARCHAR(MAX))
|
||||
INSERT INTO #temp
|
||||
SELECT
|
||||
OrarendiOra.PedagogusId PedagogusId
|
||||
,OrarendiOra.HetirendId HetirendId
|
||||
,hetirend.C_NAME HetirendNev
|
||||
,OrarendiOra.HetnapjaId HetnapjaId
|
||||
,OrarendiOra.Oraszam Oraszam
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Terem.C_NEV TeremNev
|
||||
,ocs.C_NEV OsztalyNev
|
||||
FROM @PedagogushozKapcsolodoOsszesOrarendiora OrarendiOra
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.TantargyId
|
||||
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.TeremId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES hetirend ON hetirend.Id = OrarendiOra.HetirendId AND hetirend.C_TANEVID = @tanevId
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.Id = OrarendiOrA.OsztalyCsoportId
|
||||
WHERE
|
||||
OrarendiOra.OraErvenyessegKezdete <= @Hetvege
|
||||
AND OrarendiOra.OraErvenyessegVege >= @Heteleje
|
||||
|
||||
DECLARE @Hetirendek TABLE (Id INT)
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT HetirendId FROM #temp
|
||||
|
||||
DECLARE @OsszesOra TABLE (PedagogusId INT, Hetirend INT, Nap INT, Oraszam INT)
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT PedagogusId, oo.Id, Nap.Nap , OraSzam.OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT DISTINCT PedagogusId FROM #temp) Pedagogus(PedagogusId)
|
||||
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
|
||||
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412),(1413)) Nap (Nap)
|
||||
|
||||
DECLARE @TenylegesOra TABLE (PedagogusId INT, Nap INT, OraSzam INT, Foglalkozas NVARCHAR(MAX))
|
||||
INSERT INTO @TenylegesOra
|
||||
SELECT
|
||||
PedagogusId
|
||||
,HetnapjaId
|
||||
,Oraszam
|
||||
,STUFF((SELECT DISTINCT ', ' + CAST(bveg.TantargyNev+' (' +bveg.OsztalyNev+', ' + bveg.TeremNev +', ' +HetirendNev+')' AS VARCHAR(max))
|
||||
FROM #temp bveg
|
||||
WHERE
|
||||
bveg.HetnapjaId=veg.HetnapjaId
|
||||
AND bveg.Oraszam=veg.Oraszam
|
||||
AND (bveg.HetirendId=HetirendId OR bveg.HetirendId=1554)
|
||||
AND bveg.PedagogusId = veg.PedagogusId
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,' ') Foglalkozasok
|
||||
FROM #temp veg
|
||||
|
||||
/*Végleges órarend*/
|
||||
CREATE TABLE #Orarend (PedagogusId INT, PedagogusNev NVARCHAR(MAX), Ora INT, Nap INT, Foglalkozas NVARCHAR(MAX))
|
||||
INSERT INTO #Orarend
|
||||
SELECT
|
||||
OsszesOra.PedagogusId
|
||||
,ped.C_NYOMTATASINEV
|
||||
,OsszesOra.Oraszam
|
||||
,OsszesOra.Nap
|
||||
,TenylegesOra.Foglalkozas
|
||||
FROM @OsszesOra OsszesOra
|
||||
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Nap=TenylegesOra.Nap AND OsszesOra.Oraszam=TenylegesOra.Oraszam AND TenylegesOra.PedagogusId = OsszesOra.PedagogusId
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ped ON ped.ID = OsszesOra.PedagogusId
|
||||
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------
|
||||
CREATE TABLE #Napok (Nev NVARCHAR(MAX), Oraszam INT, Rendez INT)
|
||||
INSERT INTO #Napok
|
||||
SELECT DISTINCT
|
||||
*
|
||||
, CASE
|
||||
WHEN nap = 'hetfo' THEN 1
|
||||
WHEN nap = 'kedd' THEN 2
|
||||
WHEN nap = 'szerda' THEN 3
|
||||
WHEN nap = 'csutortok' THEN 4
|
||||
WHEN nap = 'pentek' THEN 5
|
||||
END
|
||||
FROM (VALUES ('hetfo'), ('kedd'), ('szerda'), ('csutortok'), ('pentek')) AS napok(nap)
|
||||
CROSS JOIN (SELECT DISTINCT Oraszam FROM #temp) OraSzam (OraSzam)
|
||||
|
||||
DECLARE @Oraszamok NVARCHAR(MAX),
|
||||
@OraszamokAlias NVARCHAR(MAX)
|
||||
|
||||
SELECT @Oraszamok = ISNULL(@Oraszamok + ', ', '') + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']'
|
||||
FROM (SELECT DISTINCT Oraszam FROM #temp ) o
|
||||
|
||||
SELECT @OraszamokAlias = ISNULL(@OraszamokAlias + ', ', '') + Nev +'.' + '[' + CAST(Oraszam AS NVARCHAR(MAX)) + ']' FROM #Napok ORDER BY Rendez, Oraszam
|
||||
|
||||
DECLARE @sql NVARCHAR(MAX)
|
||||
SET @sql = '
|
||||
SELECT DISTINCT
|
||||
f.C_NYOMTATASINEV PedagogusNev,
|
||||
' + @OraszamokAlias + '
|
||||
FROM (SELECT DISTINCT PedagogusId FROM #temp) k
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
PedagogusId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1408
|
||||
) hetfo ON hetfo.PedagogusId = k.PedagogusId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
PedagogusId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1409
|
||||
) kedd ON kedd.PedagogusId = k.PedagogusId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
PedagogusId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1410
|
||||
) szerda ON szerda.PedagogusId = k.PedagogusId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
PedagogusId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1411
|
||||
) csutortok ON csutortok.PedagogusId = k.PedagogusId
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
PedagogusId
|
||||
,'+ @Oraszamok +'
|
||||
FROM #Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Ora IN (' + @Oraszamok + '))a
|
||||
WHERE Nap = 1412
|
||||
) pentek ON pentek.PedagogusId = k.PedagogusId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = k.PedagogusId
|
||||
ORDER BY C_NYOMTATASINEV
|
||||
'
|
||||
|
||||
EXEC sp_executesql @sql
|
||||
|
||||
DROP TABLE #Napok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #KapcsolodoCsoportok
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+266
@@ -0,0 +1,266 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetOrarendOsztalyonkent') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetOrarendOsztalyonkent
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetOrarendOsztalyonkent
|
||||
@intezmenyId INT,
|
||||
@tanevId INT,
|
||||
@osztalyId INT,
|
||||
@aktivTanevId INT,
|
||||
@isEgyebFoglalkozasok BIT,
|
||||
@orarendErvenyessegiDatum DATE
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @UtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1395 AND C_TANEVID = @tanevId AND TOROLT = 'F')
|
||||
,@ElsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = 1394 AND C_TANEVID = @tanevId AND TOROLT = 'F')
|
||||
,@VizsgaltNap DATE
|
||||
,@isVegzos VARCHAR(1) = (SELECT TOP 1 C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
|
||||
,@VegzosUtolsoNap DATE = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND C_NAPTIPUSA = 1402 AND TOROLT = 'F')
|
||||
,@osztalyNev NVARCHAR(MAX) = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
|
||||
|
||||
SET @UtolsoNap = (SELECT IIF(@isVegzos = 'T', @VegzosUtolsoNap, @UtolsoNap))
|
||||
|
||||
IF (@tanevId = @aktivTanevId AND @orarendErvenyessegiDatum <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (@orarendErvenyessegiDatum <= @ElsoNap)
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (SELECT TOP 1 C_HETKEZDONAPJA FROM T_NAPTARIHET_OSSZES WHERE C_HETSORSZAMA = 1 AND TOROLT = 'F' AND C_TANEVID = @tanevId)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = CONVERT(DATE, @orarendErvenyessegiDatum)
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = @UtolsoNap
|
||||
END
|
||||
|
||||
SELECT
|
||||
C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), C_KEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), C_VEGE, 108) Vege
|
||||
INTO #CsengetesiRendAdatok
|
||||
FROM T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra
|
||||
INNER JOIN T_CSENGETESIREND_OSSZES CsengetesiRend ON CsengetesiRend.Id = CsengetesiRendOra.C_CSENGETESIRENDID
|
||||
WHERE
|
||||
CsengetesiRendOra.C_TANEVID = @tanevId
|
||||
AND CsengetesiRendOra.TOROLT = 'F'
|
||||
AND CsengetesiRend.TOROLT = 'F'
|
||||
AND CsengetesiRend.C_AKTIV = 'T'
|
||||
|
||||
DECLARE @MinCsengetesiRendOraKezdet NVARCHAR(10) = (SELECT MIN(Kezdete) FROM #CsengetesiRendAdatok)
|
||||
DECLARE @MinCsengetesiRendOraszam INT = (SELECT MIN(OraSzam) FROM #CsengetesiRendAdatok)
|
||||
|
||||
SELECT
|
||||
OrarendiOra.C_HETIREND HetirendId
|
||||
,OrarendiOra.C_HETNAPJA HetnapjaId
|
||||
,CsengetesiRendOra.C_ORASZAM OraSzam
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAKEZDETE, 108) Kezdete
|
||||
,CONVERT(VARCHAR(5), OrarendiOra.C_ORAVEGE, 108) Vege
|
||||
,ISNULL(Tantargy.C_NEVNYOMTATVANYBAN, Tantargy.C_NEV) TantargyNev
|
||||
,Pedagogus.C_NYOMTATASINEV PedagogusNev
|
||||
,Terem.C_NEV TeremNev
|
||||
,ocs.C_NEV OsztalyCsoportNev
|
||||
INTO #OrarendiOrak
|
||||
FROM T_ORARENDIORA_OSSZES OrarendiOra
|
||||
INNER JOIN fnGetKapcsolodoOsztalycsoportokByDate(@osztalyId, @VizsgaltNap, @VizsgaltNap) Kapcsolodo ON Kapcsolodo.Id = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = OrarendiOra.C_TANTARGYID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Pedagogus ON Pedagogus.Id = OrarendiOra.C_TANARID
|
||||
INNER JOIN T_TEREM_OSSZES Terem ON Terem.Id = OrarendiOra.C_TEREMID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
LEFT JOIN T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON CsengetesiRendOra.Id = OrarendiOra.C_CSENGETESIRENDORAID
|
||||
LEFT JOIN T_CSOPORT_OSSZES Csoport ON Csoport.Id = Kapcsolodo.Id
|
||||
WHERE
|
||||
OrarendiOra.Torolt = 'F'
|
||||
AND @VizsgaltNap BETWEEN OrarendiOra.C_ORAERVENYESSEGKEZDETE AND OrarendiOra.C_ORAERVENYESSEGVEGE
|
||||
AND (@isEgyebFoglalkozasok = 1 OR (Csoport.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) OR Csoport.C_TIPUSA IS NULL))
|
||||
|
||||
SELECT
|
||||
OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,Kezdete
|
||||
,Vege
|
||||
INTO #OrarendTEMP
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.Kezdete >= CsengetesiRendAdatok.Kezdete
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
MAX(CsengetesiRendAdatok.OraSzam) OraSzam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #CsengetesiRendAdatok CsengetesiRendAdatok
|
||||
LEFT JOIN #OrarendiOrak OrarendiOrak ON OrarendiOrak.OraSzam = CsengetesiRendAdatok.OraSzam
|
||||
WHERE
|
||||
OrarendiOrak.OraSzam IS NOT NULL
|
||||
GROUP BY
|
||||
OrarendiOrak.HetirendId
|
||||
,OrarendiOrak.HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev
|
||||
,OrarendiOrak.TantargyNev
|
||||
,OrarendiOrak.TeremNev
|
||||
,OrarendiOrak.Kezdete
|
||||
,OrarendiOrak.Vege
|
||||
)OrarendioraOraszammal
|
||||
|
||||
INSERT INTO #OrarendTEMP
|
||||
SELECT
|
||||
@MinCsengetesiRendOraszam
|
||||
,OrarendiOrak.HetirendId HetirendId
|
||||
,OrarendiOrak.HetnapjaId HetnapjaId
|
||||
,OrarendiOrak.OsztalyCsoportNev OsztalyCsoportNev
|
||||
,OrarendiOrak.PedagogusNev PedagogusNev
|
||||
,OrarendiOrak.TantargyNev TantargyNev
|
||||
,OrarendiOrak.TeremNev TeremNev
|
||||
,OrarendiOrak.Kezdete Kezdete
|
||||
,OrarendiOrak.Vege Vege
|
||||
FROM #orarendiorak OrarendiOrak
|
||||
WHERE
|
||||
Kezdete < @MinCsengetesiRendOraKezdet
|
||||
|
||||
SELECT
|
||||
Orarend.OraSzam
|
||||
,HetirendId
|
||||
,HetnapjaId
|
||||
,OsztalyCsoportNev
|
||||
,PedagogusNev
|
||||
,TantargyNev
|
||||
,TeremNev
|
||||
,IIF(Orarend.Kezdete != CsengetesiRendAdatok.Kezdete OR Orarend.Vege != CsengetesiRendAdatok.Vege, Orarend.Kezdete + ' - ' + Orarend.Vege, '') KezdesVegeIdopont
|
||||
INTO #Orarend
|
||||
FROM #OrarendTEMP Orarend
|
||||
INNER JOIN #CsengetesiRendAdatok CsengetesiRendAdatok on CsengetesiRendAdatok.Oraszam = Orarend.OraSzam
|
||||
|
||||
DECLARE @Hetirendek TABLE (Id INT)
|
||||
DECLARE @HetirendCount INT = (SELECT COUNT(DISTINCT oo.C_HETIREND) FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId)
|
||||
|
||||
IF (@HetirendCount=1)
|
||||
BEGIN
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT oo.c_hetirend FROM T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID = @tanevId
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO @Hetirendek
|
||||
SELECT DISTINCT oo.C_HETIREND from T_ORARENDIORA_OSSZES oo WHERE oo.TOROLT='F' AND oo.C_TANEVID=@tanevId AND oo.C_HETIREND <> 1554
|
||||
END
|
||||
|
||||
DECLARE @Orakezdetek TABLE (Ora INT)
|
||||
INSERT INTO @orakezdetek
|
||||
SELECT DISTINCT OraSzam from #CsengetesiRendAdatok
|
||||
|
||||
DECLARE @OsszesOra TABLE (Hetirend INT, Nap INT, Oraszam nvarchar(20))
|
||||
INSERT INTO @OsszesOra
|
||||
SELECT DISTINCT oo.Id, Nap , OraSzam FROM @Hetirendek oo
|
||||
CROSS JOIN (SELECT Ora FROM @Orakezdetek) OraSzam (OraSzam)
|
||||
CROSS JOIN (VALUES (1408),(1409),(1410),(1411),(1412), (1413),(1414)) Nap (Nap)
|
||||
|
||||
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
|
||||
DECLARE @Orarend TABLE (osztalyId INT, Ora int, Hetirend INT, Nap INT, Foglalkozas NVARCHAR(MAX))
|
||||
|
||||
DECLARE kur CURSOR FOR
|
||||
SELECT Id FROM @Hetirendek
|
||||
|
||||
DECLARE @HetirendId int
|
||||
|
||||
OPEN kur
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
INSERT INTO @TenylegesOra
|
||||
SELECT DISTINCT
|
||||
@HetirendId
|
||||
,veg.HetnapjaId
|
||||
,veg.Oraszam
|
||||
,STUFF((SELECT DISTINCT
|
||||
CAST('<b>' + bveg.TantargyNev + '</b>' + CHAR(13) + CHAR(10)
|
||||
+ IIF(LEN(KezdesVegeIdopont) > 0, ' (' + KezdesVegeIdopont +')' + CHAR(13) + CHAR(10), '')
|
||||
+ IIF(bveg.OsztalyCsoportNev <> @osztalyNev, bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10), '')
|
||||
+ bveg.PedagogusNev + CHAR(13) + CHAR(10)
|
||||
+ bveg.TeremNev + CHAR(13) + CHAR(10) AS VARCHAR(max))
|
||||
FROM #Orarend bveg
|
||||
WHERE bveg.HetnapjaId = veg.HetnapjaId
|
||||
AND bveg.Oraszam = veg.Oraszam
|
||||
AND (bveg.HetirendId = @HetirendId OR bveg.HetirendId = 1554)
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Foglalkozasok
|
||||
FROM #Orarend veg
|
||||
FETCH NEXT FROM kur INTO @HetirendId
|
||||
END
|
||||
CLOSE kur
|
||||
DEALLOCATE kur
|
||||
|
||||
/*Végleges órarend*/
|
||||
INSERT INTO @Orarend
|
||||
SELECT @osztalyId
|
||||
, OsszesOra.Oraszam
|
||||
, OsszesOra.Hetirend
|
||||
, OsszesOra.Nap
|
||||
, TenylegesOra.Foglalkozas
|
||||
FROM @OsszesOra OsszesOra
|
||||
LEFT JOIN @TenylegesOra TenylegesOra ON OsszesOra.Hetirend = TenylegesOra.Hetirend AND OsszesOra.Nap = TenylegesOra.Nap AND OsszesOra.Oraszam = TenylegesOra.Oraszam
|
||||
ORDER BY OsszesOra.Hetirend, OsszesOra.Nap, OsszesOra.Oraszam
|
||||
|
||||
SELECT
|
||||
pv.*
|
||||
, dic.C_NAME HETIREND_DNAME
|
||||
,@osztalyNev OsztalyNev
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap IN ([1408],[1409],[1410],[1411],[1412],[1413],[1414]))pv
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.id=Hetirend AND dic.C_TANEVID = @tanevId
|
||||
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
|
||||
ORDER BY Ora
|
||||
END
|
||||
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
||||
+392
@@ -0,0 +1,392 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetOsztalyTanuloinakHaviMulasztasaiOsszesitoje_honapra]
|
||||
@pTanevId INT,
|
||||
@pIntezmenyId INT,
|
||||
@pOsztalyId INT,
|
||||
@pHonap INT,
|
||||
@pElmeletgyakorlat BIT = 0,
|
||||
@pMulasztandoOrakszamaTeljesNaposMulasztashoz INT = 3
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @idoszakEleje DATE = (SELECT TOP 1 C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId);
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, @pIntezmenyId, @pTanevId);
|
||||
DECLARE @pAtsoroltTanuloAdatok INT = 1;
|
||||
DECLARE @pMulasztasTipusIdKeses INT = 1499;
|
||||
DECLARE @pMulasztasTipusIdHianyzas INT = 1500;
|
||||
--Osztály tanulói
|
||||
CREATE TABLE #tanulo (Id INT)
|
||||
INSERT INTO #tanulo
|
||||
SELECT DISTINCT tcs.c_tanuloid AS Id
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tcs.c_tanuloid
|
||||
WHERE tcs.torolt='F' AND f.torolt='F' AND tcs.c_tanevid=@pTanevId AND tcs.c_intezmenyid=@pIntezmenyId AND tcs.c_osztalycsoportid=@pOsztalyId;
|
||||
|
||||
--Igazolástípusok
|
||||
CREATE TABLE #igazolastipus (Id INT, Nev NVARCHAR(MAX), Sorrend INT);
|
||||
INSERT INTO #igazolastipus
|
||||
SELECT T_IGAZOLASTIPUS_OSSZES.ID AS Id, C_NAME AS Nev, C_ORDER AS Sorrrend
|
||||
FROM T_IGAZOLASTIPUS_OSSZES
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ON T_IGAZOLASTIPUS_OSSZES.ID = T_DICTIONARYITEMBASE_OSSZES.ID
|
||||
WHERE T_DICTIONARYITEMBASE_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = @pTanevId AND T_IGAZOLASTIPUS_OSSZES.C_ALINTEZMENYID = @pIntezmenyId AND T_IGAZOLASTIPUS_OSSZES.C_ALTANEVID = @pTanevId
|
||||
AND T_IGAZOLASTIPUS_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F'
|
||||
ORDER BY C_ORDER, C_NAME;
|
||||
|
||||
--Igazolások és típusai
|
||||
CREATE TABLE #igazolas (Tanulo INT, IgazoltE NVARCHAR(1), IgazolasTipus INT, Gyakorlati CHAR(1), HianyzasErtek FLOAT, KesettPerc FLOAT)
|
||||
INSERT INTO #igazolas
|
||||
SELECT TanuloId AS Tanulo, Igazolt AS IgazoltE, IgazolasTipusa AS IgazolasTipus, IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati) AS Gyakorlati,
|
||||
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek, KesesPercben AS KesettPerc
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
|
||||
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
GROUP BY IIF(@pElmeletgyakorlat=0, 'F', Gyakorlati), TanuloId, Igazolt, IgazolasTipusa, KesesPercben;
|
||||
|
||||
--Mulasztások
|
||||
CREATE TABLE #mulasztas (Nap NVARCHAR(5), Tanulo INT, Osztaly INT, HianyzasErtek FLOAT)
|
||||
INSERT INTO #mulasztas
|
||||
SELECT CAST(CAST(DAY(Datum) AS INT) AS NVARCHAR) + (IIF(@pElmeletgyakorlat=0, '', IIF(Gyakorlati = 'T', '_GY', '_E'))) AS Nap, TanuloId AS Tanulo, OsztalyCsoportId AS Osztaly,
|
||||
SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses, CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS HianyzasErtek
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, 0, IIF(@pAtsoroltTanuloAdatok > 0, 1, 0), @idoszakEleje, GETDATE(), DEFAULT) AS MULASZTASOK
|
||||
WHERE (CAST(MONTH(Datum) AS VARCHAR)) = @pHonap AND Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
GROUP BY CAST(DAY(Datum) AS INT), Gyakorlati, TanuloId, OsztalyCsoportId;
|
||||
|
||||
--Teljes napos mulasztások száma
|
||||
CREATE TABLE #teljesnaposmul (Tanulo INT, HianyzasErtek INT)
|
||||
INSERT INTO #teljesnaposmul
|
||||
SELECT Tanulo, SUM(TeljesNapiMul) AS HianyzasErtek
|
||||
FROM (
|
||||
SELECT Tanulo, Nap, IIF(SUM(HianyzasErtek) >= @pMulasztandoOrakszamaTeljesNaposMulasztashoz, 1, 0) AS TeljesNapiMul
|
||||
FROM #mulasztas
|
||||
GROUP BY Tanulo, Nap
|
||||
) AS TeljesNapiMulasztasok
|
||||
GROUP BY Tanulo
|
||||
DECLARE @query AS NVARCHAR(MAX);
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
DECLARE @colsHeader AS NVARCHAR(MAX);
|
||||
DECLARE @cols AS NVARCHAR(MAX);
|
||||
DECLARE @colsSum AS NVARCHAR(MAX);
|
||||
SELECT @colsHeader = ISNULL(@colsHeader + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev),
|
||||
@cols = ISNULL(@cols + ', ', '') + QUOTENAME(Id),
|
||||
@colsSum = ISNULL(@colsSum + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id)
|
||||
FROM #igazolastipus AS Igazolastipus
|
||||
ORDER BY Sorrend, Nev;
|
||||
PRINT @cols;
|
||||
PRINT @colsSum;
|
||||
PRINT @colsHeader;
|
||||
SET @query =
|
||||
'SELECT
|
||||
f.c_nyomtatasinev AS COLUMN108,
|
||||
IIF(m.[1]=0, NULL, FLOOR(m.[1])) AS [1],
|
||||
IIF(m.[2]=0, NULL, FLOOR(m.[2])) AS [2],
|
||||
IIF(m.[3]=0, NULL, FLOOR(m.[3])) AS [3],
|
||||
IIF(m.[4]=0, NULL, FLOOR(m.[4])) AS [4],
|
||||
IIF(m.[5]=0, NULL, FLOOR(m.[5])) AS [5],
|
||||
IIF(m.[6]=0, NULL, FLOOR(m.[6])) AS [6],
|
||||
IIF(m.[7]=0, NULL, FLOOR(m.[7])) AS [7],
|
||||
IIF(m.[8]=0, NULL, FLOOR(m.[8])) AS [8],
|
||||
IIF(m.[9]=0, NULL, FLOOR(m.[9])) AS [9],
|
||||
IIF(m.[10]=0, NULL, FLOOR(m.[10])) AS [10],
|
||||
IIF(m.[11]=0, NULL, FLOOR(m.[11])) AS [11],
|
||||
IIF(m.[12]=0, NULL, FLOOR(m.[12])) AS [12],
|
||||
IIF(m.[13]=0, NULL, FLOOR(m.[13])) AS [13],
|
||||
IIF(m.[14]=0, NULL, FLOOR(m.[14])) AS [14],
|
||||
IIF(m.[15]=0, NULL, FLOOR(m.[15])) AS [15],
|
||||
IIF(m.[16]=0, NULL, FLOOR(m.[16])) AS [16],
|
||||
IIF(m.[17]=0, NULL, FLOOR(m.[17])) AS [17],
|
||||
IIF(m.[18]=0, NULL, FLOOR(m.[18])) AS [18],
|
||||
IIF(m.[19]=0, NULL, FLOOR(m.[19])) AS [19],
|
||||
IIF(m.[20]=0, NULL, FLOOR(m.[20])) AS [20],
|
||||
IIF(m.[21]=0, NULL, FLOOR(m.[21])) AS [21],
|
||||
IIF(m.[22]=0, NULL, FLOOR(m.[22])) AS [22],
|
||||
IIF(m.[23]=0, NULL, FLOOR(m.[23])) AS [23],
|
||||
IIF(m.[24]=0, NULL, FLOOR(m.[24])) AS [24],
|
||||
IIF(m.[25]=0, NULL, FLOOR(m.[25])) AS [25],
|
||||
IIF(m.[26]=0, NULL, FLOOR(m.[26])) AS [26],
|
||||
IIF(m.[27]=0, NULL, FLOOR(m.[27])) AS [27],
|
||||
IIF(m.[28]=0, NULL, FLOOR(m.[28])) AS [28],
|
||||
IIF(m.[29]=0, NULL, FLOOR(m.[29])) AS [29],
|
||||
IIF(m.[30]=0, NULL, FLOOR(m.[30])) AS [30],
|
||||
IIF(m.[31]=0, NULL, FLOOR(m.[31])) AS [31],
|
||||
FLOOR(OSSZES.MULASZTASOKSZAMA) AS COLUMN2672,
|
||||
FLOOR(IGAZOLT.IGAZOLTSZAMA) AS COLUMN2568, ' + @colsHeader + ',
|
||||
FLOOR(IGAZOLATLAN.IGAZOLATLANSZAMA) AS COLUMN1911,
|
||||
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
|
||||
IGAZOLTKESES.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN,
|
||||
IGAZOLATLANKESES.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN
|
||||
FROM #tanulo AS tanulok
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo, ' + @colsSum + '
|
||||
FROM #igazolas AS igazolasok
|
||||
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols + ')) AS PIVOTTABLE
|
||||
GROUP BY Tanulo
|
||||
) AS IGAZOLASTIPUSOKSZERINT ON IGAZOLASTIPUSOKSZERINT.Tanulo = tanulok.Id
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo, HianyzasErtek
|
||||
FROM #teljesnaposmul AS teljesnaposmul
|
||||
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo,
|
||||
SUM([1]) AS [1],
|
||||
SUM([2]) AS [2],
|
||||
SUM([3]) AS [3],
|
||||
SUM([4]) AS [4],
|
||||
SUM([5]) AS [5],
|
||||
SUM([6]) AS [6],
|
||||
SUM([7]) AS [7],
|
||||
SUM([8]) AS [8],
|
||||
SUM([9]) AS [9],
|
||||
SUM([10]) AS [10],
|
||||
SUM([11]) AS [11],
|
||||
SUM([12]) AS [12],
|
||||
SUM([13]) AS [13],
|
||||
SUM([14]) AS [14],
|
||||
SUM([15]) AS [15],
|
||||
SUM([16]) AS [16],
|
||||
SUM([17]) AS [17],
|
||||
SUM([18]) AS [18],
|
||||
SUM([19]) AS [19],
|
||||
SUM([20]) AS [20],
|
||||
SUM([21]) AS [21],
|
||||
SUM([22]) AS [22],
|
||||
SUM([23]) AS [23],
|
||||
SUM([24]) AS [24],
|
||||
SUM([25]) AS [25],
|
||||
SUM([26]) AS [26],
|
||||
SUM([27]) AS [27],
|
||||
SUM([28]) AS [28],
|
||||
SUM([29]) AS [29],
|
||||
SUM([30]) AS [30],
|
||||
SUM([31]) AS [31]
|
||||
FROM #mulasztas AS mulasztas
|
||||
PIVOT (SUM(mulasztas.HianyzasErtek) for Nap in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31])) pv
|
||||
GROUP BY Tanulo
|
||||
) m ON m.Tanulo = tanulok.id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas GROUP BY Tanulo) AS OSSZES ON OSSZES.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLT ON IGAZOLT.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE i.IgazoltE=''F'' GROUP BY Tanulo) AS IGAZOLATLAN ON IGAZOLATLAN.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE i.IgazoltE=''T'' GROUP BY Tanulo) AS IGAZOLTKESES ON IGAZOLTKESES.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS IGAZOLATLANKESES ON IGAZOLATLANKESES.Tanulo = tanulok.Id
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
|
||||
--GROUP BY f.c_nyomtatasinev, tanulok.Id, f.id
|
||||
ORDER BY f.c_nyomtatasinev';
|
||||
exec sp_executesql @query;
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
DECLARE @colsHeader_E AS NVARCHAR(MAX);
|
||||
DECLARE @colsHeader_GY AS NVARCHAR(MAX);
|
||||
DECLARE @cols_E AS NVARCHAR(MAX);
|
||||
DECLARE @cols_GY AS NVARCHAR(MAX);
|
||||
DECLARE @colsSum_E AS NVARCHAR(MAX);
|
||||
DECLARE @colsSum_GY AS NVARCHAR(MAX);
|
||||
SELECT @colsHeader_E = ISNULL(@colsHeader_E + ', ', '') + QUOTENAME(Id) + ' AS ' + QUOTENAME(Nev + ' (elméleti)'),
|
||||
@colsHeader_GY = ISNULL(@colsHeader_GY + ', ', '') + QUOTENAME(-Id) + ' AS ' + QUOTENAME(Nev + ' (gyakorlati)'),
|
||||
@cols_E = ISNULL(@cols_E + ', ', '') + QUOTENAME(Id),
|
||||
@cols_GY = ISNULL(@cols_GY + ', ', '') + QUOTENAME(-Id),
|
||||
@colsSum_E = ISNULL(@colsSum_E + ', ', '') + 'SUM( [' + CAST(Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(Id),
|
||||
@colsSum_GY = ISNULL(@colsSum_GY + ', ', '') + 'SUM( [' + CAST(-Id as nvarchar(max)) + '] ) AS ' + QUOTENAME(-Id)
|
||||
FROM #igazolastipus AS Igazolastipus
|
||||
ORDER BY Sorrend, Nev;
|
||||
|
||||
SET @query =
|
||||
'SELECT f.c_nyomtatasinev AS COLUMN108,
|
||||
IIF(m.[1_E]=0, NULL, FLOOR(m.[1_E])) AS [1 E],
|
||||
IIF(m.[1_GY]=0, NULL, FLOOR(m.[1_GY])) AS [1 GY],
|
||||
IIF(m.[2_E]=0, NULL, FLOOR(m.[2_E])) AS [2 E],
|
||||
IIF(m.[2_GY]=0, NULL, FLOOR(m.[2_GY])) AS [2 GY],
|
||||
IIF(m.[3_E]=0, NULL, FLOOR(m.[3_E])) AS [3 E],
|
||||
IIF(m.[3_GY]=0, NULL, FLOOR(m.[3_GY])) AS [3 GY],
|
||||
IIF(m.[4_E]=0, NULL, FLOOR(m.[4_E])) AS [4 E],
|
||||
IIF(m.[4_GY]=0, NULL, FLOOR(m.[4_GY])) AS [4 GY],
|
||||
IIF(m.[5_E]=0, NULL, FLOOR(m.[5_E])) AS [5 E],
|
||||
IIF(m.[5_GY]=0, NULL, FLOOR(m.[5_GY])) AS [5 GY],
|
||||
IIF(m.[6_E]=0, NULL, FLOOR(m.[6_E])) AS [6 E],
|
||||
IIF(m.[6_GY]=0, NULL, FLOOR(m.[6_GY])) AS [6 GY],
|
||||
IIF(m.[7_E]=0, NULL, FLOOR(m.[7_E])) AS [7 E],
|
||||
IIF(m.[7_GY]=0, NULL, FLOOR(m.[7_GY])) AS [7 GY],
|
||||
IIF(m.[8_E]=0, NULL, FLOOR(m.[8_E])) AS [8 E],
|
||||
IIF(m.[8_GY]=0, NULL, FLOOR(m.[8_GY])) AS [8 GY],
|
||||
IIF(m.[9_E]=0, NULL, FLOOR(m.[9_E])) AS [9 E],
|
||||
IIF(m.[9_GY]=0, NULL, FLOOR(m.[9_GY])) AS [9 GY],
|
||||
IIF(m.[10_E]=0, NULL, FLOOR(m.[10_E])) AS [10 E],
|
||||
IIF(m.[10_GY]=0, NULL, FLOOR(m.[10_GY])) AS [10 GY],
|
||||
IIF(m.[11_E]=0, NULL, FLOOR(m.[11_E])) AS [11 E],
|
||||
IIF(m.[11_GY]=0, NULL, FLOOR(m.[11_GY])) AS [11 GY],
|
||||
IIF(m.[12_E]=0, NULL, FLOOR(m.[12_E])) AS [12 E],
|
||||
IIF(m.[12_GY]=0, NULL, FLOOR(m.[12_GY])) AS [12 GY],
|
||||
IIF(m.[13_E]=0, NULL, FLOOR(m.[13_E])) AS [13 E],
|
||||
IIF(m.[13_GY]=0, NULL, FLOOR(m.[13_GY])) AS [13 GY],
|
||||
IIF(m.[14_E]=0, NULL, FLOOR(m.[14_E])) AS [14 E],
|
||||
IIF(m.[14_GY]=0, NULL, FLOOR(m.[14_GY])) AS [14 GY],
|
||||
IIF(m.[15_E]=0, NULL, FLOOR(m.[15_E])) AS [15 E],
|
||||
IIF(m.[15_GY]=0, NULL, FLOOR(m.[15_GY])) AS [15 GY],
|
||||
IIF(m.[16_E]=0, NULL, FLOOR(m.[16_E])) AS [16 E],
|
||||
IIF(m.[16_GY]=0, NULL, FLOOR(m.[16_GY])) AS [16 GY],
|
||||
IIF(m.[17_E]=0, NULL, FLOOR(m.[17_E])) AS [17 E],
|
||||
IIF(m.[17_GY]=0, NULL, FLOOR(m.[17_GY])) AS [17 GY],
|
||||
IIF(m.[18_E]=0, NULL, FLOOR(m.[18_E])) AS [18 E],
|
||||
IIF(m.[18_GY]=0, NULL, FLOOR(m.[18_GY])) AS [18 GY],
|
||||
IIF(m.[19_E]=0, NULL, FLOOR(m.[19_E])) AS [19 E],
|
||||
IIF(m.[19_GY]=0, NULL, FLOOR(m.[19_GY])) AS [19 GY],
|
||||
IIF(m.[20_E]=0, NULL, FLOOR(m.[20_E])) AS [20 E],
|
||||
IIF(m.[20_GY]=0, NULL, FLOOR(m.[20_GY])) AS [20 GY],
|
||||
IIF(m.[21_E]=0, NULL, FLOOR(m.[21_E])) AS [21 E],
|
||||
IIF(m.[21_GY]=0, NULL, FLOOR(m.[21_GY])) AS [21 GY],
|
||||
IIF(m.[22_E]=0, NULL, FLOOR(m.[22_E])) AS [22 E],
|
||||
IIF(m.[22_GY]=0, NULL, FLOOR(m.[22_GY])) AS [22 GY],
|
||||
IIF(m.[23_E]=0, NULL, FLOOR(m.[23_E])) AS [23 E],
|
||||
IIF(m.[23_GY]=0, NULL, FLOOR(m.[23_GY])) AS [23 GY],
|
||||
IIF(m.[24_E]=0, NULL, FLOOR(m.[24_E])) AS [24 E],
|
||||
IIF(m.[24_GY]=0, NULL, FLOOR(m.[24_GY])) AS [24 GY],
|
||||
IIF(m.[25_E]=0, NULL, FLOOR(m.[25_E])) AS [25 E],
|
||||
IIF(m.[25_GY]=0, NULL, FLOOR(m.[25_GY])) AS [25 GY],
|
||||
IIF(m.[26_E]=0, NULL, FLOOR(m.[26_E])) AS [26 E],
|
||||
IIF(m.[26_GY]=0, NULL, FLOOR(m.[26_GY])) AS [26 GY],
|
||||
IIF(m.[27_E]=0, NULL, FLOOR(m.[27_E])) AS [27 E],
|
||||
IIF(m.[27_GY]=0, NULL, FLOOR(m.[27_GY])) AS [27 GY],
|
||||
IIF(m.[28_E]=0, NULL, FLOOR(m.[28_E])) AS [28 E],
|
||||
IIF(m.[28_GY]=0, NULL, FLOOR(m.[28_GY])) AS [28 GY],
|
||||
IIF(m.[29_E]=0, NULL, FLOOR(m.[29_E])) AS [29 E],
|
||||
IIF(m.[29_GY]=0, NULL, FLOOR(m.[29_GY])) AS [29 GY],
|
||||
IIF(m.[30_E]=0, NULL, FLOOR(m.[30_E])) AS [30 E],
|
||||
IIF(m.[30_GY]=0, NULL, FLOOR(m.[30_GY])) AS [30 GY],
|
||||
IIF(m.[31_E]=0, NULL, FLOOR(m.[31_E])) AS [31 E],
|
||||
FLOOR(osszes_e.MULASZTASOKSZAMA) AS COLUMN2672_E,
|
||||
FLOOR(igazolt_e.IGAZOLTSZAMA) AS COLUMN2568_E,
|
||||
' + @colsHeader_E + ',
|
||||
FLOOR(igazolatlan_e.IGAZOLATLANSZAMA) AS COLUMN1911_E,
|
||||
FLOOR(osszes_gy.MULASZTASOKSZAMA) AS COLUMN2672_GY,
|
||||
FLOOR(igazolt_gy.IGAZOLTSZAMA) AS COLUMN2568_GY,
|
||||
' + @colsHeader_GY + ',
|
||||
FLOOR(igazolatlan_gy.IGAZOLATLANSZAMA) AS COLUMN1911_GY,
|
||||
TELJESNAPOSMULASZTAS.HianyzasErtek AS COLUMNTELJESNAPOSMULASZTASOK,
|
||||
igazoltkeses_e.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_E,
|
||||
igazoltkeses_gy.IGAZOLTPERC AS COLUMNIGAZOLTKESESPERCBEN_GY,
|
||||
igazolatlankeses_e.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_E,
|
||||
igazolatlankeses_gy.IGAZOLATLANPERC AS COLUMNIGAZOLATLANKESESPERCBEN_GY
|
||||
FROM #tanulo AS tanulok
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo, ' + @colsSum_E + '
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM #igazolas AS igazolasok
|
||||
WHERE Gyakorlati = ''F'' OR Gyakorlati IS NULL
|
||||
) AS igazolasok
|
||||
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_E + ')) AS PIVOTTABLE_E
|
||||
GROUP BY Tanulo
|
||||
) AS IGAZOLASTIPUSOKSZERINT_E ON IGAZOLASTIPUSOKSZERINT_E.Tanulo = tanulok.Id
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo, ' + @colsSum_Gy + '
|
||||
FROM (
|
||||
SELECT Tanulo, IgazoltE, -IgazolasTipus AS IgazolasTipus, Gyakorlati, HianyzasErtek
|
||||
FROM #igazolas AS igazolasok
|
||||
WHERE Gyakorlati = ''T''
|
||||
) AS igazolasok
|
||||
PIVOT (SUM(HianyzasErtek) FOR IgazolasTipus IN (' + @cols_GY + ')) AS PIVOTTABLE_GY
|
||||
GROUP BY Tanulo
|
||||
) AS IGAZOLASTIPUSOKSZERINT_GY ON IGAZOLASTIPUSOKSZERINT_GY.Tanulo = tanulok.Id
|
||||
LEFT JOIN (
|
||||
SELECT Tanulo, HianyzasErtek
|
||||
FROM #teljesnaposmul AS teljesnaposmul
|
||||
) AS TELJESNAPOSMULASZTAS ON TELJESNAPOSMULASZTAS.Tanulo = tanulok.Id
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
Tanulo,
|
||||
SUM([1_E]) AS [1_E],
|
||||
SUM([2_E]) AS [2_E],
|
||||
SUM([3_E]) AS [3_E],
|
||||
SUM([4_E]) AS [4_E],
|
||||
SUM([5_E]) AS [5_E],
|
||||
SUM([6_E]) AS [6_E],
|
||||
SUM([7_E]) AS [7_E],
|
||||
SUM([8_E]) AS [8_E],
|
||||
SUM([9_E]) AS [9_E],
|
||||
SUM([10_E]) AS [10_E],
|
||||
SUM([11_E]) AS [11_E],
|
||||
SUM([12_E]) AS [12_E],
|
||||
SUM([13_E]) AS [13_E],
|
||||
SUM([14_E]) AS [14_E],
|
||||
SUM([15_E]) AS [15_E],
|
||||
SUM([16_E]) AS [16_E],
|
||||
SUM([17_E]) AS [17_E],
|
||||
SUM([18_E]) AS [18_E],
|
||||
SUM([19_E]) AS [19_E],
|
||||
SUM([20_E]) AS [20_E],
|
||||
SUM([21_E]) AS [21_E],
|
||||
SUM([22_E]) AS [22_E],
|
||||
SUM([23_E]) AS [23_E],
|
||||
SUM([24_E]) AS [24_E],
|
||||
SUM([25_E]) AS [25_E],
|
||||
SUM([26_E]) AS [26_E],
|
||||
SUM([27_E]) AS [27_E],
|
||||
SUM([28_E]) AS [28_E],
|
||||
SUM([29_E]) AS [29_E],
|
||||
SUM([30_E]) AS [30_E],
|
||||
SUM([31_E]) AS [31_E],
|
||||
SUM([1_GY]) AS [1_GY],
|
||||
SUM([2_GY]) AS [2_GY],
|
||||
SUM([3_GY]) AS [3_GY],
|
||||
SUM([4_GY]) AS [4_GY],
|
||||
SUM([5_GY]) AS [5_GY],
|
||||
SUM([6_GY]) AS [6_GY],
|
||||
SUM([7_GY]) AS [7_GY],
|
||||
SUM([8_GY]) AS [8_GY],
|
||||
SUM([9_GY]) AS [9_GY],
|
||||
SUM([10_GY]) AS [10_GY],
|
||||
SUM([11_GY]) AS [11_GY],
|
||||
SUM([12_GY]) AS [12_GY],
|
||||
SUM([13_GY]) AS [13_GY],
|
||||
SUM([14_GY]) AS [14_GY],
|
||||
SUM([15_GY]) AS [15_GY],
|
||||
SUM([16_GY]) AS [16_GY],
|
||||
SUM([17_GY]) AS [17_GY],
|
||||
SUM([18_GY]) AS [18_GY],
|
||||
SUM([19_GY]) AS [19_GY],
|
||||
SUM([20_GY]) AS [20_GY],
|
||||
SUM([21_GY]) AS [21_GY],
|
||||
SUM([22_GY]) AS [22_GY],
|
||||
SUM([23_GY]) AS [23_GY],
|
||||
SUM([24_GY]) AS [24_GY], SUM([25_GY]) AS [25_GY], SUM([26_GY]) AS [26_GY], SUM([27_GY]) AS [27_GY], SUM([28_GY]) AS [28_GY], SUM([29_GY]) AS [29_GY],SUM([30_GY]) AS [30_GY], SUM([31_GY]) AS [31_GY]
|
||||
FROM #mulasztas AS m
|
||||
PIVOT (SUM(HianyzasErtek) for Nap in
|
||||
(
|
||||
[1_E],[2_E],[3_E],[4_E],[5_E],[6_E],[7_E],[8_E],[9_E],[10_E],[11_E],[12_E],[13_E],[14_E],[15_E],[16_E],[17_E],[18_E],[19_E],[20_E],[21_E],[22_E],[23_E],[24_E],[25_E],[26_E],[27_E],[28_E],[29_E],[30_E],[31_E],
|
||||
[1_GY],[2_GY],[3_GY],[4_GY],[5_GY],[6_GY],[7_GY],[8_GY],[9_GY],[10_GY],[11_GY],[12_GY],[13_GY],[14_GY],[15_GY],[16_GY],[17_GY],[18_GY],[19_GY],[20_GY],[21_GY],[22_GY],[23_GY],[24_GY],[25_GY],[26_GY],[27_GY],[28_GY],[29_GY],[30_GY],[31_GY]
|
||||
)
|
||||
) pv
|
||||
GROUP BY Tanulo
|
||||
) m ON m.Tanulo = tanulok.id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) GROUP BY Tanulo) AS Osszes_E ON Osszes_E.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_E ON Igazolt_E.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_E ON Igazolatlan_E.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS MULASZTASOKSZAMA FROM #igazolas WHERE Gyakorlati = ''T'' GROUP BY Tanulo) AS Osszes_Gy ON Osszes_Gy.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLTSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS Igazolt_Gy ON Igazolt_Gy.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(HianyzasErtek) AS IGAZOLATLANSZAMA FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''F'' GROUP BY Tanulo) AS Igazolatlan_Gy ON Igazolatlan_Gy.Tanulo = tanulok.Id'
|
||||
SET @query +=
|
||||
' LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_e ON igazoltkeses_e.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLTPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND i.IgazoltE=''T'' GROUP BY Tanulo) AS igazoltkeses_gy ON igazoltkeses_gy.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE (Gyakorlati = ''F'' OR Gyakorlati IS NULL) AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_e ON igazolatlankeses_e.Tanulo = tanulok.Id
|
||||
LEFT JOIN (SELECT Tanulo, SUM(KesettPerc) AS IGAZOLATLANPERC FROM #igazolas i WHERE Gyakorlati = ''T'' AND (i.IgazoltE=''F'' OR i.IgazoltE IS NULL) GROUP BY Tanulo) AS igazolatlankeses_gy ON igazolatlankeses_gy.Tanulo = tanulok.Id
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.Id
|
||||
ORDER BY f.c_nyomtatasinev';
|
||||
exec sp_executesql @query;
|
||||
END
|
||||
DROP TABLE #mulasztas
|
||||
DROP TABLE #tanulo
|
||||
DROP TABLE #igazolas
|
||||
DROP TABLE #igazolastipus
|
||||
DROP TABLE #teljesnaposmul
|
||||
END
|
||||
|
||||
GO
|
||||
+249
@@ -0,0 +1,249 @@
|
||||
DROP PROCEDURE IF EXISTS sp_GetTanuloiAdatlapAdatok
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanuloiAdatlapAdatok]
|
||||
@osztCsopID INT,
|
||||
@TanevId INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
CREATE TABLE #JogviszonyVege (TanuloId int,Datum date)
|
||||
INSERT INTO #JogviszonyVege
|
||||
SELECT
|
||||
TanuloId
|
||||
,MAX(C_KILEPESDATUM)
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') Tanulok
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.C_TANULOID = Tanulok.TanuloId AND TanuloCsoport.TOROLT = 'F' AND TanuloCsoport.C_TANEVID = @TanevId
|
||||
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID AND Osztaly.TOROLT = 'F' AND C_ALTANEVID = @TanevId
|
||||
GROUP BY TanuloId
|
||||
|
||||
DECLARE @DefaultFeladatKategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztCsopID)
|
||||
--Fejléc
|
||||
SELECT
|
||||
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve,
|
||||
T_INTEZMENYADATOK_OSSZES.C_VAROS IntezmenyVaros,
|
||||
dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime,
|
||||
T_INTEZMENYADATOK_OSSZES.C_OMKOD OMKod,
|
||||
T_INTEZMENYADATOK_OSSZES.C_TELEFONSZAM TELEFON,
|
||||
T_INTEZMENYADATOK_OSSZES.C_EMAILCIM EMAILCIM,
|
||||
T_TANEV_OSSZES.C_NEV TANEV,
|
||||
o.C_OSZTALYFONOKID PartnerID,
|
||||
f.C_NYOMTATASINEV OSZTALYFONOK,
|
||||
ocs.C_NEV OSZTALYNEV
|
||||
,@osztCsopID OsztalyId
|
||||
FROM T_INTEZMENYADATOK_OSSZES
|
||||
INNER JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_INTEZMENYADATOK_OSSZES.C_TANEVID and T_TANEV_OSSZES.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @osztCsopID AND ocs.TOROLT = 'F' AND ocs.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
LEFT JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = o.C_OSZTALYFONOKID AND f.TOROLT = 'F'
|
||||
WHERE
|
||||
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
|
||||
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @TanevId
|
||||
|
||||
CREATE TABLE #EmailCimTableTemp (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
|
||||
INSERT INTO #EmailCimTableTemp
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_EMAILCIM
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, '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
|
||||
|
||||
CREATE TABLE #EmailCimTable (FelhasznaloId INT, EmailCim NVARCHAR(MAX))
|
||||
INSERT INTO #EmailCimTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(Btemp.EmailCim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM #EmailCimTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Email
|
||||
FROM #EmailCimTableTemp temp
|
||||
|
||||
CREATE TABLE #TelefonszamTableTemp (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
|
||||
INSERT INTO #TelefonszamTableTemp
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_TELEFONSZAM
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulo
|
||||
INNER JOIN T_TELEFON_OSSZES telefon ON telefon.C_FELHASZNALOID = TanuloId
|
||||
WHERE
|
||||
telefon.TOROLT = 'F'
|
||||
AND telefon.C_TANEVID = @TanevId
|
||||
AND LEN(C_TELEFONSZAM) > 0
|
||||
|
||||
CREATE TABLE #TelefonszamTable (FelhasznaloId INT, Telefonszam NVARCHAR(MAX))
|
||||
INSERT INTO #TelefonszamTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,STUFF((
|
||||
SELECT DISTINCT CAST(Btemp.Telefonszam AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM #TelefonszamTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Telefonszam
|
||||
FROM #TelefonszamTableTemp temp
|
||||
|
||||
CREATE TABLE #TanuloCimTable (FelhasznaloId INT, Cim NVARCHAR(MAX), Cimtipusa INT)
|
||||
INSERT INTO #TanuloCimTable
|
||||
SELECT DISTINCT
|
||||
TanuloId
|
||||
,STUFF((
|
||||
SELECT CAST(Btemp.Cim AS NVARCHAR(MAX)) + CHAR(13) + CHAR(10)
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @osztCsopID) btemp
|
||||
WHERE
|
||||
temp.TanuloId = btemp.TanuloId
|
||||
AND temp.CimTipusa = btemp.CimTipusa
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,0,'') Cim
|
||||
,temp.CimTipusa
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @osztCsopID) temp
|
||||
|
||||
CREATE TABLE #GondviselokTableTemp (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
|
||||
INSERT INTO #GondviselokTableTemp
|
||||
SELECT
|
||||
Gondviselo.TanuloId TanuloId
|
||||
,Gondviselo.GondviseloNev + ISNULL('('+rokonsagiFoka.C_NAME+')', '') Gondviselo
|
||||
FROM fnGetDokumentumGondviselok (@osztCsopID, @tanevId, 'F', 'T') Gondviselo
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES rokonsagiFoka ON Gondviselo.RokonsagifokId = rokonsagiFoka.ID AND rokonsagiFoka.C_TANEVID = @TanevId
|
||||
|
||||
CREATE TABLE #GondviselokTable (FelhasznaloId INT, Gondviselo NVARCHAR(MAX))
|
||||
INSERT INTO #GondviselokTable
|
||||
SELECT DISTINCT
|
||||
FelhasznaloId
|
||||
,STUFF((
|
||||
SELECT ', ' + btemp.Gondviselo
|
||||
FROM #GondviselokTableTemp btemp
|
||||
WHERE
|
||||
temp.FelhasznaloId = btemp.FelhasznaloId
|
||||
FOR XML PATH(''), TYPE)
|
||||
.value('.','NVARCHAR(MAX)'),1,2,'') Gondviselo
|
||||
FROM #GondviselokTableTemp temp
|
||||
|
||||
|
||||
--Tanulók Adatai
|
||||
SELECT DISTINCT
|
||||
tta.C_BEIRASINAPLOSORSZAM,
|
||||
tanulok.NaploSorszam NaploSorszam,
|
||||
tanulok.TorzslapSzam TorzslapSzam,
|
||||
T_TANEV_OSSZES.C_NEV TANEV,
|
||||
T_OSZTALYCSOPORT_OSSZES.C_NEV OSZTALYNEV,
|
||||
T_OSZTALY_OSSZES.C_KEPZESIFORMA Kepzesiforma,
|
||||
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV NEV,
|
||||
gondviselo.Gondviselo GONDVISELO,
|
||||
T_FELHASZNALO_OSSZES.C_SZULETESINEV SZULETESINEV,
|
||||
T_FELHASZNALO_OSSZES.C_ANYJANEVE ANYJANEVE,
|
||||
T_FELHASZNALO_OSSZES.C_OKTATASIAZONOSITO,
|
||||
T_FELHASZNALO_OSSZES.C_SZULETESIHELY,
|
||||
T_FELHASZNALO_OSSZES.C_SZULETESIORSZAG Szuletesiorszag,
|
||||
FORMAT(T_FELHASZNALO_OSSZES.C_SZULETESIDATUM, 'yyyy.MM.dd.') C_SZULETESIDATUM,
|
||||
T_FELHASZNALO_OSSZES.C_ALLAMPOLGARSAGA Allampolgarsag,
|
||||
T_FELHASZNALO_OSSZES.C_ANYANYELVE Anyanyelv,
|
||||
tta.C_NYILVANTARTASKEZDETE,
|
||||
tta.C_TANKOTELEZETT Tankotelezett,
|
||||
tta.C_TANKOTELEZETTSEGVEGE,
|
||||
tta.C_JOGVISZONYVARHATOBEFEJEZESE,
|
||||
T_TANULO_OSSZES.C_DIAKIGAZOLVANYSZAM,
|
||||
T_TANULO_OSSZES.C_DIAKIGAZOLVANYKELTE,
|
||||
T_TANULO_OSSZES.C_BANKSZAMLASZAM,
|
||||
AllandoLakcim.Cim,
|
||||
TartozkodasiHely.CIM TartozkodasiHely,
|
||||
telefon.Telefonszam C_TELEFONSZAM,
|
||||
email.EmailCim C_EMAILCIM,
|
||||
tta.C_BEJARO Bejaro,
|
||||
tta.C_SZAKMAIGYAKORLATON Szakmaigyak,
|
||||
tta.C_VENDEG Vendeg,
|
||||
tta.C_JOGVISZONYATSZUNETELTETO Jogviszonyszunetelteto,
|
||||
tta.C_MAGANTANULO Magantanulo,
|
||||
maganTanuloOk.C_NAME as C_MAGANTANULOSAGANAKOKA,
|
||||
tta.C_MAGANTANULOSAGKEZDETE,
|
||||
T_TANULO_OSSZES.C_SZAKKEPESITESSZAMA,
|
||||
T_TANULO_OSSZES.C_TANULOIJOGVISZONYOSELTARTOTT,
|
||||
T_TANULO_OSSZES.C_TOBBGYERMEKIGAZOLASSZAMA,
|
||||
tta.C_EVISMETLO Evismetlo,
|
||||
T_TANULO_OSSZES.C_SZOCIALISTAMOGATAS Szoctam,
|
||||
T_TANULO_OSSZES.C_HATRANYOSHELYZETU,
|
||||
T_TANULO_OSSZES.C_VESZELYEZTETETT Veszelyeztetett,
|
||||
T_TANULO_OSSZES.C_HALMOZOTTANFOGYATEKOS Halmfogyatekos,
|
||||
T_TANULO_OSSZES.C_ETKEZESIKEDVEZMENY,
|
||||
tta.C_TERITESIDIJATFIZETO Teriteses,
|
||||
tta.C_TANDIJATFIZETO Tandijas,
|
||||
T_TANULO_OSSZES.C_INGYENESTANKONVYELLATASA,
|
||||
tta.C_TANULOSZERZODESES Tanszerzodeses,
|
||||
tta.C_POLGARISZERZODESES Polgszerzodeses,
|
||||
T_TANULO_OSSZES.C_RENDSZERESGYERMEKVEDELMIKEDV,
|
||||
T_TANULO_OSSZES.C_ALLAMIGONDOZOTT Allamigond,
|
||||
T_TANULO_OSSZES.C_KOLLEGIUMIELLATASOS Kollegiumi,
|
||||
T_TANULO_OSSZES.C_TARTOSGYOGYKEZELESSZAMA,
|
||||
T_TANULO_OSSZES.C_SAJATOSNEVELESU Sajatosnevelesu,
|
||||
T_TANULO_OSSZES.C_SNILETSZAMSULY,
|
||||
T_TANULO_OSSZES.C_SNIKIALLITOINTEZMENY,
|
||||
FORMAT(T_TANULO_OSSZES.C_SNIOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_SNIOKMANYERVENYESSEGKEZDETE,
|
||||
T_TANULO_OSSZES.C_BTMPROBLEMAS Btmproblemas,
|
||||
T_TANULO_OSSZES.C_BTMLETSZAMSULY,
|
||||
T_TANULO_OSSZES.C_BTMHATAROZATOKMANYSZAM,
|
||||
FORMAT(T_TANULO_OSSZES.C_BTMOKMANYERVENYESSEGKEZDETE, 'yyyy.MM.dd.') C_BTMOKMANYERVENYESSEGKEZDETE,
|
||||
T_TANULO_OSSZES.C_BTMKIALLITOINTEZMENY,
|
||||
T_TANULO_OSSZES.C_ELSOINTEZMENYOMKOD,
|
||||
T_FELHASZNALO_OSSZES.C_IGAZOLVANYSZAM,
|
||||
igazolvanyTipusa.C_NAME AS IgazolvanyTipusa
|
||||
,T_TANULO_OSSZES.ID AS TanuloId
|
||||
,@osztCsopID AS OsztalyId
|
||||
,JogviszonyVege.Datum JogviszonyVege
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztCsopID, 'T') tanulok ON tanulok.TanuloId = T_FELHASZNALO_OSSZES.Id
|
||||
INNER JOIN T_TANULO_OSSZES on T_TANULO_OSSZES.ID = T_FELHASZNALO_OSSZES.ID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_TANULOID = T_FELHASZNALO_OSSZES.ID
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_OSZTALYCSOPORT_OSSZES.C_FELADATKATEGORIAID = @DefaultFeladatKategoriaId
|
||||
INNER JOIN T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID
|
||||
LEFT JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai (@osztCsopID,default) tta ON tta.TanuloId=T_FELHASZNALO_OSSZES.ID
|
||||
LEFT JOIN T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID
|
||||
LEFT JOIN #TelefonszamTable telefon on telefon.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
|
||||
LEFT JOIN #EmailCimTable email on email.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
|
||||
LEFT JOIN #GondviselokTable gondviselo on gondviselo.FelhasznaloId = T_FELHASZNALO_OSSZES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES igazolvanyTipusa ON T_FELHASZNALO_OSSZES.C_IGAZOLVANYTIPUSA = igazolvanyTipusa.ID AND igazolvanyTipusa.C_TANEVID = @TanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES maganTanuloOk ON tta.C_MAGANTANULOSAGANAKOKAID = maganTanuloOk.ID AND maganTanuloOk.C_TANEVID = @TanevId AND maganTanuloOk.TOROLT='F'
|
||||
LEFT JOIN #TanuloCimTable AllandoLakcim ON AllandoLakcim.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND AllandoLakcim.Cimtipusa = 907
|
||||
LEFT JOIN #TanuloCimTable TartozkodasiHely ON TartozkodasiHely.FelhasznaloId = T_FELHASZNALO_OSSZES.ID AND TartozkodasiHely.Cimtipusa = 909
|
||||
INNER JOIN #JogviszonyVege JogviszonyVege ON JogviszonyVege.TanuloId = tanulok.TanuloId
|
||||
WHERE
|
||||
T_FELHASZNALO_OSSZES.TOROLT = 'F'
|
||||
AND T_TANEV_OSSZES.TOROLT = 'F'
|
||||
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
|
||||
AND T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
|
||||
ORDER BY T_FELHASZNALO_OSSZES.C_NYOMTATASINEV
|
||||
|
||||
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 = @osztCsopID
|
||||
END
|
||||
|
||||
GO
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
DROP PROCEDURE IF EXISTS dbo.sp_GetTanulokTantargyMulasztasokReszletezese
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
|
||||
@pOsztalyId int
|
||||
,@pTanevId int
|
||||
,@pIskolaErdekuSzamit bit
|
||||
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
CREATE TABLE #MulasztasOsztalyonkent(
|
||||
TantargyId int
|
||||
,Tipusa int
|
||||
,IgazolasTipusa int
|
||||
,OsztalyCsoportId int
|
||||
,TanuloId int
|
||||
,TantargyNev nvarchar(1000)
|
||||
,OsztalyCsoportNev nvarchar(510)
|
||||
,Igazolt char(1)
|
||||
,KesesPercben int
|
||||
,Datum date
|
||||
,OraszamWithOrakezdeteVege nvarchar(50)
|
||||
)
|
||||
|
||||
INSERT INTO #MulasztasOsztalyonkent(
|
||||
TantargyId
|
||||
,Tipusa
|
||||
,IgazolasTipusa
|
||||
,OsztalyCsoportId
|
||||
,TanuloID
|
||||
,TantargyNev
|
||||
,OsztalyCsoportNev
|
||||
,Igazolt
|
||||
,KesesPercben
|
||||
,Datum
|
||||
,OraszamWithOrakezdeteVege
|
||||
) SELECT
|
||||
TantargyId
|
||||
,Tipusa
|
||||
,IgazolasTipusa
|
||||
,OsztalyCsoportId
|
||||
,TanuloID
|
||||
,TantargyNev
|
||||
,OsztalyCsoportNev
|
||||
,Igazolt
|
||||
,KesesPercben
|
||||
,Datum
|
||||
,OraszamWithOrakezdeteVege
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @pIskolaErdekuSzamit, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
|
||||
|
||||
/*FEJLEC*/
|
||||
SELECT
|
||||
IntezmenyAdat.C_NEV as IntezmenyNeve
|
||||
,IntezmenyAdat.C_OMKOD as IntezmenyOMKod
|
||||
,IntezmenyAdat.C_IGAZGATONEVE IntezmenyVezeto
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@pTanevId) as IntezmenyCime
|
||||
,IntezmenyAdat.C_VAROS as IntezmenyVaros
|
||||
,(SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyId) as OsztalyCsoportNev
|
||||
,@pOsztalyId as OsztalyId
|
||||
,ofo.C_NYOMTATASINEV as OsztalyfonokNev
|
||||
FROM T_INTEZMENYADATOK_OSSZES IntezmenyAdat
|
||||
INNER JOIN T_OSZTALY_OSSZES AS o ON o.ID = @pOsztalyId AND o.TOROLT='F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES AS ofo ON ofo.ID = o.C_OSZTALYFONOKID AND ofo.TOROLT='F'
|
||||
WHERE INTEZMENYADAT.C_TANEVID = @pTanevId AND IntezmenyAdat.TOROLT='F'
|
||||
|
||||
/*TANULOK*/
|
||||
SELECT
|
||||
TanuloId
|
||||
,Felhasznalo.C_NYOMTATASINEV as TanuloNev
|
||||
,@pOsztalyId as OsztalyCsoportId
|
||||
,Felhasznalo.C_OKTATASIAZONOSITO as TanuloOktAzon
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@pTanevId, @pOsztalyId, 'T') Tanulok
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.ID = Tanulok.TanuloId AND Felhasznalo.TOROLT='F'
|
||||
ORDER BY Felhasznalo.C_NYOMTATASINEV
|
||||
|
||||
/*MULASZTOTT TANTARGY*/
|
||||
SELECT DISTINCT
|
||||
TanuloId
|
||||
,TargyakRendezes.C_ORDER
|
||||
,TantargyId
|
||||
,TantargyNev as TantargyNev
|
||||
,COUNT(1) as COUNT
|
||||
FROM #MulasztasOsztalyonkent MulasztasokOsztalyonkent
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.ID = MulasztasokOsztalyonkent.TantargyId AND Tantargy.TOROLT='F'
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES TargyakRendezes ON Tantargy.C_TARGYKATEGORIA = TargyakRendezes.ID AND TargyakRendezes.TOROLT = 'F' AND TargyakRendezes.C_TANEVID = @pTanevId
|
||||
GROUP BY TanuloId, TantargyId, TantargyNev, TargyakRendezes.C_ORDER
|
||||
ORDER BY TargyakRendezes.C_ORDER
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,OsztalyCsoportId
|
||||
,OsztalyCsoportNev as OsztalyCsoportNev
|
||||
,CASE
|
||||
WHEN Igazolt = 'T' THEN 'Igen'
|
||||
WHEN Igazolt = 'F' THEN 'Nem'
|
||||
ELSE ''
|
||||
END as Igazolt
|
||||
,MulasztasTipus.C_NAME as Tipusa
|
||||
,IgazolasTipus.C_NAME as IgazolasTipusa
|
||||
,KesesPercben as Keses
|
||||
,Datum as Datum
|
||||
,OraszamWithOrakezdeteVege as Oraszam
|
||||
,TantargyId
|
||||
,Felhasznalo.C_NYOMTATASINEV as OsztalyfonokNev
|
||||
FROM #MulasztasOsztalyonkent MulasztasokOsztalyonkent
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES MulasztasTipus ON MulasztasokOsztalyonkent.Tipusa = MulasztasTipus.ID AND MulasztasTipus.C_TANEVID = @pTanevId AND MulasztasTipus.TOROLT='F'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES IgazolasTipus ON MulasztasokOsztalyonkent.IgazolasTipusa = IgazolasTipus.ID AND IgazolasTipus.C_TANEVID = @pTanevId AND IgazolasTipus.TOROLT='F'
|
||||
LEFT JOIN T_OSZTALY_OSSZES Osztaly ON MulasztasokOsztalyonkent.OsztalyCsoportId = Osztaly.ID AND Osztaly.TOROLT='F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Osztaly.C_OSZTALYFONOKID = Felhasznalo.ID AND Felhasznalo.TOROLT='F'
|
||||
ORDER BY Datum
|
||||
|
||||
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 as OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM as CSJVegzosEvfolyamu
|
||||
,o.C_TECHNIKAIOSZTALY as OJTechnikaiOsztaly
|
||||
,o.C_NEMZETISEGI as OJNemzetisegi
|
||||
,o.C_KETTANNYELVU as OJKettannyelvu
|
||||
,o.C_NYELVIELOKESZITO as OJNyelviElokeszito
|
||||
,o.C_LOGOPEDIAI as OJLogopediai
|
||||
,o.C_SPORT as OJSportOsztaly
|
||||
,o.C_AJPROGRAM as OJAranyJanosProgram
|
||||
,o.C_GYOGYPEDAGOGIAI as 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 = @pOsztalyId AND o.TOROLT='F'
|
||||
END
|
||||
GO
|
||||
|
||||
+349
@@ -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
|
||||
+383
@@ -0,0 +1,383 @@
|
||||
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
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakGyakorlatiOraMulasztasiSzazalekStatisztika]
|
||||
@pTanevId INT,
|
||||
@pOsztalyId INT,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pMegtartottVagyMegtarthato INT = 1,
|
||||
@pAtsoroltTanuloAdatok INT = 1,
|
||||
@tanitasiHetekSzamaVegzos INT,
|
||||
@tanitasiHetekSzamaNemVegzos INT,
|
||||
@isAltantargyBeszamitasa BIT
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
|
||||
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 = GETDATE();
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
|
||||
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
|
||||
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
|
||||
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
|
||||
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 = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
|
||||
|
||||
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
|
||||
IF @pAtsoroltTanuloAdatok = 0
|
||||
BEGIN
|
||||
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
END
|
||||
ELSE IF @pAtsoroltTanuloAdatok = 1
|
||||
BEGIN
|
||||
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
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
|
||||
|
||||
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM (
|
||||
SELECT DISTINCT C_TANTARGYID AS ID, 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_GYAKORLATI = 'T'
|
||||
UNION
|
||||
SELECT DISTINCT C_TANTARGYID AS ID, 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_TANITASIORA_OSSZES
|
||||
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok) AND TANTARGY.C_GYAKORLATI = 'T'
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
|
||||
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
|
||||
FROM @osztalyTanulok
|
||||
ORDER BY TANULONEV;
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
|
||||
FROM @tantargyak;
|
||||
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
|
||||
IF @pMegtartottVagyMegtarthato = 1
|
||||
BEGIN
|
||||
INSERT INTO #tempTanorak
|
||||
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
|
||||
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #tempTanorak
|
||||
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
|
||||
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok)
|
||||
END
|
||||
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
|
||||
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
|
||||
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
|
||||
FROM (
|
||||
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
|
||||
FROM #tempMulasztas
|
||||
WHERE Gyakorlati = 'T'
|
||||
GROUP BY TanuloId, TantargyId, Gyakorlati
|
||||
) AS Mulasztasok
|
||||
INNER JOIN (
|
||||
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
|
||||
FROM #tempTanorak
|
||||
WHERE Gyakorlati = 'T'
|
||||
) AS MegtartottOrak
|
||||
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
|
||||
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
|
||||
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
|
||||
ORDER BY TanuloId, TantargyId
|
||||
SELECT MegtartottOrak.TanuloId, MegtartottOrak.Gyakorlati,
|
||||
CAST(Mulasztasokszam AS float) / Orakszama AS MulasztasArany, CAST(Mulasztasokszam AS float) / Orakszama * 100 AS MulasztasSzazalek,
|
||||
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
|
||||
FROM (
|
||||
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, Gyakorlati
|
||||
FROM #tempMulasztas
|
||||
WHERE Gyakorlati = 'T'
|
||||
GROUP BY TanuloId, Gyakorlati
|
||||
) AS Mulasztasok
|
||||
INNER JOIN (
|
||||
SELECT Tanuloid, Gyakorlati, SUM(Orakszama) as Orakszama
|
||||
FROM #tempTanorak
|
||||
WHERE Gyakorlati = 'T'
|
||||
GROUP BY Tanuloid, Gyakorlati
|
||||
) AS MegtartottOrak
|
||||
ON
|
||||
MegtartottOrak.TanuloId = Mulasztasok.TanuloId
|
||||
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
|
||||
ORDER BY TanuloId
|
||||
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
|
||||
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
|
||||
|
||||
-- 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';
|
||||
END;
|
||||
|
||||
|
||||
GO
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_OsztalyTanuloinakMulasztasiSzazalekStatisztika]
|
||||
@pTanevId INT,
|
||||
@pOsztalyId INT,
|
||||
@pMulasztasTipusIdKeses INT = 1499,
|
||||
@pMulasztasTipusIdHianyzas INT = 1500,
|
||||
@pTanevrendjeTanevKezdeteNaptipusId INT = 1394, --Tanévrendje első nap típus
|
||||
@pMegtartottVagyMegtarthato INT = 1,
|
||||
@pAtsoroltTanuloAdatok INT = 1,
|
||||
@tanitasiHetekSzamaVegzos INT = 32,
|
||||
@tanitasiHetekSzamaNemVegzos INT = 36,
|
||||
@isAltantargyBeszamitasa BIT
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @iskolaErdekuParam INT = 1683;
|
||||
DECLARE @iskolaErdekuSzamit BIT = dbo.fnGetRendszerbeallitasEnumBool(@iskolaErdekuParam, (SELECT C_INTEZMENYID FROM T_TANEV_OSSZES WHERE ID = @pTanevId), @pTanevId);
|
||||
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 = GETDATE();
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, TANULONEV NVARCHAR(MAX), BELEPESDATUM DATE, KILEPESDATUM DATE, OKTATASIAZONOSITO NVARCHAR(20));
|
||||
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
INSERT INTO @osztalyTanulok (TANULOID, TANULONEV, BELEPESDATUM, KILEPESDATUM, OKTATASIAZONOSITO)
|
||||
SELECT FELHASZNALO.ID AS TANULOID, C_NYOMTATASINEV, C_BELEPESDATUM, C_KILEPESDATUM, C_OKTATASIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES AS FELHASZNALO
|
||||
INNER JOIN (
|
||||
SELECT C_TANULOID, C_OSZTALYCSOPORTID, C_BELEPESDATUM, C_KILEPESDATUM
|
||||
FROM T_TANULOCSOPORT_OSSZES AS TANULOCSOPORT
|
||||
WHERE TANULOCSOPORT.TOROLT = 'F' AND TANULOCSOPORT.C_OSZTALYCSOPORTID = @pOsztalyId AND TANULOCSOPORT.C_BELEPESDATUM < @idoszakVege
|
||||
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 = @pOsztalyId AND FELHASZNALO.C_TANEVID = @pTanevId;
|
||||
|
||||
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
|
||||
IF @pAtsoroltTanuloAdatok = 0
|
||||
BEGIN
|
||||
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
END
|
||||
ELSE IF @pAtsoroltTanuloAdatok = 1
|
||||
BEGIN
|
||||
INSERT INTO @aktualisOsztalyCsoportok (OSZTALYCSOPORTID)
|
||||
SELECT ID
|
||||
FROM fnGetDokumentumKapcsolodoOsztalycsoportok(@pOsztalyId, @pTanevId, DEFAULT)
|
||||
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
|
||||
|
||||
INSERT INTO @tantargyak (TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN)
|
||||
SELECT DISTINCT TANTARGYAK.ID AS TANTARGYID, TANTARGY_NEV, TARGYKATEGORIA_NEV, TARGYKATEGORIA_SORSZAM, C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM (
|
||||
SELECT DISTINCT C_TANTARGYID AS ID, 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'
|
||||
UNION
|
||||
SELECT DISTINCT C_TANTARGYID AS ID, 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_TANITASIORA_OSSZES
|
||||
INNER JOIN T_TANTARGY_OSSZES AS TANTARGY ON TANTARGY.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND TANTARGY.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS TARGYKATEG ON TARGYKATEG.ID = TANTARGY.C_TARGYKATEGORIA AND TARGYKATEG.C_TANEVID = @pTanevId
|
||||
WHERE T_TANITASIORA_OSSZES.TOROLT = 'F' AND C_OSZTALYCSOPORTID IN (SELECT OSZTALYCSOPORTID FROM @aktualisOsztalyCsoportok)
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
|
||||
SELECT DISTINCT TANULOID, TANULONEV, OKTATASIAZONOSITO
|
||||
FROM @osztalyTanulok
|
||||
ORDER BY TANULONEV;
|
||||
SELECT DISTINCT TANTARGYID, TANTARGY_NEV
|
||||
FROM @tantargyak;
|
||||
SELECT * INTO #tempMulasztas FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes (@pTanevId, @pOsztalyId, @iskolaErdekuSzamit, DEFAULT, @pAtsoroltTanuloAdatok, DEFAULT, DEFAULT, DEFAULT) WHERE Tipusa IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas)
|
||||
CREATE TABLE #tempTanorak (Orakszama INT, TanuloId INT, TantargyId INT, TantargyNev NVARCHAR(MAX) COLLATE Hungarian_CI_AI, Fotargye CHAR(1) COLLATE Hungarian_CI_AI, Altargye CHAR(1) COLLATE Hungarian_CI_AI, Gyakorlati CHAR(1) COLLATE Hungarian_CI_AI)
|
||||
IF @pMegtartottVagyMegtarthato = 1
|
||||
BEGIN
|
||||
INSERT INTO #tempTanorak
|
||||
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
|
||||
FROM fnGetDokumentumOsztalyTanuloinakMegtarthatoOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa)
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #tempTanorak
|
||||
SELECT Orakszama, TanuloId, TantargyId, TantargyNev, Fotargye, Altargye, Gyakorlati
|
||||
FROM fnGetDokumentumOsztalyTanuloinakMegtartottOrakTantargyankent (@pTanevId, @pOsztalyId, @pAtsoroltTanuloAdatok)
|
||||
END
|
||||
SELECT MegtartottOrak.TanuloId, MegtartottOrak.TantargyId, MegtartottOrak.Gyakorlati,
|
||||
IIF(ISNULL(Orakszama,0) = 0, 0, CAST(Mulasztasokszam AS float) / Orakszama) AS MulasztasArany,
|
||||
IIF(ISNULL(Orakszama,0) = 0, 0 ,CAST(Mulasztasokszam AS float) / Orakszama * 100) AS MulasztasSzazalek,
|
||||
CAST(Mulasztasokszam AS NVARCHAR) + '/' + CAST(Orakszama AS NVARCHAR) AS Info
|
||||
FROM (
|
||||
SELECT SUM(CAST(IIF(Tipusa = @pMulasztasTipusIdHianyzas, 1, IIF(Tipusa = @pMulasztasTipusIdKeses,CAST(KesesPercben AS FLOAT) / 45, 0)) AS FLOAT)) AS Mulasztasokszam, TanuloId, TantargyId, Gyakorlati
|
||||
FROM #tempMulasztas
|
||||
GROUP BY TanuloId, TantargyId, Gyakorlati
|
||||
) AS Mulasztasok
|
||||
INNER JOIN (
|
||||
SELECT Orakszama, Tanuloid, TantargyId, Gyakorlati, TantargyNev
|
||||
FROM #tempTanorak
|
||||
) AS MegtartottOrak
|
||||
ON MegtartottOrak.TantargyId = Mulasztasok.TantargyId
|
||||
AND MegtartottOrak.TanuloId = Mulasztasok.TanuloId
|
||||
AND MegtartottOrak.Gyakorlati = Mulasztasok.Gyakorlati
|
||||
INNER JOIN T_FELHASZNALO ON T_FELHASZNALO.ID = MegtartottOrak.TanuloId
|
||||
IF OBJECT_ID('tempdb..#tempTanorak') IS NOT NULL DROP TABLE #tempTanorak
|
||||
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
|
||||
|
||||
-- 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';
|
||||
END;
|
||||
|
||||
GO
|
||||
+274
@@ -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
|
||||
+1027
File diff suppressed because it is too large
Load Diff
+268
@@ -0,0 +1,268 @@
|
||||
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 az osztályhoz kapcsolódó csoportokat
|
||||
CREATE TABLE #OsztalyCsoportIdList(
|
||||
ID INT PRIMARY KEY
|
||||
)
|
||||
|
||||
IF EXISTS (SELECT ID FROM T_OSZTALY_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
BEGIN
|
||||
INSERT INTO
|
||||
#OsztalyCsoportIdList (ID)
|
||||
SELECT ID
|
||||
FROM fnGetKapcsolodoOsztalycsoportok(@osztalyCsoportId)
|
||||
-- Nem tanórai célú csoportok eltávolítása
|
||||
DELETE ocsl
|
||||
FROM #OsztalyCsoportIdList ocsl
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs
|
||||
ON cs.ID = ocsl.ID
|
||||
WHERE cs.C_TIPUSA NOT IN (SELECT ID from fnGetTanoraiCeluCsoportTipusok(@tanevId))
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
-- Csoport esetén csak a keresett csoport kell legyen tagja
|
||||
INSERT INTO #OsztalyCsoportIdList (ID)
|
||||
SELECT @osztalyCsoportId
|
||||
END;
|
||||
|
||||
-- Ö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
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetDokumentumTanuloOrarendOsztalyonkent
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetDokumentumTanuloOrarendOsztalyonkent
|
||||
@tanevId int
|
||||
,@osztalyId int
|
||||
,@aktivTanevId int
|
||||
,@isEgyebFoglalkozasok bit
|
||||
,@pTanuloId int = NULL
|
||||
,@orarendErvenyessegiDatum date
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@feladatKategoriaId int
|
||||
,@tanuloId int
|
||||
|
||||
DECLARE @tabla TABLE (
|
||||
TanuloId int
|
||||
,Ora int
|
||||
,HetirendId int
|
||||
,Hetfo nvarchar (max)
|
||||
,Kedd nvarchar (max)
|
||||
,Szerda nvarchar (max)
|
||||
,Csutortok nvarchar (max)
|
||||
,Pentek nvarchar (max)
|
||||
,Szombat nvarchar (max)
|
||||
,Hetirend nvarchar (max)
|
||||
,TanuloNev nvarchar (max)
|
||||
)
|
||||
|
||||
SELECT TOP 1
|
||||
@feladatKategoriaId = o.C_FELADATKATEGORIAID
|
||||
FROM T_OSZTALYCSOPORT_OSSZES o
|
||||
WHERE o.ID = @osztalyId
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,C_NYOMTATASINEV AS TanuloNev
|
||||
INTO #Tanulok
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') Tanulok
|
||||
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = Tanulok.TanuloId
|
||||
WHERE @pTanuloId IS NULL
|
||||
OR @pTanuloId = TanuloId
|
||||
|
||||
DECLARE kurzor CURSOR
|
||||
FOR
|
||||
SELECT
|
||||
TanuloId
|
||||
FROM #Tanulok
|
||||
|
||||
OPEN kurzor
|
||||
|
||||
FETCH NEXT FROM kurzor
|
||||
INTO @tanuloId
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
INSERT INTO @tabla
|
||||
EXEC sp_GetDokumentumTanuloOrarend
|
||||
@tanevID
|
||||
,@tanuloId
|
||||
,@aktivTanevId
|
||||
,@isEgyebFoglalkozasok
|
||||
,@orarendErvenyessegiDatum
|
||||
,@feladatKategoriaId
|
||||
|
||||
FETCH NEXT FROM kurzor INTO
|
||||
@tanuloId
|
||||
END
|
||||
|
||||
CLOSE kurzor
|
||||
DEALLOCATE kurzor
|
||||
|
||||
SELECT
|
||||
TanuloId
|
||||
,TanuloNev
|
||||
,Hetirend
|
||||
FROM #Tanulok Tanulok
|
||||
CROSS JOIN(
|
||||
SELECT DISTINCT
|
||||
Hetirend
|
||||
FROM @tabla
|
||||
) AS Hetirend(Hetirend)
|
||||
ORDER BY
|
||||
Hetirend
|
||||
|
||||
SELECT
|
||||
OsztalyokOrarendje.*
|
||||
FROM @tabla AS OsztalyokOrarendje
|
||||
ORDER BY
|
||||
Ora
|
||||
|
||||
END
|
||||
GO
|
||||
+232
@@ -0,0 +1,232 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetHelyettesitesekListaja
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetHelyettesitesekListaja
|
||||
@pKezdoDatum datetime = NULL
|
||||
,@pVegDatum datetime = NULL
|
||||
,@pHelyettesitesTipusId int = NULL
|
||||
,@pHelyettesitettId int = NULL
|
||||
,@pHelyettesitoId int = NULL
|
||||
,@pIsNaplozott char(1) = NULL
|
||||
,@pOsztalyCsoportId int = NULL
|
||||
,@pTantargyId int = NULL
|
||||
,@pKellKapcsolodoCsoportok char = 'F'
|
||||
,@pTanevID int
|
||||
,@pFeladatKategoriaId int
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
DECLARE
|
||||
@sql nvarchar(max)
|
||||
,@whereString nvarchar(max) = ''
|
||||
|
||||
CREATE TABLE #NaptariNap (
|
||||
Datum datetime
|
||||
,OsztalyCsoportId int
|
||||
,IsTanitasiNap char(1)
|
||||
,PRIMARY KEY (Datum, OsztalyCsoportId, IsTanitasiNap)
|
||||
)
|
||||
DECLARE @DateFrom datetime, @DateTo datetime
|
||||
SELECT @DateFrom = ISNULL(@pKezdoDatum,tv.C_KEZDONAP), @DateTo = ISNULL(@pVegDatum,tv.C_UTOLSONAP) FROM T_TANEV tv WHERE tv.ID = @pTanevID
|
||||
INSERT INTO #NaptariNap
|
||||
SELECT
|
||||
tr.Datum
|
||||
,tr.OsztalyId
|
||||
,ISNULL(tro.IsTanitasiNap, tr.IsTanitasiNap) AS IsTanitasiNap
|
||||
FROM (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocs.ID AS OsztalyId
|
||||
,nn.C_ORARENDINAP AS IsTanitasiNap
|
||||
,IIF(ocs.C_FELADATKATEGORIAID = 7553, 'T', 'F') AS IsAlapkepzeses
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = @pTanevID
|
||||
WHERE nn.C_NAPDATUMA BETWEEN @DateFrom AND @DateTo AND nn.C_TANEVID = @pTanevID
|
||||
AND nn.TOROLT = 'F'
|
||||
) tr
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocstr.C_OSZTALYCSOPORTID AS OsztalyId
|
||||
,tr.C_ORARENDINAP AS IsTanitasiNap
|
||||
,IIF(ocs.C_FELADATKATEGORIAID = 7553, 'T', 'F') AS IsAlapkepzeses
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = ocstr.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_NAPTIPUS_OSSZES nt ON nt.ID = tr.C_NAPTIPUSA AND nt.C_ALTANEVID = tr.C_TANEVID AND nt.TOROLT = 'F'
|
||||
WHERE nn.C_TANEVID = @pTanevID
|
||||
AND nn.TOROLT = 'F'
|
||||
) tro ON tr.Datum = tro.Datum AND tr.OsztalyId = tro.OsztalyId
|
||||
WHERE (ISNULL(tro.IsTanitasiNap, tr.IsTanitasiNap) = 'T' OR ISNULL(tro.IsAlapkepzeses, tr.IsAlapkepzeses) = 'F')
|
||||
|
||||
IF @pKezdoDatum IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitesDatum >= @pKezdoDatum'
|
||||
END
|
||||
|
||||
IF @pVegDatum IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitesDatum <= @pVegDatum'
|
||||
END
|
||||
|
||||
IF @pHelyettesitesTipusId IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitesTipusId = @pHelyettesitesTipusId'
|
||||
END
|
||||
ELSE BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitesTipusId IS NOT NULL'
|
||||
END
|
||||
|
||||
IF @pHelyettesitettId IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitettId = @pHelyettesitettId'
|
||||
END
|
||||
|
||||
IF @pHelyettesitoId IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.HelyettesitoId = @pHelyettesitoId'
|
||||
END
|
||||
|
||||
IF @pOsztalyCsoportId IS NOT NULL BEGIN
|
||||
IF(@pKellKapcsolodoCsoportok = 'T')
|
||||
BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.OsztalyCsoportId IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId))'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.OsztalyCsoportId = @pOsztalyCsoportId'
|
||||
END
|
||||
END
|
||||
|
||||
IF @pTantargyId IS NOT NULL BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.TantargyId = @pTantargyId'
|
||||
END
|
||||
|
||||
IF @pIsNaplozott = 0 BEGIN
|
||||
SET @whereString+=N'
|
||||
AND hisz.Naplozott = ''F'''
|
||||
END
|
||||
ELSE IF @pIsNaplozott = 1 BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.Naplozott = ''T'''
|
||||
END
|
||||
ELSE BEGIN
|
||||
SET @whereString += N'
|
||||
AND hisz.Naplozott IS NOT NULL'
|
||||
END
|
||||
|
||||
|
||||
|
||||
SET @sql = N'
|
||||
SELECT
|
||||
HelyettesitesDatum
|
||||
,Ora
|
||||
,Helyettesitett
|
||||
,HelyettesitettElotagNelkul
|
||||
,HelyettesitettId
|
||||
,HelyettesitesTipusId
|
||||
,HelyettesitesOka
|
||||
,C_MEGJEGYZES AS Megjegyzes
|
||||
,Helyettesito
|
||||
,HelyettesitoElotagNelkul
|
||||
,HelyettesitoId
|
||||
,OsztalyCsoport
|
||||
,OsztalyCsoportId
|
||||
,Tantargy
|
||||
,TantargyId
|
||||
,Naplozott
|
||||
,ID
|
||||
FROM(
|
||||
SELECT
|
||||
hisz.C_HELYETTESITESNAPJA AS HelyettesitesDatum
|
||||
,oo.C_ORASZAM AS Ora
|
||||
,helyettesitett.C_NYOMTATASINEV AS Helyettesitett
|
||||
,IIF(helyettesitett.C_NEVSORREND = ''T'',
|
||||
helyettesitett.C_UTONEV + '' '' + helyettesitett.C_VEZETEKNEV,
|
||||
helyettesitett.C_VEZETEKNEV + '' '' + helyettesitett.C_UTONEV) AS HelyettesitettElotagNelkul
|
||||
,helyettesitett.ID AS HelyettesitettId
|
||||
,hisz.C_HELYETTESITESTIPUS AS HelyettesitesTipusId
|
||||
,hisz.C_HELYETTESITESOKA AS HelyettesitesOka
|
||||
,'''' as C_MEGJEGYZES
|
||||
,helyettesito.C_NYOMTATASINEV AS Helyettesito
|
||||
,IIF(helyettesito.C_NEVSORREND = ''T'',
|
||||
helyettesito.C_UTONEV + '' '' + helyettesito.C_VEZETEKNEV,
|
||||
helyettesito.C_VEZETEKNEV + '' '' + helyettesito.C_UTONEV) AS HelyettesitoElotagNelkul
|
||||
,helyettesito.ID AS HelyettesitoId
|
||||
,ocs.C_NEV AS OsztalyCsoport
|
||||
,ocs.ID AS OsztalyCsoportId
|
||||
,tantargy.C_NEV AS Tantargy
|
||||
,tantargy.ID AS TantargyId
|
||||
,''F'' AS Naplozott
|
||||
,hisz.ID as ID
|
||||
FROM T_HELYETTESITESIIDOSZAK hisz
|
||||
INNER JOIN T_ORARENDIORA oo ON oo.ID=hisz.C_HELYETTESITETTORARENDID
|
||||
INNER JOIN T_TANTARGY tgy ON tgy.ID=oo.C_TANTARGYID
|
||||
INNER JOIN T_FELHASZNALO helyettesitett ON oo.C_TANARID = helyettesitett.ID
|
||||
INNER JOIN T_FELHASZNALO helyettesito ON hisz.C_HELYETTESTANAROKID= helyettesito.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON oo.C_OSZTALYCSOPORTID = ocs.ID AND (ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId OR @pFeladatKategoriaId IS NULL)
|
||||
INNER JOIN T_TANTARGY tantargy ON oo.C_TANTARGYID = tantargy.ID
|
||||
INNER JOIN #NaptariNap nn ON nn.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND nn.Datum = hisz.C_HELYETTESITESNAPJA
|
||||
WHERE NOT EXISTS(
|
||||
SELECT 1 FROM T_TANITASIORA tao WHERE tao.C_DATUM=hisz.C_HELYETTESITESNAPJA AND tao.C_OSZTALYCSOPORTID=oo.C_OSZTALYCSOPORTID
|
||||
AND tao.C_TANTARGYID=oo.C_TANTARGYID AND (tao.C_TANARID = hisz.C_HELYETTESTANAROKID OR tao.C_HELYETTESITOTANARID = hisz.C_HELYETTESTANAROKID) AND tao.C_HELYETTESITESTIPUSA IS NOT NULL
|
||||
AND (oo.C_ORASZAM=tao.C_ORASZAM OR (oo.C_ORASZAM IS NULL AND tao.C_ORAKEZDETE=tao.C_DATUM+oo.C_ORAKEZDETE AND tao.C_ORAVEGE=tao.C_DATUM+oo.C_ORAVEGE)))
|
||||
UNION ALL
|
||||
SELECT
|
||||
tao.C_DATUM AS HelyettesitesDatum
|
||||
,tao.C_ORASZAM AS Ora
|
||||
,helyettesitett.C_NYOMTATASINEV AS Helyettesitett
|
||||
,IIF(helyettesitett.C_NEVSORREND = ''T'',
|
||||
helyettesitett.C_UTONEV + '' '' + helyettesitett.C_VEZETEKNEV,
|
||||
helyettesitett.C_VEZETEKNEV + '' '' + helyettesitett.C_UTONEV) AS HelyettesitettElotagNelkul
|
||||
,helyettesitett.ID AS HelyettesitettId
|
||||
,tao.C_HELYETTESITESTIPUSA AS HelyettesitesTipusId
|
||||
,tao.C_HELYETTESITESOKA AS HelyettesitesOka
|
||||
,tao.C_MEGJEGYZES as C_MEGJEGYZES
|
||||
,helyettesito.C_NYOMTATASINEV AS Helyettesito
|
||||
,IIF(helyettesito.C_NEVSORREND = ''T'',
|
||||
helyettesito.C_UTONEV + '' '' + helyettesito.C_VEZETEKNEV,
|
||||
helyettesito.C_VEZETEKNEV + '' '' + helyettesito.C_UTONEV) AS HelyettesitoElotagNelkul
|
||||
,helyettesito.ID AS HelyettesitoId
|
||||
,ocs.C_NEV AS OsztalyCsoport
|
||||
,ocs.ID AS OsztalyCsoportId
|
||||
,tantargy.C_NEV AS Tantargy
|
||||
,tantargy.ID AS TantargyId
|
||||
,''T'' AS Naplozott
|
||||
,tao.ID
|
||||
FROM T_TANITASIORA tao
|
||||
INNER JOIN T_TANTARGY tgy ON tgy.ID=tao.C_TANTARGYID
|
||||
INNER JOIN T_FELHASZNALO helyettesitett ON tao.C_TANARID= helyettesitett.ID
|
||||
INNER JOIN T_FELHASZNALO helyettesito ON tao.C_HELYETTESITOTANARID= helyettesito.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON tao.C_OSZTALYCSOPORTID = ocs.ID
|
||||
INNER JOIN T_TANTARGY tantargy ON tao.C_TANTARGYID = tantargy.ID
|
||||
WHERE C_HELYETTESITESTIPUSA IS NOT NULL AND tao.TOROLT=''F''
|
||||
) hisz WHERE (1=1)
|
||||
' +@whereString
|
||||
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@pKezdoDatum datetime
|
||||
,@pVegDatum datetime
|
||||
,@pHelyettesitesTipusId int
|
||||
,@pHelyettesitettId int
|
||||
,@pHelyettesitoId int
|
||||
,@pIsNaplozott char(1)
|
||||
,@pOsztalyCsoportId int
|
||||
,@pTantargyId int
|
||||
,@pFeladatKategoriaId int'
|
||||
,@pKezdoDatum = @pKezdoDatum
|
||||
,@pVegDatum = @pVegDatum
|
||||
,@pHelyettesitesTipusId = @pHelyettesitesTipusId
|
||||
,@pHelyettesitettId = @pHelyettesitettId
|
||||
,@pHelyettesitoId = @pHelyettesitoId
|
||||
,@pIsNaplozott = @pIsNaplozott
|
||||
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
||||
,@pTantargyId = @pTantargyId
|
||||
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
||||
END
|
||||
+694
@@ -0,0 +1,694 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetNapkozisNaplo
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetNapkozisNaplo
|
||||
@tanevId int
|
||||
,@intezmenyId int
|
||||
,@csoportId int
|
||||
,@iskolaErdekuSzamit bit
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@elsonap date
|
||||
,@utolsonap date
|
||||
,@FelevVege date
|
||||
,@datum date = GETDATE()
|
||||
|
||||
CREATE TABLE #OraSorszam (
|
||||
TanitasioraId int PRIMARY KEY
|
||||
,OraSorszam int
|
||||
)
|
||||
|
||||
--Tanulók adatai, elérhetőségei
|
||||
CREATE TABLE #tanulok (
|
||||
Id int
|
||||
,TanuloCsoportId int
|
||||
,Nev nvarchar (max)
|
||||
,Osztaly nvarchar (max)
|
||||
,OsztalyId int
|
||||
,Sorszam nvarchar (max)
|
||||
,beirasiSorszam nvarchar (max)
|
||||
,Torzslapszam nvarchar (max)
|
||||
,Allampolgarsaga nvarchar (max)
|
||||
,DiakIg nvarchar (max)
|
||||
,SzulHely nvarchar (max)
|
||||
,SzulIdo nvarchar (max)
|
||||
,Anyja nvarchar (max)
|
||||
,Taj nvarchar (max)
|
||||
,OktAzon nvarchar (max)
|
||||
,Kilepes nvarchar (max)
|
||||
,Kepzes nvarchar (max)
|
||||
,TanuloCimTipus nvarchar (max)
|
||||
,TanuloCim nvarchar (max)
|
||||
,TanuloEmail nvarchar (max)
|
||||
,szoc nvarchar (max)
|
||||
,BelepesDatum datetime
|
||||
)
|
||||
|
||||
DECLARE @Mulasztasok TABLE (
|
||||
IgazoltE nvarchar (1)
|
||||
,Tanulo int
|
||||
,Tipus int
|
||||
)
|
||||
|
||||
DECLARE @GondViseloCimTable TABLE (
|
||||
GondviseloId int
|
||||
,Cim nvarchar (max)
|
||||
,Cimtipusa nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @EmailCimTableTemp TABLE (
|
||||
FelhasznaloId int
|
||||
,EmailCim nvarchar (max)
|
||||
,GondviseloId int
|
||||
)
|
||||
|
||||
DECLARE @EmailCimGondviseloTable TABLE (
|
||||
GondviseloId int
|
||||
,EmailCim nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @TelefonTableTemp TABLE (
|
||||
FelhasznaloId int
|
||||
,Telefon nvarchar (max)
|
||||
,GondviseloId int
|
||||
)
|
||||
|
||||
DECLARE @GondviseloTelefonTable TABLE (
|
||||
GondviseloId int
|
||||
,Telefon nvarchar (max)
|
||||
)
|
||||
|
||||
SELECT TOP 1
|
||||
@FelevVege = tr.C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
WHERE tr.C_NAPTIPUSA = 1400
|
||||
AND tr.C_TANEVID = @tanevId
|
||||
AND tr.TOROLT = 'F'
|
||||
|
||||
INSERT INTO #tanulok (
|
||||
Id
|
||||
,TanuloCsoportId
|
||||
,Nev
|
||||
,Osztaly
|
||||
,OsztalyId
|
||||
,Sorszam
|
||||
,beirasiSorszam
|
||||
,Torzslapszam
|
||||
,Allampolgarsaga
|
||||
,DiakIg
|
||||
,SzulHely
|
||||
,SzulIdo
|
||||
,Anyja
|
||||
,Taj
|
||||
,OktAzon
|
||||
,Kilepes
|
||||
,Kepzes
|
||||
,TanuloCimTipus
|
||||
,TanuloCim
|
||||
,TanuloEmail
|
||||
,szoc
|
||||
,BelepesDatum
|
||||
)
|
||||
SELECT DISTINCT
|
||||
tanulok.TanuloId AS Id
|
||||
,tanulok.TanuloCsoportId
|
||||
,IIF(KilepesDatum IS NOT NULL, f.C_NYOMTATASINEV + ' (kilépett)', f.C_NYOMTATASINEV) AS Nev
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztaly(t.Id) AS Osztaly
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(t.Id) AS OsztalyId
|
||||
,tta.C_NAPLOSORSZAM AS NaploSorszam
|
||||
,tta.C_BEIRASINAPLOSORSZAM AS beirasiSorszam
|
||||
,tta.C_TORZSLAPSZAM AS TorzsLapSzam
|
||||
,Allampolgarsaga.C_NAME AS Allampolgarsag
|
||||
,t.C_DIAKIGAZOLVANYSZAM AS DiakIg
|
||||
,f.C_SZULETESIHELY AS SzulHely
|
||||
,FORMAT(f.c_szuletesidatum, 'yyyy.MM.dd.') AS SzulIdo
|
||||
,f.C_ANYJANEVE AS Anyja
|
||||
,f.C_TAJSZAM AS Taj
|
||||
,f.C_OKTATASIAZONOSITO AS OktAzon
|
||||
,FORMAT(KilepesDatum, 'yyyy.MM.dd.') AS Kilepes
|
||||
,tt.c_nev AS Kepzes
|
||||
,cim.Tipus
|
||||
,cim.cim
|
||||
,email.c_emailcim AS TanuloEmail
|
||||
,STUFF(
|
||||
IIF(tta.C_MAGANTANULO = 'T', ', Magántanuló (' + ISNULL(MagantanulosagOka.C_NAME, '-') + ')', '')
|
||||
+ IIF(tta.C_JOGVISZONYATSZUNETELTETO = 'T', ', Jogviszony szüneteltetve', '')
|
||||
+ IIF(tta.C_SZAKMAIGYAKORLATON = 'T', ', Szakmai gyakorlat', '')
|
||||
+ IIF(t.C_SZOCIALISTAMOGATAS = 'T', ', Szociális támogatás', ''), 1, 2, ''
|
||||
) AS szoc
|
||||
,tanulok.BelepesDatum AS BelepesDatum
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T') tanulok
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.id = tanulok.TanuloId
|
||||
AND f.torolt = 'F'
|
||||
INNER JOIN T_TANULO_OSSZES t ON t.ID = f.ID
|
||||
INNER JOIN fnGetOsztalyCsoportTanuloinakTanugyiAdatai(@csoportId, DEFAULT) tta ON tta.TanuloId = t.ID
|
||||
INNER JOIN T_TANTERV_OSSZES tt ON tt.ID = tta.C_TANTERVID
|
||||
AND tt.TOROLT = 'F'
|
||||
AND tt.C_TANEVID = @tanevId
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES Allampolgarsaga ON Allampolgarsaga.Id = f.c_allampolgarsaga
|
||||
AND Allampolgarsaga.C_TANEVID = @tanevId
|
||||
AND Allampolgarsaga.TOROLT = 'F'
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT
|
||||
TanuloId AS TanuloId
|
||||
,cimTipusa.C_NAME AS Tipus
|
||||
,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, ''
|
||||
) AS Cim
|
||||
FROM fnGetDokumentumTanuloOrGondviseloCim(0, @tanevId, @csoportid) temp
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES AS cimTipusa ON cimTipusa.Id = temp.CimTipusa
|
||||
AND cimTipusa.C_TANEVID = @tanevId
|
||||
AND cimTipusa.TOROLT = 'F'
|
||||
WHERE temp.CimTipusa = 907
|
||||
) AS cim ON cim.TanuloId = tanulok.TanuloId
|
||||
LEFT JOIN T_TELEFON_OSSZES tel ON tel.c_felhasznaloid = f.id
|
||||
AND tel.c_gondviseloid IS NULL
|
||||
AND tel.torolt = 'F'
|
||||
AND tel.c_alapertelmezett = 'T'
|
||||
LEFT JOIN T_EMAIL_OSSZES email ON email.c_felhasznaloid = tanulok.TanuloId
|
||||
AND email.c_gondviseloid IS NULL
|
||||
AND email.torolt = 'F'
|
||||
AND email.c_alapertelmezett = 'T'
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS MagantanulosagOka ON MagantanulosagOka.ID = tta.C_MAGANTANULOSAGANAKOKAID
|
||||
AND MagantanulosagOka.C_TANEVID = f.C_TANEVID
|
||||
AND MagantanulosagOka.TOROLT = 'F'
|
||||
|
||||
--Kezdőoldal
|
||||
SELECT
|
||||
ia.c_nev AS IntezmenyNev
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
|
||||
,ia.c_omkod AS OMKOD
|
||||
,ia.c_igazgatoneve AS IntezmenyVezeto
|
||||
,ocs.c_nev AS NapkozisCsoport
|
||||
,IIF(LEN(ocs.c_nev) > 17, SUBSTRING(ocs.c_nev, 1, 17) + '...', ocs.c_nev) AS RovidNev
|
||||
,ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
|
||||
,ISNULL(cs.c_csoportnaploleiras, '-') AS CsoportNaploLeiras
|
||||
,FORMAT(cs.c_csoportnaplomegnyitasa, 'yyyy.MM.dd.') AS Megnyitas
|
||||
,ISNULL(FORMAT(cs.c_csoportnaplozarasa, 'yyyy.MM.dd.'), '-') AS Lezaras
|
||||
,ocs.ID AS NapkozisCsoportId
|
||||
,f.ID AS CsoportVezetoId
|
||||
,ISNULL(ocs.C_EVFOLYAMTIPUSA,1296) AS EvfolyamTipusa -- 1296 = Na
|
||||
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
||||
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
|
||||
,cs.C_TIPUSA AS 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
|
||||
AND ocs.id = @csoportId
|
||||
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
|
||||
|
||||
--Csoportot vezette
|
||||
SELECT
|
||||
ISNULL(f.c_nyomtatasinev, '-') AS CsoportVezeto
|
||||
FROM T_CSOPORT_OSSZES cs
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = cs.c_csoportvezetoid
|
||||
WHERE cs.id = @csoportId
|
||||
AND cs.c_altanevid = @tanevid
|
||||
AND cs.c_alintezmenyid = @intezmenyid
|
||||
|
||||
--Tanulók
|
||||
SELECT DISTINCT
|
||||
Nev
|
||||
,Osztaly
|
||||
,OktAzon
|
||||
,OsztalyId
|
||||
,BelepesDatum
|
||||
FROM #tanulok
|
||||
ORDER BY
|
||||
Nev
|
||||
|
||||
--Naplóhetek
|
||||
IF (
|
||||
SELECT
|
||||
c_osztalycsoportid
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
|
||||
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
|
||||
AND tr.c_naptipusa = 1394
|
||||
WHERE c_osztalycsoportid = @csoportid
|
||||
) IS NULL
|
||||
|
||||
SELECT TOP 1
|
||||
@elsonap = tr.c_datum
|
||||
FROM t_tanevrendje_osszes tr
|
||||
WHERE c_naptipusa = 1394
|
||||
AND c_tanevid = @tanevId
|
||||
AND c_intezmenyid = @intezmenyId
|
||||
AND torolt = 'F'
|
||||
AND c_osszescsoportravonatkozik = 'T'
|
||||
|
||||
ELSE
|
||||
|
||||
SELECT TOP 1
|
||||
@elsonap = tr.c_datum
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
|
||||
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
|
||||
AND tr.c_naptipusa = 1394
|
||||
WHERE c_osztalycsoportid = @csoportid
|
||||
|
||||
IF (
|
||||
SELECT
|
||||
c_osztalycsoportid
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
|
||||
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
|
||||
AND tr.c_naptipusa = 1395
|
||||
WHERE c_osztalycsoportid = @csoportid
|
||||
) IS NULL
|
||||
|
||||
SELECT TOP 1
|
||||
@utolsonap = tr.c_datum
|
||||
FROM t_tanevrendje_osszes tr
|
||||
WHERE c_naptipusa = 1395
|
||||
AND c_tanevid = @tanevId
|
||||
AND c_intezmenyid = @intezmenyId
|
||||
AND torolt = 'F'
|
||||
AND c_osszescsoportravonatkozik = 'T'
|
||||
|
||||
ELSE
|
||||
|
||||
SELECT TOP 1
|
||||
@utolsonap = tr.c_datum
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE otr
|
||||
INNER JOIN t_tanevrendje_osszes tr ON tr.id = otr.c_tanevrendjeid
|
||||
AND tr.c_naptipusa = 1395
|
||||
WHERE c_osztalycsoportid = @csoportid
|
||||
|
||||
SELECT
|
||||
nn.C_HETSORSZAMA AS Het
|
||||
,FORMAT(MIN(nn.C_NAPDATUMA), 'yyyy.MM.dd.') AS HetEleje
|
||||
,FORMAT(MAX(nn.C_NAPDATUMA), 'yyyy.MM.dd.') AS HetVege
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
WHERE nn.C_NAPDATUMA BETWEEN @elsoNap AND @utolsoNap
|
||||
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)
|
||||
|
||||
--Tanuló adatok
|
||||
SELECT
|
||||
*
|
||||
FROM #tanulok
|
||||
ORDER BY
|
||||
Nev
|
||||
|
||||
SELECT
|
||||
DATEPART(MONTH, Datum) AS Honap
|
||||
,TantargyId AS Id
|
||||
,Igazolt AS IgazoltE
|
||||
,TanuloId AS TanuloId
|
||||
,TanuloCsoportId AS TanuloCsoportId
|
||||
,IgazolasTipusa AS IgazolasTipus
|
||||
,Datum AS Datum
|
||||
,Tipusa AS Tipus
|
||||
,KesesPercben AS KesesPercben
|
||||
,HetSorszama AS HetSorszama
|
||||
,Oraszam AS Oraszam
|
||||
,CAST(DATEPART(MONTH, Datum) AS nvarchar (10)) + IIF(C_GYAKORLATI = 'T', 'G', 'E') AS ElmeletGyakorlat
|
||||
,C_GYAKORLATI AS isGyakorlat
|
||||
INTO #mulasztasTmp
|
||||
FROM fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @csoportId, @iskolaErdekuSzamit, 1, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
|
||||
INNER JOIN T_TANTARGY_OSSZES AS Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
|
||||
|
||||
SELECT
|
||||
ta.TanuloId AS Id
|
||||
,ta.TanuloCsoportId
|
||||
,ta.Sorszam
|
||||
,ta.TorzslapSzam
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.KilepesDatum
|
||||
,ta.BeirasiNaploSorszam
|
||||
,ta.AdottOsztaly AS Osztaly
|
||||
,ta.AdottOsztalyId AS OsztalyId
|
||||
,CONVERT(DATE, LEFT(ta.BelepesDatum, LEN(ta.BelepesDatum) - 1), 102) AS BelepesDatum
|
||||
INTO #studentsWithTanuloCsoport
|
||||
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta
|
||||
|
||||
EXEC sp_GetDokumentumMulasztasokIdoszakonkent
|
||||
@tanevId = @tanevId
|
||||
,@osztalyCsoportId = @csoportId
|
||||
,@iskolaErdekuSzamit = @iskolaErdekuSzamit
|
||||
,@isReszletesMulasztasok = 0
|
||||
|
||||
--Napló
|
||||
SELECT DISTINCT
|
||||
nn.c_hetsorszama AS Het
|
||||
,d.c_name AS Nap
|
||||
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
|
||||
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 d ON d.id = nn.c_hetnapja
|
||||
AND d.C_TANEVID = @tanevId
|
||||
AND d.TOROLT = 'F'
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.c_foglalkozasid
|
||||
AND fog.c_tanevid = @tanevid
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = fog.c_tanarid
|
||||
AND f.torolt = 'F'
|
||||
WHERE nn.c_napdatuma >= @elsonap
|
||||
AND nn.c_napdatuma <= @utolsonap
|
||||
ORDER BY
|
||||
nn.c_hetsorszama
|
||||
,FORMAT(nn.c_napdatuma, 'yyyy. MMMM dd.', 'hu-hu')
|
||||
|
||||
--Napló adatok
|
||||
INSERT INTO #OraSorszam (
|
||||
TanitasioraId
|
||||
,OraSorszam
|
||||
)
|
||||
EXEC sp_GetOraSorszamByOsztaly
|
||||
@osztalyCsoportId = @csoportId
|
||||
,@datum = @datum
|
||||
,@intezmenyId = @intezmenyId
|
||||
,@tanevId = @tanevId
|
||||
|
||||
SELECT DISTINCT
|
||||
tao.C_ORASZAM AS Oraszam
|
||||
,tao.C_HETSORSZAMA AS Het
|
||||
,FORMAT(tao.C_DATUM, 'yyyy. MMMM dd.', 'hu-hu') AS Datum
|
||||
,CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS DatumKezdettel
|
||||
,ISNULL('Helyettesítő: ' + helyettesito.C_NYOMTATASINEV, f.C_NYOMTATASINEV) AS Tanar
|
||||
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
|
||||
,tao.C_TANTARGYID AS TantargyId
|
||||
,tao.C_MEGTARTOTT AS Megtartott
|
||||
,tao.C_TEMA AS Tema
|
||||
,OraSorszam
|
||||
,C_ORAKEZDETE
|
||||
INTO #megtartottOrak
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
LEFT JOIN T_FOGLALKOZAS_OSSZES fog ON fog.id = tao.C_FOGLALKOZASID
|
||||
AND fog.TOROLT = 'F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_TANARID
|
||||
AND f.TOROLT = 'F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES helyettesito ON helyettesito.ID = tao.C_HELYETTESITOTANARID
|
||||
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT
|
||||
OraSorszam
|
||||
,TanitasioraId
|
||||
FROM #OraSorszam
|
||||
) AS oraSorszam ON oraSorszam.TanitasioraId = tao.Id
|
||||
WHERE tao.C_OSZTALYCSOPORTID = @csoportid
|
||||
AND tao.TOROLT = 'F'
|
||||
ORDER BY
|
||||
tao.C_ORAKEZDETE
|
||||
,tao.C_ORASZAM
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM #megtartottOrak
|
||||
|
||||
--Napló mulasztás
|
||||
SELECT
|
||||
C_HETSORSZAMA AS Het
|
||||
,C_NYOMTATASINEV AS Tanulo
|
||||
,MAX([1]) AS Hetfo
|
||||
,MAX([2]) AS Kedd
|
||||
,MAX([3]) AS Szerda
|
||||
,MAX([4]) AS Csutortok
|
||||
,MAX([5]) AS Pentek
|
||||
,MAX([6]) AS Szombat
|
||||
FROM (
|
||||
SELECT
|
||||
C_HETSORSZAMA
|
||||
,C_NYOMTATASINEV
|
||||
,[0]
|
||||
,[1]
|
||||
,[2]
|
||||
,[3]
|
||||
,[4]
|
||||
,[5]
|
||||
,[6]
|
||||
FROM (
|
||||
SELECT DISTINCT
|
||||
n.C_NAPTARINAPID
|
||||
,DATEPART(dw, n.C_DATUM) AS NAP
|
||||
,t.C_NYOMTATASINEV
|
||||
,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
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT
|
||||
OraSorszam
|
||||
,TanitasioraId
|
||||
FROM #OraSorszam
|
||||
) AS 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 tm.c_intezmenyId = @intezmenyId
|
||||
AND o.c_tanevId = @tanevId
|
||||
AND o.C_OSZTALYCSOPORTID = @csoportId
|
||||
AND o.TOROLT = 'F'
|
||||
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 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 n.C_OSZTALYCSOPORTID = @csoportId
|
||||
AND n.TOROLT = 'F'
|
||||
GROUP BY
|
||||
n.C_NAPTARINAPID
|
||||
,C_ORATANULOIID
|
||||
,C_NYOMTATASINEV
|
||||
,n.C_HETSORSZAMA
|
||||
,n.C_DATUM
|
||||
) AS SUB PIVOT(MAX(HIANYZAS) FOR NAP IN(
|
||||
[0]
|
||||
,[1]
|
||||
,[2]
|
||||
,[3]
|
||||
,[4]
|
||||
,[5]
|
||||
,[6])) AS PivotTable
|
||||
) AS ASD
|
||||
GROUP BY
|
||||
C_HETSORSZAMA
|
||||
,C_NYOMTATASINEV
|
||||
ORDER BY
|
||||
C_HETSORSZAMA
|
||||
|
||||
--Tanuló feljegyzései
|
||||
SELECT
|
||||
tte.C_TANULOID AS Tanulo
|
||||
,FORMAT(tao.c_datum, 'yyyy.MM.dd.') AS Idopont
|
||||
,d.C_NAME AS Tipus
|
||||
,te.C_TARTALOM AS Feljegyzes
|
||||
,f.C_NYOMTATASINEV AS Feljegyzo
|
||||
FROM T_TANULO_TANULOESEMENY tte
|
||||
INNER JOIN T_TANULOESEMENY_OSSZES te ON te.Id = tte.C_TANULOESEMENYID
|
||||
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.Id = te.C_TANITASIORAID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.Id = te.C_FELJEGYZOID
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.Id = te.C_TIPUS
|
||||
AND d.C_TANEVID = @tanevId
|
||||
AND d.TOROLT = 'F'
|
||||
WHERE C_OSZTALYCSOPORTID = @csoportId
|
||||
AND te.TOROLT = 'F'
|
||||
AND C_TIPUS <> 1534
|
||||
|
||||
INSERT INTO @GondViseloCimTable (
|
||||
GondviseloId
|
||||
,Cim
|
||||
,Cimtipusa
|
||||
)
|
||||
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
|
||||
AND cimTipusa.C_TANEVID = @tanevId
|
||||
|
||||
INSERT INTO @EmailCimTableTemp (
|
||||
FelhasznaloId
|
||||
,EmailCim
|
||||
,GondviseloId
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @EmailCimGondviseloTable (
|
||||
GondviseloId
|
||||
,EmailCim
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @TelefonTableTemp (
|
||||
FelhasznaloId
|
||||
,Telefon
|
||||
,GondviseloId
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @GondviseloTelefonTable (
|
||||
GondviseloId
|
||||
,Telefon
|
||||
)
|
||||
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
|
||||
|
||||
/*gondviselő elérhetőségei */
|
||||
SELECT DISTINCT
|
||||
Gondviselok.TanuloId AS TanuloId
|
||||
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
|
||||
,cim.Cimtipusa AS C_CIMTIPUSA
|
||||
,cim.cim AS C_OSSZETETTCIM
|
||||
,telefon.telefon AS C_TELEFONSZAM
|
||||
,email.emailcim AS C_EMAILCIM
|
||||
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselok
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId
|
||||
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
|
||||
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
|
||||
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
|
||||
ORDER BY cim.Cimtipusa
|
||||
|
||||
--megtartott órák száma
|
||||
SELECT
|
||||
COUNT(mo.TantargyId) AS TantargyOraszam
|
||||
,mo.Tantargynev AS TantargyNev
|
||||
INTO #megtartottOrakSzama
|
||||
FROM #megtartottOrak mo
|
||||
WHERE mo.Megtartott = 'T'
|
||||
GROUP BY
|
||||
mo.TantargyId
|
||||
,mo.TantargyNev
|
||||
|
||||
SELECT DISTINCT
|
||||
SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
|
||||
,STUFF(
|
||||
(
|
||||
SELECT DISTINCT
|
||||
', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
|
||||
FROM #megtartottOrakSzama btmp
|
||||
FOR XML PATH(''), TYPE
|
||||
).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
|
||||
) AS Tantargyak
|
||||
FROM #megtartottOrakSzama tmp
|
||||
|
||||
-- Csoport tanárai
|
||||
SELECT
|
||||
targy.C_NEV AS TargyNev
|
||||
,tanar.C_NYOMTATASINEV AS TanarNev
|
||||
,targykategoria.C_ORDER
|
||||
,tanar.ID TanarId
|
||||
,tanar.C_OKTATASIAZONOSITO AS 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 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
|
||||
|
||||
END
|
||||
GO
|
||||
+336
@@ -0,0 +1,336 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetNyomtatvanyokOrarendOsszes
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetNyomtatvanyokOrarendOsszes
|
||||
@intezmenyId int
|
||||
,@tanevID int
|
||||
,@pIdoszakKezdete datetime
|
||||
,@pIdoszakVege datetime
|
||||
,@pTanarId int = NULL
|
||||
,@pIsHelyettesitesNelkul bit = 0
|
||||
,@pOsztalyCsoportId int = NULL
|
||||
,@pTanuloId int = NULL
|
||||
,@pTantargyId int = NULL
|
||||
,@pTeremId int = NULL
|
||||
,@pCsakOrarendiOrak bit = 0
|
||||
,@pIsNapirend bit /* 0 csak orarendi ora, 1 csak napirend, NULL mindkettő */
|
||||
,@pKapcsolodoCsoportokMegjelenitese bit = NULL
|
||||
,@pOsztalyBontasokMegjelenitese bit = NULL
|
||||
,@pFeladatKategoriaId int = NULL
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@intezmenyNev nvarchar(510)
|
||||
|
||||
CREATE TABLE #OrarendiOrak (
|
||||
Id int
|
||||
,ORARENDIID int
|
||||
,Datum datetime
|
||||
,Bontott char (1)
|
||||
,Hetirend int
|
||||
,HetNapja int
|
||||
,HetSorszam int
|
||||
,ErvenyessegKezdete datetime
|
||||
,ErvenyessegVege datetime
|
||||
,OraKezdete datetime
|
||||
,OraVege datetime
|
||||
,Oraszam int
|
||||
,TargyNev nvarchar (300)
|
||||
,TargyNevForMobile nvarchar (300)
|
||||
,TargykategoriaID int
|
||||
,Megtartott char (1)
|
||||
,CsengetesiRendOraID int
|
||||
,CsengetesiRendID int
|
||||
,MaxNapiOraszam int
|
||||
,OsztalyNev nvarchar (255)
|
||||
,TanevRendOsztalyCsoportId int
|
||||
,MegjelenesOka nvarchar (300)
|
||||
,TanarNev nvarchar (255)
|
||||
,TeremNev nvarchar (255)
|
||||
,TeremId int
|
||||
,OraTipus nvarchar (200)
|
||||
,Hianyzas char (1)
|
||||
,Keses char (1)
|
||||
,Ures char (1)
|
||||
,HelyettesitoTanarID int
|
||||
,HelyettesitoTanarNev nvarchar (255)
|
||||
,HelyettesitesId int
|
||||
,TanarID int
|
||||
,AdminAltalKiirt char (1)
|
||||
,GroupId int
|
||||
,Tema nvarchar (max)
|
||||
,TantargyId int
|
||||
,OsztCsopId int
|
||||
,INDEX IX1 CLUSTERED(Datum, HetNapja, Oraszam, TanevRendOsztalyCsoportId, TantargyId, TanarID)
|
||||
)
|
||||
|
||||
CREATE TABLE #Oraszamok (
|
||||
Oraszam int
|
||||
,PRIMARY KEY(Oraszam)
|
||||
)
|
||||
|
||||
SELECT TOP 1
|
||||
@intezmenyNev = i.C_NEV
|
||||
FROM T_INTEZMENYADATOK_OSSZES i
|
||||
WHERE i.C_INTEZMENYID = @intezmenyId
|
||||
AND i.C_TANEVID = @tanevID
|
||||
AND i.TOROLT = 'F'
|
||||
|
||||
INSERT INTO #OrarendiOrak (
|
||||
Id
|
||||
,ORARENDIID
|
||||
,Datum
|
||||
,Bontott
|
||||
,Hetirend
|
||||
,HetNapja
|
||||
,HetSorszam
|
||||
,ErvenyessegKezdete
|
||||
,ErvenyessegVege
|
||||
,OraKezdete
|
||||
,OraVege
|
||||
,Oraszam
|
||||
,TargyNev
|
||||
,TargyNevForMobile
|
||||
,TargykategoriaID
|
||||
,Megtartott
|
||||
,CsengetesiRendOraID
|
||||
,CsengetesiRendID
|
||||
,MaxNapiOraszam
|
||||
,OsztalyNev
|
||||
,TanevRendOsztalyCsoportId
|
||||
,MegjelenesOka
|
||||
,TanarNev
|
||||
,TeremNev
|
||||
,TeremId
|
||||
,OraTipus
|
||||
,Hianyzas
|
||||
,Keses
|
||||
,Ures
|
||||
,HelyettesitoTanarID
|
||||
,HelyettesitoTanarNev
|
||||
,HelyettesitesId
|
||||
,TanarID
|
||||
,AdminAltalKiirt
|
||||
,GroupId
|
||||
,Tema
|
||||
,TantargyId
|
||||
,OsztCsopId
|
||||
)
|
||||
EXEC sp_GetOrarend
|
||||
@pIntezmenyId = @intezmenyId
|
||||
,@pTanevId = @tanevID
|
||||
,@pIdoszakKezdete = @pIdoszakKezdete
|
||||
,@pIdoszakVege = @pIdoszakVege
|
||||
,@pTanarId = @pTanarId
|
||||
,@pIsHelyettesitesNelkul = @pIsHelyettesitesNelkul
|
||||
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
||||
,@pTanuloId = @pTanuloId
|
||||
,@pTantargyId = @pTantargyId
|
||||
,@pTeremId = @pTeremId
|
||||
,@pCsakOrarendiOrak = @pCsakOrarendiOrak
|
||||
,@pIsNapirend = @pIsNapirend
|
||||
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
||||
|
||||
-- a lekért órarendben a minden héten órákat átállítjuk a hétsorszámnak megfelelő hetirendre
|
||||
UPDATE orak
|
||||
SET orak.Hetirend = ISNULL(hr.Hetirend, orak.Hetirend)
|
||||
FROM #OrarendiOrak orak
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT
|
||||
o.Hetirend
|
||||
,o.HetSorszam
|
||||
FROM #OrarendiOrak o
|
||||
WHERE Hetirend <> 1554
|
||||
) hr ON hr.HetSorszam = orak.HetSorszam
|
||||
WHERE orak.Hetirend = 1554
|
||||
|
||||
-- kapcsolódó csoportok óráinak törlése
|
||||
IF @pKapcsolodoCsoportokMegjelenitese IS NOT NULL AND @pKapcsolodoCsoportokMegjelenitese = 0
|
||||
DELETE orak
|
||||
FROM #OrarendiOrak orak
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = orak.OsztCsopId
|
||||
AND cs.C_OSZTALYBONTASID IS NULL
|
||||
WHERE OsztCsopId != @pOsztalyCsoportId
|
||||
|
||||
-- osztálybontott csoportok óráinak törlése
|
||||
IF @pOsztalyBontasokMegjelenitese IS NOT NULL AND @pOsztalyBontasokMegjelenitese = 0
|
||||
DELETE orak
|
||||
FROM #OrarendiOrak orak
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = orak.OsztCsopId
|
||||
AND cs.C_OSZTALYBONTASID IS NOT NULL
|
||||
WHERE orak.OsztCsopId != @pOsztalyCsoportId
|
||||
|
||||
INSERT INTO #Oraszamok (Oraszam)
|
||||
SELECT DISTINCT
|
||||
ora.C_ORASZAM AS Oraszam
|
||||
FROM T_ORARENDIORA_OSSZES ora
|
||||
WHERE ora.C_INTEZMENYID = @intezmenyId
|
||||
AND ora.C_TANEVID = @tanevID
|
||||
AND ora.C_ORASZAM IS NOT NULL
|
||||
|
||||
SELECT DISTINCT
|
||||
COALESCE(@pTanarId, @pTeremId, @pOsztalyCsoportId) AS Id
|
||||
,STUFF(
|
||||
(
|
||||
SELECT DISTINCT
|
||||
', ' + IIF(@pTanarId IS NOT NULL, bo.TanarNev, IIF(@pTeremId IS NOT NULL, bo.TeremNev, IIF(@pOsztalyCsoportId IS NOT NULL, bo.OsztalyNev,'')))
|
||||
FROM #OrarendiOrak bo
|
||||
WHERE bo.Hetirend = o.Hetirend
|
||||
FOR XML PATH(''), TYPE
|
||||
).value
|
||||
('.', 'NVARCHAR(MAX)') ,1 , 2, ''
|
||||
) AS Nev
|
||||
,@intezmenyNev AS IntezmenyNev
|
||||
,STUFF(
|
||||
(
|
||||
SELECT DISTINCT
|
||||
', ' + dic.C_NAME
|
||||
FROM #OrarendiOrak qw
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dic ON dic.C_TANEVID = @tanevID
|
||||
AND dic.TOROLT = 'F'
|
||||
AND dic.ID = qw.Hetirend
|
||||
WHERE o.Hetirend = qw.Hetirend
|
||||
FOR XML PATH(''), TYPE
|
||||
).value
|
||||
('(./text())[1]', 'VARCHAR(MAX)'), 1, 2, ''
|
||||
) AS Hetirend
|
||||
FROM #OrarendiOrak o
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dic ON o.Hetirend = dic.ID
|
||||
AND dic.C_TANEVID = @tanevID
|
||||
AND dic.TOROLT = 'F'
|
||||
|
||||
SELECT
|
||||
COALESCE(@pTanarId, @pTeremId, @pOsztalyCsoportId) AS Id
|
||||
,IIF(@pIsNapirend = 0, CAST(t.Oraszam AS nvarchar(3)), ISNULL(t.OraKezdete + ' - ' + t.OraVege, '')) AS Ora
|
||||
,t.Hetirend AS HetirendId
|
||||
,[1408] AS Hetfo
|
||||
,[1409] AS Kedd
|
||||
,[1410] AS Szerda
|
||||
,[1411] AS Csutortok
|
||||
,[1412] AS Pentek
|
||||
,[1413] AS Szombat
|
||||
,t.HetirendNev AS HetirendNev
|
||||
FROM (
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
STUFF(
|
||||
(
|
||||
SELECT
|
||||
CONVERT(nvarchar(max), bo.TargyNev + nchar(13) + nchar(10) + bo.OsztalyNev + nchar(13) + nchar(10) + bo.TeremNev + nchar(10) + nchar(10))
|
||||
FROM #OrarendiOrak bo
|
||||
WHERE bo.OraKezdete = o.OraKezdete
|
||||
FOR XML PATH(''), TYPE
|
||||
).value
|
||||
('.', 'NVARCHAR(MAX)'), 1, 0, ''
|
||||
) AS TargyNev
|
||||
,o.HetNapja
|
||||
,o.Oraszam
|
||||
,CONVERT(char(5), o.OraKezdete, 108) AS OraKezdete
|
||||
,CONVERT(char(5), o.OraVege, 108) AS OraVege
|
||||
,dic.C_NAME AS HetirendNev
|
||||
,o.Hetirend AS Hetirend
|
||||
FROM #OrarendiOrak AS o
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS dic ON dic.C_TANEVID = @tanevID
|
||||
AND dic.TOROLT = 'F'
|
||||
AND dic.ID = o.Hetirend
|
||||
) ot PIVOT(MAX(ot.TargyNev) FOR ot.HetNapja IN(
|
||||
[1408]
|
||||
,[1409]
|
||||
,[1410]
|
||||
,[1411]
|
||||
,[1412]
|
||||
,[1413])
|
||||
) AS pv
|
||||
) AS t
|
||||
ORDER BY
|
||||
HetirendNev
|
||||
,CASE WHEN @pIsNapirend = 0 THEN t.Oraszam ELSE CAST(t.OraKezdete AS datetime) END
|
||||
|
||||
-- Iktatási adatok
|
||||
IF @pOsztalyCsoportId IS NOT NULL
|
||||
BEGIN
|
||||
-- Osztály adatok
|
||||
SELECT
|
||||
@pOsztalyCsoportId AS OsztalyId
|
||||
,ocs.C_EVFOLYAMTIPUSA AS Evfolyam
|
||||
,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 AS OJCSJKeresztfeleves
|
||||
,o.C_TECHNIKAIOSZTALY AS OJTechnikaiOsztaly
|
||||
,o.C_NEMZETISEGI AS OJNemzetisegi
|
||||
,o.C_KETTANNYELVU AS OJKettannyelvu
|
||||
,o.C_NYELVIELOKESZITO AS OJNyelviElokeszito
|
||||
,o.C_LOGOPEDIAI AS OJLogopediai
|
||||
,o.C_SPORT AS OJSportOsztaly
|
||||
,o.C_AJPROGRAM AS OJAranyJanosProgram
|
||||
,o.C_GYOGYPEDAGOGIAI AS OJGyogypedagogiai
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = ocs.ID AND o.TOROLT = 'F'
|
||||
AND o.C_ALTANEVID = ocs.C_TANEVID
|
||||
AND o.C_ALINTEZMENYID = ocs.C_INTEZMENYID
|
||||
WHERE ocs.ID = @pOsztalyCsoportId
|
||||
AND ocs.TOROLT = 'F'
|
||||
AND ocs.C_TANEVID = @tanevID
|
||||
AND ocs.C_INTEZMENYID = @intezmenyId
|
||||
|
||||
-- Osztály csoportok
|
||||
SELECT DISTINCT
|
||||
ot.OsztCsopId AS CsoportId
|
||||
FROM #OrarendiOrak ot
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ot.OsztCsopId
|
||||
AND cs.TOROLT = 'F'
|
||||
|
||||
-- Alkalmazottak
|
||||
SELECT DISTINCT
|
||||
ot.TanarID AS TanarId
|
||||
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
|
||||
FROM #OrarendiOrak ot
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = ot.TanarID
|
||||
AND f.TOROLT = 'F'
|
||||
|
||||
-- Tanulók
|
||||
SELECT DISTINCT
|
||||
f.ID AS TanuloId
|
||||
,f.C_NYOMTATASINEV AS TanuloNeve
|
||||
,f.C_OKTATASIAZONOSITO AS TanuloOktAzon
|
||||
FROM #OrarendiOrak ot
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = ot.OsztCsopId
|
||||
AND tcs.C_TANEVID = @tanevID
|
||||
AND tcs.TOROLT = 'F'
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
|
||||
AND f.TOROLT = 'F'
|
||||
|
||||
END
|
||||
ELSE
|
||||
IF @pTanarId IS NOT NULL
|
||||
-- Alkalmazottak
|
||||
SELECT DISTINCT
|
||||
orak.TanarID AS TanarId
|
||||
,f.C_OKTATASIAZONOSITO AS TanarOktAzon
|
||||
,mua.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
||||
FROM #OrarendiOrak orak
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = orak.TanarID
|
||||
AND f.TOROLT = 'F'
|
||||
INNER JOIN T_MUNKAUGYIADATOK_OSSZES mua ON mua.C_ALKALMAZOTTID = orak.TanarID
|
||||
AND mua.TOROLT = 'F'
|
||||
|
||||
ELSE
|
||||
IF @pTeremId IS NOT NULL
|
||||
SELECT
|
||||
t.ID AS TeremId
|
||||
,t.C_MUKODESIHELYID AS FeladatEllatasiHelyId
|
||||
FROM T_TEREM_OSSZES t
|
||||
WHERE t.ID = @pTeremId
|
||||
AND t.TOROLT = 'F'
|
||||
|
||||
END
|
||||
GO
|
||||
+1937
File diff suppressed because it is too large
Load Diff
+110
@@ -0,0 +1,110 @@
|
||||
-- =============================================
|
||||
-- Description: <Előszedjük a tanuló értékeléseket a megadott paraméterek alapján>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS uspGetSzamonkeresElorejelzesDetailDataSet
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetSzamonkeresElorejelzesDetailDataSet
|
||||
@IntezmenyId int
|
||||
,@TanevId int
|
||||
,@pDatum datetime
|
||||
,@pOraGroupId int
|
||||
,@pOsztalyCsoportId int
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
|
||||
|
||||
CREATE TABLE #OsztalyCsoport (Id int PRIMARY KEY)
|
||||
|
||||
INSERT INTO #OsztalyCsoport (Id)
|
||||
SELECT ID
|
||||
FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate (@pOsztalyCsoportId, @pDatum, @pDatum)
|
||||
|
||||
CREATE TABLE #Tanulo (Id int PRIMARY KEY)
|
||||
|
||||
INSERT INTO #Tanulo (Id)
|
||||
SELECT tcs.C_TANULOID
|
||||
FROM T_TANULOCSOPORT tcs
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND (tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM > @pDatum OR tcs.C_KILEPESDATUM IS NULL))
|
||||
|
||||
CREATE TABLE #Szamonkeresek (SzamonkeresId int PRIMARY KEY, OsztalyCsoportId int, Letszam int, ErintettTanulokSzama int)
|
||||
|
||||
|
||||
CREATE TABLE #NaptariNap (
|
||||
Datum datetime
|
||||
,OsztalyCsoportId int
|
||||
,IsEgyediNap char(1) COLLATE database_default
|
||||
,PRIMARY KEY (Datum, OsztalyCsoportId)
|
||||
)
|
||||
INSERT INTO #NaptariNap
|
||||
SELECT
|
||||
tr.Datum
|
||||
,tr.OsztalyId
|
||||
,ISNULL(tro.IsEgyediNap, tr.IsEgyediNap) AS IsEgyediNap
|
||||
FROM (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocs.ID AS OsztalyId
|
||||
,'F' as IsEgyediNap
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = @TanevId AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE nn.C_TANEVID = @TanevId
|
||||
AND nn.TOROLT = 'F'
|
||||
AND nn.C_ORARENDINAP = 'T'
|
||||
) tr
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocstr.C_OSZTALYCSOPORTID AS OsztalyId
|
||||
,tr.C_EGYEDINAP AS IsEgyediNap
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = ocstr.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
INNER JOIN T_NAPTIPUS_OSSZES nt ON nt.ID = tr.C_NAPTIPUSA AND nt.C_ALTANEVID = tr.C_TANEVID AND nt.TOROLT = 'F'
|
||||
WHERE nn.C_TANEVID = @TanevId
|
||||
AND nn.TOROLT = 'F'
|
||||
AND tr.C_ORARENDINAP = 'T'
|
||||
) tro ON tr.Datum = tro.Datum AND tr.OsztalyId = tro.OsztalyId
|
||||
|
||||
|
||||
INSERT INTO #Szamonkeresek (SzamonkeresId, OsztalyCsoportId, Letszam, ErintettTanulokSzama)
|
||||
SELECT szk.ID AS SzamonkeresId, ocs.Id AS OsztalyCsoportId, COUNT(1) AS Letszam, COUNT(t.id) AS ErintettTanulokSzama
|
||||
FROM T_SZAMONKERESELOREJELZES szk
|
||||
INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = szk.C_ORARENDIORAGROUPID AND szk.C_SZAMONKERESDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND szk.C_SZAMONKERESDATUMA <= oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F'
|
||||
INNER JOIN #NaptariNap nn ON nn.IsEgyediNap = oo.C_EGYEDINAP AND nn.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND nn.Datum = szk.C_SZAMONKERESDATUMA
|
||||
INNER JOIN #OsztalyCsoport ocs ON ocs.Id = oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID AND (tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM > @pDatum OR tcs.C_KILEPESDATUM IS NULL))
|
||||
LEFT JOIN #Tanulo t ON t.id = tcs.C_TANULOID
|
||||
WHERE szk.C_SZAMONKERESDATUMA = @pDatum /* + szűrés*/
|
||||
GROUP BY szk.ID, ocs.Id
|
||||
|
||||
SELECT
|
||||
sze.ID AS ID
|
||||
,oo.C_ORASZAM as Oraszam
|
||||
,targy.C_NEV as Tantargy
|
||||
,ISNULL(helyettestanar.C_NYOMTATASINEV, tanar.C_NYOMTATASINEV) as Tanar
|
||||
,dib.C_NAME as SzamonkeresMod
|
||||
,rogzito.C_NYOMTATASINEV as RogzitoTanar
|
||||
,ocs.C_NEV as Osztaly
|
||||
,sze.C_ROGZITESDATUMA as RogzitesDatum
|
||||
,sze.C_SZAMONKERESMEGNEVEZES as SzamonkeresMegnevezes
|
||||
,sze.C_SZAMONKERESDATUMA as SzamonkeresDatum
|
||||
,CAST(temp.ErintettTanulokSzama AS nvarchar(20)) + ' / '+ CAST(temp.Letszam AS nvarchar(20)) + ' tanuló' as TanulokSzama
|
||||
,IIF(@pOraGroupId = sze.C_ORARENDIORAGROUPID, 'T', 'F') as Torolheto
|
||||
FROM #Szamonkeresek temp
|
||||
INNER JOIN T_SZAMONKERESELOREJELZES sze ON sze.ID = temp.SzamonkeresId
|
||||
INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = sze.C_ORARENDIORAGROUPID AND sze.C_SZAMONKERESDATUMA between oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F'
|
||||
INNER JOIN #NaptariNap nn ON nn.IsEgyediNap = oo.C_EGYEDINAP AND nn.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND nn.Datum = sze.C_SZAMONKERESDATUMA
|
||||
INNER JOIN T_TANTARGY targy ON targy.ID = oo.C_TANTARGYID AND targy.TOROLT = 'F'
|
||||
INNER JOIN T_FELHASZNALO tanar ON tanar.ID = oo.C_TANARID AND tanar.TOROLT = 'F'
|
||||
INNER JOIN T_FELHASZNALO rogzito ON rogzito.ID = sze.C_ROGZITOID AND rogzito.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = oo.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F'
|
||||
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID = sze.C_SZAMONKERESMODID AND dib.C_INTEZMENYID = sze.C_INTEZMENYID AND dib.C_TANEVID = sze.C_TANEVID AND dib.C_TYPE = 'ErtekelesMod'
|
||||
LEFT JOIN T_HELYETTESITESIIDOSZAK helyettes ON helyettes.C_HELYETTESITETTORARENDID = oo.ID AND helyettes.C_HELYETTESITESNAPJA = sze.C_SZAMONKERESDATUMA AND helyettes.TOROLT = 'F'
|
||||
LEFT JOIN T_FELHASZNALO helyettestanar ON helyettestanar.ID = helyettes.C_HELYETTESTANAROKID AND helyettestanar.TOROLT = 'F'
|
||||
WHERE sze.C_SZAMONKERESDATUMA = @pDatum AND sze.C_INTEZMENYID = @IntezmenyId AND sze.C_TANEVID = @TanevId
|
||||
END
|
||||
GO
|
||||
+444
@@ -0,0 +1,444 @@
|
||||
DROP PROCEDURE IF EXISTS uspGetTanoranKivuliNaplo
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetTanoranKivuliNaplo
|
||||
@tanevId int
|
||||
,@intezmenyId int
|
||||
,@csoportId int
|
||||
,@iskolaErdekuSzamit bit
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@datum date = GETDATE()
|
||||
,@letszam int
|
||||
|
||||
CREATE TABLE #students (
|
||||
ID int
|
||||
,Osztaly nvarchar (max)
|
||||
,OsztalyId int
|
||||
,BelepesDatum datetime
|
||||
)
|
||||
|
||||
CREATE TABLE #OraSorszam (
|
||||
TanitasioraId int
|
||||
,OraSorszam nvarchar (100)
|
||||
)
|
||||
|
||||
DECLARE @TanuloCimTable TABLE (
|
||||
FelhasznaloId int
|
||||
,Cim nvarchar (max)
|
||||
,Cimtipusa nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @GondViseloCimTable TABLE (
|
||||
GondviseloId int
|
||||
,Cim nvarchar (max)
|
||||
,Cimtipusa nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @EmailCimTableTemp TABLE (
|
||||
FelhasznaloId int
|
||||
,EmailCim nvarchar (max)
|
||||
,GondviseloId int
|
||||
)
|
||||
|
||||
DECLARE @EmailCimTanuloTable TABLE (
|
||||
FelhasznaloId int
|
||||
,EmailCim nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @EmailCimGondviseloTable TABLE (
|
||||
GondviseloId int
|
||||
,EmailCim nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @TelefonTableTemp TABLE (
|
||||
FelhasznaloId int
|
||||
,Telefon nvarchar (max)
|
||||
,GondviseloId int
|
||||
)
|
||||
|
||||
DECLARE @TanuloTelefonTable TABLE (
|
||||
FelhasznaloId int
|
||||
,Telefon nvarchar (max)
|
||||
)
|
||||
|
||||
DECLARE @GondviseloTelefonTable TABLE (
|
||||
GondviseloId int
|
||||
,Telefon nvarchar (max)
|
||||
)
|
||||
|
||||
SELECT
|
||||
@letszam = COUNT(tcs.C_TANULOID)
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @csoportId
|
||||
AND tcs.TOROLT='F'
|
||||
|
||||
--Fejlecoldal (Fejléc)
|
||||
SELECT
|
||||
ia.C_NEV AS IntezmenyNev
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCim
|
||||
,ia.C_OMKOD AS OMKOD
|
||||
,ia.C_IGAZGATONEVE AS IntezmenyVezeto
|
||||
,ocs.C_NEV AS Csoport
|
||||
,ocs.ID AS CsoportId
|
||||
,ISNULL(f.C_NYOMTATASINEV,'-') AS CsoportVezeto
|
||||
,ISNULL(cs.C_CSOPORTNAPLOLEIRAS,'-') AS CsoportNaploLeiras
|
||||
,dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOMEGNYITASA) AS Megnyitas
|
||||
,ISNULL(dbo.fnGetDokumentumDatumFormatum(cs.C_CSOPORTNAPLOZARASA),'-') AS Lezaras
|
||||
,t.C_NEV AS Tanev
|
||||
,cs.C_CSOPORTNAPLOLEIRAS AS Megjegyzes
|
||||
,f.ID AS CsoportVezetoId
|
||||
,ISNULL(ocs.C_EVFOLYAMTIPUSA, 1296) AS EvfolyamTipusa -- 1296 = Na
|
||||
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
|
||||
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
|
||||
,ocs.C_VEGZOSEVFOLYAM AS CSJVegzosEvfolyamu
|
||||
,cs.C_TIPUSA AS 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
|
||||
INNER JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.ID = cs.C_CSOPORTVEZETOID
|
||||
INNER JOIN T_TANEV_OSSZES t ON t.ID = ia.C_TANEVID
|
||||
WHERE ia.C_TANEVID = @tanevid
|
||||
AND ocs.ID = @csoportId
|
||||
|
||||
INSERT INTO #students (
|
||||
ID
|
||||
,Osztaly
|
||||
,OsztalyId
|
||||
,BelepesDatum
|
||||
)
|
||||
SELECT
|
||||
TanuloId
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztaly(TanuloId) AS Osztaly
|
||||
,dbo.fnGetDokumentumTanuloAktualisOsztalyId(TanuloId) AS OsztalyId
|
||||
,BelepesDatum AS BelepesDatum
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @csoportId, 'T')
|
||||
|
||||
--Osztaly (Csoport tanulóinak osztályai)
|
||||
SELECT
|
||||
COUNT(Id) AS Tanulo
|
||||
,Osztaly
|
||||
,OsztalyId
|
||||
FROM #students
|
||||
GROUP BY
|
||||
Osztaly
|
||||
,OsztalyId
|
||||
|
||||
--Napló
|
||||
INSERT INTO #OraSorszam (
|
||||
TanitasioraId
|
||||
,OraSorszam
|
||||
)
|
||||
EXEC sp_GetOraSorszamByOsztaly
|
||||
@osztalyCsoportId = @csoportId
|
||||
,@datum = @datum
|
||||
,@intezmenyId = @intezmenyId
|
||||
,@tanevId = @tanevId
|
||||
|
||||
SELECT
|
||||
dbo.fnGetDokumentumDatumFormatum(tao.C_ORAKEZDETE) + CONVERT(varchar(5), tao.C_ORAKEZDETE, 108) + '-' + CONVERT(varchar(5), tao.C_ORAVEGE, 108) AS Datum
|
||||
,IIF(tantargy.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN
|
||||
+ ' (' + tantargy.C_NEV + ')', tantargy.C_NEV) AS TantargyNev
|
||||
,tao.C_TANTARGYID AS TantargyId
|
||||
,tao.C_MEGTARTOTT AS Megtartott
|
||||
,IIF(C_MEGTARTOTT = 'F', 'Elmaradt', tao.C_TEMA) AS Tema
|
||||
,@letszam - ISNULL(hianyzo.Hianyzok, 0) AS Letszam
|
||||
,IIF(C_MEGTARTOTT = 'F', '-', f.C_NYOMTATASINEV) AS Pedagogus
|
||||
,Terem.C_NEV AS TeremNev
|
||||
,ISNULL(Oraszam.OraSorszam + '.', '-') AS OraSorszam
|
||||
,tao.C_ORAKEZDETE AS OraKezdete
|
||||
INTO #megtartottOrak
|
||||
FROM T_TANITASIORA_OSSZES tao
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tm.C_TANITASIORAKID AS Tanitasiora
|
||||
,COUNT(tm.C_ORATANULOIID) AS Hianyzok
|
||||
FROM T_TANULOMULASZTAS_OSSZES tm
|
||||
WHERE tm.torolt = 'F'
|
||||
AND C_TIPUS IN (1499, 1500)
|
||||
GROUP BY tm.C_TANITASIORAKID
|
||||
) hianyzo ON hianyzo.Tanitasiora = tao.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON f.id = tao.C_ORATULAJDONOSID
|
||||
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.Id = tao.C_TANTARGYID
|
||||
LEFT JOIN T_TEREM_OSSZES Terem ON Terem.Id = tao.C_TEREMID
|
||||
LEFT JOIN #OraSorszam Oraszam ON Oraszam.TanitasioraId = tao.Id
|
||||
WHERE tao.C_OSZTALYCSOPORTID = @csoportId
|
||||
AND tao.TOROLT='F'
|
||||
|
||||
SELECT
|
||||
Datum
|
||||
,TantargyNev
|
||||
,TantargyId
|
||||
,Megtartott
|
||||
,Tema
|
||||
,Letszam
|
||||
,Pedagogus
|
||||
,TeremNev
|
||||
,OraSorszam
|
||||
,OraKezdete
|
||||
FROM #megtartottOrak
|
||||
ORDER BY OraKezdete
|
||||
|
||||
/*TANULÓ adatai*/
|
||||
SELECT DISTINCT
|
||||
ta.TanuloId
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.AktualisOsztaly Osztalya
|
||||
,ta.BelepesDatum
|
||||
FROM fnGetDokumentumTanulokAdatai(@tanevId, @csoportId) ta
|
||||
ORDER BY TanuloNeve
|
||||
|
||||
/*TANULÓ elérhetőségei */
|
||||
INSERT INTO @TanuloCimTable (
|
||||
FelhasznaloId
|
||||
,Cim
|
||||
,Cimtipusa
|
||||
)
|
||||
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
|
||||
AND cimTipusa.C_TANEVID = @tanevId
|
||||
|
||||
INSERT INTO @GondViseloCimTable (
|
||||
GondviseloId
|
||||
,Cim
|
||||
,Cimtipusa
|
||||
)
|
||||
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
|
||||
AND cimTipusa.C_TANEVID = @tanevId
|
||||
|
||||
INSERT INTO @EmailCimTableTemp (
|
||||
FelhasznaloId
|
||||
,EmailCim
|
||||
,GondviseloId
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @EmailCimTanuloTable (
|
||||
FelhasznaloId
|
||||
,EmailCim
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @EmailCimGondviseloTable (
|
||||
GondviseloId
|
||||
,EmailCim
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @TelefonTableTemp (
|
||||
FelhasznaloId
|
||||
,Telefon
|
||||
,GondviseloId
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @TanuloTelefonTable (
|
||||
FelhasznaloId
|
||||
,Telefon
|
||||
)
|
||||
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
|
||||
|
||||
INSERT INTO @GondviseloTelefonTable (
|
||||
GondviseloId
|
||||
,Telefon
|
||||
)
|
||||
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 AS tanuloid
|
||||
,cim.Cimtipusa AS cimtipus
|
||||
,cim.Cim
|
||||
,email.EmailCim AS email
|
||||
,telefon.Telefon AS 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
|
||||
|
||||
/*gondviselő elérhetőségei */
|
||||
SELECT DISTINCT
|
||||
Gondviselok.TanuloId AS TanuloId
|
||||
,Gondviselok.GondviseloNev + ' (' + RokonsagiFok.C_NAME + ')' AS C_NEV
|
||||
,cim.Cimtipusa AS C_CIMTIPUSA
|
||||
,cim.cim AS C_OSSZETETTCIM
|
||||
,telefon.telefon AS C_TELEFONSZAM
|
||||
,email.emailcim AS C_EMAILCIM
|
||||
FROM fnGetDokumentumGondviselok (@csoportId, @tanevId, 'F', 'T') Gondviselok
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES RokonsagiFok ON RokonsagiFok.ID = Gondviselok.RokonsagifokId AND RokonsagiFok.C_TANEVID = @tanevId
|
||||
LEFT JOIN @EmailCimGondviseloTable email ON email.GondviseloId = Gondviselok.GondviseloId
|
||||
LEFT JOIN @GondviseloTelefonTable telefon ON telefon.GondviseloId = Gondviselok.GondviseloId
|
||||
LEFT JOIN @GondViseloCimTable cim ON cim.GondviseloId = Gondviselok.GondviseloId
|
||||
ORDER BY cim.Cimtipusa
|
||||
|
||||
--megtartott órák száma
|
||||
SELECT
|
||||
COUNT(mo.TantargyId) AS TantargyOraszam
|
||||
,mo.Tantargynev AS TantargyNev
|
||||
INTO #megtartottOrakSzama
|
||||
FROM #megtartottOrak mo
|
||||
WHERE mo.Megtartott = 'T'
|
||||
GROUP BY
|
||||
mo.TantargyId
|
||||
,mo.TantargyNev
|
||||
|
||||
SELECT DISTINCT
|
||||
SUM(tmp.TantargyOraszam) AS OsszesTantargySzam
|
||||
,STUFF(
|
||||
(
|
||||
SELECT DISTINCT
|
||||
', ' + btmp.TantargyNev + '(' + CAST(btmp.TantargyOraszam AS nvarchar (max)) + ')'
|
||||
FROM #megtartottOrakSzama btmp
|
||||
FOR XML PATH(''), TYPE
|
||||
).value('.', 'NVARCHAR(MAX)'), 1 , 2, ''
|
||||
) AS Tantargyak
|
||||
FROM #megtartottOrakSzama tmp
|
||||
|
||||
-- Csoport tanárai
|
||||
SELECT
|
||||
targy.C_NEV AS TargyNev
|
||||
,tanar.C_NYOMTATASINEV AS TanarNev
|
||||
,targykategoria.C_ORDER
|
||||
,tanar.ID TanarId
|
||||
,tanar.C_OKTATASIAZONOSITO AS 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 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
|
||||
|
||||
END
|
||||
GO
|
||||
+336
@@ -0,0 +1,336 @@
|
||||
-- =============================================
|
||||
-- Description: <Előszedjük a tanuló értékeléseket a megadott paraméterek alapján>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS uspGetTanuloErtekelesListDataSet
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetTanuloErtekelesListDataSet
|
||||
@pTanevId int
|
||||
,@pId int = NULL
|
||||
,@pTanuloId int = NULL
|
||||
,@pOsztalyCsoportId int = NULL
|
||||
,@pCsoportTipusId int = NULL
|
||||
,@pTantargyId int = NULL
|
||||
,@pErtekeloId int = NULL
|
||||
,@pOsztalyzatId int = NULL
|
||||
,@pErtekelesModId int = NULL
|
||||
,@pTipusId int = NULL
|
||||
,@pDatumTol datetime = NULL
|
||||
,@pDatumIg datetime = NULL
|
||||
,@pRogzitesDatumTol datetime = NULL
|
||||
,@pRogzitesDatumIg datetime = NULL
|
||||
,@pErtekelesSzoveg nvarchar(max) = NULL
|
||||
,@pErtekelesTema nvarchar(255) = NULL
|
||||
,@pKellKapcsolodoCsoportok char = 'F'
|
||||
,@pFeladatKategoriaId int = NULL
|
||||
,@pFeladatEllatasiHelyId int = NULL
|
||||
,@pEgyszerAdhatoTanuloErtekelesTipusIdListString nvarchar(255) = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatEnumId int = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatSzoveg nvarchar(255) = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatSzovegRovidNev nvarchar(3) = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatId int = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatTema nvarchar(255) = NULL
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@sql nvarchar(max)
|
||||
,@preSelectSql nvarchar(max) = ''
|
||||
,@selectSql nvarchar(max)
|
||||
,@joinSql nvarchar(max)
|
||||
,@whereSql nvarchar(max)
|
||||
,@postSelectSql nvarchar(max) = ''
|
||||
|
||||
SET @selectSql = N'
|
||||
SELECT DISTINCT
|
||||
ert.ID AS ID
|
||||
,ert.C_DATUM AS Datum
|
||||
,ert.C_ROGZITESDATUM AS RogzitesDatum
|
||||
,ert.C_TIPUSID AS TipusId
|
||||
,ert.C_ISERTESITESELKULDVE AS IsErtesitesElkuldve
|
||||
,ert.C_ERTEKELESMODID AS ErtekelesModId
|
||||
,ert.C_ERTEKELESTEMA AS ErtekelesTema
|
||||
,ert.C_ERTEKELESOSZTALYZATID AS ErtekelesOsztalyzatId
|
||||
,ert.C_ERTEKELESSZOVEG AS ErtekelesSzoveg
|
||||
,ert.C_ERTEKELESSZAZALEK AS ErtekelesSzazalek
|
||||
,ert.C_ISMAGATARTASSZORGALOM AS IsMagatartasSzorgalom
|
||||
,ert.C_MAGATARTASOSZTALYZATID AS MagatartasOsztalyzatId
|
||||
,ert.C_MAGATARTASSZOVEG AS MagatartasSzoveg
|
||||
,ert.C_MAGATARTASERTEKID AS MagatartasErtekId
|
||||
,ert.C_SZORGALOMOSZTALYZATID AS SzorgalomOsztalyzatId
|
||||
,ert.C_SZORGALOMSZOVEG AS SzorgalomSzoveg
|
||||
,ert.C_SZORGALOMERTEKID AS SzorgalomErtekId
|
||||
,ert.CREATED AS Created
|
||||
,ISNULL(suly.C_SULY, 100) AS ErtekelesSuly
|
||||
,tantargy.ID AS TantargyId
|
||||
,ISNULL(tantargy.C_NEV, ''Magatartás/Szorgalom'') AS TantargyNev
|
||||
,tantargy.C_TARGYKATEGORIA AS TantargyKategoriaId
|
||||
,fotargy.ID AS FotargyId
|
||||
,fotargy.C_NEV AS FotargyNev
|
||||
,fotargy.C_TARGYKATEGORIA AS FotargyTantargyKategoriaId
|
||||
,tanulo.ID AS TanuloId
|
||||
,tanulo.C_NYOMTATASINEV AS TanuloNev
|
||||
,IIF(tanulo.C_NEVSORREND = ''T'', --
|
||||
tanulo.C_UTONEV + '' '' + tanulo.C_VEZETEKNEV, --
|
||||
tanulo.C_VEZETEKNEV + '' '' + tanulo.C_UTONEV
|
||||
) AS TanuloNevElotagNelkul
|
||||
,tanar.ID AS ErtekeloId
|
||||
,tanar.C_NYOMTATASINEV AS ErtekeloNyomtatasiNev
|
||||
,IIF(tanar.C_NEVSORREND = ''T'', --
|
||||
tanar.C_UTONEV + '' '' + tanar.C_VEZETEKNEV, --
|
||||
tanar.C_VEZETEKNEV + '' '' + tanar.C_UTONEV
|
||||
) AS ErtekeloNyomtatasiNevElotagNelkul
|
||||
,ocs.C_NEV AS OsztalyCsoportNev
|
||||
,rogziteskoriTanuloOsztaly.ID AS RogziteskoriTanuloOsztalyId
|
||||
,rogziteskoriTanuloOsztaly.C_EVFOLYAMTIPUSA AS RogziteskoriTanuloOsztalyEvfolyamTipusId
|
||||
FROM T_TANULOERTEKELES_OSSZES ert'
|
||||
|
||||
SET @joinSql = N'
|
||||
LEFT JOIN T_TANARIATLAGSULY_OSSZES suly ON suly.C_TANEVID = ert.C_TANEVID
|
||||
AND suly.TOROLT = ''F''
|
||||
AND suly.C_ERTEKELESMODID = ert.C_ERTEKELESMODID
|
||||
LEFT JOIN T_TANTARGY_OSSZES tantargy ON tantargy.C_TANEVID = ert.C_TANEVID
|
||||
AND tantargy.TOROLT = ''F''
|
||||
AND tantargy.ID = ert.C_TANTARGYID
|
||||
LEFT JOIN T_TANTARGY_OSSZES fotargy ON fotargy.C_TANEVID = ert.C_TANEVID
|
||||
AND fotargy.TOROLT = ''F''
|
||||
AND fotargy.ID = tantargy.C_FOTARGYID
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES rogziteskoriTanuloOsztaly ON rogziteskoriTanuloOsztaly.C_TANEVID = ert.C_TANEVID
|
||||
AND rogziteskoriTanuloOsztaly.TOROLT = ''F''
|
||||
AND rogziteskoriTanuloOsztaly.ID = ert.C_ROGZITESKORITANULOOSZTALYID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.C_TANEVID = ert.C_TANEVID
|
||||
AND tanulo.TOROLT = ''F''
|
||||
AND tanulo.ID = ert.C_TANULOID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanar ON tanar.C_TANEVID = ert.C_TANEVID
|
||||
AND tanar.TOROLT = ''F''
|
||||
AND tanar.ID = ert.C_ERTEKELOID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = ert.C_TANEVID
|
||||
AND ocs.TOROLT = ''F''
|
||||
AND ocs.ID = ert.C_OSZTALYCSOPORTID'
|
||||
|
||||
SET @whereSql = N'
|
||||
WHERE ert.C_TANEVID = @pTanevId
|
||||
AND ert.TOROLT = ''F'''
|
||||
|
||||
IF @pId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ert.ID = @pId'
|
||||
END
|
||||
|
||||
IF @pTanuloId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ert.C_TANULOID = @pTanuloId'
|
||||
END
|
||||
|
||||
IF @pOsztalyCsoportId IS NOT NULL BEGIN
|
||||
|
||||
SET @preSelectSql += N'
|
||||
CREATE TABLE #OsztalyCsoportIdList(
|
||||
ID int PRIMARY KEY
|
||||
)
|
||||
|
||||
INSERT INTO #OsztalyCsoportIdList (ID)'
|
||||
|
||||
IF(@pKellKapcsolodoCsoportok = 'T') BEGIN
|
||||
|
||||
SET @preSelectSql += N'
|
||||
SELECT ID
|
||||
FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyCsoportId)'
|
||||
END
|
||||
ELSE BEGIN
|
||||
SET @preSelectSql += N'
|
||||
VALUES (@pOsztalyCsoportId)
|
||||
'
|
||||
END
|
||||
|
||||
SET @joinSql += N'
|
||||
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANEVID = ert.C_TANEVID
|
||||
AND tcs.TOROLT = ''F''
|
||||
AND tcs.C_TANULOID = tanulo.ID
|
||||
AND tcs.C_BELEPESDATUM <= GETDATE()
|
||||
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM >= GETDATE())'
|
||||
|
||||
SET @whereSql += N'
|
||||
AND ert.C_OSZTALYCSOPORTID IN (SELECT ID FROM #OsztalyCsoportIdList)
|
||||
AND EXISTS (
|
||||
SELECT 1
|
||||
FROM
|
||||
T_TANULOCSOPORT_OSSZES tcs
|
||||
WHERE
|
||||
tcs.C_TANEVID = ert.C_TANEVID
|
||||
AND tcs.TOROLT = ''F''
|
||||
AND tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND tcs.C_TANULOID = ert.C_TANULOID
|
||||
)'
|
||||
|
||||
SET @postSelectSql += N'
|
||||
DROP TABLE IF EXISTS #OsztalyCsoportIdList'
|
||||
END
|
||||
|
||||
IF @pCsoportTipusId IS NOT NULL BEGIN
|
||||
SET @joinSql += N'
|
||||
LEFT JOIN T_CSOPORT_OSSZES csoport ON csoport.C_ALTANEVID = ert.C_TANEVID
|
||||
AND csoport.TOROLT = ''F''
|
||||
AND csoport.ID = ocs.ID'
|
||||
|
||||
SET @whereSql += N'
|
||||
AND csoport.C_TIPUSA = @pCsoportTipusId'
|
||||
END
|
||||
|
||||
IF @pTantargyId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND tantargy.ID = @pTantargyId'
|
||||
END
|
||||
|
||||
IF @pErtekeloId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND tanar.ID = @pErtekeloId'
|
||||
END
|
||||
|
||||
IF @pOsztalyzatId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND (ert.C_ERTEKELESOSZTALYZATID = @pOsztalyzatId OR
|
||||
ert.C_MAGATARTASOSZTALYZATID = @pOsztalyzatId OR
|
||||
ert.C_SZORGALOMOSZTALYZATID = @pOsztalyzatId)'
|
||||
END
|
||||
|
||||
IF @pErtekelesModId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ert.C_ERTEKELESMODID = @pErtekelesModId'
|
||||
END
|
||||
|
||||
IF @pTipusId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ert.C_TIPUSID = @pTipusId'
|
||||
END
|
||||
|
||||
IF @pDatumTol IS NOT NULL BEGIN
|
||||
--NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
|
||||
SET @whereSql += N'
|
||||
AND ert.C_DATUM >= @pDatumTol'
|
||||
END
|
||||
|
||||
IF @pDatumIg IS NOT NULL BEGIN
|
||||
--NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
|
||||
SET @whereSql += N'
|
||||
AND ert.C_DATUM <= @pDatumIg'
|
||||
END
|
||||
|
||||
IF @pRogzitesDatumTol IS NOT NULL
|
||||
BEGIN
|
||||
--NOTE: Ide az adott nap 00:00:00 időponttal fog bejönni.
|
||||
SET @whereSql += N'
|
||||
AND ert.C_ROGZITESDATUM >= @pRogzitesDatumTol'
|
||||
END
|
||||
|
||||
IF @pRogzitesDatumIg IS NOT NULL BEGIN
|
||||
--NOTE: Ide az adott nap 23:59:59 időponttal fog bejönni.
|
||||
SET @whereSql += N'
|
||||
AND ert.C_ROGZITESDATUM <= @pRogzitesDatumIg'
|
||||
END
|
||||
|
||||
IF @pErtekelesSzoveg IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND (ert.C_ERTEKELESSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
|
||||
ert.C_MAGATARTASSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'' OR
|
||||
ert.C_SZORGALOMSZOVEG LIKE ''%'' + @pErtekelesSzoveg + ''%'')'
|
||||
END
|
||||
|
||||
IF @pErtekelesTema IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ert.C_ERTEKELESTEMA LIKE ''%'' + @pErtekelesTema + ''%'''
|
||||
END
|
||||
|
||||
IF @pFeladatKategoriaId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ocs.C_FELADATKATEGORIAID = @pFeladatKategoriaId'
|
||||
END
|
||||
|
||||
IF @pFeladatEllatasiHelyId IS NOT NULL BEGIN
|
||||
SET @whereSql += N'
|
||||
AND ocs.C_FELADATELLATASIHELYID = @pFeladatEllatasiHelyId'
|
||||
END
|
||||
|
||||
IF (@pSpecialisErtekelesOsztalyzatEnumId) IS NOT NULL BEGIN
|
||||
IF (@pSpecialisErtekelesOsztalyzatEnumId = 1/*NOTE: NemIrt*/) BEGIN
|
||||
SET @whereSql += N'
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
AND (ert.C_TIPUSID NOT IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEG),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzoveg) AND
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEGROVIDNEV),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzovegRovidNev))'
|
||||
END
|
||||
|
||||
IF (@pSpecialisErtekelesOsztalyzatEnumId = 2/*NOTE: Dicseret*/ OR
|
||||
@pSpecialisErtekelesOsztalyzatEnumId = 3/*NOTE: Kituno*/) BEGIN
|
||||
SET @whereSql += N'
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
AND (ert.C_TIPUSID IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
|
||||
ert.C_ERTEKELESOSZTALYZATID = @pSpecialisErtekelesOsztalyzatId AND
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESTEMA),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatTema))'
|
||||
END
|
||||
|
||||
IF (@pSpecialisErtekelesOsztalyzatEnumId = 4/*NOTE: Mentesitve*/) BEGIN
|
||||
SET @whereSql += N'
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
AND (ert.C_TIPUSID IN (' + @pEgyszerAdhatoTanuloErtekelesTipusIdListString + ') AND
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEG),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzoveg) AND
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ert.C_ERTEKELESSZOVEGROVIDNEV),CHAR(160),CHAR(32)),CHAR(32),''(¤¤)''),''¤)(¤'',''''),''(¤¤)'',CHAR(32)))) = LOWER(@pSpecialisErtekelesOsztalyzatSzovegRovidNev))'
|
||||
END
|
||||
END
|
||||
|
||||
SET @sql = @preSelectSql + @selectSql + @joinSql + @whereSql + @postSelectSql
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@pTanevId int
|
||||
,@pId int = NULL
|
||||
,@pTanuloId int = NULL
|
||||
,@pOsztalyCsoportId int = NULL
|
||||
,@pCsoportTipusId int = NULL
|
||||
,@pTantargyId int = NULL
|
||||
,@pErtekeloId int = NULL
|
||||
,@pOsztalyzatId int = NULL
|
||||
,@pErtekelesModId int = NULL
|
||||
,@pTipusId int = NULL
|
||||
,@pDatumTol datetime = NULL
|
||||
,@pDatumIg datetime = NULL
|
||||
,@pRogzitesDatumTol datetime = NULL
|
||||
,@pRogzitesDatumIg datetime = NULL
|
||||
,@pErtekelesSzoveg nvarchar(max) = NULL
|
||||
,@pErtekelesTema nvarchar(255) = NULL
|
||||
,@pFeladatKategoriaId int = NULL
|
||||
,@pFeladatEllatasiHelyId int = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatSzoveg nvarchar(255) = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatSzovegRovidNev nvarchar(3) = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatId int = NULL
|
||||
,@pSpecialisErtekelesOsztalyzatTema nvarchar(255) = NULL'
|
||||
,@pTanevId = @pTanevId
|
||||
,@pId = @pId
|
||||
,@pTanuloId = @pTanuloId
|
||||
,@pOsztalyCsoportId = @pOsztalyCsoportId
|
||||
,@pCsoportTipusId = @pCsoportTipusId
|
||||
,@pTantargyId = @pTantargyId
|
||||
,@pErtekeloId = @pErtekeloId
|
||||
,@pOsztalyzatId = @pOsztalyzatId
|
||||
,@pErtekelesModId = @pErtekelesModId
|
||||
,@pTipusId = @pTipusId
|
||||
,@pDatumTol = @pDatumTol
|
||||
,@pDatumIg = @pDatumIg
|
||||
,@pRogzitesDatumTol = @pRogzitesDatumTol
|
||||
,@pRogzitesDatumIg = @pRogzitesDatumIg
|
||||
,@pErtekelesSzoveg = @pErtekelesSzoveg
|
||||
,@pErtekelesTema = @pErtekelesTema
|
||||
,@pFeladatKategoriaId = @pFeladatKategoriaId
|
||||
,@pFeladatEllatasiHelyId = @pFeladatEllatasiHelyId
|
||||
,@pSpecialisErtekelesOsztalyzatSzoveg = @pSpecialisErtekelesOsztalyzatSzoveg
|
||||
,@pSpecialisErtekelesOsztalyzatSzovegRovidNev = @pSpecialisErtekelesOsztalyzatSzovegRovidNev
|
||||
,@pSpecialisErtekelesOsztalyzatId = @pSpecialisErtekelesOsztalyzatId
|
||||
,@pSpecialisErtekelesOsztalyzatTema = @pSpecialisErtekelesOsztalyzatTema
|
||||
|
||||
END
|
||||
GO
|
||||
|
||||
+200
@@ -0,0 +1,200 @@
|
||||
-- =============================================
|
||||
-- Description: Lekérdezzük a részletes hiányzási adatokat egy osztályra nézve.
|
||||
-- =============================================
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
DROP PROCEDURE IF EXISTS uspGetTanulokMulasztasaiKeseseiReszletes
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetTanulokMulasztasaiKeseseiReszletes
|
||||
@intezmenyId INT,
|
||||
@tanevId INT,
|
||||
@osztalyId INT,
|
||||
@elmeletGyakorlat BIT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@elmeletiOraPercben INT = 45
|
||||
,@gyakorlatiOraPercben INT = 45
|
||||
,@osztalyNev NVARCHAR(200)
|
||||
|
||||
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
|
||||
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
|
||||
WHERE
|
||||
o.TOROLT = 'F'
|
||||
AND i.TOROLT = 'F'
|
||||
AND ofo.TOROLT = 'F'
|
||||
AND ocs.ID = @osztalyId
|
||||
AND ocs.C_TANEVID = @tanevId
|
||||
|
||||
SELECT
|
||||
@osztalyNev = C_NEV
|
||||
FROM
|
||||
T_OSZTALYCSOPORT_OSSZES ocs
|
||||
WHERE
|
||||
ID = @osztalyId
|
||||
AND ocs.TOROLT = 'F'
|
||||
AND ocs.C_TANEVID = @tanevId
|
||||
|
||||
DECLARE @sql NVARCHAR(MAX) = ''
|
||||
|
||||
SET @sql +=
|
||||
'SELECT
|
||||
tcs.C_TANULOID TanuloId
|
||||
,C_SZULETESINEV TanuloNev
|
||||
,@osztalyNev OsztalyNev
|
||||
,@osztalyId OsztalyId'
|
||||
|
||||
IF @elmeletgyakorlat = 1
|
||||
BEGIN
|
||||
SET @sql +=
|
||||
',SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazolandoGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazoltGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazolatlanGyakorlati
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''F'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolandoGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''F'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazoltGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''F'' AND Gyakorlati = ''T'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolatlanGyakorlati
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolandoGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazoltGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolatlanGyakorlati
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolandoGyakorlatiPerc
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazoltGyakorlatiPerc
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolatlanGyakorlatiPerc
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben SzamitottKesesIgazolandoGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben SzamitottKesesIgazoltGyakorlati
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben SzamitottKesesIgazolatlanGyakorlati'
|
||||
|
||||
SET @sql +=
|
||||
',SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazolandoElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazoltElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazolatlanElmeleti
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''F'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolandoElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''F'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazoltElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''F'' AND Gyakorlati = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolatlanElmeleti
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolandoElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazoltElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolatlanElmeleti
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolandoElmeletiPerc
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazoltElmeletiPerc
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolatlanElmeletiPerc
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben SzamitottKesesIgazolandoElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben SzamitottKesesIgazoltElmeleti
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben SzamitottKesesIgazolatlanElmeleti'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @sql +=
|
||||
',SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' THEN 1 ELSE 0 END) TanoraiHianyzasIgazolando
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' THEN 1 ELSE 0 END) + ISNULL(h.[hozottIgazoltHianyzas], 0) TanoraiHianyzasIgazolt
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' THEN 1 ELSE 0 END) + ISNULL(h.[hozottIgazolatlanHianyzas], 0) TanoraiHianyzasIgazolatlan
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolando
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolt
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''F'' THEN 1 ELSE 0 END) TanoranKivuliHianyzasIgazolatlan
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolando
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolt
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN 1 ELSE 0 END) TanoraiKesesDarabszamIgazolatlan
|
||||
|
||||
,SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolandoPerc
|
||||
,SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazoltPerc
|
||||
,SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END) TanoraiKesesIgazolatlanPerc
|
||||
|
||||
,(SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben)
|
||||
+ (SUM(CASE WHEN Igazolt IS NULL AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben) SzamitottKesesIgazolando
|
||||
,(SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben)
|
||||
+ (SUM(CASE WHEN Igazolt =''T'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben) SzamitottKesesIgazolt
|
||||
,(SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''T'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@gyakorlatiOraPercben)
|
||||
+ SUM(CASE WHEN Igazolt =''F'' AND Tanorai = ''T'' AND Gyakorlati = ''F'' AND KesesPercben IS NOT NULL THEN KesesPercben ELSE 0 END)/@elmeletiOraPercben SzamitottKesesIgazolatlan
|
||||
'
|
||||
END
|
||||
|
||||
SET @sql +=
|
||||
',ISNULL(h.[hozottIgazolatlanHianyzas], 0) HozottIgazolatlanHianyzas
|
||||
,ISNULL(h.[hozottIgazolatlanKesesPerc], 0) HozottIgazolatlanKesesPerc
|
||||
,ISNULL(h.[hozottIgazoltHianyzas], 0) HozottIgazoltHianyzas
|
||||
,ISNULL(h.[hozottIgazoltHianyzasPerc], 0) HozottIgazoltHianyzasPerc
|
||||
|
||||
,SUM(CASE IgazolasTipusa WHEN 1530 THEN 1 ELSE 0 END) OrvosiIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 1531 THEN 1 ELSE 0 END) SzuloiIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 1532 THEN 1 ELSE 0 END) HivatalosTavolletIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 1533 THEN 1 ELSE 0 END) IskolaerdekuTavolletIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 6494 THEN 1 ELSE 0 END) SzolgaltatoiIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 6495 THEN 1 ELSE 0 END) IskolaiEngedelyIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 6967 THEN 1 ELSE 0 END) PalyavalasztasiCeluIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 6834 THEN 1 ELSE 0 END) KikeroIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 6853 THEN 1 ELSE 0 END) TappenzIgazolas
|
||||
,SUM(CASE IgazolasTipusa WHEN 1529 THEN 1 ELSE 0 END) EgyebIgazolas
|
||||
|
||||
FROM dbo.fnGetDokumentumMulasztasokOsztalyonkentReszletes(@tanevId, @osztalyId, @intezmenyId, DEFAULT, 0, DEFAULT, DEFAULT, 0) TanulokMulasztasai
|
||||
INNER JOIN T_TANTARGY_OSSZES Tantargy ON Tantargy.Id = TanulokMulasztasai.TantargyId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
C_TANULOID tanuloId
|
||||
,[C_HOZOTTIGAZOLATLANHIANYZAS] hozottIgazolatlanHianyzas
|
||||
,[C_HOZOTTIGAZOLATLANKESESPERCBE] hozottIgazolatlanKesesPerc
|
||||
,[C_HOZOTTIGAZOLTHIANYZAS] hozottIgazoltHianyzas
|
||||
,[C_HOZOTTIGAZOLTKESESPERCBEN] hozottIgazoltHianyzasPerc
|
||||
FROM
|
||||
T_TANULOTANUGYIADATOK_OSSZES ta
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID = ta.C_TANULOCSOPORTID
|
||||
WHERE
|
||||
tcs.TOROLT = ''F''
|
||||
AND ta.TOROLT = ''F''
|
||||
AND ta.C_TANEVID = @tanevId
|
||||
) h ON h.tanuloId = TanulokMulasztasai.TanuloId
|
||||
RIGHT OUTER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = TanulokMulasztasai.TanuloId
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
|
||||
WHERE
|
||||
tcs.C_TANEVID = @tanevId
|
||||
AND tcs.C_OSZTALYCSOPORTID = @osztalyId
|
||||
AND Tantargy.TOROLT = ''F''
|
||||
AND tcs.TOROLT = ''F''
|
||||
AND f.TOROLT = ''F''
|
||||
GROUP BY
|
||||
TanulokMulasztasai.TanuloId
|
||||
,tcs.C_TANULOID
|
||||
,C_SZULETESINEV
|
||||
,ISNULL(h.[hozottIgazolatlanHianyzas], 0)
|
||||
,ISNULL(h.[hozottIgazolatlanKesesPerc], 0)
|
||||
,ISNULL(h.[hozottIgazoltHianyzas], 0)
|
||||
,ISNULL(h.[hozottIgazoltHianyzasPerc], 0)
|
||||
ORDER BY C_SZULETESINEV'
|
||||
|
||||
EXEC sp_executesql @sql, N'
|
||||
@intezmenyId INT
|
||||
,@tanevId INT
|
||||
,@osztalyId INT
|
||||
,@elmeletiOraPercben INT
|
||||
,@gyakorlatiOraPercben INT
|
||||
,@osztalyNev NVARCHAR(200)'
|
||||
,@intezmenyId = @intezmenyId
|
||||
,@tanevId = @tanevId
|
||||
,@osztalyId = @osztalyId
|
||||
,@elmeletiOraPercben = @elmeletiOraPercben
|
||||
,@gyakorlatiOraPercben = @gyakorlatiOraPercben
|
||||
,@osztalyNev = @osztalyNev
|
||||
|
||||
END
|
||||
GO
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
-- =============================================
|
||||
-- Description: <Előszedjük a tanuló értékeléseket a megadott paraméterek alapján>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS uspGetTanulokSzamonkeresElorejelzesei
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspGetTanulokSzamonkeresElorejelzesei
|
||||
@IntezmenyId int
|
||||
,@TanevId int
|
||||
,@pDatum datetime
|
||||
,@pOraGroupId int
|
||||
,@pOsztalyCsoportId int
|
||||
,@pNapiSzamonkeresLimit int
|
||||
,@pErtekelesModokLimithez nvarchar(max)
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId)
|
||||
|
||||
CREATE TABLE #OsztalyCsoport (Id int PRIMARY KEY)
|
||||
|
||||
INSERT INTO #OsztalyCsoport (Id)
|
||||
SELECT ID
|
||||
FROM dbo.fnGetKapcsolodoOsztalycsoportokByDate (@pOsztalyCsoportId, @pDatum, @pDatum)
|
||||
|
||||
CREATE TABLE #Tanulo (Id int PRIMARY KEY, Nev nvarchar(300))
|
||||
|
||||
INSERT INTO #Tanulo (Id,Nev)
|
||||
SELECT fh.ID, fh.C_NYOMTATASINEV
|
||||
FROM T_TANULOCSOPORT tcs
|
||||
INNER JOIN T_FELHASZNALO fh ON fh.ID = tcs.C_TANULOID AND fh.TOROLT = 'F'
|
||||
WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND (tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM > @pDatum OR tcs.C_KILEPESDATUM IS NULL))
|
||||
|
||||
CREATE TABLE #TanuloSzamonkeresei (Id int PRIMARY KEY, Nev nvarchar(300), SzamonkeresekSzama int, OsztalyNev nvarchar(300))
|
||||
|
||||
|
||||
CREATE TABLE #NaptariNap (
|
||||
Datum datetime
|
||||
,OsztalyCsoportId int
|
||||
,IsEgyediNap char(1) COLLATE database_default
|
||||
,PRIMARY KEY (Datum, OsztalyCsoportId)
|
||||
)
|
||||
INSERT INTO #NaptariNap
|
||||
SELECT
|
||||
tr.Datum
|
||||
,tr.OsztalyId
|
||||
,ISNULL(tro.IsEgyediNap, tr.IsEgyediNap) AS IsEgyediNap
|
||||
FROM (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocs.ID AS OsztalyId
|
||||
,'F' as IsEgyediNap
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.C_TANEVID = @TanevId AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
WHERE nn.C_TANEVID = @TanevId
|
||||
AND nn.TOROLT = 'F'
|
||||
AND nn.C_ORARENDINAP = 'T'
|
||||
) tr
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
nn.C_NAPDATUMA AS Datum
|
||||
,ocstr.C_OSZTALYCSOPORTID AS OsztalyId
|
||||
,tr.C_EGYEDINAP AS IsEgyediNap
|
||||
FROM T_NAPTARINAP_OSSZES nn
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_DATUM = nn.C_NAPDATUMA AND tr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND tr.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT_TANEVRENDJE ocstr ON ocstr.C_TANEVRENDJEID = tr.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = ocstr.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = @kategoriaId
|
||||
INNER JOIN T_NAPTIPUS_OSSZES nt ON nt.ID = tr.C_NAPTIPUSA AND nt.C_ALTANEVID = tr.C_TANEVID AND nt.TOROLT = 'F'
|
||||
WHERE nn.C_TANEVID = @TanevId
|
||||
AND nn.TOROLT = 'F'
|
||||
AND tr.C_ORARENDINAP = 'T'
|
||||
) tro ON tr.Datum = tro.Datum AND tr.OsztalyId = tro.OsztalyId
|
||||
|
||||
|
||||
INSERT INTO #TanuloSzamonkeresei (Id,Nev,SzamonkeresekSzama,OsztalyNev)
|
||||
SELECT t.id,t.Nev, COUNT(1) as SzamonkeresekSzama, ocso.C_NEV as OsztalyNev
|
||||
FROM T_SZAMONKERESELOREJELZES szk
|
||||
INNER JOIN T_ORARENDIORA oo ON oo.C_ORARENDIORAGROUPID = szk.C_ORARENDIORAGROUPID AND szk.C_SZAMONKERESDATUMA >= oo.C_ORAERVENYESSEGKEZDETE AND szk.C_SZAMONKERESDATUMA <= oo.C_ORAERVENYESSEGVEGE AND oo.TOROLT = 'F'
|
||||
INNER JOIN #NaptariNap nn ON nn.IsEgyediNap = oo.C_EGYEDINAP AND nn.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND nn.Datum = szk.C_SZAMONKERESDATUMA
|
||||
INNER JOIN #OsztalyCsoport ocs ON ocs.Id = oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN #Tanulo t ON t.id = tcs.C_TANULOID
|
||||
INNER JOIN T_TANULOCSOPORT tcs2 ON tcs2.C_TANULOID = t.ID AND (tcs2.C_BELEPESDATUM <= @pDatum AND (tcs2.C_KILEPESDATUM > @pDatum OR tcs2.C_KILEPESDATUM IS NULL))
|
||||
INNER JOIN T_OSZTALYCSOPORT ocso ON tcs2.C_OSZTALYCSOPORTID = ocso.ID
|
||||
INNER JOIN T_OSZTALY o ON o.ID = ocso.ID
|
||||
WHERE szk.C_SZAMONKERESDATUMA = @pDatum AND szk.C_SZAMONKERESMODID IN (SELECT value FROM STRING_SPLIT(@pErtekelesModokLimithez ,','))
|
||||
AND szk.C_INTEZMENYID = @IntezmenyId AND szk.C_TANEVID = @TanevId AND szk.TOROLT = 'F'
|
||||
GROUP BY t.id, t.Nev,ocso.C_NEV
|
||||
|
||||
SELECT * FROM #TanuloSzamonkeresei WHERE SzamonkeresekSzama >= @pNapiSzamonkeresLimit
|
||||
|
||||
END
|
||||
GO
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
DROP PROCEDURE IF EXISTS uspTanulokBejegyzesStatisztika;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspTanulokBejegyzesStatisztika
|
||||
@tanevId int
|
||||
,@osztalyId int
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@FelevVege date
|
||||
|
||||
/*TANULÓ adatai*/
|
||||
CREATE TABLE #TanuloAlapAdatok (
|
||||
TanuloId int
|
||||
,TanuloCsoportId int
|
||||
,Sorszam int NULL
|
||||
,TorzslapSzam nvarchar(500) NULL
|
||||
,OktAzon nvarchar(20) NULL
|
||||
,TajSzam nvarchar(9) NULL
|
||||
,AnyjaNeve nvarchar(64)
|
||||
,SzulHely nvarchar(50) NULL
|
||||
,SzulIdo nvarchar(max) NULL
|
||||
,SocAdat nvarchar(340) NULL
|
||||
,Kepzes nvarchar(255)
|
||||
,TanuloNeve nvarchar(255)
|
||||
,Allampolgarsaga nvarchar(250)
|
||||
,DiakIgazolvanySzam nvarchar(255) NULL
|
||||
,KilepesDatum nvarchar(max) NULL
|
||||
,BeirasiNaploSorszam nvarchar(50) NULL
|
||||
,AktualisOsztaly nvarchar(max) NULL
|
||||
,AktualisOsztalyId int NULL
|
||||
,BelepesDatum nvarchar(max) NULL
|
||||
)
|
||||
|
||||
SELECT TOP 1
|
||||
@FelevVege = tr.C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
WHERE tr.C_NAPTIPUSA = 1400
|
||||
AND tr.C_TANEVID = @tanevId
|
||||
AND tr.TOROLT = 'F'
|
||||
|
||||
SELECT DISTINCT
|
||||
@osztalyId AS OsztalyId
|
||||
,ocs.C_NEV AS OsztalyNev
|
||||
,i.C_NEV AS IntezmenyNeve
|
||||
,i.C_OMKOD AS IntezmenyOMKod
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID
|
||||
AND o.torolt = 'F'
|
||||
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
|
||||
|
||||
INSERT INTO #TanuloAlapAdatok (
|
||||
TanuloId
|
||||
,TanuloCsoportId
|
||||
,Sorszam
|
||||
,TorzslapSzam
|
||||
,OktAzon
|
||||
,TajSzam
|
||||
,AnyjaNeve
|
||||
,SzulHely
|
||||
,SzulIdo
|
||||
,SocAdat
|
||||
,Kepzes
|
||||
,TanuloNeve
|
||||
,Allampolgarsaga
|
||||
,DiakIgazolvanySzam
|
||||
,KilepesDatum
|
||||
,BeirasiNaploSorszam
|
||||
,AktualisOsztaly
|
||||
,AktualisOsztalyId
|
||||
,BelepesDatum
|
||||
)
|
||||
SELECT
|
||||
ta.TanuloId
|
||||
,ta.TanuloCsoportId
|
||||
,ta.Sorszam
|
||||
,ta.TorzslapSzam
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.KilepesDatum
|
||||
,ta.BeirasiNaploSorszam
|
||||
,ta.AktualisOsztaly
|
||||
,ta.AktualisOsztalyId
|
||||
,ta.BelepesDatum
|
||||
FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) ta
|
||||
|
||||
SELECT
|
||||
ta.TanuloId
|
||||
,ta.TanuloCsoportId
|
||||
,ta.Sorszam
|
||||
,ta.TorzslapSzam
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.KilepesDatum
|
||||
,ta.BeirasiNaploSorszam
|
||||
,ta.AktualisOsztaly
|
||||
,ta.AktualisOsztalyId
|
||||
,ta.BelepesDatum
|
||||
FROM #TanuloAlapAdatok ta
|
||||
ORDER BY ta.Sorszam
|
||||
|
||||
SELECT
|
||||
a.TanuloId
|
||||
,a.TanuloCsoportId
|
||||
,feljegyzes.Tipus
|
||||
,feljegyzes.Szeptember
|
||||
,feljegyzes.Oktober
|
||||
,feljegyzes.November
|
||||
,feljegyzes.December
|
||||
,feljegyzes.Januar
|
||||
,feljegyzes.Februar
|
||||
,feljegyzes.Marcius
|
||||
,feljegyzes.Aprilis
|
||||
,feljegyzes.Majus
|
||||
,feljegyzes.Junius
|
||||
,feljegyzes.Felev
|
||||
,feljegyzes.Ossz
|
||||
FROM #TanuloAlapAdatok AS a
|
||||
CROSS APPLY fnGetDokumentumTanulokFeljegyzeseiHavibontasban(@tanevId, @osztalyId, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
|
||||
WHERE feljegyzes.TanuloId = a.TanuloId
|
||||
|
||||
END
|
||||
GO
|
||||
+207
@@ -0,0 +1,207 @@
|
||||
DROP PROCEDURE IF EXISTS uspTanulokGyorsBejegyzesStatisztika
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspTanulokGyorsBejegyzesStatisztika
|
||||
@tanevId int
|
||||
,@osztalyId int
|
||||
AS BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@FelevVege date
|
||||
|
||||
/*TANULÓ adatai*/
|
||||
CREATE TABLE #TanuloAlapAdatok (
|
||||
TanuloId int
|
||||
,TanuloCsoportId int
|
||||
,Sorszam int NULL
|
||||
,TorzslapSzam nvarchar(500) NULL
|
||||
,OktAzon nvarchar(20) NULL
|
||||
,TajSzam nvarchar(9) NULL
|
||||
,AnyjaNeve nvarchar(64)
|
||||
,SzulHely nvarchar(50) NULL
|
||||
,SzulIdo nvarchar(max) NULL
|
||||
,SocAdat nvarchar(340) NULL
|
||||
,Kepzes nvarchar(255)
|
||||
,TanuloNeve nvarchar(255)
|
||||
,Allampolgarsaga nvarchar(250)
|
||||
,DiakIgazolvanySzam nvarchar(255) NULL
|
||||
,KilepesDatum nvarchar(max) NULL
|
||||
,BeirasiNaploSorszam nvarchar(50) NULL
|
||||
,AktualisOsztaly nvarchar(max) NULL
|
||||
,AktualisOsztalyId int NULL
|
||||
,BelepesDatum nvarchar(max) NULL
|
||||
)
|
||||
|
||||
SELECT TOP 1
|
||||
@FelevVege = tr.C_DATUM
|
||||
FROM T_TANEVRENDJE_OSSZES tr
|
||||
WHERE tr.C_NAPTIPUSA = 1400
|
||||
AND tr.C_TANEVID = @tanevId
|
||||
AND tr.TOROLT = 'F'
|
||||
|
||||
SELECT DISTINCT
|
||||
@osztalyId AS OsztalyId
|
||||
,ocs.C_NEV AS OsztalyNev
|
||||
,i.C_NEV AS IntezmenyNeve
|
||||
,i.C_OMKOD AS IntezmenyOMKod
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID
|
||||
AND o.torolt = 'F'
|
||||
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
|
||||
|
||||
INSERT INTO #TanuloAlapAdatok (
|
||||
TanuloId
|
||||
,TanuloCsoportId
|
||||
,Sorszam
|
||||
,TorzslapSzam
|
||||
,OktAzon
|
||||
,TajSzam
|
||||
,AnyjaNeve
|
||||
,SzulHely
|
||||
,SzulIdo
|
||||
,SocAdat
|
||||
,Kepzes
|
||||
,TanuloNeve
|
||||
,Allampolgarsaga
|
||||
,DiakIgazolvanySzam
|
||||
,KilepesDatum
|
||||
,BeirasiNaploSorszam
|
||||
,AktualisOsztaly
|
||||
,AktualisOsztalyId
|
||||
,BelepesDatum
|
||||
)
|
||||
SELECT
|
||||
ta.TanuloId
|
||||
,ta.TanuloCsoportId
|
||||
,ta.Sorszam
|
||||
,ta.TorzslapSzam
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.KilepesDatum
|
||||
,ta.BeirasiNaploSorszam
|
||||
,ta.AktualisOsztaly
|
||||
,ta.AktualisOsztalyId
|
||||
,ta.BelepesDatum
|
||||
FROM fnGetDokumentumTanulokAdatai(@tanevId, @osztalyId) ta
|
||||
|
||||
SELECT
|
||||
ta.TanuloId
|
||||
,ta.TanuloCsoportId
|
||||
,ta.Sorszam
|
||||
,ta.TorzslapSzam
|
||||
,ta.OktAzon
|
||||
,ta.TajSzam
|
||||
,ta.AnyjaNeve
|
||||
,ta.SzulHely
|
||||
,ta.SzulIdo
|
||||
,ta.SocAdat
|
||||
,ta.Kepzes
|
||||
,ta.TanuloNeve
|
||||
,ta.Allampolgarsaga
|
||||
,ta.DiakIgazolvanySzam
|
||||
,ta.KilepesDatum
|
||||
,ta.BeirasiNaploSorszam
|
||||
,ta.AktualisOsztaly
|
||||
,ta.AktualisOsztalyId
|
||||
,ta.BelepesDatum
|
||||
FROM #TanuloAlapAdatok ta
|
||||
ORDER BY ta.Sorszam
|
||||
|
||||
-- Házifeladat hiány
|
||||
SELECT
|
||||
a.TanuloId
|
||||
,a.TanuloCsoportId
|
||||
,feljegyzes.Tantargy
|
||||
,feljegyzes.Szeptember
|
||||
,feljegyzes.Oktober
|
||||
,feljegyzes.November
|
||||
,feljegyzes.December
|
||||
,feljegyzes.Januar
|
||||
,feljegyzes.Februar
|
||||
,feljegyzes.Marcius
|
||||
,feljegyzes.Aprilis
|
||||
,feljegyzes.Majus
|
||||
,feljegyzes.Junius
|
||||
,feljegyzes.Felev
|
||||
,feljegyzes.Ossz
|
||||
FROM #TanuloAlapAdatok a
|
||||
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban (@tanevId, @osztalyId, 6325, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
|
||||
WHERE feljegyzes.TanuloId = a.TanuloId
|
||||
|
||||
-- Felszerelés hiány
|
||||
SELECT
|
||||
a.TanuloId
|
||||
,a.TanuloCsoportId
|
||||
,feljegyzes.Tantargy
|
||||
,feljegyzes.Szeptember
|
||||
,feljegyzes.Oktober
|
||||
,feljegyzes.November
|
||||
,feljegyzes.December
|
||||
,feljegyzes.Januar
|
||||
,feljegyzes.Februar
|
||||
,feljegyzes.Marcius
|
||||
,feljegyzes.Aprilis
|
||||
,feljegyzes.Majus
|
||||
,feljegyzes.Junius
|
||||
,feljegyzes.Felev
|
||||
,feljegyzes.Ossz
|
||||
FROM #TanuloAlapAdatok a
|
||||
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 6324, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
|
||||
WHERE feljegyzes.TanuloId = a.TanuloId
|
||||
|
||||
-- Felmentés
|
||||
SELECT
|
||||
a.TanuloId
|
||||
,a.TanuloCsoportId
|
||||
,feljegyzes.Tantargy
|
||||
,feljegyzes.Szeptember
|
||||
,feljegyzes.Oktober
|
||||
,feljegyzes.November
|
||||
,feljegyzes.December
|
||||
,feljegyzes.Januar
|
||||
,feljegyzes.Februar
|
||||
,feljegyzes.Marcius
|
||||
,feljegyzes.Aprilis
|
||||
,feljegyzes.Majus
|
||||
,feljegyzes.Junius
|
||||
,feljegyzes.Felev
|
||||
,feljegyzes.Ossz
|
||||
FROM #TanuloAlapAdatok a
|
||||
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1542, 0, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
|
||||
WHERE feljegyzes.TanuloId = a.TanuloId
|
||||
|
||||
--Dicséret
|
||||
SELECT
|
||||
a.TanuloId
|
||||
,a.TanuloCsoportId
|
||||
,feljegyzes.Tantargy
|
||||
,feljegyzes.Szeptember
|
||||
,feljegyzes.Oktober
|
||||
,feljegyzes.November
|
||||
,feljegyzes.December
|
||||
,feljegyzes.Januar
|
||||
,feljegyzes.Februar
|
||||
,feljegyzes.Marcius
|
||||
,feljegyzes.Aprilis
|
||||
,feljegyzes.Majus
|
||||
,feljegyzes.Junius
|
||||
,feljegyzes.Felev
|
||||
,feljegyzes.Ossz
|
||||
FROM #TanuloAlapAdatok a
|
||||
CROSS APPLY fnGetDokumentumTanulokGyorsFeljegyzeseiHavibontasban(@tanevId, @osztalyId, 1536, 1, @FelevVege, PARSE(a.BelepesDatum AS datetime), PARSE(a.KilepesDatum AS datetime)) feljegyzes
|
||||
WHERE feljegyzes.TanuloId = a.TanuloId
|
||||
|
||||
END
|
||||
GO
|
||||
Reference in New Issue
Block a user