kreta/Kreta.DataAccess.Migrations/Scripts/20211004161430_DB_4244/DB_4244.sql
2024-03-13 00:33:46 +01:00

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