480 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			480 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('dbo.sp_KIRImportTanulok') IS NOT NULL 
 | 
						|
BEGIN
 | 
						|
  DROP PROCEDURE [dbo].[sp_KIRImportTanulok]
 | 
						|
END  
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_KIRImportTanulok]
 | 
						|
	-- Add the parameters for the stored procedure here
 | 
						|
	@TanulokXML as XML,
 | 
						|
	@intezmenyID int,
 | 
						|
	@tanevID int,
 | 
						|
	@userId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	SET NOCOUNT ON;
 | 
						|
  DECLARE 
 | 
						|
    @TantervID int,
 | 
						|
    @userNameGenerateMode int
 | 
						|
    
 | 
						|
  DECLARE @linkTable TABLE (
 | 
						|
    tempId int,
 | 
						|
    insertedId int,
 | 
						|
    act varchar(10)
 | 
						|
  )
 | 
						|
  
 | 
						|
	-- XML paraméter értelmezése
 | 
						|
  SELECT  ID = Tanulo.value('(ID)[1]', 'int'),
 | 
						|
		OktatasiAzonosito = Tanulo.value('(OktatasiAzonosito)[1]', 'varchar(15)'),
 | 
						|
		KretaKod = Tanulo.value('(KretaKod)[1]', 'varchar(6)'),
 | 
						|
		VezetekNev =  Tanulo.value('(ViseltNevVezetekNev)[1]', 'nvarchar(50)'),	UtoNev =  Tanulo.value('(ViseltNevKeresztNev)[1]', 'nvarchar(50)'),
 | 
						|
		Elotag =  Tanulo.value('(ViseltNevElotag)[1]', 'nvarchar(10)'),	NevSorrend =  Tanulo.value('(ViseltNevNevSorrend)[1]', 'char(1)'),
 | 
						|
		AnyjaNeveElotag =  Tanulo.value('(AnyjaNeveElotag)[1]', 'nvarchar(10)'), AnyjaNeveVezetekNev =  Tanulo.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(50)'),
 | 
						|
		AnyjaNeveKeresztNev =  Tanulo.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(50)'),	AnyjaNeveNevSorrend =  Tanulo.value('(AnyjaNeveNevSorrend)[1]', 'nvarchar(50)'),
 | 
						|
		SzuletesiDatum =  Tanulo.value('(SzuletesiDatum)[1]', 'date'),	SzuletesiHely =  Tanulo.value('(SzuletesiHely)[1]', 'nvarchar(255)'),
 | 
						|
		SzuletesiOrszag =  Tanulo.value('(SzuletesiOrszag)[1]', 'int'),	Allampolgarsag =  Tanulo.value('(Allampolgarsag)[1]', 'int'),
 | 
						|
		Nem =  Tanulo.value('(Nem)[1]', 'int'),	TAJSzam =  Tanulo.value('(TAJSzam)[1]', 'nvarchar(15)'),
 | 
						|
		AllandoLakcimIranyitoSzam =  Tanulo.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(10)'),	AllandoLakcimTelepules =  Tanulo.value('(AllandoLakcimTelepules)[1]', 'nvarchar(255)'),
 | 
						|
		AllandoLakcimKozteruletNev =  Tanulo.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(255)'),	AllandoLakcimKozteruletJelleg =  Tanulo.value('number((AllandoLakcimKozteruletJelleg)[1])', 'int'),
 | 
						|
		AllandoLakcimHazszam =  Tanulo.value('(AllandoLakcimHazszam)[1]', 'nvarchar(20)'),	TartozkodasiCimTelepules =  Tanulo.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(255)'),
 | 
						|
		TartozkodasiCimKozteruletNev =  Tanulo.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(255)'),	TartozkodasiCimKozteruletJelleg =  Tanulo.value('number((TartozkodasiCimKozteruletJelleg)[1])', 'int'),
 | 
						|
		TartozkodasiCimHazszam =  Tanulo.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(20)'),	TartozkodasiCimIranyitoszam =  Tanulo.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'),
 | 
						|
		TankotelezettsegVege =  Tanulo.value('(TankotelezettsegVege)[1]', 'date'),
 | 
						|
		TankotelezettsegetTeljesito =  Tanulo.value('(TankotelezettsegetTeljesito)[1]', 'char'),	SajatosNevelesIgenyu =  Tanulo.value('(SajatosNevelesIgenyu)[1]', 'char'),
 | 
						|
		BeilleszkedesselKuzd =  Tanulo.value('(BeilleszkedesselKuzd)[1]', 'char'),	OMAzonosito =  Tanulo.value('(OMAzonosito)[1]', 'nvarchar(20)'),
 | 
						|
		JogviszonyStatusza =  Tanulo.value('(JogviszonyStatusza)[1]', 'nvarchar(50)'),	JogviszonyKezdete =  Tanulo.value('(JogviszonyKezdete)[1]', 'date'),
 | 
						|
		JogviszonyVarBefejezese =  Tanulo.value('(JogviszonyVarBefejezese)[1]', 'date'),	JogviszonyJellege =  Tanulo.value('(JogviszonyJellege)[1]', 'nvarchar(50)'),
 | 
						|
		Vendegtanulo =  Tanulo.value('(Vendegtanulo)[1]', 'char'),	Magantanulo =  Tanulo.value('(Magantanulo)[1]', 'char'),
 | 
						|
		Osztaly =  Tanulo.value('(Osztaly)[1]', 'nvarchar(255)'),
 | 
						|
		KeresesiNev =  Tanulo.value('(KeresesiNev)[1]', 'nvarchar(255)'), NyomtatasiNev =  ltrim(Tanulo.value('(NyomtatasiNev)[1]', 'nvarchar(255)')),
 | 
						|
		Telefonszam = Tanulo.value('(Telefonszam)[1]', 'nvarchar(45)'),
 | 
						|
		AnyjaNeve =  Tanulo.value('(AnyjaNeve)[1]', 'nvarchar(255)'),
 | 
						|
		EmailCim = Tanulo.value('(Email)[1]', 'nvarchar(200)'),
 | 
						|
		BejelentkezesiNev = Tanulo.value('(BejelentkezesiNev)[1]', 'nvarchar(255)'),
 | 
						|
		Jelszo = Tanulo.value('(Jelszo)[1]', 'nvarchar(64)'),
 | 
						|
		Salt = Tanulo.value('(Salt)[1]', 'nvarchar(64)'),
 | 
						|
 | 
						|
    0 AS isTanulo,
 | 
						|
    0 TanuloID
 | 
						|
	INTO #tempTanulok
 | 
						|
	FROM @TanulokXML.nodes('/KIRTanulok/ImportaltTanulok/Tanulo') as Tanulok(Tanulo)
 | 
						|
  
 | 
						|
  -- A létező felhasználók ID-ját kitöltjük, és az isTanulot is update-eljük
 | 
						|
  UPDATE t
 | 
						|
  SET t.TanuloID = fh.ID,
 | 
						|
      t.isTanulo = IIF(tn.ID IS NULL, 0, 1)
 | 
						|
  FROM #tempTanulok t
 | 
						|
    INNER JOIN T_FELHASZNALO_OSSZES fh ON
 | 
						|
	t.NyomtatasiNev = fh.C_NYOMTATASINEV AND
 | 
						|
	t.SzuletesiDatum = fh.C_SZULETESIDATUM AND
 | 
						|
	t.SzuletesiHely = fh.C_SZULETESIHELY AND
 | 
						|
	t.AnyjaNeve = fh.C_ANYJANEVE
 | 
						|
	LEFT JOIN T_TANULO_OSSZES tn ON tn.ID = fh.ID
 | 
						|
	WHERE fh.TOROLT = 'F' AND fh.C_TANEVID = @tanevID AND fh.C_INTEZMENYID = @intezmenyID
 | 
						|
  
 | 
						|
  BEGIN TRY
 | 
						|
  BEGIN TRANSACTION
 | 
						|
  
 | 
						|
    -- FELHASZNÁLÓK INSERTJE VAGY UPDATE-JE AKA MERGE
 | 
						|
    MERGE T_FELHASZNALO_OSSZES trg
 | 
						|
    USING #tempTanulok src ON src.TanuloID = trg.ID AND trg.C_TANEVID = @tanevID
 | 
						|
    WHEN MATCHED AND src.isTanulo = 1 THEN
 | 
						|
      UPDATE SET
 | 
						|
        trg.C_NEME = src.Nem,
 | 
						|
        trg.C_SZULETESIDATUM = src.SzuletesiDatum,
 | 
						|
        trg.C_SZULETESINEV = src.VezetekNev + ' ' + src.UtoNev,
 | 
						|
        trg.C_ANYJANEVE = src.AnyjaNeve,
 | 
						|
        trg.C_SZULETESIHELY = src.SzuletesiHely,
 | 
						|
        trg.C_ALLAMPOLGARSAGA = src.Allampolgarsag,
 | 
						|
        trg.C_KERESESINEV = src.KeresesiNev,
 | 
						|
        trg.C_SZULETESIORSZAG = src.SzuletesiOrszag,
 | 
						|
        trg.C_SZULETESINEVSORREND = src.NevSorrend,
 | 
						|
        trg.C_ANYJANEVESORREND = src.AnyjaNeveNevSorrend,
 | 
						|
        trg.C_ALAPERTELMEZETTLCID = 1038,
 | 
						|
        trg.C_SZULETESINEVELVALASZTO = LEN(src.VezetekNev),
 | 
						|
        trg.C_ANYJANEVEELVALASZTO = (LEN(src.AnyjaNeveVezetekNev) + IIF(src.AnyjaNeveElotag IS NULL OR LEN(src.AnyjaNeveElotag) = 0, 0, LEN(src.AnyjaNeveElotag) + 1)),
 | 
						|
        trg.C_NYOMTATASINEV = src.NyomtatasiNev,
 | 
						|
        trg.C_UTONEV = src.UtoNev,
 | 
						|
        trg.C_VEZETEKNEV = src.VezetekNev,
 | 
						|
        trg.C_ELOTAG = src.Elotag,
 | 
						|
        trg.C_NEVSORREND = src.NevSorrend,
 | 
						|
        trg.C_NYILVANTARTASKEZDETE = src.JogviszonyKezdete,
 | 
						|
        trg.C_OMKOD = src.OMAzonosito,
 | 
						|
        trg.C_KRETAKOD = src.KretaKod,
 | 
						|
        trg.TOROLT = 'F',
 | 
						|
  		  trg.SERIAL = trg.SERIAL + 1,
 | 
						|
  		  trg.LASTCHANGED = GETDATE(),
 | 
						|
  		  trg.MODIFIER = @userId,
 | 
						|
		  trg.C_OKTATASIAZONOSITO = src.OktatasiAzonosito
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
  		INSERT (
 | 
						|
  			 C_NEME
 | 
						|
  			,C_SZULETESIDATUM
 | 
						|
  			,C_SZULETESINEV
 | 
						|
  			,C_ANYJANEVE
 | 
						|
  			,C_SZULETESIHELY
 | 
						|
  			,C_TAJSZAM
 | 
						|
  			,C_ALLAMPOLGARSAGA
 | 
						|
  			,C_LEIRAS
 | 
						|
  			,C_KERESESINEV
 | 
						|
  			,C_SZULETESIORSZAG
 | 
						|
  			,C_SZULETESINEVSORREND
 | 
						|
  			,C_ANYJANEVESORREND
 | 
						|
  			,C_ALAPERTELMEZETTLCID
 | 
						|
  			,C_SZULETESINEVELVALASZTO
 | 
						|
  			,C_ANYJANEVEELVALASZTO
 | 
						|
  			,C_NYOMTATASINEV
 | 
						|
  			,C_UTONEV
 | 
						|
  			,C_VEZETEKNEV
 | 
						|
  			,C_ELOTAG
 | 
						|
  			,C_NEVSORREND
 | 
						|
  			,C_NYILVANTARTASKEZDETE
 | 
						|
  			,C_OKTATASIAZONOSITO
 | 
						|
  			,C_OMKOD
 | 
						|
  			,C_KRETAKOD
 | 
						|
  			,C_INTEZMENYID
 | 
						|
  			,C_TANEVID
 | 
						|
  			,MODIFIER
 | 
						|
  			,CREATOR)
 | 
						|
  		VALUES (
 | 
						|
  			 src.Nem
 | 
						|
  			,src.SzuletesiDatum
 | 
						|
  			,src.VezetekNev + ' ' + src.UtoNev
 | 
						|
  			,src.AnyjaNeve
 | 
						|
  			,src.SzuletesiHely
 | 
						|
  			,src.TAJSzam
 | 
						|
  			,src.Allampolgarsag
 | 
						|
  			,src.JogviszonyJellege
 | 
						|
  			,src.KeresesiNev
 | 
						|
  			,src.SzuletesiOrszag
 | 
						|
  			,src.NevSorrend
 | 
						|
  			,src.AnyjaNeveNevSorrend
 | 
						|
  			,1038
 | 
						|
  			,LEN(src.VezetekNev)
 | 
						|
  			,(LEN(src.AnyjaNeveVezetekNev) + IIF(src.AnyjaNeveElotag IS NULL OR LEN(src.AnyjaNeveElotag) = 0, 0, LEN(src.AnyjaNeveElotag) + 1))
 | 
						|
  			,src.NyomtatasiNev
 | 
						|
  			,src.UtoNev
 | 
						|
  			,src.VezetekNev
 | 
						|
  			,src.Elotag
 | 
						|
  			,src.NevSorrend
 | 
						|
  			,src.JogviszonyKezdete
 | 
						|
  			,src.OktatasiAzonosito
 | 
						|
  			,src.OMAzonosito
 | 
						|
  			,src.KretaKod
 | 
						|
  			,@intezmenyID
 | 
						|
  			,@tanevID
 | 
						|
  			,NULL
 | 
						|
  			,@userId
 | 
						|
      )
 | 
						|
      OUTPUT INSERTED.ID, src.ID, $action
 | 
						|
      INTO @linkTable(insertedID, tempId, act);
 | 
						|
      
 | 
						|
	  SET @TantervID = (SELECT MAX(ID) FROM T_TANTERV_OSSZES WHERE C_TANEVID = @tanevID AND TOROLT = 'F')  
 | 
						|
    MERGE T_TANULO_OSSZES trg
 | 
						|
    USING (
 | 
						|
      SELECT t.*, l.insertedId AS insertedID 
 | 
						|
      FROM #tempTanulok t
 | 
						|
        INNER JOIN @linkTable l ON t.ID = l.tempID
 | 
						|
    ) src ON src.TanuloID = trg.ID AND trg.C_ALTANEVID = @tanevID AND src.isTanulo = 1 
 | 
						|
    WHEN MATCHED THEN
 | 
						|
      UPDATE SET
 | 
						|
			  trg.C_TANKOTELEZETTSEGVEGE = src.TankotelezettsegVege,
 | 
						|
    		trg.C_TANKOTELEZETT = src.TankotelezettsegetTeljesito,
 | 
						|
    		trg.C_SAJATOSNEVELESU = src.SajatosNevelesIgenyu,
 | 
						|
    		trg.C_BTMPROBLEMAS = src.BeilleszkedesselKuzd,
 | 
						|
    		trg.C_JOGVISZONYVARHATOBEFEJEZESE = src.JogviszonyVarBefejezese,
 | 
						|
    		trg.C_VENDEG = src.Vendegtanulo,
 | 
						|
    		trg.C_MAGANTANULO = src.Magantanulo,
 | 
						|
    		trg.C_JOGVISZONYATSZUNETELTETO = src.JogviszonyStatusza,
 | 
						|
    		trg.C_FELVETELTANEVEID = @tanevID,
 | 
						|
    		trg.C_TANTERVID = @TantervId,
 | 
						|
    		trg.TOROLT = 'F',
 | 
						|
  			trg.SERIAL = trg.SERIAL + 1,
 | 
						|
  			trg.LASTCHANGED = GETDATE(),
 | 
						|
  			trg.MODIFIER = @userId
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
  		INSERT (
 | 
						|
  			 ID
 | 
						|
  			,C_TANKOTELEZETTSEGVEGE
 | 
						|
  			,C_TANKOTELEZETT
 | 
						|
  			,C_SAJATOSNEVELESU
 | 
						|
  			,C_BTMPROBLEMAS
 | 
						|
  			,C_JOGVISZONYVARHATOBEFEJEZESE
 | 
						|
  			,C_VENDEG
 | 
						|
  			,C_MAGANTANULO
 | 
						|
  			,C_JOGVISZONYATSZUNETELTETO
 | 
						|
  			,C_FELVETELTANEVEID
 | 
						|
  			,C_TANTERVID
 | 
						|
  			,C_ALINTEZMENYID
 | 
						|
  			,C_ALTANEVID
 | 
						|
  			,MODIFIER
 | 
						|
  			,CREATOR
 | 
						|
      ) VALUES (
 | 
						|
         src.insertedID
 | 
						|
        ,src.TankotelezettsegVege
 | 
						|
        ,src.TankotelezettsegetTeljesito
 | 
						|
        ,src.SajatosNevelesIgenyu
 | 
						|
        ,src.BeilleszkedesselKuzd
 | 
						|
        ,src.JogviszonyVarBefejezese
 | 
						|
        ,src.Vendegtanulo
 | 
						|
        ,src.Magantanulo
 | 
						|
        ,src.JogviszonyStatusza
 | 
						|
        ,@tanevID
 | 
						|
        ,@TantervId
 | 
						|
        ,@intezmenyID
 | 
						|
        ,@tanevID
 | 
						|
  		  ,NULL
 | 
						|
  		  ,@userId      
 | 
						|
      );
 | 
						|
    
 | 
						|
 | 
						|
		  -------FELHASZNALO BELEPES--------
 | 
						|
    
 | 
						|
    SET @userNameGenerateMode = dbo.fnGetRendszerbeallitasEnumBool(2885, @intezmenyID, @tanevID)
 | 
						|
    IF @userNameGenerateMode <> 3 BEGIN
 | 
						|
  	  INSERT INTO [T_FELHASZNALOBELEPES_OSSZES] (
 | 
						|
    		[C_JELSZO],
 | 
						|
    		[C_BEJELENTKEZESINEV],
 | 
						|
			[C_SO],
 | 
						|
    		[C_FELHASZNALOID],
 | 
						|
    		[C_INTEZMENYID],
 | 
						|
    		[C_TANEVID],
 | 
						|
    		[MODIFIER],
 | 
						|
    		[CREATOR],
 | 
						|
			[C_GUID]
 | 
						|
      )
 | 
						|
  	  SELECT
 | 
						|
			t.Jelszo,			
 | 
						|
			t.BejelentkezesiNev,
 | 
						|
			t.Salt,
 | 
						|
			fh.ID,
 | 
						|
    		@intezmenyID,
 | 
						|
    		@tanevID,
 | 
						|
    		NULL,
 | 
						|
    		@userId,
 | 
						|
			(select NEWID())
 | 
						|
      FROM #tempTanulok t
 | 
						|
        INNER JOIN @linkTable l ON t.ID = l.tempID
 | 
						|
  	    INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId
 | 
						|
  	    WHERE C_TANEVID = @tanevID  AND 
 | 
						|
		NOT EXISTS (SELECT 1 FROM T_FELHASZNALOBELEPES_OSSZES belepes 
 | 
						|
					WHERE belepes.C_TANEVID = @tanevID AND belepes.TOROLT = 'F' AND
 | 
						|
					((belepes.C_FELHASZNALOID = fh.ID AND belepes.C_GONDVISELOID IS NULL) 
 | 
						|
					OR belepes.C_BEJELENTKEZESINEV = t.BejelentkezesiNev))
 | 
						|
    END
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	  --------FELHASZNALO SZEREPKÖR-----------
 | 
						|
		DELETE FROM T_FELHASZNALO_SZEREPKOR
 | 
						|
    WHERE T_FELHASZNALO_SZEREPKOR.[C_FELHASZNALOID] IN (SELECT TanuloID FROM #tempTanulok WHERE TanuloID > 0) 
 | 
						|
		
 | 
						|
		INSERT INTO T_FELHASZNALO_SZEREPKOR (C_FELHASZNALOID, C_SZEREPKORID)
 | 
						|
		SELECT l.insertedId, (SELECT ID FROM T_SZEREPKOR_OSSZES WHERE C_SZEREPKORTIPUS = '1761' AND C_TANEVID = @tanevID)
 | 
						|
		FROM #tempTanulok t
 | 
						|
      INNER JOIN @linkTable l ON t.ID = l.tempID
 | 
						|
	    INNER JOIN T_FELHASZNALO_OSSZES fh ON fh.ID = l.insertedId
 | 
						|
		WHERE C_TANEVID = @tanevID
 | 
						|
		
 | 
						|
    
 | 
						|
    ----- Telefonszám ----- 
 | 
						|
    MERGE T_TELEFON_OSSZES trg
 | 
						|
    USING (
 | 
						|
      SELECT t.*, l.insertedId AS insertedID 
 | 
						|
      FROM #tempTanulok t
 | 
						|
        INNER JOIN @linkTable l ON t.ID = l.tempID --AND C_ALAPERTELMEZETT = 'T'
 | 
						|
        WHERE t.Telefonszam IS NOT NULL AND t.Telefonszam <> ''
 | 
						|
    ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_ALAPERTELMEZETT = 'T'
 | 
						|
    WHEN MATCHED THEN
 | 
						|
      UPDATE SET
 | 
						|
        trg.C_TELEFONSZAM = src.Telefonszam,
 | 
						|
        trg.TOROLT = 'F',
 | 
						|
    		trg.SERIAL = trg.SERIAL + 1,
 | 
						|
    		trg.LASTCHANGED = GETDATE(),
 | 
						|
    		trg.MODIFIER = @userId
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
      INSERT (
 | 
						|
         C_TELEFONTIPUSA
 | 
						|
        ,C_TELEFONSZAM
 | 
						|
        ,C_LEIRAS
 | 
						|
        ,C_ALAPERTELMEZETT
 | 
						|
        ,C_GONDVISELOID
 | 
						|
        ,C_FELHASZNALOID
 | 
						|
        ,C_INTEZMENYID
 | 
						|
        ,C_TANEVID
 | 
						|
        ,MODIFIER
 | 
						|
        ,CREATOR          
 | 
						|
      ) VALUES (
 | 
						|
         1019 -- C_TELEFONTIPUSA - int
 | 
						|
        ,src.Telefonszam -- C_TELEFONSZAM - nvarchar(100)
 | 
						|
        ,N'' -- C_LEIRAS - nvarchar(50)
 | 
						|
        ,'T' -- C_ALAPERTELMEZETT - char(1)
 | 
						|
        ,NULL   -- C_GONDVISELOID - int
 | 
						|
        ,src.insertedID   -- C_FELHASZNALOID - int
 | 
						|
        ,@intezmenyID -- C_INTEZMENYID - int
 | 
						|
        ,@tanevID -- C_TANEVID - int
 | 
						|
        ,NULL   -- MODIFIER - int
 | 
						|
        ,@userId   -- CREATOR - int      
 | 
						|
      );
 | 
						|
          
 | 
						|
    ----- TARTÓZKODÁSI HELY -----
 | 
						|
    MERGE T_CIM_OSSZES trg
 | 
						|
      USING (
 | 
						|
        SELECT t.*, l.insertedId AS insertedID 
 | 
						|
        FROM #tempTanulok t
 | 
						|
          INNER JOIN @linkTable l ON t.ID = l.tempID
 | 
						|
          WHERE t.TartozkodasiCimIranyitoszam IS NOT NULL AND t.TartozkodasiCimIranyitoszam <> ''
 | 
						|
        ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 908
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
					trg.C_CIMTIPUSA = 908,
 | 
						|
					trg.C_ORSZAG = 765,
 | 
						|
					trg.C_IRANYITOSZAM = src.TartozkodasiCimIranyitoszam,
 | 
						|
					trg.C_VAROS = src.TartozkodasiCimTelepules,
 | 
						|
					trg.C_KOZTERULET = src.TartozkodasiCimKozteruletNev,
 | 
						|
					trg.C_KOZTERULETJELLEGE = src.TartozkodasiCimKozteruletJelleg,
 | 
						|
					trg.C_HAZSZAM = src.TartozkodasiCimHazszam,
 | 
						|
					trg.C_FELHASZNALOID = src.insertedId,
 | 
						|
					trg.TOROLT = 'F',
 | 
						|
					trg.SERIAL = trg.SERIAL + 1,
 | 
						|
					trg.LASTCHANGED = GETDATE(),
 | 
						|
					trg.MODIFIER = @userId
 | 
						|
      WHEN NOT MATCHED THEN
 | 
						|
	      INSERT (
 | 
						|
           C_CIMTIPUSA
 | 
						|
          ,C_ORSZAG
 | 
						|
          ,C_IRANYITOSZAM
 | 
						|
          ,C_VAROS
 | 
						|
          ,C_KOZTERULET
 | 
						|
          ,C_KOZTERULETJELLEGE
 | 
						|
          ,C_HAZSZAM
 | 
						|
          ,C_FELHASZNALOID
 | 
						|
          ,C_INTEZMENYID
 | 
						|
          ,C_TANEVID
 | 
						|
          ,MODIFIER
 | 
						|
          ,CREATOR
 | 
						|
        ) VALUES (
 | 
						|
           908
 | 
						|
          ,765
 | 
						|
          ,src.TartozkodasiCimIranyitoszam
 | 
						|
          ,src.TartozkodasiCimTelepules
 | 
						|
          ,src.TartozkodasiCimKozteruletNev
 | 
						|
          ,src.TartozkodasiCimKozteruletJelleg
 | 
						|
          ,src.TartozkodasiCimHazszam
 | 
						|
          ,src.insertedID
 | 
						|
          ,@intezmenyID
 | 
						|
          ,@tanevID
 | 
						|
          ,NULL
 | 
						|
          ,@userId    
 | 
						|
        );        
 | 
						|
        
 | 
						|
    ----- TARTÓZKODÁSI HELY -----
 | 
						|
    MERGE T_CIM_OSSZES trg
 | 
						|
      USING (
 | 
						|
        SELECT t.*, l.insertedId AS insertedID 
 | 
						|
        FROM #tempTanulok t
 | 
						|
          INNER JOIN @linkTable l ON t.ID = l.tempID
 | 
						|
        ) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 907
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
					trg.C_CIMTIPUSA = 907, 
 | 
						|
					trg.C_ORSZAG = 765,
 | 
						|
					trg.C_IRANYITOSZAM = src.AllandoLakcimIranyitoSzam,
 | 
						|
					trg.C_VAROS = src.AllandoLakcimTelepules,
 | 
						|
					trg.C_KOZTERULET = src.AllandoLakcimKozteruletNev,
 | 
						|
					trg.C_KOZTERULETJELLEGE = src.AllandoLakcimKozteruletJelleg,
 | 
						|
					trg.C_HAZSZAM = src.AllandoLakcimHazszam,
 | 
						|
					trg.C_FELHASZNALOID = src.insertedId,
 | 
						|
					trg.TOROLT = 'F',
 | 
						|
					trg.SERIAL = trg.SERIAL + 1,
 | 
						|
					trg.LASTCHANGED = GETDATE(),
 | 
						|
					trg.MODIFIER = @userId
 | 
						|
      WHEN NOT MATCHED THEN
 | 
						|
	      INSERT (
 | 
						|
           C_CIMTIPUSA
 | 
						|
          ,C_ORSZAG
 | 
						|
          ,C_IRANYITOSZAM
 | 
						|
          ,C_VAROS
 | 
						|
          ,C_KOZTERULET
 | 
						|
          ,C_KOZTERULETJELLEGE
 | 
						|
          ,C_HAZSZAM
 | 
						|
          ,C_FELHASZNALOID
 | 
						|
          ,C_INTEZMENYID
 | 
						|
          ,C_TANEVID
 | 
						|
          ,MODIFIER
 | 
						|
          ,CREATOR
 | 
						|
        ) VALUES (
 | 
						|
           907
 | 
						|
          ,765
 | 
						|
          ,src.AllandoLakcimIranyitoSzam
 | 
						|
          ,src.AllandoLakcimTelepules
 | 
						|
          ,src.AllandoLakcimKozteruletNev
 | 
						|
          ,src.AllandoLakcimKozteruletJelleg
 | 
						|
          ,src.AllandoLakcimHazszam
 | 
						|
          ,src.insertedID
 | 
						|
          ,@intezmenyID
 | 
						|
          ,@tanevID
 | 
						|
          ,NULL
 | 
						|
          ,@userId
 | 
						|
        );   
 | 
						|
	
 | 
						|
	----- E-mail cím ----- 
 | 
						|
    MERGE T_EMAIL_OSSZES
 | 
						|
		USING (
 | 
						|
			SELECT #tempTanulok.*, linkTable.insertedId AS insertedID 
 | 
						|
			FROM #tempTanulok
 | 
						|
				INNER JOIN 
 | 
						|
					@linkTable linkTable ON #tempTanulok.ID = linkTable.tempID --AND C_ALAPERTELMEZETT = 'T'
 | 
						|
				WHERE #tempTanulok.EmailCim IS NOT NULL AND #tempTanulok.EmailCim <> ''
 | 
						|
				)
 | 
						|
				src ON 
 | 
						|
				T_EMAIL_OSSZES.C_FELHASZNALOID		= src.TanuloID AND
 | 
						|
				T_EMAIL_OSSZES.C_TANEVID			= @tanevID AND 
 | 
						|
				src.isTanulo						= 1 AND
 | 
						|
				T_EMAIL_OSSZES.C_ALAPERTELMEZETT	= 'T'
 | 
						|
		WHEN 
 | 
						|
			MATCHED THEN
 | 
						|
					  UPDATE SET
 | 
						|
						T_EMAIL_OSSZES.C_EMAILCIM	= src.EmailCim,
 | 
						|
						T_EMAIL_OSSZES.TOROLT		= 'F',
 | 
						|
    					T_EMAIL_OSSZES.SERIAL		= T_EMAIL_OSSZES.SERIAL + 1,
 | 
						|
    					T_EMAIL_OSSZES.LASTCHANGED	= GETDATE(),
 | 
						|
    					T_EMAIL_OSSZES.MODIFIER		= @userId
 | 
						|
		WHEN 
 | 
						|
			NOT MATCHED THEN
 | 
						|
					  INSERT (
 | 
						|
						 C_EMAILTIPUSA
 | 
						|
						,C_EMAILCIM
 | 
						|
						,C_ALAPERTELMEZETT
 | 
						|
						,C_GONDVISELOID
 | 
						|
						,C_FELHASZNALOID
 | 
						|
						,C_INTEZMENYID
 | 
						|
						,C_TANEVID
 | 
						|
						,MODIFIER
 | 
						|
						,CREATOR          
 | 
						|
					  ) VALUES (
 | 
						|
						 1024 -- C_EMAILTIPUSA - int   NA
 | 
						|
						,src.EmailCim -- C_EMAILCIM - nvarchar(100)
 | 
						|
						,'T' -- C_ALAPERTELMEZETT - char(1)
 | 
						|
						,NULL   -- C_GONDVISELOID - int
 | 
						|
						,src.insertedID   -- C_FELHASZNALOID - int
 | 
						|
						,@intezmenyID -- C_INTEZMENYID - int
 | 
						|
						,@tanevID -- C_TANEVID - int
 | 
						|
						,NULL   -- MODIFIER - int
 | 
						|
						,@userId   -- CREATOR - int      
 | 
						|
		  );
 | 
						|
				     
 | 
						|
    COMMIT TRANSACTION
 | 
						|
  END TRY
 | 
						|
  BEGIN CATCH
 | 
						|
    IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0 
 | 
						|
      ROLLBACK TRANSACTION;
 | 
						|
    THROW
 | 
						|
  END CATCH
 | 
						|
END
 |