490 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			490 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
DROP PROCEDURE IF EXISTS [dbo].[sp_KIRImportTanulok]
 | 
						|
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)'),
 | 
						|
		SzuletesiNevVezetekNev =  Tanulo.value('(SzuletesiNevVezetekNev)[1]', 'nvarchar(50)'),	SzuletesiNevUtoNev =  Tanulo.value('(SzuletesiNevKeresztNev)[1]', 'nvarchar(50)'),
 | 
						|
		SzuletesiNevNevSorrend =  Tanulo.value('(SzuletesiNevNevSorrend)[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)'),
 | 
						|
		BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = Tanulo.value('(BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott)[1]', 'char(1)'),
 | 
						|
		UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = Tanulo.value('(UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja)[1]', 'date'),
 | 
						|
 | 
						|
    0 AS isTanulo,
 | 
						|
    0 TanuloID
 | 
						|
	INTO #tempTanulok
 | 
						|
	FROM @TanulokXML.nodes('/KIRTanulok/ImportaltTanulok/Tanulo') as Tanulok(Tanulo)
 | 
						|
  
 | 
						|
  -- A létezo 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 = 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 AND
 | 
						|
		t.OktatasiAzonosito = fh.C_OKTATASIAZONOSITO
 | 
						|
	WHERE fh.TOROLT = 'F'
 | 
						|
    AND fh.C_TANEVID = @tanevID 
 | 
						|
    AND fh.C_INTEZMENYID = @intezmenyID
 | 
						|
    AND NOT EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID)
 | 
						|
    AND EXISTS (SELECT 1 FROM T_TANULO_OSSZES tn WHERE tn.ID = fh.ID)
 | 
						|
  
 | 
						|
  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 = IIF(src.SzuletesiNevVezetekNev IS NULL, src.VezetekNev + ' ' +src.UtoNev, src.SzuletesiNevVezetekNev + ' ' + src.SzuletesiNevUtoNev),
 | 
						|
        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 = IIF(src.SzuletesiNevNevSorrend IS NULL, 'F' , src.SzuletesiNevNevSorrend),
 | 
						|
        trg.C_ANYJANEVESORREND = src.AnyjaNeveNevSorrend,
 | 
						|
        trg.C_ALAPERTELMEZETTLCID = 1038,
 | 
						|
        trg.C_SZULETESINEVELVALASZTO = IIF(src.SzuletesiNevVezetekNev IS NULL ,LEN(src.VezetekNev) ,LEN(src.SzuletesiNevVezetekNev)),
 | 
						|
        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,
 | 
						|
		 trg.C_BELUGYALTALAZONOSITOTT = src.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott,
 | 
						|
		 trg.C_UTOLSOADATFRISSITESIDOPONTJA =  src.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
 | 
						|
    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
 | 
						|
			,C_BELUGYALTALAZONOSITOTT
 | 
						|
			,C_UTOLSOADATFRISSITESIDOPONTJA
 | 
						|
			)
 | 
						|
  		VALUES (
 | 
						|
  			 src.Nem
 | 
						|
  			,src.SzuletesiDatum
 | 
						|
			,IIF(src.SzuletesiNevVezetekNev IS NULL, src.VezetekNev +' ' +src.UtoNev, src.SzuletesiNevVezetekNev + ' ' + src.SzuletesiNevUtoNev)
 | 
						|
  			,src.AnyjaNeve
 | 
						|
  			,src.SzuletesiHely
 | 
						|
  			,src.TAJSzam
 | 
						|
  			,src.Allampolgarsag
 | 
						|
  			,src.JogviszonyJellege
 | 
						|
  			,src.KeresesiNev
 | 
						|
  			,src.SzuletesiOrszag
 | 
						|
  			,IIF(src.SzuletesiNevNevSorrend IS NULL, 'F' , src.SzuletesiNevNevSorrend) 
 | 
						|
  			,src.AnyjaNeveNevSorrend
 | 
						|
  			,1038
 | 
						|
  			,IIF(src.SzuletesiNevVezetekNev IS NULL ,LEN(src.VezetekNev) ,LEN(src.SzuletesiNevVezetekNev))
 | 
						|
  			,(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
 | 
						|
			,src.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott
 | 
						|
			,src.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
 | 
						|
      )
 | 
						|
      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 NOT EXISTS (
 | 
						|
          SELECT 1 
 | 
						|
          FROM T_FELHASZNALOBELEPES_OSSZES belepes 
 | 
						|
					WHERE 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-----------
 | 
						|
    DECLARE @szerepkorId int
 | 
						|
    
 | 
						|
    SELECT @szerepkorId = ID 
 | 
						|
    FROM T_SZEREPKOR_OSSZES 
 | 
						|
    WHERE C_SZEREPKORTIPUS = 1761 
 | 
						|
      AND C_TANEVID = @tanevID
 | 
						|
		
 | 
						|
    INSERT INTO T_FELHASZNALO_SZEREPKOR (C_FELHASZNALOID, C_SZEREPKORID)
 | 
						|
		SELECT fh.ID, @szerepkorId
 | 
						|
		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_FELHASZNALO_SZEREPKOR fsz WHERE fsz.C_FELHASZNALOID = fh.ID AND C_SZEREPKORID = @szerepkorId )
 | 
						|
    
 | 
						|
    ----- 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 trg
 | 
						|
		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 
 | 
						|
				trg.C_FELHASZNALOID		= src.TanuloID 
 | 
						|
			AND	trg.C_TANEVID			= @tanevID 
 | 
						|
			AND	src.isTanulo						= 1 
 | 
						|
			AND	trg.C_ALAPERTELMEZETT	= 'T'
 | 
						|
		WHEN MATCHED THEN
 | 
						|
			UPDATE SET
 | 
						|
				 trg.C_EMAILCIM	= src.EmailCim
 | 
						|
				,trg.TOROLT		= 'F'
 | 
						|
				,trg.SERIAL		= trg.SERIAL + 1
 | 
						|
				,trg.LASTCHANGED	= GETDATE()
 | 
						|
				,trg.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 |