kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170502141026_KRETA_139/sp_GetDokumentumErtekelesek.sql
2024-03-13 00:33:46 +01:00

109 lines
No EOL
3.6 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 TanuloId FROM fnGetDokumentumOsztalyokTanuloi(@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
, '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 fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
ON TANCSOPORT.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
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 fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
ON TANCSOPORT.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
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 fnGetDokumentumOsztalyokTanuloi(@tanevId, @osztalyId, 'T') TANCSOPORT
ON TANCSOPORT.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
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