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', 32, 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