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

94 lines
3 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspUpdateAtlagByTanuloTantargy
GO
CREATE PROCEDURE uspUpdateAtlagByTanuloTantargy
@pTanuloId int
,@pTantargyId int
,@pTanevId int
,@pIntezmenyId int
,@pOktatasNevelesiFeladatId int
,@pFelhasznaloId int
AS
BEGIN
DECLARE
@osztalyzatOsszege int
,@osztalyzatSzama int
,@sulyozottOsztalyzatOsszege int
,@sulyozottOsztalyzatSzama int
SELECT
@osztalyzatOsszege = SUM(d.C_VALUE)
,@osztalyzatSzama = COUNT(1)
,@sulyozottOsztalyzatOsszege = SUM(d.C_VALUE * em.C_SULY)
,@sulyozottOsztalyzatSzama = SUM(em.C_SULY)
FROM T_TANULOERTEKELES_OSSZES er
INNER JOIN T_ERTEKELESMOD_OSSZES em ON em.ID = er.C_ERTEKELESMODID AND em.C_ALTANEVID = er.C_TANEVID
INNER JOIN T_DICTIONARYITEMBASE_OSSZES d ON d.ID = er.C_ERTEKELESOSZTALYZATID AND d.C_TANEVID = er.C_TANEVID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = er.C_OSZTALYCSOPORTID
INNER JOIN T_FELADATELLATASIHELY_OSSZES feh ON feh.ID = ocs.C_FELADATELLATASIHELYID
WHERE feh.C_OKTATASINEVELESIFELADATTIPUS = @pOktatasNevelesiFeladatId
AND er.C_TANULOID = @pTanuloId
AND er.C_TANTARGYID = @pTantargyId
AND er.C_TIPUSID = 1518
AND er.TOROLT = 'F'
IF @osztalyzatSzama = 0 BEGIN
DELETE FROM T_TANULOTANTARGYATLAG_OSSZES
WHERE C_TANEVID = @pTanevId
AND C_TANULOID = @pTanuloId
AND C_TANTARGYID = @pTantargyId
AND C_OKTATASNEVELESIFELADATID = @pOktatasNevelesiFeladatId
END
ELSE BEGIN
UPDATE T_TANULOTANTARGYATLAG_OSSZES SET
C_OSZTALYZATOSSZEGE = @osztalyzatOsszege
,C_OSZTALYZATSZAMA = @osztalyzatSzama
,C_SULYOZOTTOSZTALYZATOSSZEGE = @sulyozottOsztalyzatOsszege
,C_SULYOZOTTOSZTALYZATSZAMA = @sulyozottOsztalyzatSzama
,LASTCHANGED = GETDATE()
,MODIFIER = @pFelhasznaloId
,SERIAL += 1
WHERE C_TANEVID = @pTanevId
AND C_TANULOID = @pTanuloId
AND C_TANTARGYID = @pTantargyId
AND C_OKTATASNEVELESIFELADATID = @pOktatasNevelesiFeladatId
IF @@ROWCOUNT = 0 BEGIN
INSERT INTO T_TANULOTANTARGYATLAG (
C_OSZTALYZATOSSZEGE
,C_OSZTALYZATSZAMA
,C_SULYOZOTTOSZTALYZATOSSZEGE
,C_SULYOZOTTOSZTALYZATSZAMA
,C_TANTARGYID
,C_TANULOID
,C_INTEZMENYID
,C_TANEVID
,TOROLT
,SERIAL
,LASTCHANGED
,CREATED
,MODIFIER
,CREATOR
,C_OKTATASNEVELESIFELADATID
) VALUES (
@osztalyzatOsszege
,@osztalyzatSzama
,@sulyozottOsztalyzatOsszege
,@sulyozottOsztalyzatSzama
,@pTantargyId
,@pTanuloId
,@pIntezmenyId
,@pTanevId
,'F'
,0
,GETDATE()
,GETDATE()
,0
,@pFelhasznaloId
,@pOktatasNevelesiFeladatId
)
END
END
END
GO