83 lines
No EOL
2.6 KiB
Transact-SQL
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 |