371 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			371 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- =============================================
 | 
						|
-- Description:	<>
 | 
						|
-- =============================================
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('[dbo].[sp_OrarendImport]') IS NOT NULL
 | 
						|
BEGIN
 | 
						|
	DROP PROCEDURE [dbo].[sp_OrarendImport]
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_OrarendImport]
 | 
						|
	 @pImportJson					NVARCHAR(MAX)
 | 
						|
	,@pIsTorles						BIT
 | 
						|
	,@pIsModositas					BIT
 | 
						|
	,@pOrarendiOraLezarasDateTime	DATETIME = NULL
 | 
						|
	,@pUserId						INT
 | 
						|
	,@pTanevId						INT
 | 
						|
	,@pIntezmenyId					INT
 | 
						|
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
 | 
						|
	SET NOCOUNT ON;	
 | 
						|
 | 
						|
	DECLARE
 | 
						|
		 @tableNameList				NVARCHAR(2000)	= 'T_TEREM_OSSZES'
 | 
						|
		,@actualJson				NVARCHAR(MAX)	= ''
 | 
						|
 
 | 
						|
		,@lastChangedDateTime		DATETIME		= GETDATE()
 | 
						|
		,@modifierId				INT				= @pUserId
 | 
						|
	
 | 
						|
	--Ha törölnünk vagy módosítanunk is kell akkor azzal kezdünk!
 | 
						|
	IF (@pIsTorles = 1)
 | 
						|
		BEGIN
 | 
						|
			--Órarenid óra kapcsolatainak törlése
 | 
						|
			UPDATE 
 | 
						|
				TanitasiOra
 | 
						|
			SET 
 | 
						|
				 TanitasiOra.C_ORARENDIORAID			= NULL
 | 
						|
				,TanitasiOra.SERIAL						= TanitasiOra.SERIAL + 1
 | 
						|
				,TanitasiOra.LASTCHANGED				= @lastChangedDateTime
 | 
						|
				,TanitasiOra.MODIFIER					= @modifierId
 | 
						|
			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					= @modifierId
 | 
						|
			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			= @modifierId
 | 
						|
			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					= @modifierId
 | 
						|
			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
 | 
						|
 | 
						|
	IF (@pIsModositas = 1)
 | 
						|
		BEGIN
 | 
						|
			--Korábbi órarendi órák lezárása
 | 
						|
			UPDATE 
 | 
						|
				OrarendiOra
 | 
						|
			SET 
 | 
						|
				 OrarendiOra.C_ORAERVENYESSEGVEGE		= @pOrarendiOraLezarasDateTime
 | 
						|
				,OrarendiOra.SERIAL						= OrarendiOra.SERIAL + 1
 | 
						|
				,OrarendiOra.LASTCHANGED				= @lastChangedDateTime
 | 
						|
				,OrarendiOra.MODIFIER					= @modifierId
 | 
						|
			FROM 
 | 
						|
				T_ORARENDIORA_OSSZES OrarendiOra		
 | 
						|
			WHERE
 | 
						|
					OrarendiOra.C_INTEZMENYID			= @pIntezmenyId
 | 
						|
				AND	OrarendiOra.C_TANEVID				= @pTanevId
 | 
						|
				AND OrarendiOra.TOROLT					= 'F'
 | 
						|
				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 órarendi órák törlése
 | 
						|
			UPDATE 
 | 
						|
				OrarendiOra
 | 
						|
			SET 
 | 
						|
				 OrarendiOra.TOROLT						= 'T'
 | 
						|
				,OrarendiOra.SERIAL						= OrarendiOra.SERIAL + 1
 | 
						|
				,OrarendiOra.LASTCHANGED				= @lastChangedDateTime
 | 
						|
				,OrarendiOra.MODIFIER					= @modifierId
 | 
						|
			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].[sp_TantargyfelosztasImport] 
 | 
						|
	   @pImportJson
 | 
						|
	  ,@pIsTorles
 | 
						|
	  ,@pUserId
 | 
						|
	  ,@pTanevId
 | 
						|
	  ,@pIntezmenyId
 | 
						|
	  
 | 
						|
	--NOTE: A törlés itt azért false, mert a T_TEREM_OSSZES view-ból nem törlünk importnál
 | 
						|
	EXECUTE [dbo].[sp_DynamicImportJsonSplit] @pImportJson = @pImportJson , @pIsTorles = 0, @pUserId = @pUserId, @pInsertAlways = 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_INTEZMENYID
 | 
						|
			,OrarendiOra.					 	C_TANEVID
 | 
						|
			,OrarendiOra.						C_IMPORTALT
 | 
						|
			,OrarendiOra.						TOROLT
 | 
						|
			,OrarendiOra.						SERIAL
 | 
						|
			,OrarendiOra.						LASTCHANGED
 | 
						|
			,OrarendiOra.						CREATED
 | 
						|
			,OrarendiOra.						MODIFIER
 | 
						|
			,OrarendiOra.						CREATOR
 | 
						|
			,OrarendiOra.						NNID
 | 
						|
			,OrarendiOra.						ELOZOTANEVIREKORDID
 | 
						|
		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_INTEZMENYID					INT				'$.C_INTEZMENYID'
 | 
						|
					,C_TANEVID						INT				'$.C_TANEVID'
 | 
						|
					,C_IMPORTALT					CHAR(1)			'$.C_IMPORTALT'
 | 
						|
					,TOROLT							CHAR(1)			'$.TOROLT'
 | 
						|
					,SERIAL							INT				'$.SERIAL'
 | 
						|
					,LASTCHANGED					DATETIME		'$.LASTCHANGED'
 | 
						|
					,CREATED						DATETIME		'$.CREATED'
 | 
						|
					,MODIFIER						INT				'$.MODIFIER'
 | 
						|
					,CREATOR						INT				'$.CREATOR'
 | 
						|
					,NNID							INT				'$.NNID'
 | 
						|
					,ELOZOTANEVIREKORDID			INT				'$.ELOZOTANEVIREKORDID'
 | 
						|
					,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 itt azért false, mert a T_FOGLALKOZAS_OSSZES view-ból korábban elvégeztük a törlést, mivel az osztálycsoport és a tantárgy törlések miatt, nem találná.
 | 
						|
	EXECUTE [dbo].[sp_DynamicImport] @pImportJson = @actualJson , @pIsTorles = 0, @pUserId = @pUserId, @pInsertAlways = 0	     
 | 
						|
		 
 | 
						|
	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
 | 
						|
 |