113 lines
No EOL
4.3 KiB
Transact-SQL
113 lines
No EOL
4.3 KiB
Transact-SQL
--Migration
|
|
-- C_ISOSZTONDIJBOLKIZARVA javítás
|
|
UPDATE dk SET
|
|
C_ISOSZTONDIJBOLKIZARVA = 'F', dk.LASTCHANGED = GETDATE(), dk.MODIFIER = 0, dk.SERIAL += 1
|
|
FROM T_INTEZMENY i
|
|
INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.C_NEV = '2021/2022' AND tv.TOROLT = 'F'
|
|
INNER JOIN T_TANULO dk ON dk.C_ALTANEVID = tv.ID AND dk.TOROLT = 'F'
|
|
INNER JOIN T_INTEZMENYADATOK ia ON ia.C_TANEVID = tv.ID AND ia.TOROLT = 'F'
|
|
WHERE i.TOROLT = 'F'
|
|
AND dk.C_ISOSZTONDIJBOLKIZARVA = 'T'
|
|
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
|
|
|
|
-- C_ISMULASZTASMIATTKIZART javítás
|
|
UPDATE dk SET
|
|
C_ISMULASZTASMIATTKIZART = 'F', dk.LASTCHANGED = GETDATE(), dk.MODIFIER = 0, dk.SERIAL += 1
|
|
FROM T_INTEZMENY i
|
|
INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.C_NEV = '2021/2022' AND tv.TOROLT = 'F'
|
|
INNER JOIN T_TANULO dk ON dk.C_ALTANEVID = tv.ID AND dk.TOROLT = 'F'
|
|
INNER JOIN T_INTEZMENYADATOK ia ON ia.C_TANEVID = tv.ID AND ia.TOROLT = 'F'
|
|
WHERE i.TOROLT = 'F'
|
|
AND dk.C_ISMULASZTASMIATTKIZART = 'F'
|
|
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
|
|
GO
|
|
|
|
-- Átlag számítás (csak akik 2021-09-16 00:00 után váltottak tanévet)
|
|
DECLARE tanevCursor CURSOR LOCAL FOR
|
|
SELECT tv.ID AS TanevId, tvElozo.ID AS ElozoTanevId
|
|
FROM T_TANEV tv
|
|
INNER JOIN T_TANEV tvElozo ON tvElozo.C_INTEZMENYID = tv.C_INTEZMENYID AND tvElozo.TOROLT = 'F'
|
|
INNER JOIN T_INTEZMENYADATOK ia ON ia.C_TANEVID = tv.ID AND ia.TOROLT = 'F'
|
|
WHERE tv.C_AKTIV = 'T'
|
|
AND tv.C_SORSZAM = 42
|
|
AND tv.TOROLT = 'F'
|
|
AND tvElozo.C_SORSZAM = tv.C_SORSZAM - 2
|
|
AND tv.C_AKTIVALVA > '20210916 00:00'
|
|
AND ia.C_ISSZAKKEPZOJUTTATAS = 'T'
|
|
|
|
DECLARE @tanevId int
|
|
,@elozoTanevId int
|
|
|
|
OPEN tanevCursor
|
|
FETCH NEXT FROM tanevCursor INTO @tanevId, @elozoTanevId
|
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
|
|
|
UPDATE dk SET dk.C_SZAMITOTTATLAG = x.ATLAG
|
|
,dk.MODIFIER = 0
|
|
,dk.LASTCHANGED = GETDATE()
|
|
,dk.SERIAL = dk.SERIAL + 1
|
|
FROM T_TANULO_OSSZES dk
|
|
INNER JOIN (
|
|
SELECT er.C_TANULOID, AVG(ISNULL(erpot.C_ERTEKELESOSZTALYZATID - 1500, er.C_ERTEKELESOSZTALYZATID - 1500) * 1.0) AS ATLAG
|
|
FROM T_TANULOERTEKELES_OSSZES er
|
|
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID AND ocs.C_FELADATKATEGORIAID = 7553 AND ocs.TOROLT = 'F'
|
|
LEFT JOIN T_TANULOERTEKELES_OSSZES erpot ON er.C_TANULOID = erpot.C_TANULOID AND er.TOROLT = 'F' AND erpot.C_TANTARGYID = er.C_TANTARGYID AND erpot.C_TIPUSID = 6917
|
|
INNER JOIN T_TANTARGY_OSSZES tgy ON tgy.ID = er.C_TANTARGYID AND tgy.TOROLT = 'F'
|
|
LEFT JOIN T_CSOPORT_OSSZES cs ON cs.ID = ocs.ID AND cs.TOROLT = 'F'
|
|
LEFT JOIN T_CSOPORTTIPUS_OSSZES cst ON cst.ID = cs.C_TIPUSA AND cs.C_ALTANEVID = cst.C_ALTANEVID AND cst.TOROLT = 'F'
|
|
WHERE er.C_TIPUSID = 1520
|
|
AND er.TOROLT = 'F'
|
|
AND er.C_ISMAGATARTASSZORGALOM = 'F'
|
|
AND er.C_TANEVID = @elozoTanevId
|
|
AND tgy.C_ISOSZTALYNAPLOBANEMLATSZIK = 'F' AND tgy.C_ISTANULMANYIATLAGBANEMSZAMIT = 'F'
|
|
AND ((cs.ID IS NULL OR cst.C_ISTANORAICELU = 'T' AND tgy.C_FOTARGYE = 'T') OR (tgy.C_FOTARGYE = 'F' AND tgy.C_ALTANTARGYKENTNYOMTATVANYBAN = 'T'))
|
|
AND er.C_ERTEKELESOSZTALYZATID IS NOT NULL
|
|
GROUP BY er.C_TANULOID
|
|
) x ON x.C_TANULOID = dk.ELOZOTANEVIREKORDID
|
|
WHERE dk.TOROLT = 'F'
|
|
AND dk.C_ALTANEVID = @tanevId
|
|
|
|
|
|
FETCH NEXT FROM tanevCursor INTO @tanevId, @elozoTanevId
|
|
END
|
|
|
|
CLOSE tanevCursor
|
|
DEALLOCATE tanevCursor
|
|
GO
|
|
|
|
|
|
DECLARE
|
|
@pLekerdezesDatuma nvarchar(12) = CONVERT(nvarchar, GETDATE(), 23)
|
|
DECLARE
|
|
@pGeneraltHonap int = NULL
|
|
,@pVisszaallitasDatuma datetime = NULL
|
|
|
|
DECLARE @tanevId nvarchar(100)
|
|
IF @pLekerdezesDatuma 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 tv.C_NEV = '2021/2022'
|
|
|
|
OPEN cur
|
|
FETCH NEXT FROM cur INTO @tanevId
|
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
|
EXEC uspUpdateTanuloSzakkepzesiJuttatasok
|
|
@pTanevId = @tanevId
|
|
,@pMaxIgazolatlanokSzama = 6
|
|
,@pMinOsztondijAtlag = 2.0
|
|
,@pOsztondijAlap = 167400
|
|
,@pLekerdezesDatuma = @pLekerdezesDatuma
|
|
,@pTanuloId = NULL
|
|
,@pTanuloIdList = NULL
|
|
,@pFelhasznaloId = 0
|
|
,@pGeneraltHonap = @pGeneraltHonap
|
|
,@pVisszaallitasDatuma = @pVisszaallitasDatuma
|
|
FETCH NEXT FROM cur INTO @tanevId
|
|
END
|
|
CLOSE cur
|
|
DEALLOCATE cur
|
|
END
|
|
GO |