kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetIskolalatogatasiIgazolas.sql
2024-03-13 00:33:46 +01:00

122 lines
5.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetIskolalatogatasiIgazolas
GO
CREATE PROCEDURE uspGetIskolalatogatasiIgazolas
@osztalyId int
,@tanevId int
,@pDatum date
,@pIsSzakkepzoIntezmeny bit
,@pNappaliRendszeruIskolaiOktatasId int
,@pFelnottoktatasNappaliRendszeruId int
,@pFelnottkepzesesJogviszonyId int = NULL
,@pTanuloiJogviszonyId int
AS BEGIN
SET NOCOUNT ON;
-- fejléc
SELECT
IntezmenyAdatok.C_NEV AS IntezmenyNeve
,IntezmenyAdatok.C_IGAZGATONEVE AS IGAZGATONEVE
,IntezmenyAdatok.C_VAROS AS IntezmenyVaros
,IntezmenyAdatok.C_OMKOD AS OmAzonosito
,dbo.fnGetDokumentumIntezmenyCime(@tanevId) AS IntezmenyCime
,C_OSZTALYFONOKID AS PartnerID
,KepzesTipus.C_NAME AS KepzesForma
,Tanev.C_NEV AS TANEV
,ocs.C_NEV AS Osztaly
,ocs.ID AS OsztalyId
,ocs.C_EVFOLYAMTIPUSA AS EvfolyamTipusa
,ocs.C_FELADATELLATASIHELYID AS FeladatEllatasiHelyId
,ocs.C_KEPZESIFORMA AS KepzesiForma
,Osztaly.C_OSZTALYFONOKID AS OsztalyFonokId
,Osztaly.C_TANTERVID AS TantervId
,ocs.C_KERESZTFELEVES AS OJCSJKeresztfeleves
,ocs.C_ISTECHNIKAI AS OJTechnikaiOsztaly
,Osztaly.C_NEMZETISEGI AS OJNemzetisegi
,Osztaly.C_KETTANNYELVU AS OJKettannyelvu
,Osztaly.C_NYELVIELOKESZITO AS OJNyelviElokeszito
,ocs.C_ISGYOGYPEDAGOGIAILOGOPEDIAI AS OJIsGyogypedagogiaiLogopediai
,Osztaly.C_SPORT AS OJSportOsztaly
,Osztaly.C_AJPROGRAM AS OJAranyJanosProgram
,Osztaly.C_SZAKMACSOPORT AS SzakmaCsoport
,Osztaly.C_AGAZAT AS Agazat
,Osztaly.C_SZAKKEPESITES AS Szakkepesites
,Osztaly.C_RESZSZAKKEPESITES AS Reszszakkepesites
,Osztaly.C_AGAZATUJSZKTTIPUSID AS UjSzktAgazat
,Osztaly.C_SZAKMATIPUSID AS UjSzktSzakma
,Osztaly.C_SZAKMAIRANYTIPUSID AS UjSzktSzakmairany
,Osztaly.C_TANULMANYITERULETNKTTIPUSID AS NktTanulmanyiTerulet
,Osztaly.C_SZAKKEPESITESNKTTIPUSID AS NktSzakkepesites
,Osztaly.C_SZAKIRANYNKTTIPUSID AS NktSzakirany
FROM T_INTEZMENYADATOK_OSSZES IntezmenyAdatok
INNER JOIN T_TANEV_OSSZES Tanev ON Tanev.ID = IntezmenyAdatok.C_TANEVID
AND Tanev.TOROLT = 'F'
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = @osztalyId
AND ocs.C_TANEVID = IntezmenyAdatok.C_TANEVID
AND ocs.TOROLT = 'F'
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.C_ALTANEVID = IntezmenyAdatok.C_TANEVID
AND Osztaly.ID = ocs.ID
AND Osztaly.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES KepzesTipus ON KepzesTipus.ID = ocs.C_KEPZESIFORMA
AND KepzesTipus.C_TANEVID = IntezmenyAdatok.C_TANEVID
AND KepzesTipus.TOROLT = 'F'
WHERE IntezmenyAdatok.TOROLT = 'F'
AND IntezmenyAdatok.C_TANEVID = @tanevId
-- tanulók
SELECT
Felhasznalo.C_NYOMTATASINEV AS TanuloNev
,Felhasznalo.C_OKTATASIAZONOSITO AS OktatasiAzonosito
,dbo.fnGetDokumentumDatumFormatum(Felhasznalo.C_SZULETESIDATUM) AS SzuletesiIdo
,Felhasznalo.C_SZULETESIHELY AS SzuletesiHely
,Felhasznalo.C_ANYJANEVE AS AnyjaNeve
,dbo.fnGetDokumentumDatumFormatum(TanugyiAdatok.C_NYILVANTARTASKEZDETE) AS JogviszonyKezdete
,dbo.fnGetDokumentumDatumFormatum(TanugyiAdatok.C_JOGVISZONYVARHATOBEFEJEZESE) AS JogviszonyVarhatoBefejezese
,dbo.fnGetDokumentumDatumFormatum(TanuloCsoport.C_KILEPESDATUM) AS KilepesDatum
,IIF(TanuloCsoport.C_KILEPESDATUM IS NOT NULL AND TanuloCsoport.C_KILEPESDATUM <= @pDatum, 'T', 'F') AS IsKilepett
,Felhasznalo.ID AS TanuloId
,ocs.ID AS OsztalyId
,ocs.C_NEV AS Osztaly
,IIF(@pIsSzakkepzoIntezmeny = 1, KepzesTipusTanuloTanugyiAdatok.C_NAME, KepzesTipusOsztaly.C_NAME) AS KepzesForma
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@tanevId, @osztalyId, 'T') s
INNER JOIN T_FELHASZNALO_OSSZES Felhasznalo ON Felhasznalo.Id = s.TanuloId
INNER JOIN T_TANEV_OSSZES t on t.ID = Felhasznalo.C_TANEVID AND t.TOROLT = 'F'
INNER JOIN T_TANULOCSOPORT_OSSZES TanuloCsoport ON TanuloCsoport.c_tanuloid = s.TanuloId
AND TanuloCsoport.ID = s.TanuloCsoportId
AND TanuloCsoport.TOROLT = 'F'
AND TanuloCsoport.C_TANEVID = @tanevId
AND TanuloCsoport.C_OSZTALYCSOPORTID = @osztalyId
AND TanuloCsoport.C_BELEPESDATUM <= @pDatum
AND (@pFelnottkepzesesJogviszonyId IS NULL OR (TanuloCsoport.C_JOGVISZONYTIPUSID IS NULL OR TanuloCsoport.C_JOGVISZONYTIPUSID <> @pFelnottkepzesesJogviszonyId))
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES TanugyiAdatok ON TanugyiAdatok.C_TANULOCSOPORTID = TanuloCsoport.Id
AND TanugyiAdatok.TOROLT = 'F'
AND TanugyiAdatok.C_TANEVID = @tanevId
INNER JOIN T_OSZTALY_OSSZES Osztaly ON Osztaly.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND Osztaly.TOROLT = 'F'
AND Osztaly.C_ALTANEVID = TanuloCsoport.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = TanuloCsoport.C_OSZTALYCSOPORTID
AND ocs.TOROLT = 'F'
AND ocs.C_TANEVID = TanuloCsoport.C_TANEVID
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES KepzesTipusOsztaly ON KepzesTipusOsztaly.ID = ocs.C_KEPZESIFORMA
AND KepzesTipusOsztaly.C_TANEVID = ocs.C_TANEVID
AND KepzesTipusOsztaly.TOROLT = 'F'
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES KepzesTipusTanuloTanugyiAdatok ON KepzesTipusTanuloTanugyiAdatok.ID = TanugyiAdatok.C_TANTERVIJELLEGID
AND KepzesTipusTanuloTanugyiAdatok.C_TANEVID = TanugyiAdatok.C_TANEVID
AND KepzesTipusTanuloTanugyiAdatok.TOROLT = 'F'
WHERE @pIsSzakkepzoIntezmeny = 0
OR (
@pIsSzakkepzoIntezmeny = 1
AND (
TanuloCsoport.C_JOGVISZONYTIPUSID = @pTanuloiJogviszonyId
OR (
TanuloCsoport.C_JOGVISZONYTIPUSID IS NULL
AND
KepzesTipusTanuloTanugyiAdatok.ID IN (@pNappaliRendszeruIskolaiOktatasId, @pFelnottoktatasNappaliRendszeruId)
)
) OR t.C_SORSZAM <= 40
)
ORDER BY Felhasznalo.C_NYOMTATASINEV
END
GO