init
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
IF OBJECT_ID('fnGetDokumentumOsztalyVagyTanoraiCsoport') IS NOT NULL BEGIN
|
||||
DROP FUNCTION fnGetDokumentumOsztalyVagyTanoraiCsoport
|
||||
END
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumOsztalyVagyTanoraiCsoport (@tanevId int)
|
||||
RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT
|
||||
T_OSZTALYCSOPORT_OSSZES.ID
|
||||
FROM T_OSZTALYCSOPORT_OSSZES
|
||||
WHERE
|
||||
( EXISTS (SELECT TOP 1 ID FROM T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID )
|
||||
OR
|
||||
EXISTS (SELECT TOP 1 ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)) AND T_CSOPORT_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID)
|
||||
)
|
||||
AND T_OSZTALYCSOPORT_OSSZES.C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
)
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
IF OBJECT_ID('fnGetDokumentumErtekelesekOsztalyonkent') IS NOT NULL BEGIN
|
||||
DROP FUNCTION fnGetDokumentumErtekelesekOsztalyonkent
|
||||
END
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumErtekelesekOsztalyonkent (@tanevId INT, @osztalyId INT)
|
||||
RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT
|
||||
C_ERTEKELESDATUM Datum
|
||||
,C_ERTEKELESTIPUSA Tipusa
|
||||
,C_ERTEKELESSZOVEG SzovegesErtekeles
|
||||
,C_OSZTALYZAT OsztalyzatId
|
||||
,jegy.C_VALUE Osztalyzat
|
||||
,CONVERT(NVARCHAR(MAX),C_SZAZALEK)+'%' Szazalek
|
||||
,C_TANTARGYID TantargyId
|
||||
,C_TARGYKATEGORIA TargyKategoriaId
|
||||
,IIF(t.C_NEV <> C_NEVNYOMTATVANYBAN AND C_NEVNYOMTATVANYBAN IS NOT NULL, C_NEVNYOMTATVANYBAN + ' (' + t.C_NEV + ')', t.C_NEV) TantargyNev
|
||||
,C_FOTARGYE FotargyE
|
||||
,C_ALTANTARGYKENTNYOMTATVANYBAN Altantargy
|
||||
,te.C_TANULOID TanuloId
|
||||
,te.C_OSZTALYCSOPORTID OsztalyCsoportId
|
||||
,C_SZORGALOM SzorgalomId
|
||||
,C_MAGATARTAS MagatartasId
|
||||
,szorgalom.C_NAME Szorgalom
|
||||
,magatartas.C_NAME Magatartas
|
||||
,C_TEMA Megjegyzes
|
||||
FROM T_TANULOERTEKELES_OSSZES te
|
||||
INNER JOIN fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') tanulo ON tanulo.TanuloId = te.C_TANULOID
|
||||
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON oe.Id = te.Id
|
||||
LEFT JOIN T_OSZTALYFONOKIERTEKELES_OSSZES ofoe ON ofoe.Id = te.Id
|
||||
LEFT JOIN T_TANTARGY_OSSZES t ON t.Id = te.C_TANTARGYID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES jegy ON jegy.Id = C_OSZTALYZAT AND jegy.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES szorgalom ON szorgalom.Id = C_SZORGALOM AND szorgalom.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES magatartas ON magatartas.Id = C_MAGATARTAS AND magatartas.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = te.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
te.Torolt = 'F'
|
||||
AND te.C_ERTEKELESDATUM >= BelepesDatum AND (te.C_ERTEKELESDATUM <= KilepesDatum OR KilepesDatum IS NULL)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND (t.C_TARGYKATEGORIA <> 1248 OR t.C_TARGYKATEGORIA IS NULL)
|
||||
)
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
IF OBJECT_ID('fnGetDokumentumKapcsolodoOsztalycsoportok') IS NOT NULL BEGIN
|
||||
DROP FUNCTION fnGetDokumentumKapcsolodoOsztalycsoportok
|
||||
END
|
||||
GO
|
||||
CREATE FUNCTION [fnGetDokumentumKapcsolodoOsztalycsoportok] (@osztalyCsoportId int, @ptanevId int)
|
||||
RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT @osztalyCsoportId AS ID, 'OsztalycsoportOraja' AS OKA
|
||||
UNION
|
||||
SELECT ID, 'OsztalybontottOra' AS OKA FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID = @osztalyCsoportId AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))
|
||||
UNION
|
||||
SELECT DISTINCT tcs.C_OSZTALYCSOPORTID, 'TanuloMasOra' AS OKA
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_CSOPORT_OSSZES ON T_CSOPORT_OSSZES.ID = tcs.C_OSZTALYCSOPORTID
|
||||
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.C_KILEPESDATUM > T_TANEV_OSSZES.C_KEZDONAP OR x.C_KILEPESDATUM IS NULL)
|
||||
) AS 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)
|
||||
WHERE tcs.C_OSZTALYCSOPORTID <> @osztalyCsoportId
|
||||
AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID = @osztalyCsoportId)
|
||||
AND tcs.C_OSZTALYCSOPORTID NOT IN (SELECT C_OSZTALYBONTASID AS ID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL)
|
||||
AND tcs.C_OSZTALYCSOPORTID NOT IN (
|
||||
SELECT ID FROM T_CSOPORT_OSSZES WHERE C_OSZTALYBONTASID IN (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @osztalyCsoportId)
|
||||
) AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))
|
||||
UNION
|
||||
SELECT C_OSZTALYBONTASID AS ID, 'OsztalybontottOra2' AS OKA
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId AND C_OSZTALYBONTASID IS NOT NULL AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))
|
||||
UNION
|
||||
SELECT ID, 'OsztalybontottOra3' AS OKA
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE C_OSZTALYBONTASID IN (
|
||||
SELECT C_OSZTALYBONTASID
|
||||
FROM T_CSOPORT_OSSZES
|
||||
WHERE ID = @osztalyCsoportId
|
||||
) AND ID <> @osztalyCsoportId AND C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@ptanevId))
|
||||
)
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
IF OBJECT_ID('fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet') IS NOT NULL BEGIN
|
||||
DROP FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet
|
||||
END
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE FUNCTION fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet (@tanevId int, @osztalyId int)
|
||||
RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT
|
||||
C_TANULOID TanuloId
|
||||
, ISNULL(t.C_FOTARGYID, t.ID) TantargyId
|
||||
, SUM(fog.C_ORASZAM) * IIF((SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 32, 36) Oraszam
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_FOGLALKOZAS_OSSZES fog ON fog.C_OSZTALYCSOPORTID = tcs.C_OSZTALYCSOPORTID AND fog.TOROLT = 'F'
|
||||
INNER JOIN T_TANTARGY_OSSZES t on t.ID = fog.C_TANTARGYID AND (t.C_FOTARGYE = 'T' OR t.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
|
||||
WHERE
|
||||
tcs.C_TANULOID IN ( SELECT TanuloId FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') )
|
||||
AND ((tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tcs.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
|
||||
AND tcs.TOROLT = 'F'
|
||||
AND tcs.C_TANEVID = @tanevId
|
||||
AND ISNULL(tcs.C_KILEPESDATUM, IIF(
|
||||
(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T',
|
||||
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
|
||||
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395) --nem végzős
|
||||
)
|
||||
)
|
||||
>= IIF(
|
||||
(SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T',
|
||||
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402), --végzős
|
||||
(SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1395) --nem végzős
|
||||
)
|
||||
GROUP BY C_TANULOID, ISNULL(t.C_FOTARGYID, t.ID)
|
||||
)
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
IF OBJECT_ID('fnGetTanoraiCeluCsoportTipusok') IS NOT NULL BEGIN
|
||||
DROP FUNCTION [fnGetTanoraiCeluCsoportTipusok]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE FUNCTION [fnGetTanoraiCeluCsoportTipusok] (
|
||||
@tanevId INT
|
||||
) RETURNS TABLE
|
||||
RETURN (
|
||||
SELECT
|
||||
csoportTipus.ID
|
||||
FROM
|
||||
T_CSOPORTTIPUS csoportTipus
|
||||
INNER JOIN
|
||||
T_DICTIONARYITEMBASE dictionaryItemBase ON csoportTipus.ID = dictionaryItemBase.ID
|
||||
AND csoportTipus.C_ALTANEVID = dictionaryItemBase.C_TANEVID
|
||||
WHERE
|
||||
csoportTipus.C_ISTANORAICELU = 'T'
|
||||
AND dictionaryItemBase.C_VISIBLE = 'T'
|
||||
AND dictionaryItemBase.TOROLT = 'F'
|
||||
AND dictionaryItemBase.C_TANEVID = @tanevId
|
||||
)
|
||||
GO
|
||||
+189
@@ -0,0 +1,189 @@
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetDokumentumErtekelesek') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE [sp_GetDokumentumErtekelesek]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetDokumentumErtekelesek
|
||||
@osztalyId INT,
|
||||
@tanevId INT,
|
||||
@ertekelesTipus INT,
|
||||
@isBizonyitvany INT = 0,
|
||||
@isNemet BIT = 0
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Osztályhoz tartozó tanulók
|
||||
DECLARE @Tanulok TABLE (TanuloId INT PRIMARY KEY, KilepesDatum DATE)
|
||||
INSERT INTO @Tanulok
|
||||
SELECT TanuloId, KilepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
|
||||
|
||||
--Tanulóhoz kapcsolódó óraszámok
|
||||
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
|
||||
|
||||
INSERT INTO @Oraszamok
|
||||
SELECT * FROM fnGetDokumentumTanulokEvesOraszamaiOsztalynkonet(@tanevId, @osztalyId)
|
||||
|
||||
--Értékelések
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 1 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) ErtekelesJegyzettel
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 2 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, IIF(@isNemet = 0, 'MAGATARTAS', 'Betragen') TARGY
|
||||
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) ErtekelesJegyzettel
|
||||
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 1 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, IIF(@isNemet = 0, 'SZORGALOM', 'Fleiss') TARGY
|
||||
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) Ertekeles
|
||||
, NULL Jegyzet
|
||||
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) ErtekelesJegyzettel
|
||||
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 2 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, IIF(@isNemet = 0, 'Magatartás / Szorgalom', 'Betragen / Fleiss') TARGY
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG Ertekeles
|
||||
, NULL Jegyzet
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG ErtekelesJegyzettel
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG SzovegesErtekeles
|
||||
, NULL Oraszam
|
||||
, 3 RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) NOT IN ('rossz', 'változó', 'jó', 'példás')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) NOT IN ('hanyag', 'változó', 'jó', 'példás')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.C_TANULOID TANULOID
|
||||
, ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.TARGYNEV) TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) Ertekeles
|
||||
, ertekelesMegjegyzes.C_TEMA Jegyzet
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
|
||||
, ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))) SzovegesErtekeles
|
||||
, Oraszam Oraszam
|
||||
, TARGY.KAT RENDEZ
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE, C_NEVNYOMTATVANYBAN, C_TARGYKATEGORIA FROM T_TANTARGY_OSSZES WHERE TOROLT = 'F') TARGY
|
||||
ON TARGY.ID = ERTEKELES.C_TANTARGYID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
|
||||
LEFT JOIN @Oraszamok oraszam ON oraszam.Tantargy = ERTEKELES.C_TANTARGYID AND oraszam.TanuloId = ERTEKELES.C_TANULOID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
||||
AND ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND TARGY.C_TARGYKATEGORIA <> 1248
|
||||
ORDER BY TANULOID, RENDEZ
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
|
||||
IF OBJECT_ID('sp_GetDokumentumMulasztasok') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetDokumentumMulasztasok
|
||||
END
|
||||
GO
|
||||
|
||||
-- ===========================================================================
|
||||
-- Description: Dokumentumokban használt mulasztás összesítő osztály alapján
|
||||
-- ===========================================================================
|
||||
CREATE PROCEDURE [dbo].[sp_GetDokumentumMulasztasok]
|
||||
@osztalyId INT
|
||||
,@tanevId INT
|
||||
,@elmeletGyakorlat BIT = 0
|
||||
,@kesesTipus INT = 1499
|
||||
,@elmeletiOraPercben INT = 45
|
||||
,@gyakorlatiOraPercben INT = 60
|
||||
,@ertekelesTipus INT
|
||||
,@iskolaErdekuSzamit BIT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @Tanulok table (
|
||||
tanuloId int PRIMARY KEY
|
||||
);
|
||||
|
||||
INSERT INTO @Tanulok
|
||||
SELECT TanuloId
|
||||
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
|
||||
|
||||
DECLARE @Idoszak INT
|
||||
DECLARE @IdoszakVege DATE
|
||||
|
||||
SET @Idoszak =
|
||||
CASE @ertekelesTipus
|
||||
WHEN 1519 THEN 1400 --félévi
|
||||
WHEN 1520 THEN 1395 --év végi
|
||||
WHEN 1522 THEN 1403 --I. negyedévi
|
||||
WHEN 1523 THEN 1404 --III. negyedévi
|
||||
END
|
||||
|
||||
|
||||
SET @IdoszakVege = (SELECT TOP 1 C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_NAPTIPUSA = @Idoszak AND C_TANEVID = @tanevId AND TOROLT='F')
|
||||
|
||||
SELECT
|
||||
t.TANULOID tanuloid
|
||||
,m.Igazolt
|
||||
,m.Igazolatlan
|
||||
,m.ElmeletIgazolt
|
||||
,m.ElmeletIgazolatlan
|
||||
,m.GyakorlatiIgazolt
|
||||
,m.GyakorlatiIgazolatlan
|
||||
,m.Osszes
|
||||
FROM @Tanulok t
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT
|
||||
m.tanuloId
|
||||
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) Igazolt
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Igazolatlan
|
||||
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) ElmeletIgazolt
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) ElmeletIgazolatlan
|
||||
,ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0) GyakorlatiIgazolt
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) GyakorlatiIgazolatlan
|
||||
,ISNULL(m.[hianyzasIgazoltTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazoltTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazoltElmeletiOraban,0) + ISNULL(kp.kesesIgazoltGyakorlatiOraban,0)+
|
||||
ISNULL(m.[hianyzasIgazolatlanTanoraiElmeleti], 0) + ISNULL(m.[hianyzasIgazolatlanTanoraiGyakorlati], 0) + ISNULL(kp.kesesIgazolatlanElmeletiOraban,0) + ISNULL(kp.kesesIgazolatlanGyakorlatiOraban,0) Osszes
|
||||
FROM (
|
||||
SELECT
|
||||
tanuloId,
|
||||
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
|
||||
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
|
||||
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
|
||||
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END +
|
||||
CASE isGyakorlati WHEN 'T' THEN 'Gyakorlati' WHEN 'F' THEN 'Elmeleti' END
|
||||
AS piv
|
||||
,cnt
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_TIPUS mulasztasTipus
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,IIF(cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)), 'T', 'F') AS isTanorai
|
||||
,IIF(t.C_GYAKORLATI='T', 'T', 'F') as isGyakorlati
|
||||
,COUNT(1) AS cnt
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t on t.id=tn.C_TANTARGYID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
|
||||
WHERE tn.C_DATUM <= @IdoszakVege
|
||||
AND m.C_TANEVID = @tanevId
|
||||
AND m.Torolt ='F'
|
||||
AND tn.Torolt ='F'
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
|
||||
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
|
||||
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
|
||||
AND m.C_TIPUS IN (1500 ,1499)
|
||||
GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, cs.ID, cs.C_TIPUSA, t.C_GYAKORLATI
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(cnt)
|
||||
FOR piv IN (
|
||||
[hianyzasIgazoltTanoraiElmeleti], [hianyzasIgazoltTanoraiGyakorlati],
|
||||
[hianyzasIgazolatlanTanoraiElmeleti], [hianyzasIgazolatlanTanoraiGyakorlati],
|
||||
[kesesIgazoltTanoraiElmeleti],[kesesIgazoltTanoraiGyakorlati],
|
||||
[kesesIgazolatlanTanoraiElmeleti], [kesesIgazolatlanTanoraiGyakorlati]
|
||||
)
|
||||
) AS pvt
|
||||
) m
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPerc]
|
||||
,[kesesIgazoltTanoraiPerc]
|
||||
,[kesesIgazolatlanTanoraiPerc]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPerc' AS piv
|
||||
,kesesPercben
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,SUM(m.C_KESESPERCBEN) AS kesesPercben
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID AND tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
|
||||
WHERE tn.C_DATUM <= @IdoszakVege
|
||||
AND m.C_TANEVID = @tanevId
|
||||
AND m.Torolt ='F'
|
||||
AND tn.Torolt ='F'
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND m.C_TIPUS = 1499
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
|
||||
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
|
||||
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesPercben)
|
||||
FOR piv IN
|
||||
([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
|
||||
) AS pvt
|
||||
) k ON k.tanuloId = m.tanuloId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,SUM(kesesIgazolandoTanoraiPluszOra) AS kesesIgazolandoTanoraiPluszOra
|
||||
,SUM(kesesIgazoltTanoraiPluszOra) AS kesesIgazoltTanoraiPluszOra
|
||||
,SUM(kesesIgazolatlanTanoraiPluszOra) AS kesesIgazolatlanTanoraiPluszOra
|
||||
,SUM(kesesIgazoltElmeletiOraban) AS kesesIgazoltElmeletiOraban
|
||||
,SUM(kesesIgazolatlanElmeletiOraban) AS kesesIgazolatlanElmeletiOraban
|
||||
,SUM(kesesIgazoltGyakorlatiOraban) AS kesesIgazoltGyakorlatiOraban
|
||||
,SUM(kesesIgazolatlanGyakorlatiOraban) AS kesesIgazolatlanGyakorlatiOraban
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE
|
||||
WHEN isIgazolt IS NULL THEN 'Igazolando'
|
||||
WHEN isIgazolt = 'T' THEN 'Igazolt'
|
||||
WHEN isIgazolt = 'F' THEN 'Igazolatlan'
|
||||
END + 'TanoraiPluszOra' AS piv
|
||||
,kesesOraban
|
||||
,kesesIgazoltElmeletiOraban
|
||||
,kesesIgazolatlanElmeletiOraban
|
||||
,kesesIgazoltGyakorlatiOraban
|
||||
,kesesIgazolatlanGyakorlatiOraban
|
||||
FROM (
|
||||
SELECT
|
||||
xx.tanuloId
|
||||
,xx.isIgazolt
|
||||
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
|
||||
,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='T' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazoltElmeletiOraban
|
||||
,SUM(CASE WHEN isGyakorlati = 'F' and isIgazolt='F' THEN xx.keses / @elmeletiOraPercben ELSE 0 END) AS kesesIgazolatlanElmeletiOraban
|
||||
,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='T' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazoltGyakorlatiOraban
|
||||
,SUM(CASE WHEN isGyakorlati = 'T' and isIgazolt='F' THEN xx.keses / @gyakorlatiOraPercben ELSE 0 END) AS kesesIgazolatlanGyakorlatiOraban
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,t.C_GYAKORLATI AS isGyakorlati
|
||||
,SUM(m.C_KESESPERCBEN) AS keses
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN @Tanulok tanulok ON tanulok.TanuloId = m.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_OSZTALYCSOPORTID = tn.C_OSZTALYCSOPORTID and tanulok.TanuloId = tcs.C_TANULOID AND tcs.TOROLT = 'F'
|
||||
WHERE m.C_TANEVID = @tanevId
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND m.C_TIPUS = 1499
|
||||
AND m.TOROLT = 'F'
|
||||
AND tn.Torolt ='F'
|
||||
AND (@iskolaErdekuSzamit = 1 OR (C_IGAZOLASTIPUSA <> 1533 OR C_IGAZOLASTIPUSA IS NULL))
|
||||
AND tcs.C_BELEPESDATUM <= tn.C_DATUM
|
||||
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > tn.C_DATUM)
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT, t.C_GYAKORLATI
|
||||
) xx
|
||||
GROUP BY tanuloId, xx.isIgazolt
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesOraban)
|
||||
FOR piv IN (
|
||||
kesesIgazolandoTanoraiPluszOra, kesesIgazoltTanoraiPluszOra, kesesIgazolatlanTanoraiPluszOra
|
||||
)
|
||||
) AS pvt
|
||||
GROUP BY tanuloId
|
||||
) kp ON m.tanuloId = kp.tanuloId
|
||||
) m on m.tanuloId=t.tanuloId
|
||||
END
|
||||
GO
|
||||
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetDokumentumTanuloOrarend') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetDokumentumTanuloOrarend
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetDokumentumTanuloOrarend
|
||||
@tanevId INT,
|
||||
@tanuloId INT,
|
||||
@aktivTanevId INT,
|
||||
@isEgyebFoglalkozasok BIT
|
||||
|
||||
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
|
||||
|
||||
DECLARE @tanuloNev NVARCHAR(MAX) = (SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE ID = @tanuloId)
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (GETDATE() <= @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, GETDATE())
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (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
|
||||
|
||||
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_ROVIDNEV, 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 T_TANULOCSOPORT_OSSZES TanuloCsoport ON
|
||||
TanuloCsoport.C_TANULOID = @tanuloId
|
||||
AND TanuloCsoport.C_OSZTALYCSOPORTID = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
AND TanuloCsoport.TOROLT = 'F'
|
||||
AND @VizsgaltNap BETWEEN C_BELEPESDATUM AND ISNULL(C_KILEPESDATUM, @UtolsoNap)
|
||||
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 = OrarendiOra.C_OSZTALYCSOPORTID
|
||||
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)) Nap (Nap)
|
||||
|
||||
DECLARE @TenylegesOra TABLE (Hetirend INT, Nap INT, OraSzam NVARCHAR(20), Foglalkozas NVARCHAR(MAX))
|
||||
DECLARE @Orarend TABLE (TanuloId 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), '')
|
||||
+ 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 @tanuloId
|
||||
, 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
|
||||
,@tanuloNev TanuloNev
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap IN ([1408],[1409],[1410],[1411],[1412],[1413]))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
|
||||
+490
@@ -0,0 +1,490 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetMunkaidoElszamoloLap]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetMunkaidoElszamoloLap]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetMunkaidoElszamoloLap]
|
||||
@tanarid INT,
|
||||
@tanevId INT,
|
||||
@honapId INT,
|
||||
@isKlebersberg BIT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
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'
|
||||
)
|
||||
|
||||
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'
|
||||
|
||||
--===================================
|
||||
--FEJLÉC
|
||||
--===================================
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
f.ID = @tanarId
|
||||
AND ia.TOROLT = 'F'
|
||||
AND m.TOROLT = 'F'
|
||||
|
||||
--===================================
|
||||
--MEGTARTOTT TANÓRÁK, HELYETTESÍTÉSEK
|
||||
--===================================
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
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_ORATULAJDONOSID = @tanarid
|
||||
AND T_TANITASIORA_OSSZES.C_TANEVID = @tanevId
|
||||
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
|
||||
|
||||
--szakszerű helyettesítés
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
tao.C_HELYETTESITOTANARID = @tanarid
|
||||
AND DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
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
|
||||
|
||||
--nem szakszerű helyettesítés
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE
|
||||
tao.C_HELYETTESITOTANARID = @tanarid
|
||||
AND DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
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
|
||||
|
||||
--óraösszevonás
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID
|
||||
WHERE tao.C_HELYETTESITOTANARID = @tanarid
|
||||
AND DATEPART(MONTH, tao.C_DATUM) = @Honap
|
||||
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
|
||||
|
||||
--tanóránkívüli
|
||||
SELECT
|
||||
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
|
||||
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
|
||||
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_HELYETTESITOTANARID IS NULL
|
||||
AND tao.C_ORATULAJDONOSID = @tanarid
|
||||
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
|
||||
|
||||
--egyéni foglalkozas
|
||||
SELECT
|
||||
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
|
||||
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
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
|
||||
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 fog.C_FOGLALKOZASTIPUSA = 1371
|
||||
AND tao.C_HELYETTESITOTANARID IS NULL
|
||||
AND tao.C_ORATULAJDONOSID = @tanarId
|
||||
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])
|
||||
|
||||
) Oraosszevonas
|
||||
|
||||
|
||||
--============================================
|
||||
--NEVELÉSSEL-OKTATÁSSAL LE NEM KÖTÖTT MUNKAIDŐ
|
||||
--============================================
|
||||
--ÖSSZESEN
|
||||
SELECT
|
||||
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
|
||||
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 C_TANARID = @tanarId
|
||||
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
|
||||
|
||||
|
||||
--a hónapban előforduló típusok
|
||||
SELECT DISTINCT
|
||||
C_TEVEKENYSEGTIPUSA TipusId
|
||||
,d.C_NAME Tipus
|
||||
FROM T_NEMKOTOTTMUNKAIDO_OSSZES
|
||||
INNER JOIN (SELECT DISTINCT ID, C_NAME FROM T_DICTIONARYITEMBASE) d on d.ID=C_TEVEKENYSEGTIPUSA
|
||||
WHERE
|
||||
C_MEGTARTOTT = 'T'
|
||||
AND C_TANARID = @tanarId
|
||||
AND TOROLT = 'F'
|
||||
AND DATEPART(MONTH, C_KEZDETE) = @Honap
|
||||
AND DATEPART(MONTH, C_VEGE) = @Honap
|
||||
|
||||
--sorokra (tipusokra) lebontva
|
||||
SELECT
|
||||
Honap
|
||||
,Tipus TipusId
|
||||
,[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
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
C_TEVEKENYSEGTIPUSA Tipus
|
||||
,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 C_TANARID = @tanarId
|
||||
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
|
||||
|
||||
--==================
|
||||
--TABLA OSSZESITESEK
|
||||
--==================
|
||||
SELECT
|
||||
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 NULL, NULL, * FROM #LeNemKotottMunkaido_tmp
|
||||
|
||||
) as TablaOsszesito
|
||||
END
|
||||
GO
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaByHet') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetNemMegtartottOrakSzamaByHet
|
||||
@osztalyId INT
|
||||
,@intezmenyId INT
|
||||
,@tanevId INT
|
||||
,@hetSorszam INT
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
|
||||
|
||||
DECLARE @vegzosOsztalyokCsoportok TABLE (osztalyId INT)
|
||||
INSERT INTO @vegzosOsztalyokCsoportok
|
||||
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_VEGZOSEVFOLYAM = 'T' AND C_TANEVID = @tanevID AND TOROLT = 'F'
|
||||
|
||||
DECLARE @OsszesNap TABLE (Datum DATE, Hetirend INT, OrarendiNap NVARCHAR(1), OsztalyCsoportId INT)
|
||||
INSERT INTO @OsszesNap
|
||||
SELECT DISTINCT
|
||||
C_NAPDATUMA
|
||||
,C_HETIREND
|
||||
,C_ORARENDINAP
|
||||
,kapcsolodo.Id
|
||||
FROM T_NAPTARINAP_OSSZES
|
||||
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
|
||||
WHERE
|
||||
C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
|
||||
DECLARE @TanevRendje TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
|
||||
INSERT INTO @TanevRendje
|
||||
SELECT
|
||||
C_DATUM
|
||||
,C_HETIREND
|
||||
,kapcsolodo.Id
|
||||
,C_ORARENDINAP
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
|
||||
WHERE
|
||||
C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
||||
|
||||
DECLARE @TanevRendjeOsztalyCsoportonkent TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
|
||||
INSERT INTO @TanevRendjeOsztalyCsoportonkent
|
||||
SELECT
|
||||
C_DATUM
|
||||
,C_HETIREND
|
||||
,C_OSZTALYCSOPORTID
|
||||
,C_ORARENDINAP
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID
|
||||
INNER JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo ON kapcsolodo.Id = C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
|
||||
DECLARE @OrarendiNapok TABLE (Datum DATE, OsztalyCsoportId INT, Hetirend INT)
|
||||
INSERT INTO @OrarendiNapok
|
||||
SELECT
|
||||
Datum
|
||||
,OsztalyCsoportId
|
||||
,Hetirend
|
||||
FROM
|
||||
(SELECT
|
||||
OsszesNap.Datum
|
||||
,OsszesNap.OsztalyCsoportId
|
||||
,COALESCE(trocs.OrarendiNap, tr.OrarendiNap, OsszesNap.OrarendiNap) OrarendiNap
|
||||
,COALESCE(trocs.Hetirend, tr.Hetirend, OsszesNap.Hetirend) Hetirend
|
||||
FROM @OsszesNap OsszesNap
|
||||
LEFT JOIN @TanevRendje tr ON tr.Datum = OsszesNap.Datum AND tr.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
|
||||
LEFT JOIN @TanevRendjeOsztalyCsoportonkent trocs ON trocs.Datum = OsszesNap.Datum AND trocs.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
|
||||
WHERE
|
||||
OsszesNap.OrarendiNap = 'T' OR tr.OrarendiNap = 'T' OR trocs.OrarendiNap = 'T'
|
||||
) a
|
||||
WHERE OrarendiNap ='T'
|
||||
|
||||
SELECT
|
||||
Id AS Id
|
||||
,@hetSorszam AS HetSzama
|
||||
,C_NAPDATUMA AS Datum
|
||||
,C_HETNAPJA AS Hetnapja
|
||||
,C_ORASZAM AS Oraszam
|
||||
,C_NEV AS OsztalyNev
|
||||
,tant AS TargyNev
|
||||
,Nev AS TanarNev
|
||||
FROM
|
||||
(
|
||||
SELECT DISTINCT
|
||||
oo.id
|
||||
,naptar.C_NAPDATUMA
|
||||
,naptar.C_HETNAPJA
|
||||
,oo.C_ORASZAM
|
||||
,ocs.C_NEV
|
||||
,t.C_NEV tant
|
||||
,ISNULL(fh.C_NYOMTATASINEV, f.C_NYOMTATASINEV) Nev
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
INNER JOIN T_NAPTARINAP_OSSZES naptar ON
|
||||
((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE)
|
||||
OR
|
||||
(naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE))
|
||||
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
|
||||
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
|
||||
INNER JOIN @OrarendiNapok OrarendiNapok ON OrarendiNapok.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND OrarendiNapok.Datum = naptar.C_NAPDATUMA AND (OrarendiNapok.Hetirend = oo.C_HETIREND OR oo.C_HETIREND = 1554)
|
||||
LEFT JOIN T_TANITASIORA_OSSZES tao ON
|
||||
naptar.C_NAPDATUMA = tao.C_DATUM
|
||||
AND tao.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
|
||||
AND tao.C_TANTARGYID = oo.C_TANTARGYID
|
||||
AND oo.C_TANARID IN (tao.C_TANARID, tao.C_HELYETTESITOTANARID, tao.C_ORATULAJDONOSID)
|
||||
AND tao.C_HETNAPJA = oo.C_HETNAPJA
|
||||
AND tao.C_ORASZAM = oo.C_ORASZAM
|
||||
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
|
||||
AND tao.TOROLT='F'
|
||||
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES fh ON hely.C_HELYETTESTANAROKID = f.ID
|
||||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
|
||||
WHERE
|
||||
oo.TOROLT = 'F'
|
||||
AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
|
||||
AND naptar.C_NAPDATUMA <= IIF(@osztalyId IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
|
||||
AND tao.ID IS NULL
|
||||
AND hely.ID IS NULL
|
||||
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
||||
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
||||
AND naptar.C_TANEVID = @tanevId
|
||||
AND naptar.C_HETSORSZAMA = @hetSorszam
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
oo.id
|
||||
,naptar.C_NAPDATUMA
|
||||
,naptar.C_HETNAPJA
|
||||
,oo.C_ORASZAM
|
||||
,ocs.C_NEV
|
||||
,t.C_NEV
|
||||
,f.C_NYOMTATASINEV +' (' + fh.C_NYOMTATASINEV +')'
|
||||
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
|
||||
INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
|
||||
INNER JOIN @OrarendiNapok OrarendiNapok ON OrarendiNapok.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND OrarendiNapok.Datum = naptar.C_NAPDATUMA AND (OrarendiNapok.Hetirend = oo.C_HETIREND OR oo.C_HETIREND = 1554)
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES f ON oo.C_TANARID = f.ID
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES fh ON hi.C_HELYETTESTANAROKID = fH.ID
|
||||
LEFT JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID=oo.C_OSZTALYCSOPORTID
|
||||
LEFT JOIN T_TANTARGY_OSSZES t ON t.ID=oo.C_TANTARGYID
|
||||
WHERE
|
||||
oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
|
||||
AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES))
|
||||
AND hi.TOROLT='F'
|
||||
AND naptar.C_HETSORSZAMA = @hetSorszam
|
||||
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
||||
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
||||
AND oo.TOROLT='F'
|
||||
AND hi.C_HELYETTESITESNAPJA <= IIF(oo.C_OSZTALYCSOPORTID IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM T_TANITASIORA_OSSZES tao WHERE
|
||||
tao.C_OSZTALYCSOPORTID = oo.C_OSZTALYCSOPORTID
|
||||
AND tao.C_TANTARGYID = oo.C_TANTARGYID
|
||||
AND oo.C_TANARID IN (tao.C_TANARID, tao.C_HELYETTESITOTANARID, tao.C_ORATULAJDONOSID)
|
||||
AND tao.C_HETNAPJA = oo.C_HETNAPJA
|
||||
AND tao.C_ORASZAM = oo.C_ORASZAM
|
||||
AND tao.TOROLT = 'F'
|
||||
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
|
||||
AND tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND oo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F')
|
||||
) a
|
||||
ORDER BY Datum, Oraszam
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
IF OBJECT_ID('sp_GetNemMegtartottOrakSzamaPerHet') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetNemMegtartottOrakSzamaPerHet
|
||||
END
|
||||
|
||||
GO
|
||||
CREATE PROCEDURE [sp_GetNemMegtartottOrakSzamaPerHet]
|
||||
@osztalyId int,
|
||||
@intezmenyId int,
|
||||
@tanevId int
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @vegzosUtolsoNapDatuma DATE = (SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @tanevId AND TOROLT = 'F' AND C_NAPTIPUSA = 1402)
|
||||
|
||||
DECLARE @vegzosOsztalyokCsoportok TABLE (osztalyId INT)
|
||||
INSERT INTO @vegzosOsztalyokCsoportok
|
||||
SELECT ID FROM T_OSZTALYCSOPORT_OSSZES WHERE C_VEGZOSEVFOLYAM = 'T' AND C_TANEVID = @tanevID AND TOROLT = 'F'
|
||||
|
||||
DECLARE @OsszesNap TABLE (Datum DATE, Hetirend INT, OrarendiNap NVARCHAR(1), OsztalyCsoportId INT)
|
||||
INSERT INTO @OsszesNap
|
||||
SELECT DISTINCT
|
||||
C_NAPDATUMA
|
||||
,C_HETIREND
|
||||
,C_ORARENDINAP
|
||||
,kapcsolodo.Id
|
||||
FROM T_NAPTARINAP_OSSZES
|
||||
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
|
||||
WHERE
|
||||
C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
|
||||
DECLARE @TanevRendje TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
|
||||
INSERT INTO @TanevRendje
|
||||
SELECT
|
||||
C_DATUM
|
||||
,C_HETIREND
|
||||
,kapcsolodo.Id
|
||||
,C_ORARENDINAP
|
||||
FROM T_TANEVRENDJE_OSSZES
|
||||
CROSS JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo
|
||||
WHERE
|
||||
C_TANEVID = @tanevId
|
||||
AND TOROLT = 'F'
|
||||
AND C_OSSZESCSOPORTRAVONATKOZIK = 'T'
|
||||
|
||||
DECLARE @TanevRendjeOsztalyCsoportonkent TABLE (Datum DATE, Hetirend INT, OsztalyCsoportId INT, OrarendiNap NVARCHAR(1))
|
||||
INSERT INTO @TanevRendjeOsztalyCsoportonkent
|
||||
SELECT
|
||||
C_DATUM
|
||||
,C_HETIREND
|
||||
,C_OSZTALYCSOPORTID
|
||||
,C_ORARENDINAP
|
||||
FROM T_OSZTALYCSOPORT_TANEVRENDJE ocstr
|
||||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.ID = ocstr.C_TANEVRENDJEID
|
||||
INNER JOIN fnGetKapcsolodoOsztalycsoportok(@osztalyId) kapcsolodo ON kapcsolodo.Id = C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
TOROLT = 'F'
|
||||
|
||||
DECLARE @OrarendiNapok TABLE (Datum DATE, OsztalyCsoportId INT, Hetirend INT)
|
||||
INSERT INTO @OrarendiNapok
|
||||
SELECT
|
||||
Datum
|
||||
,OsztalyCsoportId
|
||||
,Hetirend
|
||||
FROM
|
||||
(SELECT
|
||||
OsszesNap.Datum
|
||||
,OsszesNap.OsztalyCsoportId
|
||||
,COALESCE(trocs.OrarendiNap, tr.OrarendiNap, OsszesNap.OrarendiNap) OrarendiNap
|
||||
,COALESCE(trocs.Hetirend, tr.Hetirend, OsszesNap.Hetirend) Hetirend
|
||||
FROM @OsszesNap OsszesNap
|
||||
LEFT JOIN @TanevRendje tr ON tr.Datum = OsszesNap.Datum AND tr.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
|
||||
LEFT JOIN @TanevRendjeOsztalyCsoportonkent trocs ON trocs.Datum = OsszesNap.Datum AND trocs.OsztalyCsoportId = OsszesNap.OsztalyCsoportId
|
||||
WHERE
|
||||
OsszesNap.OrarendiNap = 'T' OR tr.OrarendiNap = 'T' OR trocs.OrarendiNap = 'T'
|
||||
) a
|
||||
WHERE OrarendiNap ='T'
|
||||
|
||||
SELECT
|
||||
HetSorszam HetSorszama
|
||||
,count(ID) NemNaplozottOrakSzama
|
||||
,@osztalyId OsztalyID
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
Id
|
||||
,HetSorszam
|
||||
FROM
|
||||
(
|
||||
SELECT DISTINCT
|
||||
naptar.C_HETSORSZAMA HetSorszam
|
||||
,oo.Id Id
|
||||
FROM T_ORARENDIORA_OSSZES oo
|
||||
INNER JOIN T_NAPTARINAP_OSSZES naptar ON
|
||||
((naptar.C_NAPDATUMA >=oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA < oo.C_ORAERVENYESSEGVEGE)
|
||||
OR
|
||||
(naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGKEZDETE AND naptar.C_NAPDATUMA = oo.C_ORAERVENYESSEGVEGE))
|
||||
AND oo.C_HETNAPJA=naptar.C_HETNAPJA
|
||||
AND (naptar.C_NAPTIPUSA NOT IN (1386,1387,1389,1391,1392,1396,1397,1398,1399,1401))
|
||||
INNER JOIN @OrarendiNapok OrarendiNapok ON OrarendiNapok.OsztalyCsoportId = oo.C_OSZTALYCSOPORTID AND OrarendiNapok.Datum = naptar.C_NAPDATUMA AND (OrarendiNapok.Hetirend = oo.C_HETIREND OR oo.C_HETIREND = 1554)
|
||||
LEFT JOIN T_TANITASIORA_OSSZES tao ON
|
||||
naptar.C_NAPDATUMA = tao.C_DATUM
|
||||
AND tao.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID
|
||||
AND tao.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE
|
||||
AND tao.TOROLT='F'
|
||||
|
||||
LEFT JOIN T_HELYETTESITESIIDOSZAK_OSSZES hely ON hely.C_HELYETTESITETTORARENDID=oo.ID AND CAST(hely.C_HELYETTESITESNAPJA AS DATE) = naptar.C_NAPDATUMA
|
||||
WHERE
|
||||
oo.TOROLT='F'
|
||||
AND oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
|
||||
AND naptar.C_NAPDATUMA <= IIF(@osztalyId IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
|
||||
AND tao.ID IS NULL
|
||||
AND hely.ID IS NULL
|
||||
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
||||
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
||||
AND naptar.C_TANEVID = @tanevId
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
naptar.C_HETSORSZAMA HetSorszam
|
||||
,hi.ID Id
|
||||
FROM T_HELYETTESITESIIDOSZAK_OSSZES hi
|
||||
INNER JOIN T_ORARENDIORA_OSSZES oo on oo.Id=hi.C_HELYETTESITETTORARENDID
|
||||
INNER JOIN T_NAPTARINAP_OSSZES naptar on naptar.C_NAPDATUMA = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND naptar.C_TANEVID=hi.C_TANEVID AND naptar.C_INTEZMENYID=hi.C_INTEZMENYID
|
||||
WHERE
|
||||
oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@osztalyId))
|
||||
AND (oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId))) OR oo.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES))
|
||||
AND hi.TOROLT='F'
|
||||
AND (oo.C_TANORANKIVULIFOGLALKOZAS = 'F' OR oo.C_TANORANKIVULIFOGLALKOZAS IS NULL)
|
||||
AND oo.C_CSENGETESIRENDORAID IS NOT NULL
|
||||
AND oo.TOROLT='F'
|
||||
AND hi.C_HELYETTESITESNAPJA <= IIF(oo.C_OSZTALYCSOPORTID IN (SELECT osztalyId FROM @vegzosOsztalyokCsoportok) AND GETDATE() >= @vegzosUtolsoNapDatuma, @vegzosUtolsoNapDatuma, GETDATE())
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM T_ORARENDIORA_OSSZES ooo
|
||||
JOIN T_TANITASIORA_OSSZES tao ON tao.C_ORARENDIORAGROUPID = ooo.C_ORARENDIORAGROUPID AND tao.C_DATUM BETWEEN ooo.C_ORAERVENYESSEGKEZDETE AND ooo.C_ORAERVENYESSEGVEGE
|
||||
WHERE tao.C_DATUM = CAST(hi.C_HELYETTESITESNAPJA AS DATE) AND ooo.ID=hi.C_HELYETTESITETTORARENDID AND tao.TOROLT='F'
|
||||
)
|
||||
|
||||
)a
|
||||
)a
|
||||
GROUP BY HetSorszam
|
||||
ORDER BY HetSorszam
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+262
@@ -0,0 +1,262 @@
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
DECLARE @osztalyNev NVARCHAR(MAX) = (SELECT C_NEV FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId)
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (GETDATE() <= @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, GETDATE())
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (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
|
||||
|
||||
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)) 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]))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
|
||||
+1839
File diff suppressed because it is too large
Load Diff
+266
@@ -0,0 +1,266 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetPedagogusOrarend') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetPedagogusOrarend
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetPedagogusOrarend
|
||||
@intezmenyId INT,
|
||||
@tanevId INT,
|
||||
@pedagogusId INT,
|
||||
@aktivTanevId INT,
|
||||
@isEgyebFoglalkozasok BIT
|
||||
|
||||
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
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (GETDATE() <= @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, GETDATE())
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (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
|
||||
|
||||
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 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 OrarendiOra.C_OSZTALYCSOPORTID = Csoport.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))
|
||||
AND Orarendiora.C_TANARID = @pedagogusId
|
||||
|
||||
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)) 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), '')
|
||||
+ bveg.OsztalyCsoportNev + 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 @pedagogusId
|
||||
, 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
|
||||
@pedagogusId PedagogusId
|
||||
,pv.Ora Ora
|
||||
,Hetirend
|
||||
,(SELECT C_NYOMTATASINEV FROM T_FELHASZNALO_OSSZES WHERE Id = @pedagogusId) PedagogusNev
|
||||
,[1408] 'Hetfo'
|
||||
,[1409] 'Kedd'
|
||||
,[1410] 'Szerda'
|
||||
,[1411] 'Csutortok'
|
||||
,[1412] 'Pentek'
|
||||
,[1413] 'Szombat'
|
||||
, dic.C_NAME HETIREND_DNAME
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))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 Hetirend, Ora
|
||||
|
||||
END
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetStatPedagogusTanuloinakTantargyiMulasztasaiMegtartott]
|
||||
@tanarId INT,
|
||||
@tanevId INT,
|
||||
@iskolaErekeduTavolletId INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Tanár
|
||||
DECLARE @osztalyCsoportTantargy TABLE (osztalyCsoport INT, Tantargy INT)
|
||||
INSERT INTO @osztalyCsoportTantargy
|
||||
SELECT DISTINCT
|
||||
C_OSZTALYCSOPORTID
|
||||
,C_TANTARGYID
|
||||
FROM T_ORARENDIORA_OSSZES
|
||||
WHERE
|
||||
C_TANARID=@tanarId
|
||||
AND TOROLT = 'F'
|
||||
|
||||
--Tanulók
|
||||
CREATE TABLE #students (TanuloId INT)
|
||||
INSERT INTO #students
|
||||
SELECT DISTINCT
|
||||
C_TANULOID
|
||||
FROM T_TANULOCSOPORT_OSSZES
|
||||
WHERE C_OSZTALYCSOPORTID IN (SELECT osztalyCsoport FROM @osztalyCsoportTantargy)
|
||||
AND TOROLT = 'F'
|
||||
|
||||
--Taulók mulasztásai
|
||||
CREATE TABLE #mulasztas (Ossz INT, Tanulo INT, Tantargy INT, OsztalyCsoport INT)
|
||||
INSERT INTO #mulasztas
|
||||
SELECT
|
||||
COUNT(tm.ID)
|
||||
, tm.C_ORATANULOIID
|
||||
, t.ID
|
||||
, tao.C_OSZTALYCSOPORTID
|
||||
FROM T_TANULOMULASZTAS_OSSZES tm
|
||||
INNER JOIN T_TANITASIORA_OSSZES tao on tao.ID = tm.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t on t.ID = tao.C_TANTARGYID
|
||||
INNER JOIN #students s on s.TanuloID = tm.C_ORATANULOIID
|
||||
INNER JOIN @osztalyCsoportTantargy ocst on ocst.osztalyCsoport=tao.C_OSZTALYCSOPORTID and ocst.Tantargy=tao.C_TANTARGYID
|
||||
WHERE
|
||||
tm.Torolt = 'F'
|
||||
AND tm.C_TIPUS = 1500
|
||||
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
|
||||
AND tm.C_IGAZOLASTIPUSA <> @iskolaErekeduTavolletId
|
||||
GROUP BY tm.C_ORATANULOIID, t.ID, tao.C_OSZTALYCSOPORTID
|
||||
|
||||
--Naplózott óra tanulónként
|
||||
CREATE TABLE #naplozott (Tanulo INT, Tantargy INT, OsztalyCsoport INT, Ossz INT)
|
||||
INSERT INTO #naplozott
|
||||
SELECT
|
||||
m.Tanulo
|
||||
, m.Tantargy
|
||||
, m.OsztalyCsoport
|
||||
, COUNT(DISTINCT tao.ID)
|
||||
FROM #mulasztas m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.C_OSZTALYCSOPORTID=m.OsztalyCsoport AND tao.C_TANTARGYID=m.Tantargy AND tao.C_MEGTARTOTT='T'
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID=m.Tanulo AND tcs.C_OSZTALYCSOPORTID=m.OsztalyCsoport
|
||||
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
|
||||
INNER JOIN @osztalyCsoportTantargy ocst on ocst.osztalyCsoport=tao.C_OSZTALYCSOPORTID and ocst.Tantargy=tao.C_TANTARGYID
|
||||
WHERE
|
||||
tao.TOROLT='F'
|
||||
AND tao.C_DATUM >= tcs.C_BELEPESDATUM
|
||||
GROUP BY m.Tanulo, m.Tantargy, m.OsztalyCsoport
|
||||
|
||||
DECLARE @cols AS NVARCHAR(MAX),
|
||||
@query AS NVARCHAR(MAX),
|
||||
@colsIn AS NVARCHAR(MAX)
|
||||
|
||||
SELECT @cols= ISNULL(@cols + ',','') + QUOTENAME(Tantargy) FROM (SELECT DISTINCT m.Tantargy Tantargy FROM #mulasztas m) Tantargy
|
||||
SELECT @colsIn= ISNULL(@colsIn + ',','') +'CONVERT(NVARCHAR(MAX),'+QUOTENAME(Tantargy) + ')+''%'' as ' + QUOTENAME(nev) FROM (SELECT DISTINCT m.Tantargy AS Tantargy, t.c_nev nev FROM #mulasztas m
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.id=m.Tantargy) TantargyCols
|
||||
|
||||
set @query='
|
||||
SELECT
|
||||
fel.C_NYOMTATASINEV Tanulo
|
||||
, '+@colsIn+'
|
||||
FROM (SELECT
|
||||
mulasztas.Tanulo
|
||||
, ROUND(CONVERT(FLOAT, mulasztas.Ossz)/CONVERT(FLOAT, naplozott.Ossz)*100, 0) Osszes
|
||||
, mulasztas.Tantargy
|
||||
FROM #students s
|
||||
INNER JOIN #mulasztas mulasztas on mulasztas.Tanulo=s.TanuloId
|
||||
INNER JOIN #naplozott naplozott on naplozott.Tantargy=mulasztas.Tantargy and naplozott.OsztalyCsoport=mulasztas.OsztalyCsoport and naplozott.Tanulo=mulasztas.Tanulo
|
||||
)a
|
||||
PIVOT (MAX(Osszes) FOR Tantargy IN ('+@cols+'))pv
|
||||
INNER JOIN T_FELHASZNALO_OSSZES fel on fel.ID=Tanulo
|
||||
ORDER BY fel.C_NYOMTATASINEV
|
||||
'
|
||||
EXEC sp_executesql @query
|
||||
|
||||
DROP TABLE #students
|
||||
DROP TABLE #mulasztas
|
||||
DROP TABLE #naplozott
|
||||
|
||||
END
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetStatTanuloTantargyiMulasztasMegtartott]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetStatTanuloTantargyiMulasztasMegtartott]
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetStatTanuloTantargyiMulasztasMegtartott]
|
||||
@osztalyId INT,
|
||||
@tanevId INT,
|
||||
@iskolaErekeduTavolletId INT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
--Osztály tanulói
|
||||
CREATE TABLE #students (Id INT)
|
||||
INSERT INTO #students
|
||||
SELECT
|
||||
f.ID
|
||||
FROM T_TANULOCSOPORT_OSSZES tcs
|
||||
INNER JOIN T_FELHASZNALO_OSSZES f ON f.ID = tcs.C_TANULOID
|
||||
WHERE
|
||||
tcs.C_OSZTALYCSOPORTID=@osztalyId
|
||||
AND tcs.TOROLT='F'
|
||||
AND tcs.C_KILEPESDATUM IS NULL
|
||||
ORDER BY f.C_NYOMTATASINEV
|
||||
|
||||
--Tanuló mulasztásai
|
||||
CREATE TABLE #mulasztas (Ossz INT, Tanulo INT, Tantargy INT, OsztalyCsoport INT)
|
||||
INSERT INTO #mulasztas
|
||||
SELECT
|
||||
COUNT(tm.ID)
|
||||
, tm.C_ORATANULOIID
|
||||
, t.ID
|
||||
, tao.C_OSZTALYCSOPORTID
|
||||
FROM T_TANULOMULASZTAS_OSSZES tm
|
||||
INNER JOIN T_TANITASIORA_OSSZES tao on tao.ID = tm.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t on t.ID = tao.C_TANTARGYID
|
||||
INNER JOIN #students s on s.ID = tm.C_ORATANULOIID
|
||||
where tm.C_TANEVID=@tanevId
|
||||
AND tm.Torolt='F'
|
||||
AND tm.C_TIPUS=1500--and tm.c_igazolt='T' or tm.c_igazolt='F' ?????
|
||||
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
|
||||
AND tm.C_IGAZOLASTIPUSA <> @iskolaErekeduTavolletId
|
||||
GROUP BY tm.C_ORATANULOIID, t.ID, tao.C_OSZTALYCSOPORTID
|
||||
|
||||
--Naplózott óra tanulónként
|
||||
CREATE TABLE #naplozott (Tanulo INT, Tantargy INT, OsztalyCsoport INT, Ossz INT)
|
||||
INSERT INTO #naplozott
|
||||
SELECT
|
||||
m.Tanulo
|
||||
, m.Tantargy
|
||||
, m.OsztalyCsoport
|
||||
, COUNT(DISTINCT tao.ID)
|
||||
FROM #mulasztas m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.C_OSZTALYCSOPORTID=m.OsztalyCsoport AND tao.C_TANTARGYID=m.Tantargy AND tao.C_MEGTARTOTT='T'
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID=m.Tanulo AND tcs.C_OSZTALYCSOPORTID=m.OsztalyCsoport
|
||||
AND ((tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_OSZTALY_OSSZES)) OR (tao.C_OSZTALYCSOPORTID IN (SELECT ID FROM T_CSOPORT_OSSZES WHERE C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))))
|
||||
WHERE
|
||||
tao.TOROLT='F'
|
||||
AND tao.C_DATUM >= tcs.C_BELEPESDATUM
|
||||
GROUP BY m.Tanulo, m.Tantargy, m.OsztalyCsoport
|
||||
|
||||
DECLARE @cols AS NVARCHAR(MAX),
|
||||
@query AS NVARCHAR(MAX),
|
||||
@colsIn AS NVARCHAR(MAX)
|
||||
|
||||
SELECT @cols= ISNULL(@cols + ',','') + QUOTENAME(Tantargy) FROM (SELECT DISTINCT m.Tantargy Tantargy FROM #mulasztas m) Tantargy
|
||||
SELECT @colsIn= ISNULL(@colsIn + ',','') +'CONVERT(NVARCHAR(MAX),'+QUOTENAME(Tantargy) + ')+''%'' as ' + QUOTENAME(nev) FROM (SELECT DISTINCT m.Tantargy AS Tantargy, t.c_nev nev FROM #mulasztas m
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.id=m.Tantargy) TantargyCols
|
||||
|
||||
set @query='
|
||||
SELECT
|
||||
fel.C_NYOMTATASINEV Tanulo
|
||||
, '+@colsIn+'
|
||||
FROM (SELECT
|
||||
mulasztas.Tanulo
|
||||
, ROUND(CONVERT(FLOAT, mulasztas.Ossz)/CONVERT(FLOAT, naplozott.Ossz)*100, 0) Osszes
|
||||
, mulasztas.Tantargy
|
||||
FROM #students s
|
||||
INNER JOIN #mulasztas mulasztas on mulasztas.Tanulo=s.ID
|
||||
INNER JOIN #naplozott naplozott on naplozott.Tantargy=mulasztas.Tantargy and naplozott.OsztalyCsoport=mulasztas.OsztalyCsoport and naplozott.Tanulo=mulasztas.Tanulo
|
||||
)a
|
||||
PIVOT (MAX(Osszes) FOR Tantargy IN ('+@cols+'))pv
|
||||
INNER JOIN T_FELHASZNALO_OSSZES fel on fel.ID=Tanulo
|
||||
ORDER BY fel.C_NYOMTATASINEV
|
||||
'
|
||||
EXEC sp_executesql @query
|
||||
|
||||
DROP TABLE #students
|
||||
DROP TABLE #mulasztas
|
||||
DROP TABLE #naplozott
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+187
@@ -0,0 +1,187 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_GetTanulokJegyeiReszletezes]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetTanulokJegyeiReszletezes]
|
||||
END
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanulokJegyeiReszletezes]
|
||||
@OsztalyId int,
|
||||
@TanevId int,
|
||||
@isNemet bit = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT DISTINCT
|
||||
@osztalyId OsztalyId
|
||||
,ocs.C_NEV OsztalyNev
|
||||
,o.C_OSZTALYNAPLOLEIRASA OsztalyMegjegyzes
|
||||
,o.C_OSZTALYFONOKID PartnerID
|
||||
,ofo.C_NYOMTATASINEV Osztalyfonok
|
||||
,i.C_IGAZGATONEVE IntezmenyVezeto
|
||||
,i.C_NEV IntezmenyNeve
|
||||
,i.C_IRANYITOSZAM IntezmenyIranyitoszam
|
||||
,i.C_VAROS IntezmenyVaros
|
||||
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) IntezmenyCime
|
||||
,i.C_OMKOD IntezmenyOMKod
|
||||
FROM T_OSZTALYCSOPORT_OSSZES ocs
|
||||
INNER JOIN T_OSZTALY_OSSZES o ON ocs.ID = o.ID AND o.torolt='F'
|
||||
LEFT JOIN T_FELHASZNALO_OSSZES ofo ON ofo.ID = o.C_OSZTALYFONOKID
|
||||
INNER JOIN T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID=ocs.C_INTEZMENYID AND i.C_TANEVID = ocs.C_TANEVID AND i.Torolt = 'F'
|
||||
WHERE ocs.ID = @osztalyId
|
||||
|
||||
--Osztályhoz tartozó tanulók
|
||||
DECLARE @Tanulok TABLE (TanuloId INT PRIMARY KEY, KilepesDatum DATE)
|
||||
INSERT INTO @Tanulok
|
||||
SELECT TanuloId, KilepesDatum FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T')
|
||||
|
||||
--Értékelések
|
||||
DECLARE @ertekelesek TABLE (ErtekelesId INT, TargyNev NVARCHAR(MAX), Ertekeles NVARCHAR(MAX))
|
||||
INSERT INTO @ertekelesek
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, IIF(@isNemet = 0, 'Magatartás', 'Betragen') TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_MAGATARTAS))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_MAGATARTAS AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, IIF(@isNemet = 0, 'Szorgalom', 'Fleiss') TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(OSZTALYZAT.C_SZORGALOM))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, IIF(@isNemet = 0, JEGY.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT)))) Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES JEGY ON JEGY.ID=ERTEKELES.C_OSZTALYZAT AND JEGY.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, IIF(@isNemet = 0, 'Magatartás', 'Betragen') TARGY
|
||||
, SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @TanevId
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, IIF(@isNemet = 0, 'Szorgalom', 'Fleiss') TARGY
|
||||
, SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @TanevId
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) IN ('rossz', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) IN ('hanyag', 'változó', 'jó', 'példás', 'Vorbildlich', 'Gut', 'Wechselnd', 'Schlecht')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, IIF(@isNemet = 0, 'Magatartás / Szorgalom', 'Betragen / Fleiss') TARGY
|
||||
, ERTEKELES.C_ERTEKELESSZOVEG Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT ON OSZTALYZAT.ID = ERTEKELES.ID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @TanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND OSZTALYZAT.TOROLT = 'F'
|
||||
AND C_ERTEKELESSZOVEG IS NOT NULL
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND SUBSTRING(ERTEKELES.C_ERTEKELESSZOVEG, 1, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',') - 1) NOT IN ('rossz', 'változó', 'jó', 'példás')
|
||||
AND SUBSTRING (ERTEKELES.C_ERTEKELESSZOVEG, CHARINDEX(',', ERTEKELES.C_ERTEKELESSZOVEG + ',')+ 1, LEN(ERTEKELES.C_ERTEKELESSZOVEG)) NOT IN ('hanyag', 'változó', 'jó', 'példás')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ERTEKELES.Id
|
||||
, ISNULL(TARGY.C_NEVNYOMTATVANYBAN, TARGY.TARGYNEV) TARGY
|
||||
, ISNULL(CONVERT(NVARCHAR(MAX), IIF(@isNemet = 0, ERT.C_NAME, dbo.fnGetDokumentumNemet(ERTEKELES.C_OSZTALYZAT))), ISNULL(ERTEKELES.C_ERTEKELESSZOVEG, CONVERT(NVARCHAR(MAX),ertekelesMegjegyzes.C_SZAZALEK)+' % ')) Ertekeles
|
||||
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
||||
INNER JOIN @Tanulok TANCSOPORT ON TANCSOPORT.TanuloId = ERTEKELES.C_TANULOID
|
||||
INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE, C_NEVNYOMTATVANYBAN, C_TARGYKATEGORIA FROM T_TANTARGY_OSSZES WHERE TOROLT = 'F') TARGY
|
||||
ON TARGY.ID = ERTEKELES.C_TANTARGYID
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=ERTEKELES.C_OSZTALYZAT AND ERT.C_TANEVID = @tanevId
|
||||
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES ertekelesMegjegyzes on ertekelesMegjegyzes.ID=ertekeles.Id
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.Id = ERTEKELES.C_OSZTALYCSOPORTID
|
||||
WHERE
|
||||
ERTEKELES.C_TANEVID = @tanevId
|
||||
AND ERTEKELES.TOROLT='F'
|
||||
AND (KilepesDatum IS NULL OR KilepesDatum >= C_ERTEKELESDATUM)
|
||||
AND (cs.Id IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@tanevId)))
|
||||
AND TARGY.C_TARGYKATEGORIA <> 1248
|
||||
|
||||
SELECT
|
||||
FORMAT(te.C_ERTEKELESDATUM, 'yyyy.MM.dd.') Datum
|
||||
,ertekeles.TargyNev Tantargy
|
||||
,ertTipusa.C_NAME ErtTip
|
||||
,ertModja.C_NAME ErtMod
|
||||
,oe.c_tema Tema
|
||||
,ertekelo.C_NYOMTATASINEV ErtekeloNev
|
||||
,ertekeles.Ertekeles Osztalyzat
|
||||
,tanulo.C_NYOMTATASINEV TanuloNev
|
||||
,tanulo.C_NYOMTATASINEV + CAST(tanulo.Id AS NVARCHAR(MAX)) GroupParameter
|
||||
FROM @Tanulok t
|
||||
INNER JOIN T_TANULOERTEKELES_OSSZES te ON te.c_tanuloid = t.TanuloId
|
||||
INNER JOIN @ertekelesek ertekeles on ertekeles.ErtekelesId = te.Id
|
||||
LEFT JOIN T_OSZTALYZATERTEKELES_OSSZES oe ON oe.Id = te.id
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES ertTipusa ON ertTipusa.Id = te.C_ERTEKELESTIPUSA AND ertTipusa.C_TANEVID = @tanevid
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ertModja ON ertModja.Id = oe.C_ERTEKELESMODJA AND ertModja.C_TANEVID = @tanevid
|
||||
INNER JOIN T_FELHASZNALO_OSSZES ertekelo ON ertekelo.Id = C_ERTEKELOID
|
||||
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.Id = te.C_TANULOID
|
||||
WHERE
|
||||
EXISTS (SELECT TOP 1 C_TANULOID FROM @Tanulok WHERE TanuloId = C_TANULOID)
|
||||
ORDER BY tanulo.C_NYOMTATASINEV, te.C_ERTEKELESDATUM
|
||||
|
||||
END
|
||||
|
||||
GO
|
||||
+215
@@ -0,0 +1,215 @@
|
||||
IF OBJECT_ID('[dbo].[sp_GetTanulokMulasztasaiKesesei]') IS NOT NULL BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
|
||||
END
|
||||
GO
|
||||
|
||||
-- ==========================================================================================
|
||||
-- Description: <Az osztoly/csoport tanulóinak vagy egy adott tanulónak a mulasztásai>
|
||||
-- ==========================================================================================
|
||||
CREATE PROCEDURE [dbo].[sp_GetTanulokMulasztasaiKesesei]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pOsztalyCsoportId INT = NULL
|
||||
,@pTanuloId INT = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@elmeletiOraPercben INT = 45
|
||||
,@gyakorlatiOraPercben INT = 60
|
||||
,@osztalyCsoportNev NVARCHAR(200)
|
||||
|
||||
SELECT
|
||||
@osztalyCsoportNev = C_NEV
|
||||
FROM
|
||||
T_OSZTALYCSOPORT
|
||||
WHERE
|
||||
ID = @pOsztalyCsoportId
|
||||
AND T_OSZTALYCSOPORT.TOROLT = 'F'
|
||||
|
||||
|
||||
DECLARE @Tanulok TABLE (Id INT PRIMARY KEY)
|
||||
|
||||
IF @pTanuloId IS NOT NULL
|
||||
BEGIN
|
||||
INSERT INTO @Tanulok (Id) VALUES (@pTanuloId)
|
||||
END
|
||||
ELSE BEGIN
|
||||
INSERT INTO
|
||||
@Tanulok (Id)
|
||||
SELECT
|
||||
C_TANULOID
|
||||
FROM
|
||||
T_TANULOCSOPORT_OSSZES tcs
|
||||
WHERE
|
||||
tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId
|
||||
AND tcs.C_BELEPESDATUM <= GETDATE()
|
||||
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND tcs.TOROLT = 'F'
|
||||
|
||||
END
|
||||
|
||||
SELECT
|
||||
fh.ID TanuloId
|
||||
,fh.C_NYOMTATASINEV TanuloNev
|
||||
,fh.C_SZULETESIDATUM SzuletesiIdo
|
||||
,fh.C_ANYJANEVE AnyjaNeve
|
||||
,@osztalyCsoportNev OsztCsopNev
|
||||
,ISNULL(m.[hianyzasIgazolandoTanorai], 0) TanoraiHianyzasIgazolando
|
||||
,ISNULL(m.[hianyzasIgazolandoTanoranKivuli], 0) TanoranKivuliHianyzasIgazolando
|
||||
,ISNULL(m.[hianyzasIgazoltTanorai], 0) TanoraiHianyzasIgazolt
|
||||
,ISNULL(m.[hianyzasIgazoltTanoranKivuli], 0) TanoranKivuliHianyzasIgazolt
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanorai], 0) TanoraiHianyzasIgazolatlan
|
||||
,ISNULL(m.[hianyzasIgazolatlanTanoranKivuli], 0) TanoranKivuliHianyzasIgazolatlan
|
||||
,ISNULL(m.[kesesIgazolandoTanorai], 0) TanoraiKesesDarabszamIgazolando
|
||||
,ISNULL(m.[kesesIgazoltTanorai], 0) TanoraiKesesDarabszamIgazolt
|
||||
,ISNULL(m.[kesesIgazolatlanTanorai], 0) TanoraiKesesDarabszamIgazolatlan
|
||||
,ISNULL(k.[kesesIgazolandoTanoraiPerc], 0) TanoraiKesesIgazolandoPerc
|
||||
,ISNULL(k.[kesesIgazoltTanoraiPerc], 0) TanoraiKesesIgazoltPerc
|
||||
,ISNULL(k.[kesesIgazolatlanTanoraiPerc], 0) TanoraiKesesIgazolatlanPerc
|
||||
,ISNULL(kp.[kesesIgazolandoTanoraiPluszOra], 0) SzamitottKesesIgazolando
|
||||
,ISNULL(kp.[kesesIgazoltTanoraiPluszOra], 0) SzamitottKesesIgazolt
|
||||
,ISNULL(kp.[kesesIgazolatlanTanoraiPluszOra], 0) SzamitottKesesIgazolatlan
|
||||
FROM (
|
||||
SELECT
|
||||
ID
|
||||
,C_NYOMTATASINEV
|
||||
,C_SZULETESIDATUM
|
||||
,C_ANYJANEVE
|
||||
FROM
|
||||
T_FELHASZNALO_OSSZES fh
|
||||
WHERE
|
||||
EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = fh.ID)
|
||||
) fh
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[hianyzasIgazolandoTanorai]
|
||||
,[hianyzasIgazolandoTanoranKivuli]
|
||||
,[hianyzasIgazoltTanorai]
|
||||
,[hianyzasIgazoltTanoranKivuli]
|
||||
,[hianyzasIgazolatlanTanorai]
|
||||
,[hianyzasIgazolatlanTanoranKivuli]
|
||||
,[kesesIgazolandoTanorai]
|
||||
,[kesesIgazoltTanorai]
|
||||
,[kesesIgazolatlanTanorai]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,CASE mulasztasTipus WHEN 1500 THEN 'Hianyzas' WHEN 1499 THEN 'Keses' END +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
CASE isTanorai WHEN 'T' THEN 'Tanorai' WHEN 'F' THEN 'TanoranKivuli' END AS piv
|
||||
,cnt
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_TIPUS mulasztasTipus
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,IIF(cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)), 'T', 'F') AS isTanorai
|
||||
,COUNT(1) AS cnt
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE
|
||||
m.C_INTEZMENYID = @pIntezmenyId
|
||||
AND m.C_TANEVID = @pTanevId
|
||||
AND m.Torolt ='F'
|
||||
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
|
||||
GROUP BY m.C_ORATANULOIID, m.C_TIPUS, m.C_IGAZOLT, cs.ID, cs.C_TIPUSA
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(cnt)
|
||||
FOR piv IN ([hianyzasIgazolandoTanorai], [hianyzasIgazolandoTanoranKivuli], [hianyzasIgazoltTanorai], [hianyzasIgazoltTanoranKivuli], [hianyzasIgazolatlanTanorai], [hianyzasIgazolatlanTanoranKivuli], [kesesIgazolandoTanorai], [kesesIgazoltTanorai], [kesesIgazolatlanTanorai])
|
||||
) AS pvt
|
||||
) m ON fh.ID = m.tanuloId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPerc]
|
||||
,[kesesIgazoltTanoraiPerc]
|
||||
,[kesesIgazolatlanTanoraiPerc]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPerc' AS piv
|
||||
,kesesPercben
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,SUM(m.C_KESESPERCBEN) AS kesesPercben
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE m.C_INTEZMENYID = @pIntezmenyId
|
||||
AND m.C_TANEVID = @pTanevId
|
||||
AND m.Torolt ='F'
|
||||
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)))
|
||||
AND m.C_TIPUS = 1499
|
||||
GROUP BY m.C_ORATANULOIID, m.C_IGAZOLT
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesPercben)
|
||||
FOR piv IN ([kesesIgazolandoTanoraiPerc], [kesesIgazoltTanoraiPerc], [kesesIgazolatlanTanoraiPerc])
|
||||
) AS pvt
|
||||
) k ON k.tanuloId = m.tanuloId
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
tanuloId
|
||||
,[kesesIgazolandoTanoraiPluszOra]
|
||||
,[kesesIgazoltTanoraiPluszOra]
|
||||
,[kesesIgazolatlanTanoraiPluszOra]
|
||||
FROM (
|
||||
SELECT
|
||||
x.tanuloId
|
||||
,'Keses' +
|
||||
CASE WHEN isIgazolt IS NULL THEN 'Igazolando' WHEN isIgazolt = 'T' THEN 'Igazolt' WHEN isIgazolt = 'F' THEN 'Igazolatlan' END +
|
||||
'TanoraiPluszOra' AS piv
|
||||
,kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
xx.tanuloId
|
||||
,xx.isIgazolt
|
||||
,SUM(xx.keses / (CASE WHEN isGyakorlati = 'F' THEN @elmeletiOraPercben ELSE @gyakorlatiOraPercben END)) AS kesesOraban
|
||||
FROM (
|
||||
SELECT
|
||||
m.C_ORATANULOIID AS tanuloId
|
||||
,m.C_IGAZOLT isIgazolt
|
||||
,t.C_GYAKORLATI AS isGyakorlati
|
||||
,SUM(m.C_KESESPERCBEN) AS keses
|
||||
FROM T_TANULOMULASZTAS_OSSZES m
|
||||
INNER JOIN T_TANITASIORA_OSSZES tn ON tn.ID = m.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES t ON t.ID = tn.C_TANTARGYID
|
||||
LEFT JOIN T_CSOPORT_OSSZES cs ON tn.C_OSZTALYCSOPORTID = cs.ID
|
||||
WHERE
|
||||
m.C_INTEZMENYID = @pIntezmenyId
|
||||
AND m.C_TANEVID = @pTanevId
|
||||
AND EXISTS (SELECT 1 FROM @Tanulok tk WHERE tk.Id = m.C_ORATANULOIID)
|
||||
AND (cs.ID IS NULL OR cs.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(@pTanevId)))
|
||||
AND m.C_TIPUS = 1499
|
||||
AND m.TOROLT = 'F'
|
||||
GROUP BY
|
||||
m.C_ORATANULOIID
|
||||
,m.C_IGAZOLT
|
||||
,t.C_GYAKORLATI
|
||||
) xx
|
||||
GROUP BY tanuloId, xx.isIgazolt
|
||||
) x
|
||||
) p
|
||||
PIVOT (
|
||||
MAX(kesesOraban)
|
||||
FOR piv IN ([kesesIgazolandoTanoraiPluszOra], [kesesIgazoltTanoraiPluszOra], [kesesIgazolatlanTanoraiPluszOra])
|
||||
) AS pvt
|
||||
) kp ON m.tanuloId = kp.tanuloId
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('sp_GetTeremOrarend') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE sp_GetTeremOrarend
|
||||
END
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE sp_GetTeremOrarend
|
||||
@intezmenyId INT,
|
||||
@tanevId INT,
|
||||
@teremId INT,
|
||||
@aktivTanevId INT,
|
||||
@isEgyebFoglalkozasok BIT
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
SELECT
|
||||
T_INTEZMENYADATOK_OSSZES.C_NEV IntezmenyNeve
|
||||
,T_INTEZMENYADATOK_OSSZES.C_OMKOD IntezmenyOMKod
|
||||
FROM T_INTEZMENYADATOK_OSSZES
|
||||
WHERE
|
||||
T_INTEZMENYADATOK_OSSZES.TOROLT = 'F'
|
||||
AND T_INTEZMENYADATOK_OSSZES.C_TANEVID = @tanevId
|
||||
|
||||
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
|
||||
|
||||
IF (@tanevId = @AktivtanevId AND GETDATE() <= @UtolsoNap)
|
||||
BEGIN
|
||||
IF (GETDATE() <= @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, GETDATE())
|
||||
END
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @VizsgaltNap = (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
|
||||
|
||||
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 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 OrarendiOra.C_OSZTALYCSOPORTID = Csoport.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))
|
||||
AND Orarendiora.C_TEREMID = @teremId
|
||||
|
||||
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)) 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), '')
|
||||
+ bveg.OsztalyCsoportNev + CHAR(13) + CHAR(10)
|
||||
+ bveg.PedagogusNev + 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 @teremId
|
||||
, 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
|
||||
Terem.Id TeremId
|
||||
,Terem.C_NEV TeremNev
|
||||
,Hetirend HetirendId
|
||||
,HetirendDictionary.C_NAME HetirendNev
|
||||
FROM T_TEREM_OSSZES Terem
|
||||
CROSS JOIN (SELECT ID FROM @Hetirendek) Hetirend (Hetirend)
|
||||
INNER JOIN T_DICTIONARYITEMBASE_OSSZES HetirendDictionary ON HetirendDictionary.id = Hetirend AND HetirendDictionary.C_TANEVID = @tanevId
|
||||
|
||||
SELECT
|
||||
@teremId TeremId
|
||||
,pv.Ora Ora
|
||||
,Hetirend HetirendId
|
||||
,(SELECT C_NEV FROM T_TEREM_OSSZES WHERE Id = @teremId) TeremNev
|
||||
,[1408] 'Hetfo'
|
||||
,[1409] 'Kedd'
|
||||
,[1410] 'Szerda'
|
||||
,[1411] 'Csutortok'
|
||||
,[1412] 'Pentek'
|
||||
,[1413] 'Szombat'
|
||||
FROM @Orarend
|
||||
PIVOT (MAX(Foglalkozas) FOR Nap in([1408],[1409],[1410],[1411],[1412],[1413]))pv
|
||||
|
||||
INNER JOIN @Orakezdetek ok ON ok.Ora = pv.Ora
|
||||
ORDER BY Hetirend, Ora
|
||||
|
||||
END
|
||||
DROP TABLE #CsengetesiRendAdatok
|
||||
DROP TABLE #Orarend
|
||||
DROP TABLE #OrarendiOrak
|
||||
GO
|
||||
+188
@@ -0,0 +1,188 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
|
||||
END
|
||||
GO
|
||||
|
||||
-- ===================================================================
|
||||
-- Author: Badits-Nyáradi József
|
||||
-- ===================================================================
|
||||
CREATE PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyStatisztika]
|
||||
@pTanevId INT,
|
||||
@pOsztalyId 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
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId),
|
||||
(SELECT C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroNaptipusId),
|
||||
GETDATE())
|
||||
);
|
||||
DECLARE @osztalyoktanoraicsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY, C_TIPUSA INT, C_VEGZOSEVFOLYAM CHAR(1));
|
||||
DECLARE @osztalycsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY);
|
||||
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
DECLARE @szurtErtekeles TABLE (
|
||||
T_TANULOERTEKELES_ID INT PRIMARY KEY, C_TANULOID INT, ERTEKELES NVARCHAR(MAX), ERTEKELES_SZOVEG_MEGJEGYZES NVARCHAR(MAX), C_ERTEKELESDATUM DATETIME,
|
||||
C_TANTARGYID INT, TANTARGY_NEV NVARCHAR(255), TARGYKATEGORIA_NEV NVARCHAR(255), TARGYKATEGORIA_SORSZAM INT, T_TANTARGY_C_FOTARGYE CHAR(1), T_TANTARGY_C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1)
|
||||
);
|
||||
DECLARE @szurtMulasztas TABLE (TIPUS_CHAR CHAR(1), C_TIPUS INT , C_IGAZOLT CHAR(1), C_TANULOID INT, C_GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT);
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
INSERT INTO @osztalycsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyId)
|
||||
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))))
|
||||
);
|
||||
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))))
|
||||
);
|
||||
-- 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) (
|
||||
SELECT DISTINCT T_TANULOERTEKELES_OSSZES.ID, C_TANULOID, COALESCE(CONVERT(NVARCHAR, ODIB.C_VALUE), (CASE WHEN T_TANULOERTEKELES_OSSZES.C_ERTEKELESSZOVEG IS NOT NULL THEN 'sz' ELSE NULL END), CONVERT(NVARCHAR, C_SZAZALEK)) AS ERTEKELES, T_TANULOERTEKELES_OSSZES.C_ERTEKELESSZOVEG AS ERTEKELES_SZOVEG_MEGJEGYZES, C_ERTEKELESDATUM,
|
||||
C_TANTARGYID, COALESCE(T_TANTARGY_OSSZES.C_NEVNYOMTATVANYBAN, T_TANTARGY_OSSZES.C_NEV) AS TANTARGY_NEV, T_DICTIONARYITEMBASE_OSSZES.C_NAME AS TARGYKATEGORIA_NEV, T_DICTIONARYITEMBASE_OSSZES.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_OSZTALYZATERTEKELES_OSSZES
|
||||
INNER JOIN T_TANULOERTEKELES_OSSZES ON T_TANULOERTEKELES_OSSZES.ID = T_OSZTALYZATERTEKELES_OSSZES.ID AND T_TANULOERTEKELES_OSSZES.TOROLT = 'F'
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANULOERTEKELES_OSSZES.C_TANEVID
|
||||
LEFT JOIN T_OSZTALYZATTIPUS_OSSZES ON T_OSZTALYZATTIPUS_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_OSZTALYZAT
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS ODIB ON ODIB.ID = T_OSZTALYZATTIPUS_OSSZES.ID AND ODIB.C_TANEVID = @pTanevId
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = @pTanevId
|
||||
INNER JOIN @OSZTALYTANULOK AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOERTEKELES_OSSZES.C_TANULOID
|
||||
WHERE T_TANULOERTEKELES_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_OSZTALYZATERTEKELES_OSSZES.TOROLT = 'F' AND T_TANULOERTEKELES_OSSZES.C_TANEVID = @pTanevId AND C_ERTEKELESTIPUSA = @pErtekelestipusaId AND (T_TANTARGY_OSSZES.C_FOTARGYE = 'T' OR C_ALTANTARGYKENTNYOMTATVANYBAN = '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(T_TANTARGY_OSSZES.C_NEVNYOMTATVANYBAN, T_TANTARGY_OSSZES.C_NEV) AS TANTARGY_NEV, T_DICTIONARYITEMBASE_OSSZES.C_NAME AS TARGYKATEGORIA_NEV, T_DICTIONARYITEMBASE_OSSZES.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, T_TANTARGY_OSSZES.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_FOGLALKOZAS_OSSZES
|
||||
INNER JOIN @aktualisOsztalyCsoportok AS OSZTALYCSOPORT ON OSZTALYCSOPORT.OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_FOGLALKOZAS_OSSZES.C_TANEVID
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = @pTanevId
|
||||
WHERE T_FOGLALKOZAS_OSSZES.TOROLT = 'F' AND (T_TANTARGY_OSSZES.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
|
||||
) AS TANTARGYAK
|
||||
ORDER BY TARGYKATEGORIA_SORSZAM, TANTARGY_NEV;
|
||||
SELECT *
|
||||
FROM @szurtErtekeles;
|
||||
|
||||
SELECT T_TANULOERTEKELES_OSSZES.ID, C_TANULOID, C_MAGATARTAS, C_VALUE_M, C_NAME_M, C_SZORGALOM, C_VALUE_SZ, C_NAME_SZ, T_TANULOERTEKELES_OSSZES.C_ERTEKELESSZOVEG, C_ERTEKELESDATUM, T_OSZTALYFONOKIERTEKELES_OSSZES.TOROLT
|
||||
FROM T_OSZTALYFONOKIERTEKELES_OSSZES
|
||||
INNER JOIN T_TANULOERTEKELES_OSSZES ON T_TANULOERTEKELES_OSSZES.ID = T_OSZTALYFONOKIERTEKELES_OSSZES.ID
|
||||
INNER JOIN (SELECT DISTINCT ID AS ID_SZ, C_VALUE + 1 AS C_VALUE_SZ, C_NAME AS C_NAME_SZ FROM T_DICTIONARYITEMBASE_OSSZES) AS T_DICTIONARYITEMBASE_SZ ON T_DICTIONARYITEMBASE_SZ.ID_SZ = T_OSZTALYFONOKIERTEKELES_OSSZES.C_SZORGALOM
|
||||
INNER JOIN (SELECT DISTINCT ID AS ID_M, C_VALUE + 1 AS C_VALUE_M, C_NAME AS C_NAME_M FROM T_DICTIONARYITEMBASE_OSSZES) AS T_DICTIONARYITEMBASE_M ON T_DICTIONARYITEMBASE_M.ID_M = T_OSZTALYFONOKIERTEKELES_OSSZES.C_MAGATARTAS
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOERTEKELES_OSSZES.C_TANULOID
|
||||
WHERE T_TANULOERTEKELES_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_OSZTALYFONOKIERTEKELES_OSSZES.TOROLT = 'F' AND T_TANULOERTEKELES_OSSZES.C_TANEVID = @pTanevId AND C_ERTEKELESTIPUSA = @pErtekelestipusaId
|
||||
|
||||
--MULASZTÁS
|
||||
INSERT INTO @szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA) (
|
||||
SELECT CASE WHEN C_TIPUS = @pMulasztasTipusIdKeses THEN 'K' ELSE 'H' END AS TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, SUM(C_KESESPERCBEN) AS KESESPERC, COUNT(T_TANULOMULASZTAS_OSSZES.ID) AS MULASZTASOK_SZAMA
|
||||
FROM T_TANULOMULASZTAS_OSSZES
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES ON T_TANITASIORA_OSSZES.ID = T_TANULOMULASZTAS_OSSZES.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID = T_TANULOCSOPORT_OSSZES.C_TANULOID
|
||||
AND T_TANITASIORA_OSSZES.C_DATUM >= T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM AND (T_TANITASIORA_OSSZES.C_DATUM < T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL)
|
||||
INNER JOIN @osztalyoktanoraicsoportok AS OSZTALYOKTANORAICSOPORTOK ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALYOKTANORAICSOPORTOK.OSZTALYCSOPORTID
|
||||
WHERE T_TANULOMULASZTAS_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANULOMULASZTAS_OSSZES.TOROLT='F' AND T_TANITASIORA_OSSZES.TOROLT = 'F' AND T_TANITASIORA_OSSZES.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
|
||||
AND C_IGAZOLT IS NOT NULL AND T_TANULOMULASZTAS_OSSZES.C_TANEVID=@pTanevId AND T_TANULOMULASZTAS_OSSZES.C_TIPUS IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas) AND (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA NOT IN (@pNemMulasztaIgazolasTipusIds))
|
||||
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI
|
||||
);
|
||||
IF @pElmeletgyakorlat=0
|
||||
BEGIN
|
||||
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
|
||||
ORDER BY C_TANULOID, C_TIPUS DESC, 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)/45 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 TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, KESESPERC, KESESPERC/(CASE WHEN C_GYAKORLATI = 'T' THEN 60 ELSE 45 END) AS KESESORA, MULASZTASOK_SZAMA, C_GYAKORLATI
|
||||
FROM @szurtMulasztas
|
||||
ORDER BY C_TANULOID, C_TIPUS DESC, 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 60 ELSE 45 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
|
||||
END
|
||||
GO
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('[dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_Nyomtatvany_Excel_IdoszakiOsztalyokTantargyiStatisztika]
|
||||
END
|
||||
GO
|
||||
-- ===================================================================
|
||||
-- Author: Badits-Nyáradi József
|
||||
-- ===================================================================
|
||||
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
|
||||
@pElmeletgyakorlat BIT = 0
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @idoszakEleje DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pTanevrendjeTanevKezdeteNaptipusId),
|
||||
(SELECT C_ELSOTANITASINAP FROM T_TANEV_OSSZES WHERE ID = @pTanevId))
|
||||
);
|
||||
DECLARE @idoszakVege DATE = (
|
||||
SELECT COALESCE(
|
||||
(SELECT C_DATUM FROM T_TANEVRENDJE_OSSZES WHERE C_TANEVID = @pTanevId AND C_NAPTIPUSA = @pLezaroNaptipusId),
|
||||
GETDATE())
|
||||
);
|
||||
DECLARE @osztalyoktanoraicsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY, C_TIPUSA INT, C_VEGZOSEVFOLYAM CHAR(1));
|
||||
DECLARE @osztalycsoportok TABLE (OSZTALYCSOPORTID INT PRIMARY KEY);
|
||||
DECLARE @aktualisOsztalyCsoportok TABLE (OSZTALYCSOPORTID INT);
|
||||
DECLARE @osztalyTanulok TABLE (TANULOID INT PRIMARY KEY, BELEPESDATUM DATE, KILEPESDATUM DATE);
|
||||
DECLARE @szurtMulasztas TABLE (TIPUS_CHAR CHAR(1), C_TIPUS INT , C_IGAZOLT CHAR(1), C_TANULOID INT, C_GYAKORLATI CHAR(1), KESESPERC INT, MULASZTASOK_SZAMA INT);
|
||||
|
||||
DECLARE @tantargyak TABLE(TANTARGYID INT, TANTARGY_NEV NVARCHAR(MAX), TARGYKATEGORIA_NEV NVARCHAR(MAX), TARGYKATEGORIA_SORSZAM INT, C_FOTARGYE CHAR(1), C_ALTANTARGYKENTNYOMTATVANYBAN CHAR(1));
|
||||
DECLARE @osztalyok TABLE(OSZTALYID INT, NEV NVARCHAR(MAX), EVFOLYAM INT, SORREND INT);
|
||||
DECLARE @osztalyokTanulokszama TABLE (OSZTALYID INT, TANULOKSZAMA INT);
|
||||
DECLARE @osztalyokErtekeles TABLE (OSZTALYID INT, TANTARGYID INT, ATLAG FLOAT);
|
||||
DECLARE @osztalyokMulasztas TABLE (OSZTALYID INT, TIPUS_CHAR CHAR(1), C_TIPUS INT, C_IGAZOLT CHAR(1), MULASZTASOK_SZAMA INT, C_GYAKORLATI CHAR(1), DESCR CHAR(3));
|
||||
|
||||
-- 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
|
||||
);
|
||||
|
||||
-- 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, T_DICTIONARYITEMBASE_OSSZES.C_NAME AS TARGYKATEGORIA_NEV, T_DICTIONARYITEMBASE_OSSZES.C_VALUE AS TARGYKATEGORIA_SORSZAM, T_TANTARGY_OSSZES.C_FOTARGYE, T_TANTARGY_OSSZES.C_ALTANTARGYKENTNYOMTATVANYBAN
|
||||
FROM T_TANTARGY_OSSZES
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
|
||||
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, T_DICTIONARYITEMBASE_OSSZES.C_ORDER AS SORREND, ROW_NUMBER() OVER(ORDER BY T_DICTIONARYITEMBASE_OSSZES.C_ORDER ASC, T_OSZTALYCSOPORT_OSSZES.C_NEV ASC) AS Row#
|
||||
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 ON T_DICTIONARYITEMBASE_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA AND T_DICTIONARYITEMBASE_OSSZES.TOROLT = 'F' AND T_DICTIONARYITEMBASE_OSSZES.C_TANEVID = T_TANEV_OSSZES.ID
|
||||
WHERE T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F' AND T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@pIntezmenyId AND T_TANEV_OSSZES.TOROLT = 'F' AND T_TANEV_OSSZES.ID = @pTanevId
|
||||
ORDER BY Row#;
|
||||
|
||||
DECLARE @pOsztalyId INT = 0;
|
||||
DECLARE @sorrend INT = 0;
|
||||
WHILE (1 = 1)
|
||||
BEGIN
|
||||
DELETE FROM @szurtMulasztas;
|
||||
DELETE FROM @osztalycsoportok;
|
||||
DELETE FROM @aktualisOsztalyCsoportok;
|
||||
DELETE FROM @osztalyTanulok;
|
||||
|
||||
SELECT TOP 1 @pOsztalyId = OSZTALYID, @sorrend = Row#
|
||||
FROM #tempOsztalyok
|
||||
WHERE @sorrend < Row#
|
||||
ORDER BY Row#;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
BREAK;
|
||||
END
|
||||
|
||||
INSERT INTO @osztalycsoportok (OSZTALYCSOPORTID) (
|
||||
SELECT ID FROM fnGetKapcsolodoOsztalycsoportok(@pOsztalyId)
|
||||
WHERE (ID IN (SELECT ID FROM T_OSZTALY_OSSZES) 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 ID FROM T_OSZTALY_OSSZES) 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;
|
||||
|
||||
INSERT INTO @osztalyokErtekeles (OSZTALYID, TANTARGYID, ATLAG)
|
||||
SELECT @pOsztalyId AS OSZTALYID, C_TANTARGYID AS TANTARGYID, ROUND(AVG(CAST(ODIB.C_VALUE AS FLOAT)), 2) AS ATLAG
|
||||
FROM T_OSZTALYZATERTEKELES_OSSZES
|
||||
INNER JOIN T_TANULOERTEKELES_OSSZES ON T_TANULOERTEKELES_OSSZES.ID = T_OSZTALYZATERTEKELES_OSSZES.ID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANULOERTEKELES_OSSZES.C_TANEVID
|
||||
INNER JOIN T_OSZTALYZATTIPUS_OSSZES ON T_OSZTALYZATTIPUS_OSSZES.ID = T_TANULOERTEKELES_OSSZES.C_OSZTALYZAT
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES AS ODIB ON ODIB.ID = T_OSZTALYZATTIPUS_OSSZES.ID
|
||||
LEFT JOIN T_TARGYKATEGORIATIPUS_OSSZES ON T_TARGYKATEGORIATIPUS_OSSZES.ID = T_TANTARGY_OSSZES.C_TARGYKATEGORIA
|
||||
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ON T_DICTIONARYITEMBASE_OSSZES.ID = T_TARGYKATEGORIATIPUS_OSSZES.ID
|
||||
INNER JOIN @OSZTALYTANULOK AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOERTEKELES_OSSZES.C_TANULOID
|
||||
WHERE T_TANULOERTEKELES_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_OSZTALYZATERTEKELES_OSSZES.TOROLT = 'F' AND T_TANULOERTEKELES_OSSZES.C_TANEVID = @pTanevId AND C_ERTEKELESTIPUSA = @pErtekelestipusaId AND (T_TANTARGY_OSSZES.C_FOTARGYE = 'T' OR C_ALTANTARGYKENTNYOMTATVANYBAN = 'T' )
|
||||
GROUP BY C_TANTARGYID;
|
||||
|
||||
--MULASZTÁS
|
||||
INSERT INTO @szurtMulasztas (TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_TANULOID, C_GYAKORLATI, KESESPERC, MULASZTASOK_SZAMA) (
|
||||
SELECT CASE WHEN C_TIPUS = @pMulasztasTipusIdKeses THEN 'K' ELSE 'H' END AS TIPUS_CHAR, C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI, SUM(COALESCE(C_KESESPERCBEN, 0)) AS KESESPERC, COUNT(T_TANULOMULASZTAS_OSSZES.ID) AS MULASZTASOK_SZAMA
|
||||
FROM T_TANULOMULASZTAS_OSSZES
|
||||
INNER JOIN @osztalyTanulok AS OSZTALYTANULOK ON OSZTALYTANULOK.TANULOID = T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID
|
||||
INNER JOIN T_TANITASIORA_OSSZES ON T_TANITASIORA_OSSZES.ID = T_TANULOMULASZTAS_OSSZES.C_TANITASIORAKID
|
||||
INNER JOIN T_TANTARGY_OSSZES ON T_TANTARGY_OSSZES.ID = T_TANITASIORA_OSSZES.C_TANTARGYID AND T_TANTARGY_OSSZES.C_TANEVID = T_TANITASIORA_OSSZES.C_TANEVID
|
||||
INNER JOIN T_TANULOCSOPORT_OSSZES ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID AND T_TANULOMULASZTAS_OSSZES.C_ORATANULOIID = T_TANULOCSOPORT_OSSZES.C_TANULOID
|
||||
AND T_TANITASIORA_OSSZES.C_DATUM >= T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM AND (T_TANITASIORA_OSSZES.C_DATUM < T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL)
|
||||
INNER JOIN @osztalyoktanoraicsoportok AS OSZTALYOKTANORAICSOPORTOK ON T_TANITASIORA_OSSZES.C_OSZTALYCSOPORTID = OSZTALYOKTANORAICSOPORTOK.OSZTALYCSOPORTID
|
||||
WHERE T_TANULOMULASZTAS_OSSZES.C_INTEZMENYID = @pIntezmenyId AND T_TANULOMULASZTAS_OSSZES.TOROLT='F' AND T_TANITASIORA_OSSZES.TOROLT = 'F' AND T_TANITASIORA_OSSZES.C_DATUM BETWEEN @idoszakEleje AND @idoszakVege
|
||||
AND C_IGAZOLT IS NOT NULL AND T_TANULOMULASZTAS_OSSZES.C_TANEVID=@pTanevId AND T_TANULOMULASZTAS_OSSZES.C_TIPUS IN (@pMulasztasTipusIdKeses, @pMulasztasTipusIdHianyzas) AND (C_IGAZOLASTIPUSA IS NULL OR C_IGAZOLASTIPUSA NOT IN (@pNemMulasztaIgazolasTipusIds))
|
||||
GROUP BY C_TIPUS, C_IGAZOLT, C_ORATANULOIID, C_GYAKORLATI
|
||||
);
|
||||
|
||||
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 60 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
|
||||
|
||||
DECLARE @cols AS NVARCHAR(MAX);
|
||||
DECLARE @colsHeader AS NVARCHAR(MAX);
|
||||
DECLARE @query AS NVARCHAR(MAX);
|
||||
|
||||
SELECT OSZTALYID, TANTARGYID, /*COALESCE(CONVERT(NVARCHAR, ATLAG), '') AS*/ ATLAG
|
||||
INTO #tempErtekeles
|
||||
FROM @osztalyokErtekeles;
|
||||
|
||||
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], ' + @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
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
SELECT * INTO #tempMulasztas
|
||||
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 #tempMulasztas
|
||||
) AS MULASZTAS ON MULASZTAS.M_OSZTALYID = OSZTALYOK.OSZTALYID
|
||||
PIVOT (
|
||||
MAX(MULASZTASOK_SZAMA)
|
||||
FOR DESCR IN (' + @cols + ')
|
||||
) AS PIVOTTABLE
|
||||
ORDER BY Row#';
|
||||
execute(@query);
|
||||
|
||||
IF OBJECT_ID('tempdb..#tempOsztalyok') IS NOT NULL DROP TABLE #tempOsztalyok
|
||||
IF OBJECT_ID('tempdb..#tempTanulokszama') IS NOT NULL DROP TABLE #tempTanulokszama
|
||||
IF OBJECT_ID('tempdb..#tempErtekeles') IS NOT NULL DROP TABLE #tempErtekeles
|
||||
IF OBJECT_ID('tempdb..#tempMulasztas') IS NOT NULL DROP TABLE #tempMulasztas
|
||||
END
|
||||
|
||||
GO
|
||||
|
||||
|
||||
+329
@@ -0,0 +1,329 @@
|
||||
GO
|
||||
/****** Object: StoredProcedure [dbo].[sp_SetRendszerErtesitesek] Script Date: 2016.06.09. 14:34:01 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
IF OBJECT_ID('dbo.sp_SetRendszerErtesitesek') IS NOT NULL
|
||||
BEGIN
|
||||
DROP PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
|
||||
END
|
||||
GO
|
||||
|
||||
-- =============================================
|
||||
-- Author: DT
|
||||
-- Create date: 2016-03-21
|
||||
-- Description: Rendszer értesítések tábla frissítése
|
||||
-- =============================================
|
||||
CREATE PROCEDURE [dbo].[sp_SetRendszerErtesitesek]
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
|
||||
|
||||
/*Globál UPDATE*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_FRISSITESIDEJE = GETDATE()
|
||||
,LASTCHANGED = GETDATE()
|
||||
,C_KELLFRISSITES = 'F'
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
/*Az elektronikus naplóban nincs beállítva a visszamenőleges beírás korlátozása!*/
|
||||
|
||||
|
||||
/*
|
||||
A rendszerben ...
|
||||
tanuló nincs osztályba sorolva!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANULOKOSZTALYBASOROLASA =
|
||||
( SELECT COUNT(1)
|
||||
FROM T_TANULO t
|
||||
LEFT JOIN T_TANULOCSOPORT TCS ON ( TCS.C_TANULOID = t.ID
|
||||
AND TCS.TOROLT = 'F'
|
||||
AND TCS.C_BELEPESDATUM < GETDATE()
|
||||
AND (TCS.C_KILEPESDATUM is null OR TCS.C_KILEPESDATUM >= GETDATE())
|
||||
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = TCS.C_INTEZMENYID
|
||||
AND T_RENDSZERERTESITESEK.C_TANEVID = TCS.C_TANEVID
|
||||
)
|
||||
WHERE T.TOROLT = 'F' AND TCS.ID IS NULL
|
||||
AND T_RENDSZERERTESITESEK.C_INTEZMENYID = T.C_ALINTEZMENYID
|
||||
AND T_RENDSZERERTESITESEK.C_TANEVID = T.C_ALTANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
/*
|
||||
Az órarendben ... órában tanulóütközés van,
|
||||
azonos órában a tanulónak több tanóra IS rögzítve van!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_ORARENDTANULOUTKOZESEK =
|
||||
( SELECT count(1)
|
||||
FROM (
|
||||
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID, COUNT(1) AS cnt
|
||||
FROM (
|
||||
SELECT o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID--, COUNT(1)
|
||||
FROM T_ORARENDIORA o
|
||||
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
|
||||
WHERE o.TOROLT = 'F'
|
||||
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
|
||||
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
|
||||
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
|
||||
AND tcs.C_BELEPESDATUM < GETDATE()
|
||||
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
UNION ALL
|
||||
|
||||
SELECT n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, tcs.C_TANULOID
|
||||
FROM T_TANITASIORA o
|
||||
INNER JOIN T_FOGLALKOZAS F ON F.ID = o.C_FOGLALKOZASID AND F.TOROLT = 'F'
|
||||
INNER JOIN T_OSZTALYCSOPORT OCS ON OCS.ID = F.C_OSZTALYCSOPORTID AND OCS.TOROLT = 'F'
|
||||
INNER JOIN T_TANULOCSOPORT TCS ON TCS.C_OSZTALYCSOPORTID = OCS.ID AND TCS.TOROLT = 'F'
|
||||
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
|
||||
WHERE o.TOROLT = 'F'
|
||||
AND F.C_FOGLALKOZASTIPUSA IN (1339, 1368)
|
||||
AND tcs.C_BELEPESDATUM < GETDATE()
|
||||
AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
|
||||
AND o.C_ORARENDIORAGROUPID IS NULL
|
||||
AND o.C_DATUM > getdate() - 1
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
) sub
|
||||
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, sub.C_TANULOID
|
||||
HAVING COUNT(1) > 1
|
||||
) A )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
Az intézménynek hiányosan vannak kitöltve az adatai!
|
||||
Ennek következményeként a dokumentumokban az intézmény adatai nem jelennek meg!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_INTEZMENYHIANYOSADATOK = IIF(
|
||||
(SELECT count(1)
|
||||
FROM T_INTEZMENYADATOK i
|
||||
WHERE i.TOROLT = 'F'
|
||||
AND (C_NEV IS NULL
|
||||
OR C_OMKOD IS NULL
|
||||
OR C_IRANYITOSZAM IS NULL
|
||||
OR C_VAROS IS NULL
|
||||
OR C_KOZTERULETNEV IS NULL
|
||||
OR C_KOZTERULETJELLEG IS NULL
|
||||
OR C_HAZSZAM IS NULL
|
||||
OR C_IGAZGATONEVE IS NULL)
|
||||
AND I.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND I.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
) > 0, 'T', 'F' )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
A rendszerben ...
|
||||
tanulónak nem megfelelő formátumú az oktatási azonosítója.
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANULOHIANYOSOKTATASIAZONOSI = (
|
||||
SELECT count(1)
|
||||
FROM T_TANULO t
|
||||
INNER JOIN T_FELHASZNALO f ON f.ID = t.ID AND f.TOROLT = 'F'
|
||||
WHERE t.TOROLT = 'F'
|
||||
AND (f.C_OKTATASIAZONOSITO NOT LIKE '7%'
|
||||
OR f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
|
||||
OR LEN(f.C_OKTATASIAZONOSITO) <> 11)
|
||||
AND T.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND T.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
A rendszerben ...
|
||||
tanárnak nem megfelelő formátumú az oktatási azonosítója.
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANAROKHIANYOSOKTATASIAZONOS = (
|
||||
SELECT count(1)
|
||||
FROM T_ALKALMAZOTT a
|
||||
INNER JOIN T_FELHASZNALO f ON f.ID = a.ID AND f.TOROLT = 'F'
|
||||
WHERE a.TOROLT = 'F'
|
||||
AND (f.C_OKTATASIAZONOSITO not like '7%'
|
||||
or f.C_OKTATASIAZONOSITO LIKE '%[^0-9]%'
|
||||
or LEN(f.C_OKTATASIAZONOSITO) <> 11)
|
||||
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
/*
|
||||
A tantárgyfelosztásban ...
|
||||
tanár nem szerepel!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANTARGYFELOSZTASTANARNINCSE = (
|
||||
SELECT COUNT(1)
|
||||
FROM T_ALKALMAZOTT a
|
||||
LEFT JOIN T_FOGLALKOZAS F ON ( A.ID = F.C_TANARID AND F.TOROLT = 'F'
|
||||
AND F.C_INTEZMENYID = A.C_ALINTEZMENYID
|
||||
AND F.C_TANEVID = A.C_ALTANEVID
|
||||
)
|
||||
WHERE a.TOROLT = 'F' AND f.ID IS NULL
|
||||
AND A.C_ALINTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND A.C_ALTANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
A tantárgyak közül ...
|
||||
tantárgy nem szerepel a tantárgyfelosztásban!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANTARGYFELOSZTASTANTARGYNIN = (
|
||||
SELECT count(1)
|
||||
FROM T_TANTARGY tt
|
||||
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_TANTARGYID = tt.ID AND f.TOROLT = 'F'
|
||||
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE f.ID IS NULL AND TT.TOROLT = 'F'
|
||||
AND TT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND TT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
Az osztályok ill. tanórai célú csoportok közül ...
|
||||
nem szerepel a tantárgyfelosztásban!
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANTARGYFELOSZTASOSZTALYOKNI = (
|
||||
SELECT count(1)
|
||||
FROM T_OSZTALYCSOPORT ocs
|
||||
LEFT JOIN T_FOGLALKOZAS f ON ( f.C_OSZTALYCSOPORTID = ocs.ID AND f.TOROLT = 'F'
|
||||
AND F.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND F.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE ocs.TOROLT = 'F' AND f.ID IS NULL
|
||||
AND ( EXISTS ( SELECT 1 FROM T_OSZTALY WHERE T_OSZTALY.ID = OCS.ID ) -- OSZTÁLY
|
||||
OR
|
||||
EXISTS ( SELECT 1 FROM T_CSOPORT WHERE T_CSOPORT.C_TIPUSA IN (SELECT ID FROM fnGetTanoraiCeluCsoportTipusok(ocs.C_TANEVID)) AND T_CSOPORT.ID = OCS.ID) -- CSOPORT
|
||||
)
|
||||
AND ocs.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND ocs.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
)
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
Az órarendben ... órában teremütközés van,
|
||||
azonos teremben több óra IS szerepel!
|
||||
*/
|
||||
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_ORARENDTEREMUTKOZES = ( SELECT COUNT(1)
|
||||
FROM (
|
||||
SELECT sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
|
||||
FROM (
|
||||
SELECT DISTINCT o.C_HETIREND, o.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
|
||||
FROM T_ORARENDIORA o
|
||||
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
|
||||
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
|
||||
WHERE o.C_ORAERVENYESSEGKEZDETE < GETDATE() AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
|
||||
AND t.C_TOBBORATLEHETTARTANI = 'F'
|
||||
AND o.TOROLT = 'F'
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT n.C_HETIREND , n.C_HETNAPJA, o.C_TEREMID, o.C_CSENGETESIRENDORAID, o.C_FOGLALKOZASID
|
||||
FROM T_TANITASIORA o
|
||||
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
|
||||
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
|
||||
INNER JOIN T_TEREM t ON t.ID = o.C_TEREMID AND t.TOROLT = 'F'
|
||||
WHERE o.C_ORARENDIORAGROUPID IS NULL
|
||||
AND n.C_NAPDATUMA > GETDATE() - 1
|
||||
AND t.C_TOBBORATLEHETTARTANI = 'F'
|
||||
AND o.TOROLT = 'F'
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
) sub
|
||||
GROUP BY sub.C_HETIREND, sub.C_HETNAPJA, sub.C_TEREMID, sub.C_CSENGETESIRENDORAID
|
||||
HAVING COUNT(1) > 1
|
||||
) tbl )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
/*
|
||||
Az órarendben ... órában tanárütközés szerepel,
|
||||
azonos órában a pedagógushoz több tanóra IS tartozik.
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_ORARENDTANARUTKOZES = ( SELECT count(1)
|
||||
FROM (
|
||||
SELECT sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID, COUNT(1) cnt
|
||||
FROM (
|
||||
SELECT f.C_TANARID, o.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
|
||||
FROM T_ORARENDIORA o
|
||||
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
|
||||
WHERE o.TOROLT = 'F'
|
||||
AND o.C_ORAERVENYESSEGKEZDETE < GETDATE()
|
||||
AND (o.C_ORAERVENYESSEGVEGE > GETDATE() OR o.C_ORAERVENYESSEGVEGE IS NULL)
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
|
||||
UNION
|
||||
|
||||
SELECT ISNULL(o.C_HELYETTESITOTANARID, f.C_TANARID) AS C_TANAROKID, n.C_HETIREND, o.C_HETNAPJA, o.C_CSENGETESIRENDORAID, o.C_TEREMID
|
||||
FROM T_TANITASIORA o
|
||||
INNER JOIN T_FOGLALKOZAS f ON f.ID = o.C_FOGLALKOZASID AND f.TOROLT = 'F'
|
||||
INNER JOIN T_NAPTARINAP n ON n.ID = o.C_NAPTARINAPID AND n.TOROLT = 'F'
|
||||
WHERE o.TOROLT = 'F'
|
||||
AND o.C_ORARENDIORAGROUPID IS NULL
|
||||
AND o.C_DATUM > getdate() - 1
|
||||
AND O.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND O.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
) sub
|
||||
GROUP BY sub.C_TANARID, sub.C_HETIREND, sub.C_HETNAPJA, sub.C_CSENGETESIRENDORAID
|
||||
HAVING COUNT(1) > 1
|
||||
) tbl )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
/*
|
||||
Azon tanulók száma, akik osztályba vannak sorolva, de nincs tantervük
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_TANTERVNELKULITANULOK = (
|
||||
SELECT count(1)
|
||||
FROM (
|
||||
select distinct T_TANULO.ID
|
||||
from T_TANULOCSOPORT
|
||||
inner join T_TANULO on (T_TANULO.ID = T_TANULOCSOPORT.C_TANULOID and T_TANULO.TOROLT = 'F')
|
||||
where T_TANULO.C_TANTERVID is null
|
||||
and T_TANULOCSOPORT.TOROLT = 'F'
|
||||
and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE()
|
||||
and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE())
|
||||
AND T_TANULOCSOPORT.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND T_TANULOCSOPORT.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID
|
||||
) tbl )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Nincs beállítva aktív csengetési rend
|
||||
*/
|
||||
UPDATE T_RENDSZERERTESITESEK
|
||||
SET C_AKTIVCSENGETESIREND = ( SELECT IIF(EXISTS(SELECT 1
|
||||
FROM T_CSENGETESIREND
|
||||
WHERE C_AKTIV = 'T'
|
||||
AND T_CSENGETESIREND.C_INTEZMENYID = T_RENDSZERERTESITESEK.C_INTEZMENYID
|
||||
AND T_CSENGETESIREND.C_TANEVID = T_RENDSZERERTESITESEK.C_TANEVID),
|
||||
'F', 'T') )
|
||||
WHERE TOROLT = 'F'
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user