144 lines
No EOL
5.1 KiB
Transact-SQL
144 lines
No EOL
5.1 KiB
Transact-SQL
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
|
|
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
--Osztályhoz tartozó tanulók
|
|
DECLARE @Tanulok TABLE (TanuloId int)
|
|
|
|
INSERT INTO @Tanulok
|
|
SELECT
|
|
C_TANULOID
|
|
FROM T_TANULOCSOPORT
|
|
WHERE
|
|
C_OSZTALYCSOPORTID = @osztalyId
|
|
AND TOROLT='F'
|
|
|
|
--Tanulóhoz kapcsolódó óraszámok
|
|
DECLARE @Oraszamok TABLE (TanuloId int, Tantargy INT, Oraszam INT)
|
|
|
|
INSERT INTO @Oraszamok
|
|
SELECT
|
|
TanuloId
|
|
, TantargyId
|
|
, SUM(Oraszam)
|
|
FROM
|
|
(
|
|
SELECT
|
|
te.C_TANULOID TanuloId
|
|
, IIF(C_FOTARGYE = 'T', t.Id, C_FOTARGYID) TantargyId
|
|
, IIF((SELECT C_VEGZOSEVFOLYAM FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @osztalyId) = 'T', 30, 36) * fog.C_ORASZAM Oraszam
|
|
FROM T_TANULOERTEKELES_OSSZES te
|
|
INNER JOIN T_FOGLALKOZAS_OSSZES fog on fog.C_OSZTALYCSOPORTID = te.C_OSZTALYCSOPORTID and fog.C_TANTARGYID = te.C_TANTARGYID
|
|
INNER JOIN T_TANTARGY_OSSZES t on t.ID = te.C_TANTARGYID
|
|
INNER JOIN @Tanulok tanulok on tanulok.TanuloId = te.C_TANULOID
|
|
WHERE
|
|
te.TOROLT = 'F'
|
|
AND te.C_TANEVID = @tanevId
|
|
AND te.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
) a
|
|
GROUP BY TanuloId, TantargyId
|
|
|
|
--Értékelések
|
|
SELECT
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, 'MAGATARTAS' TARGY
|
|
, ERT.C_NAME Ertekeles
|
|
, NULL Jegyzet
|
|
, ERT.C_NAME ErtekelesJegyzettel
|
|
, ERT.C_NAME SzovegesErtekeles
|
|
, NULL Oraszam
|
|
, 1 RENDEZ
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
|
|
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
|
|
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
|
|
ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
|
|
LEFT 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
|
|
WHERE
|
|
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
|
|
AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND (OSZTALYZAT.C_MAGATARTAS IS NOT NULL OR (LEN(ERTEKELES.C_ERTEKELESSZOVEG) > 0 AND ERTEKELES.C_TANTARGYID IS NULL) )
|
|
AND ERTEKELES.C_TANEVID = @tanevId
|
|
AND ERTEKELES.TOROLT='F'
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, 'SZORGALOM' TARGY
|
|
, ERT.C_NAME Ertekeles
|
|
, NULL Jegyzet
|
|
, ERT.C_NAME ErtekelesJegyzettel
|
|
, ERT.C_NAME SzovegesErtekeles
|
|
, NULL Oraszam
|
|
, 2 RENDEZ
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
|
|
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
|
|
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
|
|
ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
|
|
LEFT JOIN T_OSZTALYFONOKIERTEKELES_OSSZES OSZTALYZAT
|
|
ON OSZTALYZAT.ID = ERTEKELES.ID
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES ERT ON ERT.ID=OSZTALYZAT.C_SZORGALOM
|
|
WHERE
|
|
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
|
|
AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND OSZTALYZAT.C_SZORGALOM IS NOT NULL
|
|
AND ERTEKELES.C_TANEVID = @TanevId
|
|
AND ERTEKELES.TOROLT='F'
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
ERTEKELES.C_TANULOID TANULOID
|
|
, TARGY.TARGYNEV TARGY
|
|
, ERT.C_NAME Ertekeles
|
|
, ertekelesMegjegyzes.C_TEMA Jegyzet
|
|
, ERT.C_NAME + IIF(ertekelesMegjegyzes.C_TEMA IS NULL, '', +' * '+ertekelesMegjegyzes.C_TEMA) ErtekelesJegyzettel
|
|
, ERTEKELES.C_ERTEKELESSZOVEG SzovegesErtekeles
|
|
, Oraszam Oraszam
|
|
, TARGY.KAT RENDEZ
|
|
FROM T_TANULOERTEKELES_OSSZES ERTEKELES
|
|
INNER JOIN (SELECT C_TANULOID, C_OSZTALYCSOPORTID FROM T_TANULOCSOPORT_OSSZES
|
|
WHERE T_TANULOCSOPORT_OSSZES.TOROLT='F'
|
|
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
|
|
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())) TANCSOPORT
|
|
ON TANCSOPORT.C_TANULOID = ERTEKELES.C_TANULOID
|
|
INNER JOIN ( SELECT ID,C_NEV TARGYNEV,C_TARGYKATEGORIA KAT, C_ALTANTARGYKENTNYOMTATVANYBAN, C_FOTARGYE 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
|
|
WHERE
|
|
TANCSOPORT.C_OSZTALYCSOPORTID = @osztalyId
|
|
AND ERTEKELES.C_ERTEKELESTIPUSA = @ertekelesTipus
|
|
AND ERTEKELES.C_TANEVID = @tanevId
|
|
AND ERTEKELES.TOROLT='F'
|
|
AND (TARGY.C_FOTARGYE = 'T' OR TARGY.C_ALTANTARGYKENTNYOMTATVANYBAN='T')
|
|
ORDER BY TANULOID, RENDEZ
|
|
|
|
END
|
|
|
|
GO |