init
This commit is contained in:
@@ -0,0 +1,208 @@
|
||||
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
|
||||
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(128) COLLATE DATABASE_DEFAULT
|
||||
,selectColName nvarchar(128) COLLATE DATABASE_DEFAULT
|
||||
,updateColname nvarchar(128) 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
|
||||
|
||||
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
|
||||
SELECT @ujAlkalmazottId = ID
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
WHERE ELOZOTANEVIREKORDID = @alkalmazottId
|
||||
AND C_TANEVID = @kovetkezoTanevId
|
||||
|
||||
SET @ExcludeInsertColumns = 'FTIP'
|
||||
|
||||
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
|
||||
IF NOT EXISTS (SELECT 1 FROM T_MUNKAUGYIADATOK_OSSZES WHERE C_ALKALMAZOTTID = @ujAlkalmazottId) BEGIN
|
||||
|
||||
SELECT @insertColList = ISNULL(@insertColList+','+insertColname,insertColname) FROM #columnMappings WHERE tableName IN ('T_MUNKAUGYIADATOK')
|
||||
SELECT @selectColList = ISNULL(@selectColList+','+selectColName,selectColName) FROM #columnMappings WHERE tableName IN ('T_MUNKAUGYIADATOK')
|
||||
|
||||
SET @partialSql = N'
|
||||
INSERT INTO T_MUNKAUGYIADATOK_OSSZES (
|
||||
'+@insertColList+'
|
||||
) SELECT
|
||||
'+@selectColList+'
|
||||
FROM T_MUNKAUGYIADATOK_OSSZES s
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON f.ELOZOTANEVIREKORDID = s.C_FELADATELLATASIHELYID AND f.TOROLT=''F''
|
||||
WHERE s.TOROLT = ''F'' AND s.C_ALKALMAZOTTID = @alkalmazottId'
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT
|
||||
@updateColList = ISNULL(@updateColList+','+insertColName+' = '+updateColname,insertColName+' = '+updateColname)
|
||||
FROM #columnMappings
|
||||
WHERE tableName = 'T_MUNKAUGYIADATOK' AND updateColname IS NOT NULL
|
||||
|
||||
SET @partialSql = N'
|
||||
UPDATE t SET
|
||||
'+@updateColList+'
|
||||
FROM T_MUNKAUGYIADATOK_OSSZES t
|
||||
INNER JOIN T_MUNKAUGYIADATOK_OSSZES s ON s.ID = t.ELOZOTANEVIREKORDID
|
||||
INNER JOIN T_FELADATELLATASIHELY_OSSZES f ON f.ELOZOTANEVIREKORDID = s.C_FELADATELLATASIHELYID AND f.TOROLT=''F''
|
||||
WHERE t.C_ALKALMAZOTTID = @ujAlkalmazottId'
|
||||
END
|
||||
--PRINT @partialSql
|
||||
SET @fullSql += @partialSql
|
||||
END
|
||||
--====================================================== T_MUNKAUGYIADATOK VÉGE=========================================--
|
||||
|
||||
BEGIN --Cím, Email, Telefon
|
||||
EXEC uspFollowUpFelhasznaloCim @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
||||
EXEC uspFollowUpFelhasznaloEmail @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
||||
EXEC uspFollowUpFelhasznaloTelefon @intezmenyId,@aktTanevid,@kovetkezoTanevId,@alkalmazottId
|
||||
END
|
||||
|
||||
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
|
||||
|
||||
IF DB_NAME() LIKE '%KRETA[_]KLIK[_]%' BEGIN --sp_FollowUpAlkalmazottVegzettsegKK
|
||||
EXEC uspFollowUpAlkalmazottVegzettsegKK
|
||||
@intezmenyId
|
||||
,@aktTanevId
|
||||
,@kovetkezoTanevId
|
||||
,@alkalmazottId
|
||||
END
|
||||
END
|
Reference in New Issue
Block a user