init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,308 @@
|
|||
-- =============================================
|
||||
-- Description: <Dinamikus import>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspDynamicImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspDynamicImport]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
,@pIsSubTable BIT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@sqlCommand NVARCHAR(MAX) = ''
|
||||
|
||||
,@sqlInsertCommand NVARCHAR(MAX) = ''
|
||||
,@sqlUpdateCommand NVARCHAR(MAX) = ''
|
||||
,@sqlDeleteCommand NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
|
||||
,@openJsonWithCommand NVARCHAR(MAX)
|
||||
,@rootElementJsonWithCommand NVARCHAR(300)
|
||||
,@columnNameFromJsonCommand NVARCHAR(300)
|
||||
|
||||
,@columnListForInsert NVARCHAR(MAX)
|
||||
,@columnListForUpdate NVARCHAR(MAX)
|
||||
|
||||
,@rootElement NVARCHAR(100)
|
||||
,@tableNameFromJson NVARCHAR(50)
|
||||
,@columnCount INT
|
||||
|
||||
,@openJsonPath NVARCHAR(300)
|
||||
|
||||
CREATE TABLE #entityIds
|
||||
(
|
||||
ID INT
|
||||
)
|
||||
|
||||
DECLARE @TableName TABLE
|
||||
(
|
||||
TableName NVARCHAR(50)
|
||||
)
|
||||
|
||||
DECLARE @ColumnTable TABLE
|
||||
(
|
||||
ColumnName NVARCHAR(50)
|
||||
)
|
||||
|
||||
DECLARE @ColumnDataTable TABLE
|
||||
(
|
||||
ColumnName NVARCHAR(50)
|
||||
,ColumnType NVARCHAR(50)
|
||||
,MaxLengthValue NVARCHAR(50)
|
||||
,NumericPrecision NVARCHAR(50)
|
||||
,NumericScale NVARCHAR(50)
|
||||
,IsNullable NVARCHAR(50)
|
||||
)
|
||||
|
||||
-- A Json Root elemének kiszedése változóba @rootElement
|
||||
SELECT
|
||||
@rootElement = [key]
|
||||
FROM
|
||||
OPENJSON(@pImportJson, N'strict $')
|
||||
|
||||
--Az importálandó táblanevének kiszedése JSON-ből (rootelem utáni elem) @tableNameFromJson
|
||||
SET @rootElementJsonWithCommand = '
|
||||
SELECT
|
||||
@tableNameFromJson = [key]
|
||||
FROM
|
||||
OPENJSON (@pImportJson, N''lax $.' + @rootElement + ''')
|
||||
SELECT
|
||||
@tableNameFromJson
|
||||
'
|
||||
|
||||
INSERT INTO @TableName
|
||||
EXEC sp_executesql @rootElementJsonWithCommand, N'@pImportJson NVARCHAR(MAX), @tableNameFromJson NVARCHAR(50)', @pImportJson, @tableNameFromJson
|
||||
|
||||
SELECT @tableNameFromJson = (SELECT TOP 1 TableName FROM @TableName)
|
||||
|
||||
--NOTE: Megvizsgáljuk, hogy létezik-e a tábla neve a Json-ben
|
||||
IF (@tableNameFromJson IS NOT NULL)
|
||||
BEGIN
|
||||
|
||||
--Ha Törölnünk is kell akkor azzal kezdünk!
|
||||
IF @pIsTorles = 1
|
||||
BEGIN
|
||||
--DELETE összeállítása (Igazából update mert csak töröltre állít)
|
||||
SET @sqlDeleteCommand = '
|
||||
UPDATE
|
||||
[' + @tableNameFromJson + ']
|
||||
SET
|
||||
[' + @tableNameFromJson + '].[TOROLT] = ''T'',
|
||||
[' + @tableNameFromJson + '].[SERIAL] = [' + @tableNameFromJson + '].[SERIAL] + 1,
|
||||
[' + @tableNameFromJson + '].[LASTCHANGED] = ''' + CONVERT(NVARCHAR(32), @lastChangedDateTime, 126) + ''',
|
||||
[' + @tableNameFromJson + '].[MODIFIER] = ''' + CONVERT(NVARCHAR(32), @pUserId) + '''
|
||||
OUTPUT DELETED.ID
|
||||
INTO #entityIds
|
||||
WHERE '
|
||||
IF(@pIsSubTable = 0)
|
||||
BEGIN
|
||||
SET @sqlDeleteCommand = @sqlDeleteCommand + '
|
||||
[' + @tableNameFromJson + '].[C_INTEZMENYID] = ''' + CONVERT(NVARCHAR(32), @pIntezmenyId) + '''
|
||||
AND [' + @tableNameFromJson + '].[C_TANEVID] = ''' + CONVERT(NVARCHAR(32), @pTanevId) + ''''
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @sqlDeleteCommand = @sqlDeleteCommand + '
|
||||
[' + @tableNameFromJson + '].[C_ALINTEZMENYID] = ''' + CONVERT(NVARCHAR(32), @pIntezmenyId) + '''
|
||||
AND [' + @tableNameFromJson + '].[C_ALTANEVID] = ''' + CONVERT(NVARCHAR(32), @pTanevId) + ''''
|
||||
END
|
||||
SET @sqlDeleteCommand = @sqlDeleteCommand + '
|
||||
AND [' + @tableNameFromJson + '].[TOROLT] = ''F''
|
||||
AND [' + @tableNameFromJson + '].[C_IMPORTALT] = ''T''
|
||||
'
|
||||
END
|
||||
|
||||
--Oszlopok nevei a Json-ben
|
||||
SET @columnNameFromJsonCommand = '
|
||||
SELECT
|
||||
[key] ColumnNameList
|
||||
INTO
|
||||
#ColumnList
|
||||
FROM
|
||||
OPENJSON (@pImportJson, N''lax $.' + @rootElement + '.' + @tableNameFromJson + '[0]'')
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
#ColumnList
|
||||
'
|
||||
|
||||
INSERT INTO @ColumnTable
|
||||
EXEC sp_executesql @columnNameFromJsonCommand, N'@pImportJson NVARCHAR(MAX)', @pImportJson
|
||||
|
||||
SELECT @columnCount = (SELECT COUNT(*) FROM @ColumnTable)
|
||||
|
||||
--NOTE: Megvizsgáljuk, hogy van-e oszlop a Json-ben
|
||||
IF (@columnCount <> 0)
|
||||
BEGIN
|
||||
|
||||
INSERT INTO
|
||||
@ColumnDataTable
|
||||
SELECT
|
||||
COLUMN_NAME
|
||||
,DATA_TYPE
|
||||
,CHARACTER_MAXIMUM_LENGTH
|
||||
,NUMERIC_PRECISION
|
||||
,NUMERIC_SCALE
|
||||
,IS_NULLABLE
|
||||
FROM
|
||||
INFORMATION_SCHEMA.columns
|
||||
WHERE
|
||||
TABLE_NAME = @tableNameFromJson
|
||||
AND TABLE_SCHEMA = 'dbo'
|
||||
AND COLUMN_NAME IN (SELECT ColumnName FROM @ColumnTable)
|
||||
|
||||
SELECT @openJsonWithCommand =
|
||||
ISNULL(@openJsonWithCommand + CHAR(13) + CHAR(10) + CHAR(9) + ',', CHAR(9) + SPACE(1) + '')
|
||||
+ '[' + ColumnName + '] ' + ColumnType
|
||||
+ CASE
|
||||
WHEN ColumnType IN ('DECIMAL', 'NUMERIC')
|
||||
THEN ISNULL('(' + CONVERT(VARCHAR(2), NumericPrecision) + ', ' + CONVERT(VARCHAR(2), NumericScale) + ') ', ' ')
|
||||
WHEN ColumnType IN ('NVARCHAR', 'VARCHAR', 'NCHAR', 'CHAR')
|
||||
THEN ISNULL('(' + CONVERT(VARCHAR(4), IIF(MaxLengthValue = -1, 'MAX', MaxLengthValue)) + ') ', ' ')
|
||||
ELSE
|
||||
' '
|
||||
END
|
||||
+ '''$.' + ColumnName + ''''
|
||||
FROM @ColumnDataTable
|
||||
|
||||
SET @openJsonWithCommand = '(' + CHAR(13) + CHAR(10) + @openJsonWithCommand + CHAR(13) + CHAR(10) + ' ,[Operation] int ''$.Operation''' + CHAR(13) + CHAR(10) + ')'
|
||||
|
||||
--OSZLOPLISTA INSERTHEZ
|
||||
SELECT
|
||||
@columnListForInsert = ISNULL(@columnListForInsert + ',', '') + '[' + columnDataTable.ColumnName + ']' --TODO andrejkovicse: Függvény a []-ra
|
||||
FROM
|
||||
@ColumnDataTable columnDataTable
|
||||
WHERE
|
||||
@pIsSubTable = 0 AND columnDataTable.ColumnName NOT IN ('Operation', 'ID') OR
|
||||
@pIsSubTable = 1 AND columnDataTable.ColumnName NOT IN ('Operation')
|
||||
|
||||
--OSZLOPLISTA UPDATHEZ
|
||||
SELECT
|
||||
@columnListForUpdate = ISNULL(@columnListForUpdate + ',', '') + '[' + @tableNameFromJson + '].' + '[' + columnDataTable.ColumnName + '] = [ImportData].' + '[' + columnDataTable.ColumnName + ']'
|
||||
FROM
|
||||
@ColumnDataTable columnDataTable
|
||||
WHERE
|
||||
columnDataTable.ColumnName NOT IN ('Operation', 'ID', 'SERIAL', 'CREATOR', 'CREATED', 'C_IMPORTALT')
|
||||
|
||||
-- OPENJSON path beállítása (ez megegyezik mindhárom műveletnél)
|
||||
SET @openJsonPath = N'''strict $.' + @rootElement + '.' + @tableNameFromJson + ''''
|
||||
|
||||
--INSERT összeállítása
|
||||
SET @sqlInsertCommand = '
|
||||
INSERT INTO
|
||||
[' + @tableNameFromJson + '] (
|
||||
' + @columnListForInsert + '
|
||||
)
|
||||
OUTPUT INSERTED.ID
|
||||
INTO #entityIds
|
||||
SELECT
|
||||
' + @columnListForInsert + '
|
||||
FROM
|
||||
OPENJSON (@pImportJson, ' + @openJsonPath + ')
|
||||
WITH '
|
||||
+ @openJsonWithCommand + '
|
||||
WHERE
|
||||
[Operation] = 1 --NOTE: ImportItemOperationEnum.Insert
|
||||
'
|
||||
|
||||
--UPDATE összeállítása
|
||||
SET @sqlUpdateCommand = '
|
||||
UPDATE
|
||||
[' + @tableNameFromJson + ']
|
||||
SET
|
||||
' + @columnListForUpdate + ',[' + @tableNameFromJson + '].[SERIAL] = [' + @tableNameFromJson + '].[SERIAL] + 1 ' + '
|
||||
OUTPUT DELETED.ID
|
||||
INTO #entityIds
|
||||
FROM (
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
OPENJSON (@pImportJson, ' + @openJsonPath + ')
|
||||
WITH '
|
||||
+ @openJsonWithCommand + '
|
||||
WHERE
|
||||
[Operation] = 2 --NOTE: ImportItemOperationEnum.Update
|
||||
) AS ImportData
|
||||
WHERE '
|
||||
IF(@pIsSubTable = 0)
|
||||
BEGIN
|
||||
SET @sqlUpdateCommand = @sqlUpdateCommand + '
|
||||
[' + @tableNameFromJson + '].[C_INTEZMENYID] = ''' + CONVERT(NVARCHAR(32), @pIntezmenyId) + '''
|
||||
AND [' + @tableNameFromJson + '].[C_TANEVID] = ''' + CONVERT(NVARCHAR(32), @pTanevId) + ''''
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @sqlUpdateCommand = @sqlUpdateCommand + '
|
||||
[' + @tableNameFromJson + '].[C_ALINTEZMENYID] = ''' + CONVERT(NVARCHAR(32), @pIntezmenyId) + '''
|
||||
AND [' + @tableNameFromJson + '].[C_ALTANEVID] = ''' + CONVERT(NVARCHAR(32), @pTanevId) + ''''
|
||||
END
|
||||
SET @sqlUpdateCommand = @sqlUpdateCommand + '
|
||||
AND [' + @tableNameFromJson + '].[TOROLT] = ''F''
|
||||
AND [' + @tableNameFromJson + '].[ID] = ImportData.ID
|
||||
'
|
||||
|
||||
SET @sqlCommand = @sqlDeleteCommand + @sqlInsertCommand + @sqlUpdateCommand
|
||||
|
||||
END
|
||||
|
||||
IF(@sqlCommand IS NOT NULL OR @sqlCommand <> '')
|
||||
BEGIN
|
||||
EXEC sp_executesql @sqlCommand, N'@pImportJson NVARCHAR(MAX)', @pImportJson
|
||||
IF @tableNameFromJson IN ('T_TEREM_OSSZES','T_ESZKOZ_OSSZES')
|
||||
BEGIN
|
||||
DECLARE @entityId int
|
||||
,@entityTanevId int
|
||||
,@intezmenyId int
|
||||
,@kovTanevId int
|
||||
DECLARE @sql nvarchar(400) = 'SELECT TOP 1 @entityTanevId = C_TANEVID FROM ' + @tableNameFromJson + ' WHERE ID = ' + (SELECT TOP 1 CAST(ID AS varchar(9)) FROM #entityIds)
|
||||
EXEC sp_executesql @sql, N'@entityTanevId int output', @entityTanevId = @entityTanevId output
|
||||
SELECT @intezmenyId = C_INTEZMENYID FROM T_TANEV WHERE ID = @entityTanevId
|
||||
SELECT @kovTanevId = ID FROM T_TANEV_OSSZES WHERE C_INTEZMENYID = @intezmenyId AND C_KOVETKEZO = 'T' AND TOROLT = 'F'
|
||||
IF @entityTanevId <> @kovTanevId AND @kovTanevId IS NOT NULL
|
||||
BEGIN
|
||||
DECLARE entityCur CURSOR FOR
|
||||
SELECT ID FROM #entityIds
|
||||
OPEN entityCur
|
||||
FETCH NEXT FROM entityCur
|
||||
INTO @entityId
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
IF @tableNameFromJson = 'T_TEREM_OSSZES' BEGIN
|
||||
EXEC sp_FollowUpTerem
|
||||
@intezmenyId = @intezmenyId
|
||||
,@aktTanevId = @entityTanevId
|
||||
,@kovetkezoTanevId = @kovTanevId
|
||||
,@teremId = @entityId
|
||||
END
|
||||
ELSE IF @tableNameFromJson = 'T_ESZKOZ_OSSZES' BEGIN
|
||||
EXEC sp_FollowUpEszkoz
|
||||
@intezmenyId = @intezmenyId
|
||||
,@aktTanevId = @entityTanevId
|
||||
,@kovetkezoTanevId = @kovTanevId
|
||||
,@eszkozId = @entityId
|
||||
END
|
||||
FETCH NEXT FROM entityCur INTO @entityId
|
||||
END
|
||||
CLOSE entityCur
|
||||
DEALLOCATE entityCur
|
||||
END
|
||||
END
|
||||
END
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
-- =============================================
|
||||
-- Description: <Json daraboló a dinamikus importhoz>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspDynamicImportJsonSplit]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspDynamicImportJsonSplit]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
,@pIsSubTable BIT
|
||||
,@pTableNameList NVARCHAR(2000)
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @OrderTable TABLE (
|
||||
Number INT
|
||||
,TableName NVARCHAR(50)
|
||||
)
|
||||
|
||||
--Paraméterként kapott táblanevek beszúrása
|
||||
INSERT INTO
|
||||
@OrderTable
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
ROW_NUMBER() OVER(ORDER BY [value] DESC) Number
|
||||
,VALUE TableName
|
||||
FROM
|
||||
STRING_SPLIT (@pTableNameList, ',')
|
||||
WHERE
|
||||
RTRIM(value) <> ''
|
||||
) AS subSelect
|
||||
DECLARE
|
||||
@number INT = 1
|
||||
,@tableName NVARCHAR(50)
|
||||
,@actualJson NVARCHAR(MAX)
|
||||
|
||||
WHILE EXISTS(SELECT TableName FROM @OrderTable WHERE Number = @number)
|
||||
BEGIN
|
||||
SELECT
|
||||
@tableName = TableName
|
||||
FROM
|
||||
@OrderTable
|
||||
WHERE
|
||||
Number = @number
|
||||
|
||||
IF EXISTS(SELECT [Key] FROM OPENJSON(@pImportJson, N'strict $.ImportJson') WHERE [Key] = @tableName)
|
||||
BEGIN
|
||||
--[dbo].[uspDynamicImport] meghívása a JSON megfelelő részével
|
||||
SET @actualJson = CONVERT(NVARCHAR(max), (
|
||||
SELECT
|
||||
[value]
|
||||
FROM
|
||||
OPENJSON(@pImportJson, N'strict $.ImportJson')
|
||||
WHERE
|
||||
[Key] = @tableName)
|
||||
)
|
||||
|
||||
SET @actualJson = '{"ImportJson": {"' + @tableName + '":' + @actualJson + '} }'
|
||||
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = @pIsTorles, @pIsSubTable = @pIsSubTable
|
||||
END
|
||||
|
||||
SET @number = @number + 1;
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
|
@ -0,0 +1,364 @@
|
|||
-- =============================================
|
||||
-- Description: <Órarend import>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspOrarendImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspOrarendImport]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
,@pIsModositas BIT
|
||||
,@pOrarendiOraLezarasDateTime DATETIME = NULL
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList NVARCHAR(2000) = 'T_TEREM_OSSZES'
|
||||
,@actualJson NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
|
||||
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
|
||||
IF (@pIsTorles = 1)
|
||||
BEGIN
|
||||
--Órarendi óra kapcsolatainak törlése
|
||||
UPDATE
|
||||
TanitasiOra
|
||||
SET
|
||||
TanitasiOra.C_ORARENDIORAID = NULL
|
||||
,TanitasiOra.SERIAL = TanitasiOra.SERIAL + 1
|
||||
,TanitasiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,TanitasiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_TANITASIORA_OSSZES TanitasiOra
|
||||
WHERE
|
||||
TanitasiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND TanitasiOra.C_TANEVID = @pTanevId
|
||||
AND TanitasiOra.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.ID = TanitasiOra.C_ORARENDIORAID
|
||||
AND OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE
|
||||
Hazifeladatok
|
||||
SET
|
||||
Hazifeladatok.C_ORARENDIORAID = NULL
|
||||
,Hazifeladatok.SERIAL = Hazifeladatok.SERIAL + 1
|
||||
,Hazifeladatok.LASTCHANGED = @lastChangedDateTime
|
||||
,Hazifeladatok.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_HAZIFELADATOK_OSSZES Hazifeladatok
|
||||
WHERE
|
||||
Hazifeladatok.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Hazifeladatok.C_TANEVID = @pTanevId
|
||||
AND Hazifeladatok.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.ID = Hazifeladatok.C_ORARENDIORAID
|
||||
AND OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE
|
||||
OrarendiOraTulajdonsag
|
||||
SET
|
||||
OrarendiOraTulajdonsag.C_ORARENDIORAID = NULL
|
||||
,OrarendiOraTulajdonsag.SERIAL = OrarendiOraTulajdonsag.SERIAL + 1
|
||||
,OrarendiOraTulajdonsag.LASTCHANGED = @lastChangedDateTime
|
||||
,OrarendiOraTulajdonsag.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_ORARENDIORATULAJDONSAG OrarendiOraTulajdonsag
|
||||
WHERE
|
||||
OrarendiOraTulajdonsag.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOraTulajdonsag.C_TANEVID = @pTanevId
|
||||
AND OrarendiOraTulajdonsag.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.ID = OrarendiOraTulajdonsag.C_ORARENDIORAID
|
||||
AND OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
DELETE
|
||||
HelyettesitesiIdoszak
|
||||
FROM
|
||||
T_HELYETTESITESIIDOSZAK_OSSZES HelyettesitesiIdoszak
|
||||
WHERE
|
||||
EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.ID = HelyettesitesiIdoszak.C_HELYETTESITETTORARENDID
|
||||
AND OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
--Órarendi órák törlése
|
||||
UPDATE
|
||||
OrarendiOra
|
||||
SET
|
||||
OrarendiOra.TOROLT = 'T'
|
||||
,OrarendiOra.SERIAL = OrarendiOra.SERIAL + 1
|
||||
,OrarendiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,OrarendiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
AND OrarendiOra.C_ORAERVENYESSEGVEGE <> OrarendiOra.C_ORAERVENYESSEGKEZDETE
|
||||
END
|
||||
|
||||
--Ha módosítás van, akkor a már létező órarendi órák módosításával kell kezdenünk!
|
||||
IF (@pIsModositas = 1)
|
||||
BEGIN
|
||||
--Korábbi órarendi órák lezárása, amik nem napirendisek(azaz C_CSENGETESIRENDORAID IS NOT NULL)
|
||||
UPDATE
|
||||
OrarendiOra
|
||||
SET
|
||||
OrarendiOra.C_ORAERVENYESSEGVEGE = @pOrarendiOraLezarasDateTime
|
||||
,OrarendiOra.SERIAL = OrarendiOra.SERIAL + 1
|
||||
,OrarendiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,OrarendiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_CSENGETESIRENDORAID IS NOT NULL
|
||||
AND (OrarendiOra.C_ORAERVENYESSEGVEGE IS NULL
|
||||
OR OrarendiOra.C_ORAERVENYESSEGVEGE > @pOrarendiOraLezarasDateTime)
|
||||
AND OrarendiOra.C_ORAERVENYESSEGVEGE <> OrarendiOra.C_ORAERVENYESSEGKEZDETE
|
||||
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE < @pOrarendiOraLezarasDateTime
|
||||
|
||||
--Későbbi importált órarendi órák törlése
|
||||
UPDATE
|
||||
OrarendiOra
|
||||
SET
|
||||
OrarendiOra.TOROLT = 'T'
|
||||
,OrarendiOra.SERIAL = OrarendiOra.SERIAL + 1
|
||||
,OrarendiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,OrarendiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
AND OrarendiOra.C_ORAERVENYESSEGVEGE <> OrarendiOra.C_ORAERVENYESSEGKEZDETE
|
||||
AND OrarendiOra.C_ORAERVENYESSEGKEZDETE >= @pOrarendiOraLezarasDateTime
|
||||
END
|
||||
|
||||
EXECUTE [dbo].[uspTantargyfelosztasImport] @pIntezmenyId, @pTanevId, @pUserId, @pImportJson, @pIsTorles
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_TEREM_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--Órarendi órák beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_ORARENDIORA_OSSZES":' +
|
||||
(SELECT
|
||||
OrarendiOra. ID
|
||||
,OrarendiOra.HetirendTipusId C_HETIREND
|
||||
,OrarendiOra. C_HETNAPJA
|
||||
,OrarendiOra.TantargyId C_TANTARGYID
|
||||
,OrarendiOra.TanarId C_TANARID
|
||||
,OrarendiOra.OsztalyCsoportId C_OSZTALYCSOPORTID
|
||||
,OrarendiOra.TeremId C_TEREMID
|
||||
,OrarendiOra.FoglalkozasId C_FOGLALKOZASID
|
||||
,OrarendiOra. C_ORASZAM
|
||||
,OrarendiOra. C_ORAERVENYESSEGKEZDETE
|
||||
,OrarendiOra. C_ORAERVENYESSEGVEGE
|
||||
,OrarendiOra. C_CSENGETESIRENDID
|
||||
,OrarendiOra. C_CSENGETESIRENDORAID
|
||||
,OrarendiOra.OraKezdete C_ORAKEZDETE
|
||||
,OrarendiOra.OraVege C_ORAVEGE
|
||||
,OrarendiOra. C_BONTOTT
|
||||
,OrarendiOra. C_ORATULAJDONOSID
|
||||
|
||||
,OrarendiOra. C_IMPORTALT
|
||||
,OrarendiOra. C_INTEZMENYID
|
||||
,OrarendiOra. C_TANEVID
|
||||
,OrarendiOra. TOROLT
|
||||
,OrarendiOra. SERIAL
|
||||
,OrarendiOra. LASTCHANGED
|
||||
,OrarendiOra. CREATED
|
||||
,OrarendiOra. MODIFIER
|
||||
,OrarendiOra. CREATOR
|
||||
,OrarendiOra. ELOZOTANEVIREKORDID
|
||||
,OrarendiOra. NNID
|
||||
,OrarendiOra. Operation
|
||||
FROM
|
||||
(SELECT
|
||||
OrarendiOraJsonData.*
|
||||
,OsztalyCsoport.ID OsztalyCsoportId
|
||||
,Felhasznalo.ID TanarId
|
||||
,Tantargy.ID TantargyId
|
||||
,Foglalkozas.ID FoglalkozasId
|
||||
,Terem.ID TeremId
|
||||
,HetirendTipus.ID HetirendTipusId
|
||||
,CsengetesiRendOra.C_KEZDETE OraKezdete
|
||||
,CsengetesiRendOra.C_VEGE OraVege
|
||||
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_ORARENDIORA_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_HETNAPJA INT '$.C_HETNAPJA'
|
||||
,C_ORASZAM INT '$.C_ORASZAM'
|
||||
,C_ORAERVENYESSEGKEZDETE DATETIME '$.C_ORAERVENYESSEGKEZDETE'
|
||||
,C_ORAERVENYESSEGVEGE DATETIME '$.C_ORAERVENYESSEGVEGE'
|
||||
,C_CSENGETESIRENDID INT '$.C_CSENGETESIRENDID'
|
||||
,C_CSENGETESIRENDORAID INT '$.C_CSENGETESIRENDORAID'
|
||||
,C_BONTOTT CHAR(1) '$.C_BONTOTT'
|
||||
,C_ORATULAJDONOSID INT '$.C_ORATULAJDONOSID'
|
||||
|
||||
,C_IMPORTALT CHAR(1) '$.C_IMPORTALT'
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,TantargyNev NVARCHAR(255) '$.TantargyNev'
|
||||
,OsztalyCsoportNev NVARCHAR(255) '$.OsztalyCsoportNev'
|
||||
,TanarNev NVARCHAR(255) '$.TanarNev'
|
||||
,TanarSzuletesiIdo NVARCHAR(255) '$.TanarSzuletesiIdo'
|
||||
,HetirendTipusNev NVARCHAR(255) '$.HetirendTipusNev'
|
||||
,TeremNev NVARCHAR(255) '$.TeremNev'
|
||||
,TantargyfelosztasNev NVARCHAR(255) '$.TantargyfelosztasNev'
|
||||
) OrarendiOraJsonData
|
||||
LEFT JOIN
|
||||
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(OsztalyCsoport.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OrarendiOraJsonData.OsztalyCsoportNev)
|
||||
AND OsztalyCsoport.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OsztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND OsztalyCsoport.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_TANTARGY_OSSZES Tantargy ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Tantargy.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OrarendiOraJsonData.TantargyNev)
|
||||
AND Tantargy.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Tantargy.C_TANEVID = @pTanevId
|
||||
AND Tantargy.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_NYOMTATASINEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OrarendiOraJsonData.TanarNev)
|
||||
AND (OrarendiOraJsonData.TanarSzuletesiIdo IS NULL
|
||||
OR Felhasznalo.C_SZULETESIDATUM = OrarendiOraJsonData.TanarSzuletesiIdo)
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
INNER JOIN
|
||||
T_ALKALMAZOTT_OSSZES Alkalmazott ON
|
||||
Alkalmazott.ID = Felhasznalo.ID
|
||||
AND Alkalmazott.C_ALINTEZMENYID = @pIntezmenyId
|
||||
AND Alkalmazott.C_ALTANEVID = @pTanevId
|
||||
AND Alkalmazott.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas ON
|
||||
Foglalkozas.C_OSZTALYCSOPORTID = OsztalyCsoport.ID
|
||||
AND Foglalkozas.C_TANARID = Felhasznalo.ID
|
||||
AND Foglalkozas.C_TANTARGYID = Tantargy.ID
|
||||
AND Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_TEREM_OSSZES Terem ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Terem.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OrarendiOraJsonData.TeremNev)
|
||||
AND Terem.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Terem.C_TANEVID = @pTanevId
|
||||
AND Terem.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_DICTIONARYITEMBASE_OSSZES HetirendTipusDictionary ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(HetirendTipusDictionary.C_NAME),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OrarendiOraJsonData.HetirendTipusNev)
|
||||
AND HetirendTipusDictionary.C_INTEZMENYID = @pIntezmenyId
|
||||
AND HetirendTipusDictionary.C_TANEVID = @pTanevId
|
||||
AND HetirendTipusDictionary.TOROLT = 'F'
|
||||
INNER JOIN
|
||||
T_HETIRENDTIPUS_OSSZES HetirendTipus ON
|
||||
HetirendTipus.ID = HetirendTipusDictionary.ID
|
||||
AND HetirendTipus.C_ALINTEZMENYID = @pIntezmenyId
|
||||
AND HetirendTipus.C_ALTANEVID = @pTanevId
|
||||
AND HetirendTipus.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_CSENGETESIRENDORA_OSSZES CsengetesiRendOra ON
|
||||
CsengetesiRendOra.ID = OrarendiOraJsonData.C_CSENGETESIRENDORAID
|
||||
AND CsengetesiRendOra.C_ORASZAM = OrarendiOraJsonData.C_ORASZAM
|
||||
AND CsengetesiRendOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND CsengetesiRendOra.C_TANEVID = @pTanevId
|
||||
AND CsengetesiRendOra.TOROLT = 'F'
|
||||
) AS OrarendiOra
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_ORARENDIORA_OSSZES view-ból korábban elvégeztük a törlést, mivel egyéb feltélek is kellettek hozzá, ami nem szerepel a uspDynamicImport-ban.
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
||||
|
||||
--NOTE: Update-elnünk kell a órarendi óráknak a groud id-ját!
|
||||
UPDATE
|
||||
OrarendiOra
|
||||
SET
|
||||
OrarendiOra.C_ORARENDIORAGROUPID = ID
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND OrarendiOra.C_IMPORTALT = 'T'
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
|
@ -0,0 +1,373 @@
|
|||
-- =============================================
|
||||
-- Description: <Tantárgyfelosztás import>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspTantargyfelosztasImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspTantargyfelosztasImport]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pImportJson NVARCHAR(MAX)
|
||||
,@pIsTorles BIT
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList NVARCHAR(2000) = 'T_TANTARGY_OSSZES,T_OSZTALYCSOPORT_OSSZES'
|
||||
,@actualJson NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
|
||||
--Ha törlés van, akkor a kapcsolódások törlésével kell kezdenünk!
|
||||
IF (@pIsTorles = 1)
|
||||
BEGIN
|
||||
--Foglalkozás kapcsolatainak törlése
|
||||
UPDATE
|
||||
OrarendiOra
|
||||
SET
|
||||
OrarendiOra.C_FOGLALKOZASID = NULL
|
||||
,OrarendiOra.SERIAL = OrarendiOra.SERIAL + 1
|
||||
,OrarendiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,OrarendiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_ORARENDIORA_OSSZES OrarendiOra
|
||||
WHERE
|
||||
OrarendiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OrarendiOra.C_TANEVID = @pTanevId
|
||||
AND OrarendiOra.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
WHERE
|
||||
Foglalkozas.ID = OrarendiOra.C_FOGLALKOZASID
|
||||
AND Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
AND Foglalkozas.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE
|
||||
TanitasiOra
|
||||
SET
|
||||
TanitasiOra.C_FOGLALKOZASID = NULL
|
||||
,TanitasiOra.SERIAL = TanitasiOra.SERIAL + 1
|
||||
,TanitasiOra.LASTCHANGED = @lastChangedDateTime
|
||||
,TanitasiOra.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_TANITASIORA_OSSZES TanitasiOra
|
||||
WHERE
|
||||
TanitasiOra.C_INTEZMENYID = @pIntezmenyId
|
||||
AND TanitasiOra.C_TANEVID = @pTanevId
|
||||
AND TanitasiOra.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
WHERE
|
||||
Foglalkozas.ID = TanitasiOra.C_FOGLALKOZASID
|
||||
AND Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
AND Foglalkozas.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
UPDATE
|
||||
TanuloMulasztasStatisztika
|
||||
SET
|
||||
TanuloMulasztasStatisztika.C_TARGYMULASZTASSTATISZTIKAIID = NULL
|
||||
,TanuloMulasztasStatisztika.SERIAL = TanuloMulasztasStatisztika.SERIAL + 1
|
||||
,TanuloMulasztaSstatisztika.LASTCHANGED = @lastChangedDateTime
|
||||
,TanuloMulasztasStatisztika.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_TANULOTARGYMULASZTASSTATISZT_OSSZES TanuloMulasztasStatisztika
|
||||
WHERE
|
||||
TanuloMulasztasStatisztika.C_INTEZMENYID = @pIntezmenyId
|
||||
AND TanuloMulasztasStatisztika.C_TANEVID = @pTanevId
|
||||
AND TanuloMulasztasStatisztika.TOROLT = 'F'
|
||||
AND EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
WHERE
|
||||
Foglalkozas.ID = TanuloMulasztasStatisztika.C_TARGYMULASZTASSTATISZTIKAIID
|
||||
AND Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
AND Foglalkozas.C_IMPORTALT = 'T'
|
||||
)
|
||||
|
||||
DELETE
|
||||
TeremFoglalkozas
|
||||
FROM
|
||||
T_TEREM_FOGLALKOZAS TeremFoglalkozas
|
||||
WHERE
|
||||
EXISTS
|
||||
(SELECT TOP 1
|
||||
ID
|
||||
FROM
|
||||
T_FOGLALKOZAS_OSSZES Foglalkozas
|
||||
WHERE
|
||||
Foglalkozas.ID = TeremFoglalkozas.C_FOGLALKOZASID
|
||||
AND Foglalkozas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Foglalkozas.C_TANEVID = @pTanevId
|
||||
AND Foglalkozas.TOROLT = 'F'
|
||||
AND Foglalkozas.C_IMPORTALT = 'T'
|
||||
)
|
||||
END
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_TANTARGY_OSSZES és a T_OSZTALYCSOPORT_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--Osztályok beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_OSZTALY_OSSZES":' +
|
||||
(SELECT
|
||||
Osztaly.OsztalyCsoportId ID
|
||||
,Osztaly. C_KEPZESIFORMA
|
||||
,Osztaly. C_TECHNIKAIOSZTALY
|
||||
,Osztaly. C_GYOGYPEDAGOGIAI
|
||||
,Osztaly. C_KETTANNYELVU
|
||||
,Osztaly. C_LOGOPEDIAI
|
||||
,Osztaly. C_NEMZETISEGI
|
||||
,Osztaly. C_NYELVIELOKESZITO
|
||||
,Osztaly. C_SPORT
|
||||
|
||||
,Osztaly. C_ALINTEZMENYID
|
||||
,Osztaly. C_ALTANEVID
|
||||
,Osztaly. TOROLT
|
||||
,Osztaly. SERIAL
|
||||
,Osztaly. LASTCHANGED
|
||||
,Osztaly. CREATED
|
||||
,Osztaly. MODIFIER
|
||||
,Osztaly. CREATOR
|
||||
,Osztaly. ELOZOTANEVIREKORDID
|
||||
,Osztaly. NNID
|
||||
,Osztaly. Operation
|
||||
FROM
|
||||
(SELECT
|
||||
OsztalyJsonData.*
|
||||
,OsztalyCsoport.ID OsztalyCsoportId
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_OSZTALY_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_KEPZESIFORMA INT '$.C_KEPZESIFORMA'
|
||||
,C_TECHNIKAIOSZTALY CHAR(1) '$.C_TECHNIKAIOSZTALY'
|
||||
,C_GYOGYPEDAGOGIAI CHAR(1) '$.C_GYOGYPEDAGOGIAI'
|
||||
,C_KETTANNYELVU CHAR(1) '$.C_KETTANNYELVU'
|
||||
,C_LOGOPEDIAI CHAR(1) '$.C_LOGOPEDIAI'
|
||||
,C_NEMZETISEGI CHAR(1) '$.C_NEMZETISEGI'
|
||||
,C_NYELVIELOKESZITO CHAR(1) '$.C_NYELVIELOKESZITO'
|
||||
,C_SPORT CHAR(1) '$.C_SPORT'
|
||||
|
||||
,C_ALINTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,OsztalyCsoportNev NVARCHAR(255) '$.OsztalyCsoportNev'
|
||||
) OsztalyJsonData
|
||||
LEFT JOIN
|
||||
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(OsztalyCsoport.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(OsztalyJsonData.OsztalyCsoportNev)
|
||||
AND OsztalyCsoport.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OsztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND OsztalyCsoport.TOROLT = 'F'
|
||||
AND OsztalyJsonData.ID IS NULL
|
||||
) AS Osztaly
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_OSZTALY_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
||||
|
||||
--Csoportok beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_CSOPORT_OSSZES":' +
|
||||
(SELECT
|
||||
Csoport.OsztalyCsoportId ID
|
||||
,Csoport. C_TIPUSA
|
||||
,Csoport.OsztalybontasId C_OSZTALYBONTASID
|
||||
|
||||
,Csoport. C_ALINTEZMENYID
|
||||
,Csoport. C_ALTANEVID
|
||||
,Csoport. TOROLT
|
||||
,Csoport. SERIAL
|
||||
,Csoport. LASTCHANGED
|
||||
,Csoport. CREATED
|
||||
,Csoport. MODIFIER
|
||||
,Csoport. CREATOR
|
||||
,Csoport. ELOZOTANEVIREKORDID
|
||||
,Csoport. NNID
|
||||
,Csoport. Operation
|
||||
FROM
|
||||
(SELECT
|
||||
CsoportJsonData.*
|
||||
,OsztalyCsoport.ID OsztalyCsoportId
|
||||
,Osztalybontas.ID OsztalybontasId
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CSOPORT_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_TIPUSA INT '$.C_TIPUSA'
|
||||
,C_OSZTALYBONTASID INT '$.C_OSZTALYBONTASID'
|
||||
|
||||
,C_ALINTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,OsztalyCsoportNev NVARCHAR(255) '$.OsztalyCsoportNev'
|
||||
,OsztalybontasNev NVARCHAR(255) '$.OsztalybontasNev'
|
||||
) CsoportJsonData
|
||||
LEFT JOIN
|
||||
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(OsztalyCsoport.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CsoportJsonData.OsztalyCsoportNev)
|
||||
AND OsztalyCsoport.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OsztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND OsztalyCsoport.TOROLT = 'F'
|
||||
AND CsoportJsonData.ID IS NULL
|
||||
LEFT JOIN
|
||||
T_OSZTALYCSOPORT_OSSZES Osztalybontas ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Osztalybontas.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CsoportJsonData.OsztalybontasNev)
|
||||
AND Osztalybontas.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Osztalybontas.C_TANEVID = @pTanevId
|
||||
AND Osztalybontas.TOROLT = 'F'
|
||||
AND CsoportJsonData.ID IS NULL
|
||||
) AS Csoport
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a T_CSOPORT_OSSZES view-ból nem törlünk importnál!
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
||||
|
||||
--Foglalkozások beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_FOGLALKOZAS_OSSZES":' +
|
||||
(SELECT
|
||||
Foglalkozas. ID
|
||||
,Foglalkozas. C_FOGLALKOZASTIPUSA
|
||||
,Foglalkozas. C_ORASZAM
|
||||
,Foglalkozas. C_NEV
|
||||
,Foglalkozas. C_ERTEKELESKELL
|
||||
,Foglalkozas. C_MULASZTASKELL
|
||||
,Foglalkozas. C_TANARFELVEHETI
|
||||
,Foglalkozas.OsztalyCsoportId C_OSZTALYCSOPORTID
|
||||
,Foglalkozas.TantargyId C_TANTARGYID
|
||||
,Foglalkozas.TanarId C_TANARID
|
||||
|
||||
,Foglalkozas. C_IMPORTALT
|
||||
,Foglalkozas. C_INTEZMENYID
|
||||
,Foglalkozas. C_TANEVID
|
||||
,Foglalkozas. TOROLT
|
||||
,Foglalkozas. SERIAL
|
||||
,Foglalkozas. LASTCHANGED
|
||||
,Foglalkozas. CREATED
|
||||
,Foglalkozas. MODIFIER
|
||||
,Foglalkozas. CREATOR
|
||||
,Foglalkozas. ELOZOTANEVIREKORDID
|
||||
,Foglalkozas. NNID
|
||||
,Foglalkozas. Operation
|
||||
FROM
|
||||
(SELECT
|
||||
FoglalkozasJsonData.*
|
||||
,OsztalyCsoport.ID OsztalyCsoportId
|
||||
,Felhasznalo.ID TanarId
|
||||
,Tantargy.ID TantargyId
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_FOGLALKOZAS_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_FOGLALKOZASTIPUSA INT '$.C_FOGLALKOZASTIPUSA'
|
||||
,C_ORASZAM NUMERIC(10,2) '$.C_ORASZAM'
|
||||
,C_NEV NVARCHAR(255) '$.C_NEV'
|
||||
,C_ERTEKELESKELL CHAR(1) '$.C_ERTEKELESKELL'
|
||||
,C_MULASZTASKELL CHAR(1) '$.C_MULASZTASKELL'
|
||||
,C_TANARFELVEHETI CHAR(1) '$.C_TANARFELVEHETI'
|
||||
|
||||
,C_IMPORTALT CHAR(1) '$.C_IMPORTALT'
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,OsztalyCsoportNev NVARCHAR(255) '$.OsztalyCsoportNev'
|
||||
,TanarNev NVARCHAR(255) '$.TanarNev'
|
||||
,TanarSzuletesiIdo NVARCHAR(255) '$.TanarSzuletesiIdo'
|
||||
,TantargyNev NVARCHAR(255) '$.TantargyNev'
|
||||
) FoglalkozasJsonData
|
||||
LEFT JOIN
|
||||
T_OSZTALYCSOPORT_OSSZES OsztalyCsoport ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(OsztalyCsoport.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(FoglalkozasJsonData.OsztalyCsoportNev)
|
||||
AND OsztalyCsoport.C_INTEZMENYID = @pIntezmenyId
|
||||
AND OsztalyCsoport.C_TANEVID = @pTanevId
|
||||
AND OsztalyCsoport.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_TANTARGY_OSSZES Tantargy ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Tantargy.C_NEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(FoglalkozasJsonData.TantargyNev)
|
||||
AND Tantargy.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Tantargy.C_TANEVID = @pTanevId
|
||||
AND Tantargy.TOROLT = 'F'
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_NYOMTATASINEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(FoglalkozasJsonData.TanarNev)
|
||||
AND (FoglalkozasJsonData.TanarSzuletesiIdo IS NULL
|
||||
OR Felhasznalo.C_SZULETESIDATUM = FoglalkozasJsonData.TanarSzuletesiIdo)
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
INNER JOIN
|
||||
T_ALKALMAZOTT_OSSZES Alkalmazott ON
|
||||
Alkalmazott.ID = Felhasznalo.ID
|
||||
AND Alkalmazott.C_ALINTEZMENYID = @pIntezmenyId
|
||||
AND Alkalmazott.C_ALTANEVID = @pTanevId
|
||||
AND Alkalmazott.TOROLT = 'F'
|
||||
) AS Foglalkozas
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = @pIsTorles, @pIsSubTable = 0
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
|
@ -0,0 +1,597 @@
|
|||
-- =============================================
|
||||
-- Description: <Tanulo KIFIR import>
|
||||
-- =============================================
|
||||
DROP PROCEDURE IF EXISTS [dbo].[uspTanuloKifirImport]
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[uspTanuloKifirImport]
|
||||
@pIntezmenyId INT
|
||||
,@pTanevId INT
|
||||
,@pUserId INT
|
||||
,@pImportJson NVARCHAR(MAX)
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE
|
||||
@tableNameList NVARCHAR(2000) = 'T_FELHASZNALO_OSSZES'
|
||||
,@actualJson NVARCHAR(MAX) = ''
|
||||
|
||||
,@lastChangedDateTime DATETIME = GETDATE()
|
||||
|
||||
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
||||
EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
|
||||
|
||||
--NOTE: Tanulo temp tábla incializálása
|
||||
CREATE TABLE #TanuloTempTable (
|
||||
ID INT
|
||||
,C_TANTERVID INT
|
||||
,C_ALLAMIGONDOZOTT CHAR(1)
|
||||
,C_BEILLESZKEDESINEHEZSEG CHAR(1)
|
||||
,C_BEJARO CHAR(1)
|
||||
,C_EVISMETLO CHAR(1)
|
||||
,C_JOGVISZONYATSZUNETELTETO CHAR(1)
|
||||
,C_MAGANTANULO CHAR(1)
|
||||
,C_POLGARISZERZODESES CHAR(1)
|
||||
,C_SZAKMAIGYAKORLATON CHAR(1)
|
||||
,C_SZOCIALISTAMOGATAS CHAR(1)
|
||||
,C_TANDIJATFIZETO CHAR(1)
|
||||
,C_TANKOTELEZETT CHAR(1)
|
||||
,C_TANULOSZERZODESES CHAR(1)
|
||||
,C_TERITESIDIJATFIZETO CHAR(1)
|
||||
,C_TESTNEVELESTIPUSA INT
|
||||
,C_VENDEG CHAR(1)
|
||||
,C_BTMPROBLEMAS CHAR(1)
|
||||
,C_DIAKSPORTKOROS CHAR(1)
|
||||
,C_HALMOZOTTANFOGYATEKOS CHAR(1)
|
||||
,C_KOLLEGIUMIELLATASOS CHAR(1)
|
||||
,C_SAJATOSNEVELESU CHAR(1)
|
||||
,C_VESZELYEZTETETT CHAR(1)
|
||||
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1)
|
||||
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1)
|
||||
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1)
|
||||
,C_TANULASIPROBLEMAVALKUZD CHAR(1)
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1)
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1)
|
||||
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1)
|
||||
,C_MENEDEKJOGGALRENDELKEZO CHAR(1)
|
||||
,C_EGYEBDONTO CHAR(1)
|
||||
,C_MEGALLAPODASOS CHAR(1)
|
||||
,C_OSZTV CHAR(1)
|
||||
,C_SZETVAGAZAT CHAR(1)
|
||||
,C_SZKTV CHAR(1)
|
||||
,C_TECHNIKUSIEVFOLYAM CHAR(1)
|
||||
,C_EGYUTTMUKODESES CHAR(1)
|
||||
,C_ISKOLAIKERETEKKOZOTT CHAR(1)
|
||||
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1)
|
||||
,C_ISKIFIRIMPORTALT CHAR(1)
|
||||
,C_FELVETELTANEVEID INT
|
||||
|
||||
,C_ALINTEZMENYID INT
|
||||
,C_ALTANEVID INT
|
||||
,TOROLT CHAR(1)
|
||||
,SERIAL INT
|
||||
,LASTCHANGED DATETIME
|
||||
,CREATED DATETIME
|
||||
,MODIFIER INT
|
||||
,CREATOR INT
|
||||
,ELOZOTANEVIREKORDID INT
|
||||
,NNID INT
|
||||
,Operation INT
|
||||
)
|
||||
|
||||
INSERT INTO
|
||||
#TanuloTempTable
|
||||
SELECT
|
||||
Felhasznalo.ID
|
||||
,TanuloJsonData.C_TANTERVID
|
||||
,TanuloJsonData.C_ALLAMIGONDOZOTT
|
||||
,TanuloJsonData.C_BEILLESZKEDESINEHEZSEG
|
||||
,TanuloJsonData.C_BEJARO
|
||||
,TanuloJsonData.C_EVISMETLO
|
||||
,TanuloJsonData.C_JOGVISZONYATSZUNETELTETO
|
||||
,TanuloJsonData.C_MAGANTANULO
|
||||
,TanuloJsonData.C_POLGARISZERZODESES
|
||||
,TanuloJsonData.C_SZAKMAIGYAKORLATON
|
||||
,TanuloJsonData.C_SZOCIALISTAMOGATAS
|
||||
,TanuloJsonData.C_TANDIJATFIZETO
|
||||
,TanuloJsonData.C_TANKOTELEZETT
|
||||
,TanuloJsonData.C_TANULOSZERZODESES
|
||||
,TanuloJsonData.C_TERITESIDIJATFIZETO
|
||||
,TanuloJsonData.C_TESTNEVELESTIPUSA
|
||||
,TanuloJsonData.C_VENDEG
|
||||
,TanuloJsonData.C_BTMPROBLEMAS
|
||||
,TanuloJsonData.C_DIAKSPORTKOROS
|
||||
,TanuloJsonData.C_HALMOZOTTANFOGYATEKOS
|
||||
,TanuloJsonData.C_KOLLEGIUMIELLATASOS
|
||||
,TanuloJsonData.C_SAJATOSNEVELESU
|
||||
,TanuloJsonData.C_VESZELYEZTETETT
|
||||
,TanuloJsonData.C_BEILLESZKEDESIPROBLEMAVALKUZ
|
||||
,TanuloJsonData.C_MAGATARTASIPROBLEMAVALKUZD
|
||||
,TanuloJsonData.C_TANULASIPROBLEMADISZGRAFIA
|
||||
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZD
|
||||
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZK
|
||||
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZL
|
||||
,TanuloJsonData.C_KOZEPFOKUOKTATASBATIZENHATOD
|
||||
,TanuloJsonData.C_MENEDEKJOGGALRENDELKEZO
|
||||
,TanuloJsonData.C_EGYEBDONTO
|
||||
,TanuloJsonData.C_MEGALLAPODASOS
|
||||
,TanuloJsonData.C_OSZTV
|
||||
,TanuloJsonData.C_SZETVAGAZAT
|
||||
,TanuloJsonData.C_SZKTV
|
||||
,TanuloJsonData.C_TECHNIKUSIEVFOLYAM
|
||||
,TanuloJsonData.C_EGYUTTMUKODESES
|
||||
,TanuloJsonData.C_ISKOLAIKERETEKKOZOTT
|
||||
,TanuloJsonData.C_ISSZAKMAIGYAKORLATHIANY
|
||||
,TanuloJsonData.C_ISKIFIRIMPORTALT
|
||||
,TanuloJsonData.C_FELVETELTANEVEID
|
||||
|
||||
,TanuloJsonData.C_ALINTEZMENYID
|
||||
,TanuloJsonData.C_ALTANEVID
|
||||
,TanuloJsonData.TOROLT
|
||||
,TanuloJsonData.SERIAL
|
||||
,TanuloJsonData.LASTCHANGED
|
||||
,TanuloJsonData.CREATED
|
||||
,TanuloJsonData.MODIFIER
|
||||
,TanuloJsonData.CREATOR
|
||||
,TanuloJsonData.ELOZOTANEVIREKORDID
|
||||
,TanuloJsonData.NNID
|
||||
,TanuloJsonData.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_TANULO_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_TANTERVID INT '$.C_TANTERVID'
|
||||
,C_ALLAMIGONDOZOTT CHAR(1) '$.C_ALLAMIGONDOZOTT'
|
||||
,C_BEILLESZKEDESINEHEZSEG CHAR(1) '$.C_BEILLESZKEDESINEHEZSEG'
|
||||
,C_BEJARO CHAR(1) '$.C_BEJARO'
|
||||
,C_EVISMETLO CHAR(1) '$.C_EVISMETLO'
|
||||
,C_JOGVISZONYATSZUNETELTETO CHAR(1) '$.C_JOGVISZONYATSZUNETELTETO'
|
||||
,C_MAGANTANULO CHAR(1) '$.C_MAGANTANULO'
|
||||
,C_POLGARISZERZODESES CHAR(1) '$.C_POLGARISZERZODESES'
|
||||
,C_SZAKMAIGYAKORLATON CHAR(1) '$.C_SZAKMAIGYAKORLATON'
|
||||
,C_SZOCIALISTAMOGATAS CHAR(1) '$.C_SZOCIALISTAMOGATAS'
|
||||
,C_TANDIJATFIZETO CHAR(1) '$.C_TANDIJATFIZETO'
|
||||
,C_TANKOTELEZETT CHAR(1) '$.C_TANKOTELEZETT'
|
||||
,C_TANULOSZERZODESES CHAR(1) '$.C_TANULOSZERZODESES'
|
||||
,C_TERITESIDIJATFIZETO CHAR(1) '$.C_TERITESIDIJATFIZETO'
|
||||
,C_TESTNEVELESTIPUSA INT '$.C_TESTNEVELESTIPUSA'
|
||||
,C_VENDEG CHAR(1) '$.C_VENDEG'
|
||||
,C_BTMPROBLEMAS CHAR(1) '$.C_BTMPROBLEMAS'
|
||||
,C_DIAKSPORTKOROS CHAR(1) '$.C_DIAKSPORTKOROS'
|
||||
,C_HALMOZOTTANFOGYATEKOS CHAR(1) '$.C_HALMOZOTTANFOGYATEKOS'
|
||||
,C_KOLLEGIUMIELLATASOS CHAR(1) '$.C_KOLLEGIUMIELLATASOS'
|
||||
,C_SAJATOSNEVELESU CHAR(1) '$.C_SAJATOSNEVELESU'
|
||||
,C_VESZELYEZTETETT CHAR(1) '$.C_VESZELYEZTETETT'
|
||||
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1) '$.C_BEILLESZKEDESIPROBLEMAVALKUZ'
|
||||
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1) '$.C_MAGATARTASIPROBLEMAVALKUZD'
|
||||
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1) '$.C_TANULASIPROBLEMADISZGRAFIA'
|
||||
,C_TANULASIPROBLEMAVALKUZD CHAR(1) '$.C_TANULASIPROBLEMAVALKUZD'
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZK'
|
||||
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZL'
|
||||
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1) '$.C_KOZEPFOKUOKTATASBATIZENHATOD'
|
||||
,C_MENEDEKJOGGALRENDELKEZO CHAR(1) '$.C_MENEDEKJOGGALRENDELKEZO'
|
||||
,C_EGYEBDONTO CHAR(1) '$.C_EGYEBDONTO'
|
||||
,C_MEGALLAPODASOS CHAR(1) '$.C_MEGALLAPODASOS'
|
||||
,C_OSZTV CHAR(1) '$.C_OSZTV'
|
||||
,C_SZETVAGAZAT CHAR(1) '$.C_SZETVAGAZAT'
|
||||
,C_SZKTV CHAR(1) '$.C_SZKTV'
|
||||
,C_TECHNIKUSIEVFOLYAM CHAR(1) '$.C_TECHNIKUSIEVFOLYAM'
|
||||
,C_EGYUTTMUKODESES CHAR(1) '$.C_EGYUTTMUKODESES'
|
||||
,C_ISKOLAIKERETEKKOZOTT CHAR(1) '$.C_ISKOLAIKERETEKKOZOTT'
|
||||
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1) '$.C_ISSZAKMAIGYAKORLATHIANY'
|
||||
,C_ISKIFIRIMPORTALT CHAR(1) '$.C_ISKIFIRIMPORTALT'
|
||||
,C_FELVETELTANEVEID INT '$.C_FELVETELTANEVEID'
|
||||
|
||||
,C_ALINTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_ALTANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) TanuloJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(TanuloJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = TanuloJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = TanuloJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
|
||||
--NOTE: Cim temp tábla incializálása
|
||||
CREATE TABLE #CimTempTable (
|
||||
ID INT
|
||||
,C_CIMTIPUSA INT
|
||||
,C_IRANYITOSZAM NVARCHAR(20)
|
||||
,C_VAROS NVARCHAR(50)
|
||||
,C_KOZTERULET NVARCHAR(40)
|
||||
,C_KOZTERULETJELLEGE INT
|
||||
,C_HAZSZAM NVARCHAR(30)
|
||||
,C_ORSZAG INT
|
||||
,C_ALAPERTELMEZETT CHAR(1)
|
||||
,C_EMELET NVARCHAR(40)
|
||||
,C_AJTO NVARCHAR(30)
|
||||
,C_FELHASZNALOID INT
|
||||
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
,TOROLT CHAR(1)
|
||||
,SERIAL INT
|
||||
,LASTCHANGED DATETIME
|
||||
,CREATED DATETIME
|
||||
,MODIFIER INT
|
||||
,CREATOR INT
|
||||
,ELOZOTANEVIREKORDID INT
|
||||
,NNID INT
|
||||
,Operation INT
|
||||
)
|
||||
|
||||
INSERT INTO
|
||||
#CimTempTable
|
||||
SELECT
|
||||
CimJsonData.ID
|
||||
,CimJsonData.C_CIMTIPUSA
|
||||
,CimJsonData.C_IRANYITOSZAM
|
||||
,CimJsonData.C_VAROS
|
||||
,CimJsonData.C_KOZTERULET
|
||||
,CimJsonData.C_KOZTERULETJELLEGE
|
||||
,CimJsonData.C_HAZSZAM
|
||||
,CimJsonData.C_ORSZAG
|
||||
,CimJsonData.C_ALAPERTELMEZETT
|
||||
,CimJsonData.C_EMELET
|
||||
,CimJsonData.C_AJTO
|
||||
,Felhasznalo.ID
|
||||
|
||||
,CimJsonData.C_INTEZMENYID
|
||||
,CimJsonData.C_TANEVID
|
||||
,CimJsonData.TOROLT
|
||||
,CimJsonData.SERIAL
|
||||
,CimJsonData.LASTCHANGED
|
||||
,CimJsonData.CREATED
|
||||
,CimJsonData.MODIFIER
|
||||
,CimJsonData.CREATOR
|
||||
,CimJsonData.ELOZOTANEVIREKORDID
|
||||
,CimJsonData.NNID
|
||||
,CimJsonData.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CIM_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_CIMTIPUSA INT '$.C_CIMTIPUSA'
|
||||
,C_IRANYITOSZAM NVARCHAR(20) '$.C_IRANYITOSZAM'
|
||||
,C_VAROS NVARCHAR(50) '$.C_VAROS'
|
||||
,C_KOZTERULET NVARCHAR(40) '$.C_KOZTERULET'
|
||||
,C_KOZTERULETJELLEGE INT '$.C_KOZTERULETJELLEGE'
|
||||
,C_HAZSZAM NVARCHAR(30) '$.C_HAZSZAM'
|
||||
,C_ORSZAG INT '$.C_ORSZAG'
|
||||
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
||||
,C_EMELET NVARCHAR(40) '$.C_EMELET'
|
||||
,C_AJTO NVARCHAR(30) '$.C_AJTO'
|
||||
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) CimJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(CimJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = CimJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = CimJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
|
||||
--NOTE: Email temp tábla incializálása
|
||||
CREATE TABLE #EmailTempTable (
|
||||
ID INT
|
||||
,C_EMAILTIPUSA INT
|
||||
,C_EMAILCIM NVARCHAR(200)
|
||||
,C_ALAPERTELMEZETT CHAR(1)
|
||||
,C_ISPUBLIC CHAR(1)
|
||||
,C_FELHASZNALOID INT
|
||||
|
||||
,C_INTEZMENYID INT
|
||||
,C_TANEVID INT
|
||||
,TOROLT CHAR(1)
|
||||
,SERIAL INT
|
||||
,LASTCHANGED DATETIME
|
||||
,CREATED DATETIME
|
||||
,MODIFIER INT
|
||||
,CREATOR INT
|
||||
,ELOZOTANEVIREKORDID INT
|
||||
,NNID INT
|
||||
,Operation INT
|
||||
)
|
||||
|
||||
INSERT INTO
|
||||
#EmailTempTable
|
||||
SELECT
|
||||
EmailJsonData.ID
|
||||
,EmailJsonData.C_EMAILTIPUSA
|
||||
,EmailJsonData.C_EMAILCIM
|
||||
,EmailJsonData.C_ALAPERTELMEZETT
|
||||
,EmailJsonData.C_ISPUBLIC
|
||||
,Felhasznalo.ID
|
||||
|
||||
,EmailJsonData.C_INTEZMENYID
|
||||
,EmailJsonData.C_TANEVID
|
||||
,EmailJsonData.TOROLT
|
||||
,EmailJsonData.SERIAL
|
||||
,EmailJsonData.LASTCHANGED
|
||||
,EmailJsonData.CREATED
|
||||
,EmailJsonData.MODIFIER
|
||||
,EmailJsonData.CREATOR
|
||||
,EmailJsonData.ELOZOTANEVIREKORDID
|
||||
,EmailJsonData.NNID
|
||||
,EmailJsonData.Operation
|
||||
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_EMAIL_OSSZES')
|
||||
WITH (
|
||||
ID INT '$.ID'
|
||||
,C_EMAILTIPUSA INT '$.C_EMAILTIPUSA'
|
||||
,C_EMAILCIM NVARCHAR(200) '$.C_EMAILCIM'
|
||||
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
|
||||
,C_ISPUBLIC CHAR(1) '$.C_ISPUBLIC'
|
||||
|
||||
,C_INTEZMENYID INT '$.C_INTEZMENYID'
|
||||
,C_TANEVID INT '$.C_TANEVID'
|
||||
,TOROLT CHAR(1) '$.TOROLT'
|
||||
,SERIAL INT '$.SERIAL'
|
||||
,LASTCHANGED DATETIME '$.LASTCHANGED'
|
||||
,CREATED DATETIME '$.CREATED'
|
||||
,MODIFIER INT '$.MODIFIER'
|
||||
,CREATOR INT '$.CREATOR'
|
||||
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
|
||||
,NNID INT '$.NNID'
|
||||
,Operation INT '$.Operation'
|
||||
|
||||
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
|
||||
,Keresztnev NVARCHAR(255) '$.Keresztnev'
|
||||
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
|
||||
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
|
||||
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
|
||||
) EmailJsonData
|
||||
LEFT JOIN
|
||||
T_FELHASZNALO_OSSZES Felhasznalo ON
|
||||
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
|
||||
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
|
||||
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.Vezeteknev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.Keresztnev)
|
||||
AND LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)))) = LOWER(EmailJsonData.SzuletesiHely)
|
||||
AND Felhasznalo.C_SZULETESIDATUM = EmailJsonData.SzuletesiIdo
|
||||
AND Felhasznalo.C_OKTATASIAZONOSITO = EmailJsonData.OktatasiAzonosito
|
||||
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
|
||||
--NOTE: Ha van bejövő cím állandó lakcím típusú a json-ben, akkor az ehhez a címhez tartozó felhasználó összes címének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
|
||||
UPDATE
|
||||
Cim
|
||||
SET
|
||||
Cim.C_ALAPERTELMEZETT = 'F'
|
||||
,Cim.SERIAL = Cim.SERIAL + 1
|
||||
,Cim.LASTCHANGED = @lastChangedDateTime
|
||||
,Cim.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_FELHASZNALO_OSSZES Felhasznalo
|
||||
INNER JOIN
|
||||
#CimTempTable ON
|
||||
#CimTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
||||
AND #CimTempTable.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND #CimTempTable.TOROLT = 'F'
|
||||
AND #CimTempTable.C_FELHASZNALOID = Felhasznalo.ID
|
||||
INNER JOIN
|
||||
T_CIM_OSSZES Cim ON
|
||||
Cim.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
||||
AND Cim.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND Cim.TOROLT = 'F'
|
||||
AND Cim.C_FELHASZNALOID = Felhasznalo.ID
|
||||
AND Cim.C_ALAPERTELMEZETT = 'T'
|
||||
WHERE
|
||||
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
|
||||
--NOTE: Ha van bejövő email a json-ben, akkor az ehhez a email-hez tartozó felhasználó összes email-jének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
|
||||
UPDATE
|
||||
Email
|
||||
SET
|
||||
Email.C_ALAPERTELMEZETT = 'F'
|
||||
,Email.SERIAL = Email.SERIAL + 1
|
||||
,Email.LASTCHANGED = @lastChangedDateTime
|
||||
,Email.MODIFIER = @pUserId
|
||||
FROM
|
||||
T_FELHASZNALO_OSSZES Felhasznalo
|
||||
INNER JOIN
|
||||
#EmailTempTable ON
|
||||
#EmailTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
||||
AND #EmailTempTable.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND #EmailTempTable.TOROLT = 'F'
|
||||
AND #EmailTempTable.C_FELHASZNALOID = Felhasznalo.ID
|
||||
INNER JOIN
|
||||
T_EMAIL_OSSZES Email ON
|
||||
Email.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
|
||||
AND Email.C_TANEVID = Felhasznalo.C_TANEVID
|
||||
AND Email.TOROLT = 'F'
|
||||
AND Email.C_FELHASZNALOID = Felhasznalo.ID
|
||||
AND Email.C_ALAPERTELMEZETT = 'T'
|
||||
WHERE
|
||||
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
|
||||
AND Felhasznalo.C_TANEVID = @pTanevId
|
||||
AND Felhasznalo.TOROLT = 'F'
|
||||
|
||||
--Tanulók beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_TANULO_OSSZES":' + (
|
||||
SELECT
|
||||
Tanulo.ID
|
||||
,Tanulo.C_TANTERVID
|
||||
,Tanulo.C_ALLAMIGONDOZOTT
|
||||
,Tanulo.C_BEILLESZKEDESINEHEZSEG
|
||||
,Tanulo.C_BEJARO
|
||||
,Tanulo.C_EVISMETLO
|
||||
,Tanulo.C_JOGVISZONYATSZUNETELTETO
|
||||
,Tanulo.C_MAGANTANULO
|
||||
,Tanulo.C_POLGARISZERZODESES
|
||||
,Tanulo.C_SZAKMAIGYAKORLATON
|
||||
,Tanulo.C_SZOCIALISTAMOGATAS
|
||||
,Tanulo.C_TANDIJATFIZETO
|
||||
,Tanulo.C_TANKOTELEZETT
|
||||
,Tanulo.C_TANULOSZERZODESES
|
||||
,Tanulo.C_TERITESIDIJATFIZETO
|
||||
,Tanulo.C_TESTNEVELESTIPUSA
|
||||
,Tanulo.C_VENDEG
|
||||
,Tanulo.C_BTMPROBLEMAS
|
||||
,Tanulo.C_DIAKSPORTKOROS
|
||||
,Tanulo.C_HALMOZOTTANFOGYATEKOS
|
||||
,Tanulo.C_KOLLEGIUMIELLATASOS
|
||||
,Tanulo.C_SAJATOSNEVELESU
|
||||
,Tanulo.C_VESZELYEZTETETT
|
||||
,Tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ
|
||||
,Tanulo.C_MAGATARTASIPROBLEMAVALKUZD
|
||||
,Tanulo.C_TANULASIPROBLEMADISZGRAFIA
|
||||
,Tanulo.C_TANULASIPROBLEMAVALKUZD
|
||||
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZK
|
||||
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZL
|
||||
,Tanulo.C_KOZEPFOKUOKTATASBATIZENHATOD
|
||||
,Tanulo.C_MENEDEKJOGGALRENDELKEZO
|
||||
,Tanulo.C_EGYEBDONTO
|
||||
,Tanulo.C_MEGALLAPODASOS
|
||||
,Tanulo.C_OSZTV
|
||||
,Tanulo.C_SZETVAGAZAT
|
||||
,Tanulo.C_SZKTV
|
||||
,Tanulo.C_TECHNIKUSIEVFOLYAM
|
||||
,Tanulo.C_EGYUTTMUKODESES
|
||||
,Tanulo.C_ISKOLAIKERETEKKOZOTT
|
||||
,Tanulo.C_ISSZAKMAIGYAKORLATHIANY
|
||||
,Tanulo.C_ISKIFIRIMPORTALT
|
||||
,Tanulo.C_FELVETELTANEVEID
|
||||
|
||||
,Tanulo.C_ALINTEZMENYID
|
||||
,Tanulo.C_ALTANEVID
|
||||
,Tanulo.TOROLT
|
||||
,Tanulo.SERIAL
|
||||
,Tanulo.LASTCHANGED
|
||||
,Tanulo.CREATED
|
||||
,Tanulo.MODIFIER
|
||||
,Tanulo.CREATOR
|
||||
,Tanulo.ELOZOTANEVIREKORDID
|
||||
,Tanulo.NNID
|
||||
,Tanulo.Operation
|
||||
FROM
|
||||
#TanuloTempTable AS Tanulo
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
|
||||
DROP TABLE IF EXISTS #TanuloTempTable
|
||||
|
||||
--Címek beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_CIM_OSSZES":' + (
|
||||
SELECT
|
||||
Cim.ID
|
||||
,Cim.C_CIMTIPUSA
|
||||
,Cim.C_IRANYITOSZAM
|
||||
,Cim.C_VAROS
|
||||
,Cim.C_KOZTERULET
|
||||
,Cim.C_KOZTERULETJELLEGE
|
||||
,Cim.C_HAZSZAM
|
||||
,Cim.C_ORSZAG
|
||||
,Cim.C_ALAPERTELMEZETT
|
||||
,Cim.C_EMELET
|
||||
,Cim.C_AJTO
|
||||
,Cim.C_FELHASZNALOID
|
||||
|
||||
,Cim.C_INTEZMENYID
|
||||
,Cim.C_TANEVID
|
||||
,Cim.TOROLT
|
||||
,Cim.SERIAL
|
||||
,Cim.LASTCHANGED
|
||||
,Cim.CREATED
|
||||
,Cim.MODIFIER
|
||||
,Cim.CREATOR
|
||||
,Cim.ELOZOTANEVIREKORDID
|
||||
,Cim.NNID
|
||||
,Cim.Operation
|
||||
FROM
|
||||
#CimTempTable AS Cim
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
||||
DROP TABLE IF EXISTS #CimTempTable
|
||||
|
||||
--Emailek beszúrása
|
||||
SET @actualJson = ' { "ImportJson":{ "T_EMAIL_OSSZES":' + (
|
||||
SELECT
|
||||
Email.ID
|
||||
,Email.C_EMAILTIPUSA
|
||||
,Email.C_EMAILCIM
|
||||
,Email.C_ALAPERTELMEZETT
|
||||
,Email.C_ISPUBLIC
|
||||
,Email.C_FELHASZNALOID
|
||||
|
||||
,Email.C_INTEZMENYID
|
||||
,Email.C_TANEVID
|
||||
,Email.TOROLT
|
||||
,Email.SERIAL
|
||||
,Email.LASTCHANGED
|
||||
,Email.CREATED
|
||||
,Email.MODIFIER
|
||||
,Email.CREATOR
|
||||
,Email.ELOZOTANEVIREKORDID
|
||||
,Email.NNID
|
||||
,Email.Operation
|
||||
FROM
|
||||
#EmailTempTable AS Email
|
||||
FOR JSON PATH,INCLUDE_NULL_VALUES
|
||||
)
|
||||
|
||||
SET @actualJson = @actualJson + ' } }'
|
||||
|
||||
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
|
||||
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
|
||||
DROP TABLE IF EXISTS #EmailTempTable
|
||||
|
||||
END
|
||||
|
||||
|
||||
GO
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue