-- ============================================= -- Description: <Óraterv import> -- ============================================= DROP PROCEDURE IF EXISTS uspOratervImport GO CREATE PROCEDURE uspOratervImport @pIntezmenyId int ,@pTanevId int ,@pUserId int ,@pImportJson nvarchar(MAX) AS BEGIN SET NOCOUNT ON; DECLARE @tableNameList nvarchar(2000) = 'T_ORATERV_OSSZES' ,@actualJson nvarchar(MAX) = '' ,@lastChangedDateTime datetime = GETDATE() --NOTE: A törlés azért false, mert a óraterv 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: Tantárgy temp tábla incializálása CREATE TABLE #TantargyTempTable ( ID int ,C_GYAKORLATI char ,C_NEV nvarchar(510) ,C_ROVIDNEV nvarchar(50) ,C_TARGYKATEGORIA int ,C_ALTANTARGYKENTNYOMTATVANYBAN char ,C_NEVNYOMTATVANYBAN nvarchar(510) ,C_TANORANKIVULI char ,C_FOTARGYE char ,C_FOTARGYID 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 #TantargyTempTable SELECT tt.ID ,tt.C_GYAKORLATI ,tt.C_NEV ,tt.C_ROVIDNEV ,tt.C_TARGYKATEGORIA ,tt.C_ALTANTARGYKENTNYOMTATVANYBAN ,tt.C_NEVNYOMTATVANYBAN ,tt.C_TANORANKIVULI ,tt.C_FOTARGYE ,tt.C_FOTARGYID ,tt.C_INTEZMENYID ,tt.C_TANEVID ,tt.TOROLT ,tt.SERIAL ,tt.LASTCHANGED ,tt.CREATED ,tt.MODIFIER ,tt.CREATOR ,tt.ELOZOTANEVIREKORDID ,tt.NNID ,tt.Operation FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_TANTARGY_OSSZES') WITH ( ID int '$.ID' ,C_GYAKORLATI char '$.C_GYAKORLATI' ,C_NEV nvarchar(510) '$.C_NEV' ,C_ROVIDNEV nvarchar(50) '$.C_ROVIDNEV' ,C_TARGYKATEGORIA int '$.C_TARGYKATEGORIA' ,C_ALTANTARGYKENTNYOMTATVANYBAN char(1) '$.C_ALTANTARGYKENTNYOMTATVANYBAN' ,C_NEVNYOMTATVANYBAN nvarchar(510) '$.C_NEVNYOMTATVANYBAN' ,C_TANORANKIVULI char '$.C_TANORANKIVULI' ,C_FOTARGYE char '$.C_FOTARGYE' ,C_FOTARGYID int '$.C_FOTARGYID' ,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' ) tt --Tantárgyak beszúrása SET @actualJson = ' { "ImportJson":{ "T_TANTARGY_OSSZES":' + ( SELECT tt.ID ,tt.C_GYAKORLATI ,tt.C_NEV ,tt.C_ROVIDNEV ,tt.C_TARGYKATEGORIA ,tt.C_ALTANTARGYKENTNYOMTATVANYBAN ,tt.C_NEVNYOMTATVANYBAN ,tt.C_TANORANKIVULI ,tt.C_FOTARGYE ,tt.C_FOTARGYID ,tt.C_INTEZMENYID ,tt.C_TANEVID ,tt.TOROLT ,tt.SERIAL ,tt.LASTCHANGED ,tt.CREATED ,tt.MODIFIER ,tt.CREATOR ,tt.ELOZOTANEVIREKORDID ,tt.NNID ,tt.Operation FROM #TantargyTempTable AS tt FOR JSON PATH,INCLUDE_NULL_VALUES ) SET @actualJson = @actualJson + ' } }' EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0 --NOTE: OratervTantargy temp tábla incializálása CREATE TABLE #OratervTantargyTempTable ( ID int ,C_EVESORASZAM numeric(10, 2) ,C_ORATERVID int ,C_TANTARGYID 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 #OratervTantargyTempTable SELECT ott.ID ,ott.C_EVESORASZAM ,ot.ID ,tt.ID ,ott.C_INTEZMENYID ,ott.C_TANEVID ,ott.TOROLT ,ott.SERIAL ,ott.LASTCHANGED ,ott.CREATED ,ott.MODIFIER ,ott.CREATOR ,ott.ELOZOTANEVIREKORDID ,ott.NNID ,ott.Operation FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_ORATERVTARGY_OSSZES') WITH ( ID int '$.ID' ,C_EVESORASZAM numeric(10, 2) '$.C_EVESORASZAM' ,C_ORATERVID int '$.C_ORATERVID' ,C_TANTARGYID int '$.C_TANTARGYID' ,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' ,OratervNev nvarchar(510) '$.OratervNev' ,TantargyNev nvarchar(510) '$.TantargyNev' ) ott LEFT JOIN T_ORATERV_OSSZES ot ON REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(ot.C_NEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(ott.OratervNev) AND ot.C_TANEVID = ott.C_TANEVID AND ot.TOROLT = 'F' LEFT JOIN T_TANTARGY_OSSZES tt ON REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(tt.C_NEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(ott.TantargyNev) AND tt.C_TANEVID = ott.C_TANEVID AND tt.TOROLT = 'F' -- OratervTantargy beszúrása SET @actualJson = ' { "ImportJson":{ "T_ORATERVTARGY_OSSZES":' + ( SELECT ott.ID ,ott.C_EVESORASZAM ,ott.C_ORATERVID ,ott.C_TANTARGYID ,ott.C_INTEZMENYID ,ott.C_TANEVID ,ott.TOROLT ,ott.SERIAL ,ott.LASTCHANGED ,ott.CREATED ,ott.MODIFIER ,ott.CREATOR ,ott.ELOZOTANEVIREKORDID ,ott.NNID ,ott.Operation FROM #OratervTantargyTempTable AS ott FOR JSON PATH,INCLUDE_NULL_VALUES ) SET @actualJson = @actualJson + ' } }' select * from #OratervTantargyTempTable EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0 END GO