254 lines
9.4 KiB
Transact-SQL
254 lines
9.4 KiB
Transact-SQL
DROP PROCEDURE IF EXISTS uspFollowUpAlkalmazott
|
|
GO
|
|
|
|
CREATE PROCEDURE uspFollowUpAlkalmazott
|
|
@intezmenyId int
|
|
,@aktTanevId int
|
|
,@kovetkezoTanevId int
|
|
,@alkalmazottId int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
BEGIN --DECLARE,CREATE
|
|
|
|
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
|
|
@ujAlkalmazottId int
|
|
,@ExcludeInsertColumns nvarchar(max)
|
|
,@insertColList nvarchar(max)
|
|
,@selectColList nvarchar(max)
|
|
,@updateColList nvarchar(max)
|
|
,@partialSql nvarchar(max)
|
|
,@fullSql nvarchar(max)
|
|
|
|
CREATE TABLE #excludedColumns (
|
|
colName nvarchar(128) COLLATE DATABASE_DEFAULT
|
|
,excludeType nvarchar(10) COLLATE DATABASE_DEFAULT
|
|
)
|
|
|
|
CREATE TABLE #columnMappings (
|
|
insertColName nvarchar(max) COLLATE DATABASE_DEFAULT
|
|
,selectColName nvarchar(max) COLLATE DATABASE_DEFAULT
|
|
,updateColname nvarchar(max) COLLATE DATABASE_DEFAULT
|
|
,tableName nvarchar(128) COLLATE DATABASE_DEFAULT
|
|
)
|
|
END
|
|
BEGIN --default return
|
|
DECLARE @eloTag nvarchar(40)=(SELECT C_ELOTAG FROM T_FELHASZNALO WHERE ID = @alkalmazottId)
|
|
IF @eloTag LIKE '%[[]HO%'
|
|
OR @eloTag LIKE '%[[]BTA%'
|
|
OR @eloTag LIKE '%[[]KGK%'
|
|
OR @eloTag LIKE '%[[]KA%'
|
|
BEGIN
|
|
RETURN
|
|
END
|
|
|
|
SELECT @ujAlkalmazottId = ID
|
|
FROM T_FELHASZNALO_OSSZES
|
|
WHERE ELOZOTANEVIREKORDID = @alkalmazottId
|
|
AND C_TANEVID = @kovetkezoTanevId
|
|
|
|
|
|
IF (SELECT TOROLT FROM T_FELHASZNALO_OSSZES WHERE ID = @alkalmazottId) = 'T'
|
|
OR (SELECT TOROLT FROM T_FELHASZNALO_OSSZES WHERE ID = @ujAlkalmazottId) = 'T'
|
|
OR EXISTS (SELECT 1 FROM T_MUNKAUGYIADATOK WHERE C_ALKALMAZOTTID=@alkalmazottId AND ISNULL(C_ALKALMAZASMEGSZUNESE,'2200-01-01')<=(SELECT C_KEZDONAP FROM T_TANEV WHERE ID = @kovetkezoTanevId))
|
|
BEGIN
|
|
RETURN
|
|
END
|
|
END
|
|
BEGIN --SETUP
|
|
|
|
SET @ExcludeInsertColumns = ''
|
|
|
|
INSERT INTO #columnMappings (insertColName,selectColName,updateColname,tableName)
|
|
SELECT insertColName,selectColName,updateColname,'T_FELHASZNALO' FROM fnGetFollowUpColumnMapping (@ExcludeInsertColumns,'T_FELHASZNALO')
|
|
UNION ALL
|
|
SELECT insertColName,selectColName,updateColname,'T_ALKALMAZOTT' FROM fnGetFollowUpColumnMapping (@ExcludeInsertColumns,'T_ALKALMAZOTT')
|
|
UNION ALL
|
|
SELECT insertColName,selectColName,updateColname,'T_MUNKAUGYIADATOK' FROM fnGetFollowUpColumnMapping (@ExcludeInsertColumns,'T_MUNKAUGYIADATOK')
|
|
|
|
END
|
|
|
|
--====================================================== T_FELHASZNALO==================================================--
|
|
BEGIN
|
|
IF @ujAlkalmazottId IS NULL
|
|
BEGIN
|
|
SELECT @insertColList = ISNULL(@insertColList+','+insertColname,insertColname) FROM #columnMappings WHERE tableName IN ('T_FELHASZNALO')
|
|
SELECT @selectColList = ISNULL(@selectColList+','+selectColName,selectColName) FROM #columnMappings WHERE tableName IN ('T_FELHASZNALO')
|
|
|
|
SET @partialSql = N'
|
|
INSERT INTO T_FELHASZNALO_OSSZES (
|
|
'+@insertColList+'
|
|
) SELECT
|
|
'+@selectColList+'
|
|
FROM T_FELHASZNALO_OSSZES s
|
|
WHERE s.ID = @alkalmazottId
|
|
AND EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES WHERE T_ALKALMAZOTT_OSSZES.ID = s.ID AND TOROLT = ''F'')
|
|
AND s.TOROLT = ''F''
|
|
SET @ujAlkalmazottId = SCOPE_IDENTITY()'
|
|
END
|
|
ELSE BEGIN
|
|
SELECT
|
|
@updateColList = ISNULL(@updateColList+','+insertColName+' = '+updateColname,insertColName+' = '+updateColname)
|
|
FROM #columnMappings
|
|
WHERE tableName = 'T_FELHASZNALO' AND updateColname IS NOT NULL
|
|
|
|
SET @partialSql =N'
|
|
UPDATE t SET
|
|
'+@updateColList+'
|
|
FROM T_FELHASZNALO_OSSZES t
|
|
INNER JOIN T_FELHASZNALO_OSSZES s ON s.ID = t.ELOZOTANEVIREKORDID
|
|
WHERE t.ID = @ujAlkalmazottId'
|
|
END
|
|
|
|
SET @updateColList = NULL
|
|
SET @selectColList = NULL
|
|
SET @insertColList = NULL
|
|
--PRINT @partialSql
|
|
SET @fullSql = @partialSql
|
|
END
|
|
--====================================================== T_FELHASZNALO VÉGE=============================================--
|
|
|
|
--====================================================== T_ALKALMAZOTT==================================================--
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES WHERE ID = @ujAlkalmazottId) BEGIN
|
|
INSERT INTO #columnMappings VALUES
|
|
('ID','@ujAlkalmazottId',NULL,'T_ALKALMAZOTT')
|
|
|
|
SELECT @insertColList = ISNULL(@insertColList+','+insertColname,insertColname) FROM #columnMappings WHERE tableName IN ('T_ALKALMAZOTT')
|
|
SELECT @selectColList = ISNULL(@selectColList+','+selectColName,selectColName) FROM #columnMappings WHERE tableName IN ('T_ALKALMAZOTT')
|
|
|
|
SET @partialSql = N'
|
|
INSERT INTO T_ALKALMAZOTT_OSSZES (
|
|
'+@insertColList+'
|
|
) SELECT
|
|
'+@selectColList+'
|
|
FROM T_ALKALMAZOTT_OSSZES s
|
|
WHERE s.C_ALTANEVID = @aktTanevId AND s.ID = @alkalmazottId'
|
|
END
|
|
ELSE BEGIN
|
|
SELECT
|
|
@updateColList = ISNULL(@updateColList+','+insertColName+' = '+updateColname,insertColName+' = '+updateColname)
|
|
FROM #columnMappings
|
|
WHERE tableName = 'T_ALKALMAZOTT' AND updateColname IS NOT NULL
|
|
|
|
SET @partialSql = N'
|
|
UPDATE t SET
|
|
'+@updateColList+'
|
|
FROM T_ALKALMAZOTT_OSSZES t
|
|
INNER JOIN T_ALKALMAZOTT_OSSZES s ON s.ID = t.ELOZOTANEVIREKORDID
|
|
WHERE t.ID = @ujAlkalmazottId'
|
|
END
|
|
|
|
--PRINT @partialSql
|
|
SET @updateColList = NULL
|
|
SET @selectColList = NULL
|
|
SET @insertColList = NULL
|
|
SET @fullSql += @partialSql
|
|
END
|
|
--====================================================== T_ALKALMAZOTT VÉGE=============================================--
|
|
|
|
--====================================================== T_MUNKAUGYIADATOK==============================================--
|
|
BEGIN
|
|
|
|
UPDATE #columnMappings SET selectColName = 'sz.ID', updateColname = 'sz.ID' WHERE tableName = 'T_MUNKAUGYIADATOK' and insertColName = 'C_SZERVEZETID'
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM T_MUNKAUGYIADATOK_OSSZES WHERE C_ALKALMAZOTTID = @ujAlkalmazottId) BEGIN
|
|
|
|
SELECT @insertColList = ISNULL(@insertColList + ', ', '') + insertColname FROM #columnMappings WHERE tableName IN ('T_MUNKAUGYIADATOK') ORDER BY insertColName
|
|
SELECT @selectColList = ISNULL(@selectColList + ', ', '') + selectColName FROM #columnMappings WHERE tableName IN ('T_MUNKAUGYIADATOK') ORDER BY insertColName
|
|
|
|
SET @partialSql = N'
|
|
INSERT INTO T_MUNKAUGYIADATOK_OSSZES (
|
|
' + @insertColList + '
|
|
) SELECT
|
|
' + @selectColList + '
|
|
FROM T_MUNKAUGYIADATOK_OSSZES s
|
|
LEFT JOIN T_FELADATELLATASIHELY_OSSZES f ON f.ELOZOTANEVIREKORDID = s.C_FELADATELLATASIHELYID AND f.TOROLT=''F''
|
|
LEFT JOIN T_SZERVEZET_OSSZES sz ON sz.ELOZOTANEVIREKORDID = s.C_SZERVEZETID AND sz.TOROLT = ''F''
|
|
WHERE s.TOROLT = ''F''
|
|
AND s.C_ALKALMAZOTTID = @alkalmazottId'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @updateColList = ISNULL(@updateColList + ',', '') + insertColName + ' = ' + updateColname
|
|
FROM #columnMappings
|
|
WHERE tableName = 'T_MUNKAUGYIADATOK'
|
|
AND updateColname IS NOT NULL
|
|
ORDER BY insertColName
|
|
|
|
SET @partialSql = N'
|
|
UPDATE t SET
|
|
' + @updateColList + '
|
|
FROM T_MUNKAUGYIADATOK_OSSZES t
|
|
INNER JOIN T_MUNKAUGYIADATOK_OSSZES s ON s.ID = t.ELOZOTANEVIREKORDID
|
|
LEFT JOIN T_FELADATELLATASIHELY_OSSZES f ON f.ELOZOTANEVIREKORDID = s.C_FELADATELLATASIHELYID AND f.TOROLT=''F''
|
|
LEFT JOIN T_SZERVEZET_OSSZES sz ON sz.ELOZOTANEVIREKORDID = s.C_SZERVEZETID AND sz.TOROLT = ''F''
|
|
WHERE t.C_ALKALMAZOTTID = @ujAlkalmazottId'
|
|
END
|
|
--PRINT @partialSql
|
|
SET @fullSql += @partialSql
|
|
END
|
|
--====================================================== T_MUNKAUGYIADATOK VÉGE=========================================--
|
|
|
|
EXEC sp_executesql
|
|
@fullSql,N'
|
|
@alkalmazottId int
|
|
,@intezmenyId int
|
|
,@kovetkezoTanevId int
|
|
,@aktTanevId int
|
|
,@ujAlkalmazottId int'
|
|
,@alkalmazottId = @alkalmazottId
|
|
,@intezmenyId = @intezmenyId
|
|
,@kovetkezoTanevId = @kovetkezoTanevId
|
|
,@ujAlkalmazottId = @ujAlkalmazottId
|
|
,@aktTanevId = @aktTanevId
|
|
|
|
BEGIN --Cím, Email, Telefon
|
|
EXEC uspFollowUpFelhasznaloCim @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
|
EXEC uspFollowUpFelhasznaloEmail @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
|
EXEC uspFollowUpFelhasznaloTelefon @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
|
END
|
|
|
|
IF ((select
|
|
ic.C_ERTEK
|
|
from T_INTEZMENYCONFIG ic
|
|
where ic.C_CONFIGTIPUSID = 23 and ic.TOROLT = 'F' and ic.C_INTEZMENYID = @intezmenyId) = 'true') BEGIN --sp_FollowUpAlkalmazottVegzettsegKK
|
|
EXEC uspFollowUpAlkalmazottVegzettsegKK
|
|
@intezmenyId
|
|
,@aktTanevId
|
|
,@kovetkezoTanevId
|
|
,@alkalmazottId
|
|
END
|
|
ELSE BEGIN
|
|
DECLARE @vegzettsegId int
|
|
|
|
DECLARE VegzettsegCur CURSOR FAST_FORWARD READ_ONLY FOR
|
|
SELECT ID FROM T_VEGZETTSEG_OSSZES v WHERE v.C_TANARID = @alkalmazottId
|
|
|
|
OPEN VegzettsegCur
|
|
|
|
FETCH NEXT FROM VegzettsegCur
|
|
INTO @vegzettsegId
|
|
|
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
|
EXEC uspFollowUpAlkalmazottVegzettseg
|
|
@intezmenyId
|
|
,@aktTanevId
|
|
,@kovetkezoTanevId
|
|
,@vegzettsegId
|
|
|
|
FETCH NEXT FROM VegzettsegCur
|
|
INTO @vegzettsegId
|
|
END
|
|
|
|
CLOSE VegzettsegCur
|
|
DEALLOCATE VegzettsegCur
|
|
|
|
END
|
|
END
|
|
GO
|