94 lines
3 KiB
Transact-SQL
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
|