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

83 lines
No EOL
2.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspFollowUpGondviseloCim
GO
CREATE PROCEDURE uspFollowUpGondviseloCim
@intezmenyId int
,@tanevId int
,@kovetkezoTanevId int
,@gondviseloId int
,@kovGondviseloId int = NULL
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS (SELECT 1 from T_TANEV where ID = @kovetkezoTanevId and C_KOVETKEZO = 'T' and C_AKTIVALVA is null and C_ISKIVALASZTHATO = 'T')
BEGIN
RETURN;
END
DECLARE
@selectColList nvarchar(max)
,@insertColList nvarchar(max)
,@sql nvarchar(max)
CREATE TABLE #columnMapping (
insertColName nvarchar(max) COLLATE DATABASE_DEFAULT
,selectColName nvarchar(max)
)
INSERT INTO #columnMapping
SELECT insertColName,selectColName
FROM fnGetFollowUpColumnMapping (NULL,'T_CIM')
IF @kovGondviseloId IS NULL
BEGIN
SELECT @kovGondviseloId = gNext.ID
FROM
T_GONDVISELO_OSSZES g
INNER JOIN T_GONDVISELO_OSSZES gNext ON gNext.TOROLT='F' AND gNext.ELOZOTANEVIREKORDID = g.ID AND gNext.C_TANEVID = @kovetkezoTanevId AND gNext.C_INTEZMENYID = @intezmenyId
WHERE
g.TOROLT = 'F'
AND g.ID = @gondviseloId
AND g.C_INTEZMENYID = @intezmenyId
AND g.C_TANEVID = @tanevId
END
IF @kovGondviseloId IS NOT NULL
BEGIN
DELETE FROM T_CIM_OSSZES WHERE
C_GONDVISELOID = @kovGondviseloId
AND C_INTEZMENYID = @intezmenyId
AND C_TANEVID = @kovetkezoTanevId
UPDATE #columnMapping SET selectColName = 'fhNew.ID' WHERE insertColName = 'C_FELHASZNALOID'
UPDATE #columnMapping SET selectColName = 'g.ID' WHERE insertColName = 'C_GONDVISELOID'
SELECT @insertColList = ISNULL(@insertColList+','+insertColname,insertColname) FROM #columnMapping
SELECT @selectColList = ISNULL(@selectColList+','+selectColName,selectColName) FROM #columnMapping
SET @sql =N'
INSERT INTO T_CIM_OSSZES (
'+@insertColList+'
) SELECT
'+@selectColList+'
FROM T_CIM_OSSZES s
INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = s.C_FELHASZNALOID
INNER JOIN T_FELHASZNALO_OSSZES fhNew ON fhNew.C_OKTATASIAZONOSITO=fh.C_OKTATASIAZONOSITO AND fhNew.TOROLT=''F'' AND fhNew.C_TANEVID=@kovetkezoTanevId
INNER JOIN T_GONDVISELO_OSSZES g ON g.ELOZOTANEVIREKORDID=s.C_GONDVISELOID AND g.TOROLT=''F''
WHERE
s.TOROLT = ''F''
AND s.C_GONDVISELOID = @gondviseloId'
--print @sql
EXEC sp_executesql
@sql,N'
@intezmenyId int
,@tanevId int
,@kovetkezoTanevId int
,@gondviseloId int'
,@intezmenyId = @intezmenyId
,@tanevId = @tanevId
,@kovetkezoTanevId = @kovetkezoTanevId
,@gondviseloId = @gondviseloId
END
END
GO