Files
2024-03-13 00:33:46 +01:00

67 lines
2.8 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS sp_GetOsztalyokEvesOraszama
GO
CREATE PROCEDURE sp_GetOsztalyokEvesOraszama
@tanevID int,
@tanitasiHetekSzamaVegzos int = 32,
@tanitasiHetekSzamaNemVegzos int = 36,
@isAltantargyBeszamitasa bit,
@oktNevelesiKategoriaId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @osztalyok TABLE (
OsztalyId INT
,OsztalyNev NVARCHAR(255)
)
DECLARE kurzor CURSOR FOR
SELECT
o.ID AS OsztalyId
,ocs.C_NEV AS OsztalyNev
FROM T_OSZTALY_OSSZES o
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F' AND ocs.C_TANEVID = @tanevID
WHERE
ocs.C_TANEVID = @tanevId
AND (ocs.C_FELADATKATEGORIAID = @oktNevelesiKategoriaId OR @oktNevelesiKategoriaId IS NULL)
AND ocs.TOROLT = 'F'
DECLARE @OsztalyId int, @OsztalyNev nvarchar(255)
OPEN kurzor
FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev
WHILE @@FETCH_STATUS = 0 BEGIN
SELECT DISTINCT
tanulo.C_NYOMTATASINEV AS TanuloNev
,tanulo.C_OKTATASIAZONOSITO AS OktAzon
,tantargy.C_NEV AS TantargyNev
,oraszamok.Oraszam AS EvesOraszam
,@OsztalyNev AS OsztalyNev
,@OsztalyId AS OsztalyId
,tantargy.C_SORSZAM as RENDEZ0
,CASE WHEN tantargy.C_FOTARGYID IS NULL THEN ISNULL(TargyKategoriaDictionary.C_ORDER, 10000) ELSE ISNULL(FotargyKategoriaDictionary.C_ORDER, 10000) END as RENDEZ1
,COALESCE(FotargyTable.C_NEVNYOMTATVANYBAN, FotargyTable.C_NEV, tantargy.C_NEV) as RENDEZ2
,ISNULL(tantargy.C_FOTARGYID, tantargy.ID) as RENDEZ3
,tantargy.C_FOTARGYID as RENDEZ4
,ISNULL(tantargy.C_NEVNYOMTATVANYBAN, tantargy.C_NEV) as RENDEZ5
FROM fnGetDokumentumTanulokEvesOraszamaiOsztalyonkent(@tanevID, @OsztalyId, @tanitasiHetekSzamaVegzos, @tanitasiHetekSzamaNemVegzos, @isAltantargyBeszamitasa) oraszamok
INNER JOIN T_FELHASZNALO_OSSZES tanulo ON tanulo.ID = oraszamok.TanuloId AND tanulo.C_TANEVID = @tanevID AND tanulo.TOROLT = 'F'
INNER JOIN T_TANTARGY_OSSZES tantargy ON tantargy.ID = oraszamok.TantargyID AND tantargy.C_TANEVID = @tanevID AND tantargy.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES TargyKategoriaDictionary ON TargyKategoriaDictionary.Id = tantargy.C_TARGYKATEGORIA
AND TargyKategoriaDictionary.TOROLT = 'F'
AND TargyKategoriaDictionary.C_TANEVID = @tanevID
LEFT JOIN T_TANTARGY_OSSZES FotargyTable ON tantargy.C_FOTARGYID = FotargyTable.ID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES FotargyKategoriaDictionary ON FotargyKategoriaDictionary.ID = FotargyTable.C_TARGYKATEGORIA
AND FotargyKategoriaDictionary.TOROLT = 'F'
AND FotargyKategoriaDictionary.C_TANEVID = FotargyTable.C_TANEVID
ORDER BY TanuloNev, RENDEZ0, RENDEZ1, RENDEZ2, RENDEZ3, RENDEZ4, RENDEZ5, TantargyNev;
FETCH NEXT FROM kurzor INTO @OsztalyId, @OsztalyNev
END
CLOSE kurzor
DEALLOCATE kurzor
END
GO