700 lines
22 KiB
Transact-SQL
700 lines
22 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspUpdateTanuloSzakkepzesiJuttatasok
|
|
GO
|
|
|
|
CREATE PROCEDURE uspUpdateTanuloSzakkepzesiJuttatasok
|
|
@pTanevId int
|
|
,@pMaxIgazolatlanokSzama int
|
|
,@pMinOsztondijAtlag float
|
|
,@pOsztondijAlap int
|
|
,@pLekerdezesDatuma datetime
|
|
,@pTanuloId int = NULL
|
|
,@pTanuloIdList nvarchar(max) = NULL
|
|
,@pFelhasznaloId int
|
|
,@pGeneraltHonap int = NULL
|
|
,@pVisszaallitasDatuma datetime = NULL
|
|
,@pJuttatasTipusId INT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DECLARE
|
|
@sql nvarchar(max) = N''
|
|
,@vizsgaltHonap datetime
|
|
,@hatarnap int
|
|
,@szorzo int
|
|
|
|
,@defaultJuttatasHatarnap int = 15
|
|
|
|
IF @pMaxIgazolatlanokSzama IS NULL BEGIN
|
|
SET @pMaxIgazolatlanokSzama = 6
|
|
END
|
|
|
|
IF @pLekerdezesDatuma IS NULL OR @pLekerdezesDatuma > GETDATE() BEGIN
|
|
SET @pLekerdezesDatuma = GETDATE()
|
|
END
|
|
|
|
SELECT TOP (1) @hatarnap = ISNULL(DATEPART(DAY, C_JUTTATASHATARNAP), @defaultJuttatasHatarnap) + 1
|
|
FROM T_INTEZMENYADATOK
|
|
WHERE C_TANEVID = @pTanevId
|
|
|
|
CREATE TABLE #hatarnapok (
|
|
C_NAPDATUMA datetime primary key
|
|
)
|
|
|
|
INSERT INTO #hatarnapok
|
|
SELECT C_NAPDATUMA
|
|
FROM T_NAPTARINAP
|
|
WHERE DATEPART(day, C_NAPDATUMA) = @hatarnap
|
|
AND DATEPART(month, C_NAPDATUMA) <> 9
|
|
AND C_TANEVID = @pTanevId
|
|
|
|
SET @vizsgaltHonap = (SELECT MIN(C_NAPDATUMA) FROM #hatarnapok
|
|
WHERE C_NAPDATUMA > @pLekerdezesDatuma)
|
|
|
|
IF @vizsgaltHonap IS NULL BEGIN
|
|
SET @vizsgaltHonap = (SELECT MAX(C_NAPDATUMA) FROM #hatarnapok)
|
|
END
|
|
|
|
|
|
|
|
|
|
SET @vizsgaltHonap = DATEADD(month, DATEDIFF(month, 0, @vizsgaltHonap), 0)
|
|
|
|
IF @pTanuloIdList IS NOT NULL BEGIN
|
|
SET @sql += N'
|
|
CREATE TABLE #tanuloIdk(tanuloid int)
|
|
INSERT INTO #tanuloIdk (tanuloId)
|
|
SELECT value FROM STRING_SPLIT(@ptanuloIdList,'','')'
|
|
END
|
|
|
|
IF @pVisszaallitasDatuma IS NOT NULL BEGIN
|
|
SET @sql += N'
|
|
CREATE TABLE #T_TANULO (
|
|
ID int PRIMARY KEY
|
|
,C_EVISMETLO char(1)
|
|
,C_ISBESZAMITASOS char(1)
|
|
,C_ISMASODIKTOBBSZAKMA char(1)
|
|
,C_ISOSZTONDIJBOLKIZARVA char(1)
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS char(1)
|
|
,C_JOGVISZONYATSZUNETELTETO char(1)
|
|
,C_JOGVISZONYTIPUSID int
|
|
,C_KEZIATLAG float
|
|
,C_SZAMITOTTATLAG float
|
|
,C_TANULOSZERZODESES char(1)
|
|
,C_VENDEG char(1)
|
|
,C_ISBESZAMITASOSFIXSZAZALEK char(1)
|
|
,C_ISMULASZTASMIATTKIZART char(1)
|
|
,C_ISSIKERESAGAZATIVIZSGA char(1)
|
|
,C_ISATLAGSZAKKEPZESI char(1)
|
|
,C_ISINGYENESKEPZES char(1)
|
|
,C_ALTANEVID int
|
|
,TOROLT char(1)
|
|
)
|
|
|
|
INSERT INTO #T_TANULO (
|
|
ID
|
|
,C_EVISMETLO
|
|
,C_ISBESZAMITASOS
|
|
,C_ISMASODIKTOBBSZAKMA
|
|
,C_ISOSZTONDIJBOLKIZARVA
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS
|
|
,C_JOGVISZONYATSZUNETELTETO
|
|
,C_JOGVISZONYTIPUSID
|
|
,C_KEZIATLAG
|
|
,C_SZAMITOTTATLAG
|
|
,C_TANULOSZERZODESES
|
|
,C_VENDEG
|
|
,C_ISBESZAMITASOSFIXSZAZALEK
|
|
,C_ISMULASZTASMIATTKIZART
|
|
,C_ISSIKERESAGAZATIVIZSGA
|
|
,C_ISATLAGSZAKKEPZESI
|
|
,C_ISINGYENESKEPZES
|
|
,C_ALTANEVID
|
|
,TOROLT
|
|
) SELECT
|
|
ID
|
|
,C_EVISMETLO
|
|
,C_ISBESZAMITASOS
|
|
,C_ISMASODIKTOBBSZAKMA
|
|
,C_ISOSZTONDIJBOLKIZARVA
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS
|
|
,C_JOGVISZONYATSZUNETELTETO
|
|
,C_JOGVISZONYTIPUSID
|
|
,C_KEZIATLAG
|
|
,C_SZAMITOTTATLAG
|
|
,C_TANULOSZERZODESES
|
|
,C_VENDEG
|
|
,C_ISBESZAMITASOSFIXSZAZALEK
|
|
,C_ISMULASZTASMIATTKIZART
|
|
,C_ISSIKERESAGAZATIVIZSGA
|
|
,C_ISATLAGSZAKKEPZESI
|
|
,C_ISINGYENESKEPZES
|
|
,C_ALTANEVID
|
|
,TOROLT
|
|
FROM T_TANULO
|
|
WHERE C_ALTANEVID = @pTanevId
|
|
|
|
CREATE TABLE #T_OSZTALYCSOPORT (
|
|
ID int PRIMARY KEY
|
|
,C_EVFOLYAMTIPUSA int
|
|
,C_ISTECHNIKAI char(1)
|
|
,C_KERESZTFELEVES char(1)
|
|
,C_FELADATKATEGORIAID int
|
|
,C_VEGZOSEVFOLYAM char(1)
|
|
,C_TANEVID int
|
|
,TOROLT char(1)
|
|
)
|
|
|
|
INSERT INTO #T_OSZTALYCSOPORT (
|
|
ID
|
|
,C_EVFOLYAMTIPUSA
|
|
,C_ISTECHNIKAI
|
|
,C_KERESZTFELEVES
|
|
,C_FELADATKATEGORIAID
|
|
,C_VEGZOSEVFOLYAM
|
|
,C_TANEVID
|
|
,TOROLT
|
|
) SELECT
|
|
ID
|
|
,C_EVFOLYAMTIPUSA
|
|
,C_ISTECHNIKAI
|
|
,C_KERESZTFELEVES
|
|
,C_FELADATKATEGORIAID
|
|
,C_VEGZOSEVFOLYAM
|
|
,C_TANEVID
|
|
,TOROLT
|
|
FROM T_OSZTALYCSOPORT
|
|
WHERE C_TANEVID = @pTanevId
|
|
|
|
CREATE TABLE #T_TANULOCSOPORT (
|
|
ID int PRIMARY KEY
|
|
,C_BELEPESDATUM datetime
|
|
,C_KILEPESDATUM datetime
|
|
,C_JOGVISZONYTIPUSID int
|
|
,C_OSZTALYCSOPORTID int
|
|
,C_TANULOID int
|
|
,C_TANEVID int
|
|
,TOROLT char(1)
|
|
)
|
|
|
|
INSERT INTO #T_TANULOCSOPORT (
|
|
ID
|
|
,C_BELEPESDATUM
|
|
,C_KILEPESDATUM
|
|
,C_JOGVISZONYTIPUSID
|
|
,C_OSZTALYCSOPORTID
|
|
,C_TANULOID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
) SELECT
|
|
ID
|
|
,C_BELEPESDATUM
|
|
,C_KILEPESDATUM
|
|
,C_JOGVISZONYTIPUSID
|
|
,C_OSZTALYCSOPORTID
|
|
,C_TANULOID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
FROM T_TANULOCSOPORT
|
|
WHERE C_TANEVID = @pTanevId
|
|
|
|
CREATE TABLE #T_TANULOMULASZTAS (
|
|
ID int PRIMARY KEY
|
|
,C_IGAZOLT char(1)
|
|
,C_TIPUS int
|
|
,C_TANITASIORAKID int
|
|
,C_ORATANULOIID int
|
|
,C_TANEVID
|
|
,TOROLT char(1)
|
|
)
|
|
|
|
INSERT INTO #T_TANULOMULASZTAS (
|
|
ID
|
|
,C_IGAZOLT
|
|
,C_TIPUS
|
|
,C_TANITASIORAKID
|
|
,C_ORATANULOIID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
) SELECT
|
|
ID
|
|
,C_IGAZOLT
|
|
,C_TIPUS
|
|
,C_TANITASIORAKID
|
|
,C_ORATANULOIID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
FROM T_TANULOMULASZTAS
|
|
WHERE C_TANEVID = @pTanevId
|
|
|
|
CREATE TABLE #T_TANULOTANUGYIADATOK (
|
|
ID int PRIMARY KEY
|
|
,C_EVISMETLO char(1)
|
|
,C_ISBESZAMITASOS char(1)
|
|
,C_ISMASODIKTOBBSZAKMA char(1)
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS char(1)
|
|
,C_JOGVISZONYATSZUNETELTETO char(1)
|
|
,C_TANULOEVFOLYAMTIPUSID int
|
|
,C_TANULOSZERZODESES char(1)
|
|
,C_VENDEG char(1)
|
|
,C_TANULOCSOPORTID int
|
|
,C_ISBESZAMITASOSFIXSZAZALEK char(1)
|
|
,C_AGAZATUJSZKTTIPUSID int
|
|
,C_SZAKMATIPUSID int
|
|
,C_TANEVID
|
|
,TOROLT char(1)
|
|
)
|
|
INSERT INTO #T_TANULOTANUGYIADATOK (
|
|
ID
|
|
,C_EVISMETLO
|
|
,C_ISBESZAMITASOS
|
|
,C_ISMASODIKTOBBSZAKMA
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS
|
|
,C_JOGVISZONYATSZUNETELTETO
|
|
,C_TANULOEVFOLYAMTIPUSID
|
|
,C_TANULOSZERZODESES
|
|
,C_VENDEG
|
|
,C_TANULOCSOPORTID
|
|
,C_ISBESZAMITASOSFIXSZAZALEK
|
|
,C_AGAZATUJSZKTTIPUSID
|
|
,C_SZAKMATIPUSID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
) SELECT
|
|
ID
|
|
,C_EVISMETLO
|
|
,C_ISBESZAMITASOS
|
|
,C_ISMASODIKTOBBSZAKMA
|
|
,C_ISSZAKKEPZESIMUNKASZERZODESS
|
|
,C_JOGVISZONYATSZUNETELTETO
|
|
,C_TANULOEVFOLYAMTIPUSID
|
|
,C_TANULOSZERZODESES
|
|
,C_VENDEG
|
|
,C_TANULOCSOPORTID
|
|
,C_ISBESZAMITASOSFIXSZAZALEK
|
|
,C_AGAZATUJSZKTTIPUSID
|
|
,C_SZAKMATIPUSID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
FROM T_TANULOTANUGYIADATOK
|
|
WHERE C_TANEVID = @pTanevId
|
|
|
|
DECLARE @property TABLE (Tabla nvarchar(100), Oszlop nvarchar(100))
|
|
INSERT INTO @property (Tabla, Oszlop)
|
|
SELECT TablaNev, OszlopNev
|
|
FROM fnOsztondijHistoryOszlopok()
|
|
|
|
DECLARE @sql nvarchar(max)
|
|
DECLARE @SqlTable TABLE (Command nvarchar(max), AlterationDate datetime)
|
|
INSERT INTO @SqlTable (Command, AlterationDate)
|
|
SELECT DISTINCT sqlCmd, x.C_ALTERATIONDATE FROM (
|
|
SELECT
|
|
''UPDATE #'' + eh.C_ENTITYNAME + '' '' + CASE
|
|
WHEN eh.C_REASON = ''New'' THEN ''SET TOROLT = ''''T''''''
|
|
WHEN eh.C_REASON = ''Modified'' THEN ''SET '' + eah.C_PROPERTYNAME + '' = '' + ISNULL('''''''' + eah.C_ORIGINALVALUE + '''''''',''NULL '')
|
|
WHEN eh.C_REASON = ''Logical Removed'' THEN '' SET TOROLT = ''''F'''''' END
|
|
+ '' WHERE ID = '' + CAST(eh.C_ENTITYID AS varchar) sqlCmd
|
|
,eh.C_ALTERATIONDATE
|
|
FROM T_ENTITYHISTORY eh WITH(NOLOCK)
|
|
INNER JOIN T_ENTITYATTRIBUTEHISTORY eah WITH(NOLOCK) ON eah.C_ENTITYHISTORYID = eh.ID
|
|
INNER JOIN @property p ON p.Tabla = eh.C_ENTITYNAME AND p.Oszlop = eah.C_PROPERTYNAME
|
|
WHERE eh.C_TANEVID = ' + CAST(@pTanevId AS nvarchar(10)) + ' AND eh.C_ALTERATIONDATE >= ''' + FORMAT(@pVisszaallitasDatuma, 'yyyyMMdd') + '''
|
|
AND C_ENTITYNAME IN (''T_OSZTALYCSOPORT'', ''T_TANULO'', ''T_TANULOCSOPORT'', ''T_TANULOMULASZTAS'', ''T_TANULOTANUGYIADATOK'')
|
|
) x
|
|
WHERE x.sqlCmd IS NOT NULL
|
|
ORDER BY x.C_ALTERATIONDATE DESC
|
|
|
|
DECLARE cur CURSOR FOR
|
|
SELECT Command FROM @SqlTable ORDER BY AlterationDate desc
|
|
|
|
OPEN cur
|
|
FETCH NEXT FROM cur INTO @sql
|
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
|
EXEC sp_executesql @sql
|
|
FETCH NEXT FROM cur INTO @sql
|
|
END
|
|
|
|
CLOSE cur
|
|
DEALLOCATE cur
|
|
'
|
|
END
|
|
|
|
SET @sql += N'
|
|
DECLARE
|
|
@intezmenyId int
|
|
,@sorszam int
|
|
|
|
DECLARE
|
|
@jogviszonyVizsgalatEleje datetime
|
|
,@jogviszonyVizsgalatVege datetime
|
|
|
|
SET @jogviszonyVizsgalatEleje = @vizsgaltHonap
|
|
SET @jogviszonyVizsgalatVege = DATEADD(day, @pHatarnap - 1, DATEADD(month, DATEDIFF(month, 0, @vizsgaltHonap), 0))
|
|
|
|
SELECT
|
|
@intezmenyId = C_INTEZMENYID
|
|
,@sorszam = C_SORSZAM
|
|
FROM T_TANEV WHERE ID = @pTanevId
|
|
'
|
|
|
|
SET @sql +=N'
|
|
CREATE TABLE #TanuloIgazolatlanMulasztasok (
|
|
TanuloId int PRIMARY KEY
|
|
,MulasztasokSzama int
|
|
)
|
|
|
|
CREATE TABLE #TanuloAtlag (
|
|
TanuloId int PRIMARY KEY
|
|
,Atlag float
|
|
)
|
|
|
|
CREATE TABLE #JuttatasOkok (
|
|
TanuloId int PRIMARY KEY
|
|
,TanulocsoportBelepesDatum datetime
|
|
,JogviszonyTipus int
|
|
,VanValidBesorolasa char(1)
|
|
,EvfolyamTipusa int
|
|
,MasodikSzakma char(1)
|
|
,Evismetlo char(1)
|
|
,IgazolatlanMulasztasokSzama int
|
|
,Dualis char(1)
|
|
,TechnikaiOsztaly char(1)
|
|
,Vendeg char(1)
|
|
,IsJogviszonyatSzunetelteto char(1)
|
|
,KeresztfelevesOsztaly char(1)
|
|
,FelevnelValtos char(1)
|
|
,BeszamitasosTanulo char(1)
|
|
,OsztondijbolKizarva char(1)
|
|
,MulasztasMiattKizart char(1)
|
|
,IsSikeresAgazatiVizsga char(1)
|
|
,IsAtlagSzakkepzesi char(1)
|
|
,IsBeszamitasosFixSzazalek char(1)
|
|
,IsSzktJogosult char(1)
|
|
,IsIngyenesKepzes char(1)
|
|
,Code nvarchar(3)
|
|
,Szazalek int
|
|
,ElutasitasOka int
|
|
,Szorzo int
|
|
,Atlag float
|
|
,VegzosEvfolyam char(1)
|
|
)
|
|
|
|
INSERT INTO #TanuloIgazolatlanMulasztasok (
|
|
TanuloId
|
|
,MulasztasokSzama
|
|
) SELECT
|
|
tm.C_ORATANULOIID
|
|
,COUNT(1) AS CNT
|
|
FROM (
|
|
SELECT tcs.ID, tcs.C_TANULOID, tcs.C_BELEPESDATUM, tcs.C_KILEPESDATUM, tcs.C_TANEVID
|
|
,ROW_NUMBER() OVER (PARTITION BY tcs.C_TANULOID ORDER BY C_BELEPESDATUM DESC) AS rn
|
|
FROM ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULOCSOPORT_OSSZES', '#T_TANULOCSOPORT') + ' tcs
|
|
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.TOROLT = ''F''
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_OSZTALYCSOPORT_OSSZES', '#T_OSZTALYCSOPORT') + ' ocs ON ocs.ID = o.ID
|
|
AND ocs.C_FELADATKATEGORIAID = 7553 AND ocs.TOROLT = ''F''
|
|
WHERE tcs.TOROLT = ''F''
|
|
) AS x
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULOMULASZTAS_OSSZES', '#T_TANULOMULASZTAS') + ' tm ON tm.C_ORATANULOIID = x.C_TANULOID
|
|
AND tm.TOROLT = ''F''
|
|
INNER JOIN T_TANITASIORA_OSSZES tao ON tao.ID = tm.C_TANITASIORAKID AND tao.TOROLT = ''F''
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_OSZTALYCSOPORT_OSSZES', '#T_OSZTALYCSOPORT') + ' ocs ON ocs.ID = tao.C_OSZTALYCSOPORTID
|
|
AND ocs.C_FELADATKATEGORIAID = 7553 AND ocs.TOROLT = ''F''
|
|
' + IIF(@pTanuloIdList IS NOT NULL,'INNER JOIN #tanuloIdk tanulok ON tanulok.tanuloid = tm.C_ORATANULOIID','') + '
|
|
WHERE x.rn = 1
|
|
AND tao.C_DATUM >= x.C_BELEPESDATUM
|
|
AND (tao.C_DATUM < x.C_KILEPESDATUM OR x.C_KILEPESDATUM IS NULL)
|
|
AND tm.C_IGAZOLT = ''F''
|
|
AND tm.C_TIPUS = 1500
|
|
AND tao.C_DATUM < @vizsgaltHonap
|
|
' + IIF(@pTanuloId IS NOT NULL,' AND tm.C_ORATANULOIID = @pTanuloid','') + '
|
|
' + IIF(@pVisszaallitasDatuma IS NULL, ' AND tm.C_TANEVID = @pTanevId', '') + '
|
|
GROUP BY tm.C_ORATANULOIID'
|
|
|
|
SET @sql +=N'
|
|
INSERT INTO #JuttatasOkok(
|
|
TanuloId
|
|
,TanulocsoportBelepesDatum
|
|
,JogviszonyTipus
|
|
,VanValidBesorolasa
|
|
,EvfolyamTipusa
|
|
,MasodikSzakma
|
|
,Evismetlo
|
|
,IgazolatlanMulasztasokSzama
|
|
,Dualis
|
|
,TechnikaiOsztaly
|
|
,Vendeg
|
|
,IsJogviszonyatSzunetelteto
|
|
,KeresztfelevesOsztaly
|
|
,FelevnelValtos
|
|
,BeszamitasosTanulo
|
|
,OsztondijbolKizarva
|
|
,MulasztasMiattKizart
|
|
,IsSikeresAgazatiVizsga
|
|
,IsAtlagSzakkepzesi
|
|
,IsBeszamitasosFixSzazalek
|
|
,IsSzktJogosult
|
|
,IsIngyenesKepzes
|
|
,Code
|
|
,ElutasitasOka
|
|
,Szorzo
|
|
,Atlag
|
|
,VegzosEvfolyam
|
|
) SELECT
|
|
t.ID TanuloId
|
|
,o.C_BELEPESDATUM TanulocsoportBelepesDatum
|
|
,IIF(o.C_TANULOID IS NOT NULL, o.C_JOGVISZONYTIPUSID, t.C_JOGVISZONYTIPUSID) JogviszonyTipus
|
|
,IIF(o.C_TANULOID IS NULL,''F'',''T'') VanValidBesorolasa
|
|
,o.C_EVFOLYAMTIPUSA EvfolyamTipusa
|
|
,ISNULL(o.C_ISMASODIKTOBBSZAKMA,t.C_ISMASODIKTOBBSZAKMA) MasodikSzakma
|
|
,ISNULL(o.C_EVISMETLO,t.C_EVISMETLO) Evismetlo
|
|
,ISNULL(mul.MulasztasokSzama, 0) IgazolatlanMulasztasokSzama
|
|
,CASE
|
|
WHEN ISNULL(o.C_TANULOSZERZODESES,t.C_TANULOSZERZODESES) = ''T'' OR ISNULL(o.C_ISSZAKKEPZESIMUNKASZERZODESS,t.C_ISSZAKKEPZESIMUNKASZERZODESS) = ''T''
|
|
THEN ''T''
|
|
ELSE ''F''
|
|
END Dualis
|
|
,o.C_ISTECHNIKAI TechnikaiOsztaly
|
|
,ISNULL(o.C_VENDEG,t.C_VENDEG) Vendeg
|
|
,ISNULL(o.C_JOGVISZONYATSZUNETELTETO,t.C_JOGVISZONYATSZUNETELTETO) IsJogviszonyatSzunetelteto
|
|
,o.C_KERESZTFELEVES
|
|
,IIF(o.C_EVFOLYAMTIPUSA IN (7866,7883),''T'',''F'') FelevnelValtos
|
|
,ISNULL(o.C_ISBESZAMITASOS, t.C_ISBESZAMITASOS) BeszamitasosTanulo
|
|
,t.C_ISOSZTONDIJBOLKIZARVA OsztondijbolKizarva
|
|
,t.C_ISMULASZTASMIATTKIZART MulasztasMiattKizart
|
|
,t.C_ISSIKERESAGAZATIVIZSGA IsSikeresAgazatiVizsga
|
|
,t.C_ISATLAGSZAKKEPZESI IsAtlagSzakkepzesi
|
|
,ISNULL(o.C_ISBESZAMITASOSFIXSZAZALEK,t.C_ISBESZAMITASOSFIXSZAZALEK) IsBeszamitasosFixSzazalek
|
|
,IIF (o.C_AGAZATUJSZKTTIPUSID <> 7920 OR o.C_SZAKMATIPUSID <> 7946, ''T'', ''F'') IsSzktJogosult -- AgazatUjSzktTipus.Na, SzakmaTipus.Na
|
|
,t.C_ISINGYENESKEPZES IsIngyenesKepzes
|
|
,o.Code
|
|
,dbo.fnGetTanuloElutasitasOka(
|
|
ISNULL(IIF(o.C_TANULOID IS NOT NULL, o.C_JOGVISZONYTIPUSID, t.C_JOGVISZONYTIPUSID),0) -- @pJogviszonyTipus
|
|
,IIF(o.C_TANULOID IS NULL,''F'',''T'') -- @pBesorolas
|
|
,o.C_EVFOLYAMTIPUSA -- @pEvfolyamTipus
|
|
,ISNULL(o.C_ISMASODIKTOBBSZAKMA,t.C_ISMASODIKTOBBSZAKMA) -- @pIsMasodikSzakma
|
|
,ISNULL(o.C_EVISMETLO,t.C_EVISMETLO) -- @pEvIsmetlo
|
|
,mul.MulasztasokSzama -- @pMulSzam
|
|
,@pMaxIgazolatlanokSzama -- @pMaxMulSzam
|
|
,CASE
|
|
WHEN ISNULL(o.C_TANULOSZERZODESES,t.C_TANULOSZERZODESES) = ''T'' OR ISNULL(o.C_ISSZAKKEPZESIMUNKASZERZODESS,t.C_ISSZAKKEPZESIMUNKASZERZODESS) = ''T''
|
|
THEN ''T''
|
|
ELSE ''F''
|
|
END -- @pIsDualisKepzesben
|
|
,o.C_ISTECHNIKAI -- @pTechnikaiOsztaly
|
|
,ISNULL(o.C_VENDEG,t.C_VENDEG) -- @pIsVendegTanulo
|
|
,ISNULL(o.C_JOGVISZONYATSZUNETELTETO,t.C_JOGVISZONYATSZUNETELTETO) -- @pIsJogviszonyatSzunetelteto
|
|
,o.C_KERESZTFELEVES -- @pKeresztfeleves
|
|
,ISNULL(o.C_ISBESZAMITASOS, t.C_ISBESZAMITASOS) -- @pBeszamitasosTanulo
|
|
,t.C_ISOSZTONDIJBOLKIZARVA -- @pOsztondijbolKizarva
|
|
,t.C_ISMULASZTASMIATTKIZART -- @pMulasztasMiattKizart
|
|
,IIF (o.C_AGAZATUJSZKTTIPUSID <> 7920 OR o.C_SZAKMATIPUSID <> 7946, ''T'', ''F'') -- @IsSzktJogosult
|
|
,t.C_ISINGYENESKEPZES -- @IsIngyenesKepzes
|
|
,ISNULL(t.C_KEZIATLAG,t.C_SZAMITOTTATLAG) -- @pAtlag
|
|
,@pMinOsztondijAtlag -- @pMinAtlag
|
|
,IIF ((o.Code = ''003'' AND ISNULL(o.C_ISBESZAMITASOS, t.C_ISBESZAMITASOS) = ''F'')
|
|
OR (ISNULL(o.C_ISBESZAMITASOS, t.C_ISBESZAMITASOS) = ''T'' AND ISNULL(o.C_ISBESZAMITASOSFIXSZAZALEK,t.C_ISBESZAMITASOSFIXSZAZALEK) = ''F'')
|
|
OR (t.C_ISSIKERESAGAZATIVIZSGA = ''T'' AND t.C_ISATLAGSZAKKEPZESI = ''T''), 1, 0) -- @pIsAtlagFuggo
|
|
,@pLekerdezesDatuma -- @pLekerdezesDatuma
|
|
,@sorszam -- @pTanevSorszam
|
|
) ElutasitasOka
|
|
,o.Szorzo Szorzo
|
|
,0 Atlag
|
|
,o.C_VEGZOSEVFOLYAM AS VegzosEvfolyam
|
|
'
|
|
SET @sql+=N'
|
|
FROM ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULO_OSSZES', '#T_TANULO') + ' t
|
|
'+IIF(@pTanuloIdList IS NOT NULL, N'
|
|
INNER JOIN #tanuloIdk tanulok ON tanulok.tanuloid = t.ID','')
|
|
+IIF (@pJuttatasTipusId = 8618, N'
|
|
INNER JOIN T_APACZAIKGRJOGOSULT akgrj ON akgrj.C_TANULOID = t.ID AND akgrj.TOROLT = ''F''', '')
|
|
+ N'
|
|
LEFT JOIN #TanuloIgazolatlanMulasztasok mul ON mul.tanuloId = t.ID
|
|
OUTER APPLY (
|
|
SELECT TOP 1
|
|
tcso.C_TANULOID
|
|
,tcso.C_BELEPESDATUM
|
|
,tcso.C_JOGVISZONYTIPUSID
|
|
,CASE WHEN evtip.C_ISOSSZEVONT = ''T''
|
|
THEN ISNULL(tta.C_TANULOEVFOLYAMTIPUSID, ocso.C_EVFOLYAMTIPUSA)
|
|
ELSE ocso.C_EVFOLYAMTIPUSA
|
|
END AS C_EVFOLYAMTIPUSA
|
|
,tta.C_ISMASODIKTOBBSZAKMA
|
|
,tta.C_EVISMETLO
|
|
,tta.C_TANULOSZERZODESES
|
|
,ocso.C_ISTECHNIKAI
|
|
,tta.C_VENDEG
|
|
,tta.C_JOGVISZONYATSZUNETELTETO
|
|
,tta.C_ISSZAKKEPZESIMUNKASZERZODESS
|
|
,ocso.C_KERESZTFELEVES
|
|
,CASE WHEN evtip.C_ISOSSZEVONT = ''T''
|
|
THEN dibCodetta.C_CODE
|
|
ELSE dibCodeocs.C_CODE
|
|
END Code
|
|
,1 AS Szorzo
|
|
,tta.C_ISBESZAMITASOS
|
|
,tta.C_ISBESZAMITASOSFIXSZAZALEK
|
|
,ocso.C_VEGZOSEVFOLYAM
|
|
,tta.C_AGAZATUJSZKTTIPUSID
|
|
,tta.C_SZAKMATIPUSID
|
|
FROM ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULOCSOPORT_OSSZES', '#T_TANULOCSOPORT') + ' tcso
|
|
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcso.C_OSZTALYCSOPORTID AND t.TOROLT = ''F''
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_OSZTALYCSOPORT_OSSZES', '#T_OSZTALYCSOPORT') + ' ocso ON ocso.ID = o.ID AND ocso.C_FELADATKATEGORIAID = 7553 AND ocso.TOROLT = ''F''
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULOTANUGYIADATOK_OSSZES', '#T_TANULOTANUGYIADATOK') + ' tta ON tta.C_TANULOCSOPORTID = tcso.ID AND tta.TOROLT = ''F''
|
|
INNER JOIN T_DICTIONARYITEMBASE_OSSZES dibCodeocs ON dibCodeocs.ID = ocso.C_EVFOLYAMTIPUSA AND dibCodeocs.C_TANEVID = @pTanevId AND dibCodeocs.TOROLT = ''F''
|
|
LEFT JOIN T_DICTIONARYITEMBASE_OSSZES dibCodetta ON dibCodetta.ID = tta.C_TANULOEVFOLYAMTIPUSID AND dibCodetta.C_TANEVID = @pTanevId AND dibCodetta.TOROLT = ''F''
|
|
INNER JOIN T_EVFOLYAMTIPUS_OSSZES evtip ON evtip.ID = ocso.C_EVFOLYAMTIPUSA AND evtip.TOROLT = ''F'' AND evtip.C_ALTANEVID = ocso.C_TANEVID
|
|
WHERE tcso.C_BELEPESDATUM < @jogviszonyVizsgalatVege
|
|
AND (tcso.C_KILEPESDATUM >= @jogviszonyVizsgalatEleje OR tcso.C_KILEPESDATUM IS NULL)
|
|
AND tcso.C_TANULOID = t.ID
|
|
AND tcso.TOROLT = ''F''
|
|
' + IIF(@pVisszaallitasDatuma IS NULL, 'AND tcso.C_TANEVID = @pTanevId', '') + '
|
|
ORDER BY ISNULL(tcso.C_KILEPESDATUM,''22000101'') DESC
|
|
) o
|
|
WHERE t.TOROLT = ''F''
|
|
' + IIF(@pTanuloId IS NOT NULL,'AND t.ID = @pTanuloId','') + '
|
|
' + IIF(@pVisszaallitasDatuma IS NULL, 'AND t.C_ALTANEVID = @pTanevId', '')
|
|
|
|
SET @sql +=N'
|
|
|
|
UPDATE j SET
|
|
Atlag = ISNULL(t.C_KEZIATLAG,t.C_SZAMITOTTATLAG)
|
|
FROM #JuttatasOkok j
|
|
INNER JOIN ' + IIF(@pVisszaallitasDatuma IS NULL, 'T_TANULO_OSSZES', '#T_TANULO') + ' t ON t.ID = j.tanuloId
|
|
WHERE t.C_ALTANEVID = @pTanevId
|
|
AND t.TOROLT = ''F'''
|
|
|
|
SET @sql+=N'
|
|
UPDATE #JuttatasOkok SET
|
|
Szazalek = dbo.fnGetOsztondijSzazalek(BeszamitasosTanulo, IsBeszamitasosFixSzazalek, Atlag, Code, FelevnelValtos, IsSikeresAgazatiVizsga, IsAtlagSzakkepzesi)
|
|
'
|
|
|
|
SET @sql += N'
|
|
IF DATEPART(month, @vizsgaltHonap) BETWEEN 6 AND 8
|
|
BEGIN
|
|
UPDATE #JuttatasOkok SET
|
|
Szorzo = 3
|
|
WHERE VegzosEvfolyam = ''F''
|
|
END
|
|
IF DATEPART(month, @vizsgaltHonap) = 10
|
|
BEGIN
|
|
UPDATE #JuttatasOkok SET
|
|
Szorzo = CASE
|
|
WHEN (ElutasitasOka & 32) = 0 THEN 2
|
|
ELSE 0
|
|
END
|
|
END
|
|
'
|
|
|
|
SET @sql +=N'
|
|
IF @pGeneraltHonap IS NOT NULL BEGIN
|
|
UPDATE T_JUTTATAS_OSSZES
|
|
SET C_GENERALTHONAP = NULL
|
|
WHERE C_GENERALTHONAP = @pGeneraltHonap
|
|
AND C_TANEVID = @pTanevId
|
|
AND C_JUTTATASTIPUSID = @pJuttatasTipusId
|
|
END
|
|
'
|
|
|
|
SET @sql += N'
|
|
UPDATE j SET
|
|
C_ISAKTIV = ''F''
|
|
,LASTCHANGED = GETDATE()
|
|
,MODIFIER = @pFelhasznaloId
|
|
FROM T_JUTTATAS_OSSZES j
|
|
INNER JOIN #JuttatasOkok jo ON jo.tanuloId = j.C_TANULOID
|
|
WHERE j.C_ISAKTIV = ''T''
|
|
AND C_TANEVID = @pTanevId
|
|
AND C_JUTTATASTIPUSID = @pJuttatasTipusId
|
|
|
|
INSERT INTO T_JUTTATAS_OSSZES (
|
|
C_ELUTASITASOKA
|
|
,C_ISAKTIV
|
|
,C_ISJOGOSULT
|
|
,C_JUTTATASTIPUSID
|
|
,C_OSSZEG
|
|
,C_TANULOID
|
|
,C_INTEZMENYID
|
|
,C_TANEVID
|
|
,TOROLT
|
|
,SERIAL
|
|
,LASTCHANGED
|
|
,CREATED
|
|
,MODIFIER
|
|
,CREATOR
|
|
,C_GENERALTHONAP
|
|
) SELECT
|
|
ElutasitasOka
|
|
,' + IIF(@pVisszaallitasDatuma IS NULL, '''T''', '''F''') + '
|
|
,IIF(ElutasitasOka = 0,''T'',''F'')
|
|
,@pJuttatasTipusId
|
|
,' + CASE @pJuttatasTipusId
|
|
WHEN 7888 THEN 'IIF(ElutasitasOka = 0,@pOsztondijAlap*1.0/100*szazalek*szorzo,NULL)'
|
|
WHEN 8618 THEN 'IIF(ElutasitasOka = 0 AND akgrj.C_STATUSZID = 13, akgrj.C_OSSZEG*szorzo, NULL)'
|
|
ELSE 'NULL'
|
|
END
|
|
+ N'
|
|
,tanuloId
|
|
,@intezmenyId
|
|
,@pTanevId
|
|
,''F''
|
|
,0
|
|
,GETDATE()
|
|
,GETDATE()
|
|
,@pFelhasznaloId
|
|
,@pFelhasznaloId
|
|
,@pGeneraltHonap
|
|
FROM #JuttatasOkok'
|
|
|
|
IF @pJuttatasTipusId = 8618 BEGIN
|
|
SET @sql += N'
|
|
INNER JOIN T_APACZAIKGRJOGOSULT akgrj ON akgrj.C_TANULOID = #JuttatasOkok.TanuloId AND akgrj.TOROLT = ''F'''
|
|
END
|
|
|
|
SET @sql += N'
|
|
--SELECT * FROM #JuttatasOkok
|
|
'
|
|
IF @pJuttatasTipusId = 7888 BEGIN
|
|
SET @sql += N'
|
|
IF @pGeneraltHonap IS NOT NULL BEGIN
|
|
UPDATE t SET
|
|
t.C_ISMULASZTASMIATTKIZART = ''T''
|
|
FROM T_TANULO_OSSZES t
|
|
INNER JOIN #JuttatasOkok j on j.tanuloId = t.ID
|
|
AND j.IgazolatlanMulasztasokSzama > @pMaxIgazolatlanokSzama
|
|
WHERE t.C_ISMULASZTASMIATTKIZART = ''F''
|
|
AND t.C_ALTANEVID = @pTanevId
|
|
AND t.TOROLT = ''F''
|
|
END
|
|
'
|
|
END
|
|
|
|
--select @sql
|
|
EXEC sp_executesql @sql,N'
|
|
@ptanuloIdList nvarchar(max)
|
|
,@pMaxIgazolatlanokSzama int
|
|
,@pMinOsztondijAtlag float
|
|
,@pOsztondijAlap int
|
|
,@pLekerdezesDatuma datetime
|
|
,@pTanuloId int
|
|
,@vizsgaltHonap datetime
|
|
,@pFelhasznaloId int
|
|
,@pHatarnap int
|
|
,@pGeneraltHonap int
|
|
,@pTanevId int
|
|
,@pVisszaallitasDatuma datetime
|
|
,@pJuttatasTipusId int'
|
|
,@pMaxIgazolatlanokSzama = @pMaxIgazolatlanokSzama
|
|
,@pMinOsztondijAtlag = @pMinOsztondijAtlag
|
|
,@pOsztondijAlap = @pOsztondijAlap
|
|
,@pLekerdezesDatuma = @vizsgaltHonap
|
|
,@pTanuloId = @pTanuloId
|
|
,@pTanuloIdList = @pTanuloIdList
|
|
,@vizsgaltHonap = @vizsgaltHonap
|
|
,@pFelhasznaloId = @pFelhasznaloId
|
|
,@pHatarnap = @hatarnap
|
|
,@pGeneraltHonap = @pGeneraltHonap
|
|
,@pTanevId = @pTanevId
|
|
,@pVisszaallitasDatuma = @pVisszaallitasDatuma
|
|
,@pJuttatasTipusId = @pJuttatasTipusId
|
|
END
|
|
GO
|