kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dev/uspGenerateEpjUtalasiAllomany.sql
2024-03-13 00:33:46 +01:00

190 lines
No EOL
8.1 KiB
Transact-SQL
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

DROP PROCEDURE IF EXISTS [dev].[uspGenerateEpjUtalasiAllomany]
GO
CREATE PROCEDURE [dev].[uspGenerateEpjUtalasiAllomany]
@pKifizetesDatuma datetime = NULL
AS
BEGIN
DECLARE @tanevId nvarchar(100)
IF @pKifizetesDatuma IS NOT NULL BEGIN
DECLARE cur CURSOR LOCAL FOR
SELECT ia.C_TANEVID
FROM T_INTEZMENY i
INNER JOIN T_INTEZMENYADATOK ia ON i.ID = ia.C_INTEZMENYID
INNER JOIN T_TANEV tv ON tv.ID = ia.C_TANEVID AND tv.C_AKTIV = 'T' AND tv.TOROLT = 'F'
WHERE i.TOROLT = 'F'
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
AND i.C_ISARCHIV = 'F'
OPEN cur
FETCH NEXT FROM cur INTO @tanevId
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC uspUpdateTanuloEpJuttatas
@pTanevId = @tanevId
,@pMinErdemjegy = 2.0
,@pJuttatasAlap = 100000
,@pTanuloId = NULL
,@pFelhasznaloId = 0
,@pKifizetesDatuma = @pKifizetesDatuma
FETCH NEXT FROM cur INTO @tanevId
END
CLOSE cur
DEALLOCATE cur
END
SELECT
i.C_AZONOSITO as 'KRÉTA Azonosító'
,ia.C_NEV as 'Intézmény neve'
,ia.C_OMKOD as 'OM kód'
,fn.C_AZONOSITO as 'Fenntartó'
,ISNULL(fn.C_NEV, 'Ismeretlen fenntartó') AS 'Fenntartónév'
,ISNULL(lmszf.C_NEV, 'Ismeretlen legmagasabb szintű fenntartó') AS 'Legmagasabb szintű fenntartó'
,f.C_OKTATASIAZONOSITO as 'Oktatási azonosító'
,f.C_NYOMTATASINEV as 'Diák neve'
,f.C_SZULETESIDATUM as 'Születési dátum'
,f.C_SZULETESIHELY as 'Születési hely'
,f.C_ANYJANEVE as 'Anyja neve'
,tel.C_TELEFONSZAM as 'Telefonszám'
,em.C_EMAILCIM as 'E-mail cím'
,x.C_NEV as 'Gondviselő neve'
,x.C_TELEFONSZAM as 'Telefonszám'
,x.C_EMAILCIM as 'E-mail cím'
,x2.C_NEV as 'Gondviselő neve 2'
,x2.C_TELEFONSZAM as 'Telefonszám 2'
,x2.C_EMAILCIM as 'E-mail cím 2'
,cim.C_CIM AS 'Cím'
,dib.c_name as 'Évfolyam'
,epj.C_ERDEMJEGY as 'Érdemjegy'
,epj.C_BIZONYITVANYSZAMA as 'Bizonyítvány száma'
,epj.C_VIZSGADATUM as 'Vizsga dátuma'
,j.C_OSSZEG as 'Ösztöndíj összege'
,'''' + tt.C_BANKSZAMLASZAM as 'Számlaszáma'
,tt.C_BANKSZAMLATULAJNEVE as 'Számla tulajdonosának neve'
,dib2.c_name as 'Számla típusa'
FROM t_intezmeny i
INNER JOIN T_TANEV t on t.C_INTEZMENYID = i.id and t.C_AKTIV = 'T' and t.C_NEV = '2021/2022' and t.TOROLT = 'F'
INNER JOIN T_INTEZMENYADATOK ia on ia.C_TANEVID = t.ID and ia.TOROLT = 'F'
INNER JOIN T_JUTTATAS j on j.C_TANEVId = t.id and j.C_ISAKTIV = 'T' and j.TOROLT = 'F' and j.C_JUTTATASTIPUSID = 8617
INNER JOIN T_FELHASZNALO f on f.id = j.C_TANULOID and f.torolt ='F'
INNER JOIN T_TANULOCSOPORT tcs on tcs.C_TANULOID = f.id and tcs.torolt ='F' and tcs.C_TANEVID = t.ID
LEFT JOIN T_FENNTARTO fn ON fn.TOROLT = 'F' AND fn.ID = i.C_FENNTARTOID
LEFT JOIN T_LEGMAGASABBSZINTUFENNTARTO lmszf ON lmszf.TOROLT = 'F' AND fn.C_LEGMAGASABBSZINTUFENNTARTOID = lmszf.Id
LEFT JOIN (T_TANULOCSOPORT tcs2
INNER JOIN T_OSZTALYCSOPORT ocs2 on ocs2.id = tcs2.C_OSZTALYCSOPORTID and ocs2.torolt = 'F' and ocs2.C_FELADATKATEGORIAID = 7553
INNER JOIN T_OSZTALY o2 ON o2.id = ocs2.ID AND o2.TOROLT = 'F' AND o2.C_ALTANEVID = ocs2.C_TANEVID
) on tcs2.C_TANULOID = f.ID
AND (tcs.C_KILEPESDATUM < tcs2.C_KILEPESDATUM OR (tcs.C_KILEPESDATUM IS NOT NULL AND tcs2.C_KILEPESDATUM IS NULL))
AND tcs2.TOROLT = 'F' AND tcs2.C_TANEVID = t.ID
INNER JOIN t_osztaly o on o.id = tcs.C_OSZTALYCSOPORTID and o.torolt = 'F' and o.C_ALTANEVID = t.ID
INNER JOIN T_OSZTALYCSOPORT ocs on ocs.id = o.id and ocs.C_TANEVID = t.id and ocs.torolt = 'F'
AND ocs.C_FELADATKATEGORIAID = 7553
INNER JOIN T_DICTIONARYITEMBASE dib on dib.id = ocs.C_EVFOLYAMTIPUSA and dib.C_TANEVID = t.id
INNER JOIN t_tanulo tt on tt.id = f.id and tt.torolt = 'F' and tt.C_ALTANEVID = t.ID AND tt.C_ISOSZTONDIJBOLKIZARVA = 'F'
LEFT JOIN T_DICTIONARYITEMBASE dib2 on dib2.id = tt.C_BANKSZAMLATULAJDONOSTIPUSID and dib2.C_TANEVID = t.id
OUTER APPLY (
SELECT TOP(1) C_TELEFONSZAM
FROM T_TELEFON x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID is null) tel
OUTER APPLY (
SELECT TOP(1) C_EMAILCIM
FROM T_EMAIL x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID is null) em
OUTER APPLY (
SELECT TOP(1) * FROM T_GONDVISELO g
OUTER APPLY (
SELECT TOP(1) C_EMAILCIM
FROM T_EMAIL x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID = g.ID
and x.C_TANEVID = t.ID) em2
OUTER APPLY (
SELECT TOP(1) C_TELEFONSZAM
FROM T_TELEFON x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID = g.ID
and x.C_TANEVID = t.ID) tel2
WHERE g.TOROLT = 'F'
AND g.C_TANULOID = tt.ID and g.C_TANEVID = t.ID
ORDER BY g.CREATED DESC ) x
OUTER APPLY (
SELECT TOP(1) *FROM T_GONDVISELO g
OUTER APPLY (
SELECT TOP(1) C_EMAILCIM
FROM T_EMAIL x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID = g.ID
and x.C_TANEVID = t.ID) em2
OUTER APPLY (
SELECT TOP(1) C_TELEFONSZAM
FROM T_TELEFON x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID = g.ID
and x.C_TANEVID = t.ID) tel2
WHERE g.TOROLT = 'F'
AND g.C_TANULOID = tt.ID and g.C_TANEVID = t.ID
ORDER BY g.CREATED DESC
) x2
OUTER APPLY (
SELECT TOP(1) CONCAT(x.C_IRANYITOSZAM, ' ', x.C_VAROS, ', ', x.C_KOZTERULET, ' ', x.C_KOZTERULETJELLEGENEV, ' ', x.C_HAZSZAM, ', ' + x.C_EMELET + '. emelet', ' ' + x.C_AJTO + '. ajtó') AS C_CIM
FROM T_CIM x
WHERE x.C_FELHASZNALOID = tt.ID
and x.C_ALAPERTELMEZETT = 'T'
and x.TOROLT = 'F'
and x.C_GONDVISELOID IS NULL
and x.C_TANEVID = t.ID
ORDER BY x.C_ALAPERTELMEZETT DESC) cim
LEFT JOIN T_EPJTANULOIADAT epj ON epj.C_TANULOID = f.ID AND epj.C_ISAKTIV = 'T' AND epj.TOROLT = 'F'
WHERE i.torolt = 'F'
AND fn.C_ISTESZTFENNTARTO = 'F'
AND j.C_ISJOGOSULT = 'T'
AND tcs2.ID IS NULL
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
AND i.C_ISARCHIV = 'F'
ORDER BY i.C_AZONOSITO, f.C_NYOMTATASINEV
IF @pKifizetesDatuma IS NOT NULL BEGIN
DECLARE cur CURSOR LOCAL FOR
SELECT ia.C_TANEVID
FROM T_INTEZMENY i
INNER JOIN T_INTEZMENYADATOK ia ON i.ID = ia.C_INTEZMENYID
INNER JOIN T_TANEV tv ON tv.ID = ia.C_TANEVID AND tv.C_AKTIV = 'T' AND tv.TOROLT = 'F'
WHERE i.TOROLT = 'F'
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
AND i.C_ISARCHIV = 'F'
OPEN cur
FETCH NEXT FROM cur INTO @tanevId
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC uspUpdateTanuloEpJuttatas
@pTanevId = @tanevId
,@pMinErdemjegy = 2.0
,@pJuttatasAlap = 100000
,@pTanuloId = NULL
,@pFelhasznaloId = 0
,@pKifizetesDatuma = NULL
FETCH NEXT FROM cur INTO @tanevId
END
CLOSE cur
DEALLOCATE cur
END
END
GO