DROP PROCEDURE IF EXISTS dbo.uspSzirStatKoli GO ​ CREATE PROCEDURE dbo.uspSzirStatKoli @pTanevId int ,@pIntezmenyid int AS BEGIN DECLARE @datum datetime, @IsSniKezelo bit ​ SELECT @datum = LEFT(tv.C_NEV, 4) + '1001' FROM T_TANEV tv WHERE ID = @pTanevId SET @IsSniKezelo = dbo.fnGetRendszerbeallitasEnumBool(1666, @pIntezmenyid, @pTanevId) SELECT fh.ID AS TanuloId ,CONCAT(fh.C_NYOMTATASINEV, ' (', fh.C_OKTATASIAZONOSITO ,')') AS TanuloOktatasiAzonosito --A ,ia.C_OMKOD AS IntezmenyOmAzonosito --B ,ia.C_NEV AS IntezmenyNev --C ,ia.C_VAROS AS IntezenyTelepules --D ,ia.C_IRANYITOSZAM AS IntezmenyIrszam --E ,RTRIM(CONCAT(ia.C_KOZTERULETNEV, ' ', ia.C_KOZTERULETJELLEGENEV,' ', ia.C_HAZSZAM, ' ', ia.C_EMELET, ' ', ia.C_AJTO)) AS IntezmenyCim --F ,ISNULL(NULLIF(ia.C_EMAILCIM, ''), '-') AS IntezmenyEmailcim --G ,CONCAT(ia.C_OMKOD, '/', fhely.C_FELADATELLATASIHELYKOD) AS FelhelyAzonosito --H ,mhely.C_NEV AS FelhelyNev --I ,mhely.C_VAROS AS FelhelyTelepules --J ,mhely.C_IRANYITOSZAM AS FelhelyIrszam --K ,RTRIM(CONCAT(mhely.C_KOZTERULETNEV, ' ', mhely.C_KOZTERULETJELLEGENEV,' ', mhely.C_HAZSZAM, ' ', mhely.C_EMELET, ' ', mhely.C_AJTO)) AS FelhelyCim --L ,ISNULL(NULLIF(mhely.C_EMAILCIM, ''), '-') AS FelhelyEmailcim --M ,ISNULL(fhelytip.C_NAME, '-') AS FelhelyTipus --N ,ISNULL(tanulmanyok.FeladatKategoria, '-') AS Tanulmanyok --O ,DATEDIFF(YEAR, fh.C_SZULETESIDATUM, @datum) AS TanuloKorev --P ,ISNULL(nem.C_NAME, '-') AS TanuloNem --Q ,IIF(@IsSniKezelo = 1, IIF(dk.C_SAJATOSNEVELESU = 'T', 'Igen', 'Nem'), '-') AS TanuloSniZavar --R ,IIF(@IsSniKezelo = 1 AND snizavar.ID IS NOT NULL, snizavar.C_NAME, '-') AS FogyatekossagTipus --S ,IIF(dk.C_ETKEZESIKEDVEZMENY BETWEEN 1108 AND 1119, 'Igen', 'Nem') AS EtkeztetesbenReszesul --T ,IIF(dk.C_ETKEZESIKEDVEZMENY IN (1110, 1113, 1116, 1119), 'Igen', 'Nem') AS TeritesNelkulEtkezik --U ,IIF(dk.C_ETKEZESIKEDVEZMENY IN (1109, 1112, 1115, 1118), 'Igen', 'Nem') AS KedvezmenyesenEtkezik --V ,IIF(dk.C_HATRANYOSHELYZETU IS NULL OR dk.C_HATRANYOSHELYZETU IN (1120, 1121), 'Nem', 'Igen') AS HatranyosHelyzetu --W ,IIF(dk.C_HATRANYOSHELYZETU IS NULL OR dk.C_HATRANYOSHELYZETU IN (1120, 1121, 1122), 'Nem', 'Igen') AS HalmozottanHatranyos --X ,IIF(dk.C_RENDSZERESGYERMEKVEDELMIKEDV = 'T', 'Igen', 'Nem') AS RendszeresGyermekvedelmi --Y ,IIF(dk.C_ISOTTHONIELLATAS = 'T', 'Igen', 'Nem') AS OtthoniEllatas -- Z FROM T_FELHASZNALO fh INNER JOIN T_TANULO dk ON dk.ID = fh.ID AND dk.TOROLT = 'F' INNER JOIN T_INTEZMENYADATOK ia ON ia.C_TANEVID = fh.C_TANEVID AND ia.TOROLT = 'F' INNER JOIN T_INTEZMENY i ON ia.C_INTEZMENYID = i.ID AND i.TOROLT = 'F' INNER JOIN T_FELADATELLATASIHELY fhely ON fhely.C_TANEVID = ia.C_TANEVID AND fhely.TOROLT = 'F' INNER JOIN T_MUKODESIHELY mhely ON mhely.ID = fhely.C_MUKODESIHELYID AND mhely.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = dk.ID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID AND ocs.TOROLT = 'F' AND ocs.C_FELADATELLATASIHELYID = fhely.ID INNER JOIN T_OSZTALY o ON o.ID = ocs.ID AND o.TOROLT = 'F' LEFT JOIN T_TANULOSNI sni ON sni.C_TANULOID = dk.ID AND sni.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE fhelytip ON fhelytip.ID = fhely.C_OKTATASINEVELESIFELADATTIPUS AND fhelytip.C_TANEVID = fhely.C_TANEVID AND fhelytip.C_INTEZMENYID = fhely.C_INTEZMENYID AND fhelytip.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE nem ON fh.C_NEME = nem.ID AND nem.C_TANEVID = fh.C_TANEVID AND nem.C_INTEZMENYID = fh.C_INTEZMENYID AND nem.TOROLT = 'F' LEFT JOIN T_DICTIONARYITEMBASE snizavar ON sni.C_FOGYATEKOSSAGTIPUSID = snizavar.ID AND snizavar.C_TANEVID = sni.C_TANEVID AND snizavar.C_INTEZMENYID = sni.C_INTEZMENYID AND snizavar.TOROLT = 'F' OUTER APPLY ( SELECT TOP 1 * FROM ( SELECT d.C_NAME AS FeladatKategoria, tcs.C_BELEPESDATUM, tcs.ID, CASE WHEN COUNT(tcs.ID) OVER(PARTITION BY tcs.C_TANULOID) = 1 THEN 1 WHEN tcs.C_BELEPESDATUM <= CAST(LEFT(v.C_NEV, 4) + '-10-01' AS DATE) AND ISNULL(tcs.C_KILEPESDATUM, '2999-01-01') > CAST(LEFT(v.C_NEV, 4) + '-10-01' AS DATE) THEN 2 ELSE 3 END AS row_order FROM T_FELHASZNALO f INNER JOIN T_TANEV v ON v.ID = f.C_TANEVID AND v.TOROLT = 'F' INNER JOIN T_TANULO t ON t.ID = f.ID AND t.TOROLT = 'F' INNER JOIN T_TANULOCSOPORT tcs ON tcs.C_TANULOID = f.ID AND tcs.TOROLT = 'F' INNER JOIN T_OSZTALYCSOPORT ocs ON ocs.ID = tcs.C_OSZTALYCSOPORTID and ocs.TOROLT = 'F' INNER JOIN T_TANULOTANUGYIADATOK tta ON tta.C_TANULOCSOPORTID = tcs.ID AND tta.TOROLT = 'F' INNER JOIN T_FELADATELLATASIHELY fh on fh.ID = ocs.C_FELADATELLATASIHELYID and fh.TOROLT = 'F' INNER JOIN T_DICTIONARYITEMBASE d ON d.ID = fh.C_OKTATASINEVELESIFELADATTIPUS and d.C_TANEVID = fh.C_TANEVID and d.TOROLT = 'F' WHERE f.TOROLT = 'F' AND f.ELOZOTANEVIREKORDID = fh.ID AND ocs.C_FELADATKATEGORIAID = 7553 -- Oktatás ) sz ORDER BY sz.row_order, sz.C_BELEPESDATUM DESC, sz.ID DESC ) tanulmanyok WHERE fh.TOROLT = 'F' AND tcs.C_BELEPESDATUM <= @datum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @datum) AND ocs.C_FELADATKATEGORIAID = 7556 -- Kollégium AND fh.C_TANEVID = @pTanevId AND fh.C_INTEZMENYID = @pIntezmenyid END GO