559 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			559 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
DROP PROCEDURE IF EXISTS [dbo].[sp_KIRImportTanarok]
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE [dbo].[sp_KIRImportTanarok]
 | 
						|
  -- Add the parameters for the stored procedure here
 | 
						|
   @TanarokXML xml
 | 
						|
  ,@FeladatellatasiHelyId int
 | 
						|
  ,@intezmenyID int
 | 
						|
  ,@tanevID int
 | 
						|
  ,@userId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  -- SET NOCOUNT ON added to prevent extra result sets from
 | 
						|
  -- interfering with SELECT statements.
 | 
						|
  SET NOCOUNT ON;
 | 
						|
  SET XACT_ABORT ON;
 | 
						|
  -- XML paraméter értelmezése
 | 
						|
  DECLARE @Tanarok TABLE (
 | 
						|
     Id int
 | 
						|
    ,OktatasiAzonosito varchar(15)
 | 
						|
    ,KretaKod varchar(6)
 | 
						|
    ,VezetekNev nvarchar(50)  
 | 
						|
    ,UtoNev nvarchar(50)
 | 
						|
    ,Elotag nvarchar(10)
 | 
						|
    ,NevSorrend char(1)
 | 
						|
    ,AnyjaNeveElotag nvarchar(10) 
 | 
						|
    ,AnyjaNeveVezetekNev nvarchar(50)
 | 
						|
    ,AnyjaNeveKeresztNev nvarchar(50)  
 | 
						|
    ,AnyjaNeveNevSorrend nvarchar(50)
 | 
						|
    ,SzuletesiDatum datetime
 | 
						|
    ,SzuletesiHely nvarchar(255)
 | 
						|
    ,SzuletesiOrszag int  
 | 
						|
	,SzuletesiNeveElotag nvarchar(10) 
 | 
						|
    ,SzuletesiNeveVezetekNev nvarchar(50)
 | 
						|
    ,SzuletesiNeveKeresztNev nvarchar(50)  
 | 
						|
    ,SzuletesiNeveNevSorrend nvarchar(50)
 | 
						|
    ,Allampolgarsag INT
 | 
						|
    ,Allampolgarsag2 int
 | 
						|
    ,Nem int
 | 
						|
    ,EmailCim nvarchar(255)
 | 
						|
    ,Telefonszam nvarchar(100)
 | 
						|
    ,AllandoLakcimIranyitoSzam nvarchar(10)  
 | 
						|
    ,AllandoLakcimTelepules nvarchar(255)
 | 
						|
    ,AllandoLakcimKozteruletNev nvarchar(255)
 | 
						|
    ,AllandoLakcimKozteruletJelleg int
 | 
						|
    ,AllandoLakcimHazszam nvarchar(20)
 | 
						|
    ,TartozkodasiCimTelepules nvarchar(255)
 | 
						|
    ,TartozkodasiCimKozteruletNev nvarchar(255)  
 | 
						|
    ,TartozkodasiCimKozteruletJelleg int
 | 
						|
    ,TartozkodasiCimHazszam nvarchar(20)  
 | 
						|
    ,TartozkodasiCimIranyitoszam nvarchar(20)
 | 
						|
    ,KeresesiNev nvarchar(255) 
 | 
						|
    ,NyomtatasiNev nvarchar(255)
 | 
						|
    ,OMAzonosito nvarchar(15) 
 | 
						|
    ,Foallas char(1)
 | 
						|
    ,KotelezoOraszam nvarchar(15)
 | 
						|
	,FoglalkoztatasTipus int
 | 
						|
    ,MunkakorTipusa nvarchar(15)
 | 
						|
    ,MunkaviszonyTipusa nvarchar(15)	
 | 
						|
    ,JogviszonyKezdete datetime
 | 
						|
    ,FelhasznaloId int -- Ide kerül be a tényleges ID, amit a DB-ben is van/lesz
 | 
						|
    ,isUjTanar bit -- létezik-e már a rendszereben
 | 
						|
	,BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott char(1)
 | 
						|
	,UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja dateTime
 | 
						|
 | 
						|
  )
 | 
						|
  
 | 
						|
  INSERT INTO @Tanarok (
 | 
						|
     Id
 | 
						|
    ,OktatasiAzonosito
 | 
						|
    ,KretaKod
 | 
						|
    ,VezetekNev
 | 
						|
    ,UtoNev
 | 
						|
    ,Elotag
 | 
						|
    ,NevSorrend
 | 
						|
    ,AnyjaNeveElotag
 | 
						|
    ,AnyjaNeveVezetekNev
 | 
						|
    ,AnyjaNeveKeresztNev
 | 
						|
    ,AnyjaNeveNevSorrend
 | 
						|
    ,SzuletesiDatum
 | 
						|
    ,SzuletesiHely
 | 
						|
    ,SzuletesiOrszag
 | 
						|
    ,SzuletesiNeveElotag
 | 
						|
    ,SzuletesiNeveVezetekNev
 | 
						|
    ,SzuletesiNeveKeresztNev 
 | 
						|
    ,SzuletesiNeveNevSorrend
 | 
						|
    ,Allampolgarsag
 | 
						|
	,Allampolgarsag2
 | 
						|
    ,Nem
 | 
						|
    ,EmailCim
 | 
						|
    ,Telefonszam
 | 
						|
    ,AllandoLakcimIranyitoSzam
 | 
						|
    ,AllandoLakcimTelepules
 | 
						|
    ,AllandoLakcimKozteruletNev
 | 
						|
    ,AllandoLakcimKozteruletJelleg
 | 
						|
    ,AllandoLakcimHazszam
 | 
						|
    ,TartozkodasiCimTelepules
 | 
						|
    ,TartozkodasiCimKozteruletNev
 | 
						|
    ,TartozkodasiCimKozteruletJelleg
 | 
						|
    ,TartozkodasiCimHazszam
 | 
						|
    ,TartozkodasiCimIranyitoszam
 | 
						|
    ,KeresesiNev
 | 
						|
    ,NyomtatasiNev
 | 
						|
    ,OMAzonosito
 | 
						|
    ,Foallas
 | 
						|
    ,KotelezoOraszam
 | 
						|
	,FoglalkoztatasTipus    
 | 
						|
	,MunkakorTipusa
 | 
						|
    ,MunkaviszonyTipusa	
 | 
						|
	,JogviszonyKezdete
 | 
						|
    ,isUjTanar
 | 
						|
	,BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott
 | 
						|
	,UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
 | 
						|
  ) SELECT  
 | 
						|
    Id = Tanar.value('(ID)[1]', 'int'),
 | 
						|
    OktatasiAzonosito = Tanar.value('(OktatasiAzonosito)[1]', 'varchar(15)'),
 | 
						|
    KretaKod = Tanar.value('(KretaKod)[1]', 'varchar(6)'),
 | 
						|
    VezetekNev =  Tanar.value('(ViseltNevVezetekNev)[1]', 'nvarchar(50)'),  
 | 
						|
    UtoNev =  Tanar.value('(ViseltNevKeresztNev)[1]', 'nvarchar(50)'),
 | 
						|
    Elotag =  Tanar.value('(ViseltNevElotag)[1]', 'nvarchar(10)'),  
 | 
						|
    NevSorrend =  Tanar.value('(ViseltNevNevSorrend)[1]', 'char(1)'),
 | 
						|
    AnyjaNeveElotag =  Tanar.value('(AnyjaNeveElotag)[1]', 'nvarchar(10)'), 
 | 
						|
    AnyjaNeveVezetekNev =  Tanar.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(50)'),
 | 
						|
    AnyjaNeveKeresztNev =  Tanar.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(50)'),  
 | 
						|
    AnyjaNeveNevSorrend =  Tanar.value('(AnyjaNeveNevSorrend)[1]', 'nvarchar(50)'),
 | 
						|
    SzuletesiDatum =  Tanar.value('(SzuletesiDatum)[1]', 'date'),  
 | 
						|
    SzuletesiHely =  Tanar.value('(SzuletesiHely)[1]', 'nvarchar(255)'),
 | 
						|
    SzuletesiOrszag =  Tanar.value('(SzuletesiOrszag)[1]', 'int'),  
 | 
						|
	SzuletesiNeveElotag = Tanar.value('(SzuletesiNevElotag)[1]', 'nvarchar(10)'), 
 | 
						|
    SzuletesiNeveVezetekNev = Tanar.value('(SzuletesiNevVezetekNev)[1]', 'nvarchar(50)'), 
 | 
						|
    SzuletesiNeveKeresztNev = Tanar.value('(SzuletesiNevKeresztNev)[1]', 'nvarchar(50)'), 
 | 
						|
    SzuletesiNeveNevSorrend = Tanar.value('(SzuletesiNevNevSorrend)[1]', 'nvarchar(50)'), 
 | 
						|
    Allampolgarsag =  Tanar.value('(Allampolgarsag)[1]', 'int'),
 | 
						|
	Allampolgarsag2 =  Tanar.value('(Allampolgarsag2)[1][not(@xsi:nil = "true")]', 'int'),
 | 
						|
    Nem =  Tanar.value('(Nem)[1]', 'int'),  
 | 
						|
    EmailCim =  Tanar.value('(EmailCim)[1]', 'nvarchar(255)'),
 | 
						|
    Telefonszam =  Tanar.value('(Telefonszam)[1]', 'nvarchar(100)'),
 | 
						|
    AllandoLakcimIranyitoSzam =  Tanar.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(10)'),  
 | 
						|
    AllandoLakcimTelepules =  Tanar.value('(AllandoLakcimTelepules)[1]', 'nvarchar(255)'),
 | 
						|
    AllandoLakcimKozteruletNev =  Tanar.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(255)'),  
 | 
						|
    AllandoLakcimKozteruletJelleg =  Tanar.value('number((AllandoLakcimKozteruletJelleg)[1])', 'int'),
 | 
						|
    AllandoLakcimHazszam =  Tanar.value('(AllandoLakcimHazszam)[1]', 'nvarchar(20)'),  
 | 
						|
    TartozkodasiCimTelepules =  Tanar.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(255)'),
 | 
						|
    TartozkodasiCimKozteruletNev =  Tanar.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(255)'),  
 | 
						|
    TartozkodasiCimKozteruletJelleg =  Tanar.value('number((TartozkodasiCimKozteruletJelleg)[1])', 'int'),
 | 
						|
    TartozkodasiCimHazszam =  Tanar.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(20)'),  
 | 
						|
    TartozkodasiCimIranyitoszam =  Tanar.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'),
 | 
						|
    KeresesiNev =  Tanar.value('(KeresesiNev)[1]', 'nvarchar(255)'), 
 | 
						|
    NyomtatasiNev =  ltrim(Tanar.value('(NyomtatasiNev)[1]', 'nvarchar(255)')),
 | 
						|
    OMAzonosito =  Tanar.value('(OMAzonosito)[1]', 'nvarchar(15)'), 
 | 
						|
    Foallas =  Tanar.value('(Foallas)[1]', 'char(1)'),
 | 
						|
    KotelezoOraszam =  Tanar.value('(KotelezoOraszam)[1]', 'nvarchar(15)'), 
 | 
						|
	FoglalkoztatasTipus =  Tanar.value('number((FoglalkoztatasTipus)[1])', 'int'),
 | 
						|
    MunkakorTipusa =  Tanar.value('(MunkakorTipusa)[1]', 'nvarchar(15)'),
 | 
						|
    MunkaviszonyTipusa =  Tanar.value('(MunkaviszonyTipusa)[1]', 'nvarchar(15)'),
 | 
						|
	JogviszonyKezdete =  Tanar.value('(JogviszonyKezdete)[1]', 'date'),	
 | 
						|
    1 AS isUjTanar,
 | 
						|
	BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = Tanar.value('(BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott)[1]', 'char(1)'),
 | 
						|
	UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = Tanar.value('(UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja)[1]', 'date')
 | 
						|
  FROM @TanarokXML.nodes('/KIRTanarok/ImportaltTanarok/Tanar') as Tanarok(Tanar)
 | 
						|
  
 | 
						|
  DECLARE @LinkTable TABLE (felHasznaloId int, kretaKod varchar(6), action nvarchar(20))
 | 
						|
  
 | 
						|
  BEGIN TRY
 | 
						|
    BEGIN TRANSACTION
 | 
						|
  
 | 
						|
    MERGE T_FELHASZNALO_OSSZES fh
 | 
						|
    USING (
 | 
						|
      SELECT * FROM @Tanarok
 | 
						|
    ) t ON t.KretaKod = fh.C_KRETAKOD AND fh.C_INTEZMENYID = @intezmenyid AND fh.C_TANEVID = @tanevID
 | 
						|
    WHEN MATCHED THEN
 | 
						|
      UPDATE SET
 | 
						|
        fh.C_NEME = t.Nem,
 | 
						|
        fh.C_SZULETESIDATUM = t.SzuletesiDatum,
 | 
						|
        fh.C_SZULETESINEV = t.SzuletesiNeveVezetekNev + ' ' + t.SzuletesiNeveKeresztNev,
 | 
						|
        fh.C_ANYJANEVE = t.AnyjaNeveVezetekNev + ' ' + t.AnyjaNeveKeresztNev,
 | 
						|
        fh.C_SZULETESIHELY = t.SzuletesiHely,
 | 
						|
        fh.C_ALLAMPOLGARSAGA = t.Allampolgarsag,
 | 
						|
		fh.C_ALLAMPOLGARSAGA2 = t.Allampolgarsag2,
 | 
						|
        fh.C_KERESESINEV = t.KeresesiNev,
 | 
						|
        fh.C_SZULETESIORSZAG = t.SzuletesiOrszag,
 | 
						|
        fh.C_SZULETESINEVSORREND = t.NevSorrend,
 | 
						|
        fh.C_ANYJANEVESORREND = t.AnyjaNeveNevSorrend,
 | 
						|
        fh.C_ALAPERTELMEZETTLCID = 1038,
 | 
						|
        fh.C_SZULETESINEVELVALASZTO = LEN(t.SzuletesiNeveVezetekNev),
 | 
						|
        fh.C_ANYJANEVEELVALASZTO = LEN(t.AnyjaNeveVezetekNev),
 | 
						|
        fh.C_NYOMTATASINEV = t.NyomtatasiNev,
 | 
						|
        fh.C_UTONEV = t.UtoNev,
 | 
						|
        fh.C_VEZETEKNEV = t.VezetekNev,
 | 
						|
        fh.C_ELOTAG = t.Elotag,
 | 
						|
        fh.C_NEVSORREND = t.NevSorrend,
 | 
						|
        fh.C_NYILVANTARTASKEZDETE = GETDATE(),
 | 
						|
        fh.C_OMKOD = t.OMAzonosito,
 | 
						|
        fh.C_KRETAKOD = t.KretaKod,
 | 
						|
        fh.C_OKTATASIAZONOSITO = t.OktatasiAzonosito,
 | 
						|
        fh.TOROLT = 'F',
 | 
						|
        fh.SERIAL += 1,
 | 
						|
        fh.LASTCHANGED = GETDATE(),
 | 
						|
        fh.MODIFIER = @userId,
 | 
						|
		fh.C_BELUGYALTALAZONOSITOTT = t.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott,
 | 
						|
		fh.C_UTOLSOADATFRISSITESIDOPONTJA =  t.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
      INSERT (
 | 
						|
        [C_NEME],
 | 
						|
        [C_SZULETESIDATUM],
 | 
						|
        [C_SZULETESINEV],
 | 
						|
        [C_ANYJANEVE],
 | 
						|
        [C_SZULETESIHELY],
 | 
						|
        [C_ALLAMPOLGARSAGA],
 | 
						|
		[C_ALLAMPOLGARSAGA2],
 | 
						|
        [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 (
 | 
						|
        t.Nem, 
 | 
						|
        t.SzuletesiDatum, 
 | 
						|
        t.SzuletesiNeveVezetekNev + ' ' + t.SzuletesiNeveKeresztNev,
 | 
						|
        t.AnyjaNeveVezetekNev + ' ' + t.AnyjaNeveKeresztNev, 
 | 
						|
        t.SzuletesiHely,  
 | 
						|
        t.Allampolgarsag,
 | 
						|
		t.Allampolgarsag2, 
 | 
						|
        t.KeresesiNev, 
 | 
						|
        t.SzuletesiOrszag, 
 | 
						|
		--t.SzuletesiNev,
 | 
						|
        t.SzuletesiNeveNevSorrend, 
 | 
						|
        t.AnyjaNeveNevSorrend, 
 | 
						|
        1038, 
 | 
						|
        LEN(t.SzuletesiNeveVezetekNev), 
 | 
						|
        LEN(t.AnyjaNeveVezetekNev), 
 | 
						|
        t.NyomtatasiNev,
 | 
						|
        t.UtoNev, 
 | 
						|
        t.VezetekNev, 
 | 
						|
        t.Elotag, 
 | 
						|
        t.NevSorrend,
 | 
						|
        GETDATE(), 
 | 
						|
        t.OktatasiAzonosito, 
 | 
						|
        t.OMAzonosito,
 | 
						|
        t.KretaKod, 
 | 
						|
        @intezmenyID, 
 | 
						|
        @tanevID,
 | 
						|
        NULL, 
 | 
						|
        @userId,
 | 
						|
		t.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott,
 | 
						|
		t.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
 | 
						|
      )
 | 
						|
    OUTPUT INSERTED.ID, t.KretaKod, $action
 | 
						|
    INTO @LinkTable(felhasznaloId, kretaKod, action);
 | 
						|
    
 | 
						|
    UPDATE t
 | 
						|
    SET t.FelhasznaloId = x.felhasznaloId
 | 
						|
      ,t.isUjTanar = 0
 | 
						|
    FROM @Tanarok t
 | 
						|
      INNER JOIN @LinkTable x ON x.KretaKod = t.KretaKod
 | 
						|
    
 | 
						|
    MERGE T_ALKALMAZOTT_OSSZES a
 | 
						|
    USING (
 | 
						|
      SELECT * FROM @Tanarok
 | 
						|
    ) t ON a.ID = t.FelhasznaloId AND a.C_ALINTEZMENYID = @intezmenyid AND a.C_ALTANEVID = @tanevID
 | 
						|
    WHEN MATCHED THEN
 | 
						|
      UPDATE SET
 | 
						|
        a.C_FOALLAS = t.Foallas,
 | 
						|
        a.TOROLT = 'F',
 | 
						|
        a.SERIAL += 1,
 | 
						|
        a.LASTCHANGED = GETDATE(),
 | 
						|
        a.MODIFIER = @userId        
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
      INSERT (
 | 
						|
        [ID], 
 | 
						|
        [C_FOALLAS],
 | 
						|
        [C_ALINTEZMENYID], 
 | 
						|
        [C_ALTANEVID],
 | 
						|
        [MODIFIER],
 | 
						|
        [CREATOR]
 | 
						|
      ) VALUES (
 | 
						|
        t.FelhasznaloId, 
 | 
						|
        t.Foallas, 
 | 
						|
        @intezmenyID,
 | 
						|
        @tanevID, 
 | 
						|
        NULL, 
 | 
						|
        @userId
 | 
						|
      );
 | 
						|
    MERGE T_MUNKAUGYIADATOK_OSSZES m
 | 
						|
    USING (
 | 
						|
      SELECT * FROM @Tanarok
 | 
						|
    ) t ON m.C_ALKALMAZOTTID = t.FelhasznaloId AND m.C_INTEZMENYID = @intezmenyid AND m.C_TANEVID = @tanevID
 | 
						|
    WHEN MATCHED THEN
 | 
						|
      UPDATE SET
 | 
						|
        m.C_ALKALMAZASKEZDETE = t.JogviszonyKezdete,
 | 
						|
        m.C_KOTELEZOORASZAM = t.KotelezoOraszam,
 | 
						|
		m.C_FOGLALKOZTATASTIPUS = t.FoglalkoztatasTipus,
 | 
						|
		m.C_MUNKAKORTIPUSA = IIF (t.MunkakorTipusa = 548,  m.C_MUNKAKORTIPUSA, t.MunkakorTipusa ),	 				
 | 
						|
		m.C_MUNKAVISZONYTIPUSA = IIF (t.MunkaviszonyTipusa = 643,  m.C_MUNKAVISZONYTIPUSA, t.MunkaviszonyTipusa ),
 | 
						|
        m.C_FELADATELLATASIHELYID = @FeladatellatasiHelyId,
 | 
						|
        m.TOROLT = 'F',
 | 
						|
        m.SERIAL +=  1,
 | 
						|
        m.LASTCHANGED = GETDATE(),
 | 
						|
        m.MODIFIER = @userId        
 | 
						|
    WHEN NOT MATCHED THEN
 | 
						|
      INSERT (
 | 
						|
        C_ALKALMAZASKEZDETE,
 | 
						|
        C_KOTELEZOORASZAM,
 | 
						|
		C_FOGLALKOZTATASTIPUS,
 | 
						|
        C_MUNKAKORTIPUSA,
 | 
						|
        C_MUNKAVISZONYTIPUSA,		
 | 
						|
        C_ALKALMAZOTTID,
 | 
						|
        C_FELADATELLATASIHELYID,
 | 
						|
        C_INTEZMENYID,
 | 
						|
        C_TANEVID,
 | 
						|
        MODIFIER,
 | 
						|
        CREATOR
 | 
						|
      ) VALUES (
 | 
						|
        t.JogviszonyKezdete,
 | 
						|
        t.KotelezoOraszam,
 | 
						|
		t.FoglalkoztatasTipus,
 | 
						|
        t.MunkakorTipusa,
 | 
						|
        t.MunkaviszonyTipusa,		
 | 
						|
        t.FelhasznaloId,
 | 
						|
        @FeladatellatasiHelyId,
 | 
						|
        @intezmenyID,
 | 
						|
        @tanevID,
 | 
						|
        NULL, 
 | 
						|
        @userId
 | 
						|
      );
 | 
						|
      
 | 
						|
      
 | 
						|
      MERGE T_CIM_OSSZES c
 | 
						|
      USING (
 | 
						|
        SELECT * FROM @Tanarok
 | 
						|
      ) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 908
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
          c.[C_CIMTIPUSA] = 908,
 | 
						|
          c.[C_ORSZAG] = 765,
 | 
						|
          c.[C_IRANYITOSZAM] = t.TartozkodasiCimIranyitoszam,
 | 
						|
          c.[C_VAROS] = t.TartozkodasiCimTelepules,
 | 
						|
          c.[C_KOZTERULET] = t.TartozkodasiCimKozteruletNev,
 | 
						|
          c.[C_KOZTERULETJELLEGE] = t.TartozkodasiCimKozteruletJelleg,
 | 
						|
          c.[C_HAZSZAM] = t.TartozkodasiCimHazszam,
 | 
						|
          c.[TOROLT] = 'F',
 | 
						|
          c.SERIAL += 1,
 | 
						|
          c.LASTCHANGED = GETDATE(),
 | 
						|
          c.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, 
 | 
						|
          t.TartozkodasiCimIranyitoszam,
 | 
						|
          t.TartozkodasiCimTelepules,
 | 
						|
          t.TartozkodasiCimKozteruletNev,
 | 
						|
          t.TartozkodasiCimKozteruletJelleg,
 | 
						|
          t.TartozkodasiCimHazszam,
 | 
						|
          t.FelhasznaloId,
 | 
						|
          @intezmenyID,
 | 
						|
          @tanevID,
 | 
						|
          NULL,
 | 
						|
          @userId
 | 
						|
        );   
 | 
						|
        
 | 
						|
      MERGE T_CIM_OSSZES c
 | 
						|
      USING (
 | 
						|
        SELECT * FROM @Tanarok
 | 
						|
      ) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 907
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
          c.[C_CIMTIPUSA] = 907, 
 | 
						|
          c.[C_ORSZAG] = 765,
 | 
						|
          c.[C_IRANYITOSZAM] = t.AllandoLakcimIranyitoSzam,
 | 
						|
          c.[C_VAROS] = t.AllandoLakcimTelepules,
 | 
						|
          c.[C_KOZTERULET] = t.AllandoLakcimKozteruletNev,
 | 
						|
          c.[C_KOZTERULETJELLEGE] = t.AllandoLakcimKozteruletJelleg,
 | 
						|
          c.[C_HAZSZAM] = t.AllandoLakcimHazszam,
 | 
						|
          c.[TOROLT] = 'F',  
 | 
						|
          c.SERIAL += 1,
 | 
						|
          c.LASTCHANGED = GETDATE(),
 | 
						|
          c.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,
 | 
						|
          t.AllandoLakcimIranyitoSzam, 
 | 
						|
          t.AllandoLakcimTelepules,
 | 
						|
          t.AllandoLakcimKozteruletNev,
 | 
						|
          t.AllandoLakcimKozteruletJelleg, 
 | 
						|
          t.AllandoLakcimHazszam,
 | 
						|
          t.FelhasznaloId,
 | 
						|
          @intezmenyID,
 | 
						|
          @tanevID,
 | 
						|
          NULL,
 | 
						|
          @userId
 | 
						|
        );   
 | 
						|
 | 
						|
      MERGE T_EMAIL_OSSZES e
 | 
						|
      USING (
 | 
						|
        SELECT * FROM @Tanarok WHERE EmailCim IS NOT NULL
 | 
						|
      ) t ON e.C_FELHASZNALOID = t.FelhasznaloId AND e.C_INTEZMENYID = @intezmenyid AND e.C_TANEVID = @tanevID
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
          e.C_EMAILCIM = t.EmailCim,
 | 
						|
          e.SERIAL += 1,
 | 
						|
          e.LASTCHANGED = GETDATE(),
 | 
						|
          e.MODIFIER = @userId    
 | 
						|
      WHEN NOT MATCHED THEN
 | 
						|
        INSERT (
 | 
						|
          [C_EMAILTIPUSA],
 | 
						|
          [C_EMAILCIM],
 | 
						|
          [C_ALAPERTELMEZETT],
 | 
						|
          [C_GONDVISELOID],
 | 
						|
          [C_FELHASZNALOID],
 | 
						|
          [C_INTEZMENYID],
 | 
						|
          [C_TANEVID],
 | 
						|
          [MODIFIER],
 | 
						|
          [CREATOR]
 | 
						|
        ) VALUES (
 | 
						|
          1025, 
 | 
						|
          t.EmailCim, 
 | 
						|
          'T', 
 | 
						|
          null,
 | 
						|
          t.FelhasznaloId,
 | 
						|
          @intezmenyID,
 | 
						|
          @tanevID,
 | 
						|
          NULL,
 | 
						|
          @userId
 | 
						|
        ); 
 | 
						|
	  
 | 
						|
      MERGE T_TELEFON_OSSZES tf
 | 
						|
      USING (
 | 
						|
        SELECT * FROM @Tanarok WHERE Telefonszam IS NOT NULL
 | 
						|
      ) t ON tf.C_FELHASZNALOID = t.FelhasznaloId AND tf.C_INTEZMENYID = @intezmenyid AND tf.C_TANEVID = @tanevID
 | 
						|
      WHEN MATCHED THEN
 | 
						|
        UPDATE SET
 | 
						|
          tf.[C_TELEFONSZAM] = t.Telefonszam,
 | 
						|
          tf.SERIAL += 1,
 | 
						|
          tf.LASTCHANGED = GETDATE(),
 | 
						|
          tf.MODIFIER = @userId   
 | 
						|
      WHEN NOT MATCHED THEN
 | 
						|
        INSERT (
 | 
						|
          [C_TELEFONTIPUSA], 
 | 
						|
          [C_TELEFONSZAM],
 | 
						|
          [C_ALAPERTELMEZETT],
 | 
						|
          [C_GONDVISELOID],
 | 
						|
          [C_FELHASZNALOID], 
 | 
						|
          [C_INTEZMENYID], 
 | 
						|
          [C_TANEVID],
 | 
						|
          [MODIFIER],
 | 
						|
          [CREATOR]
 | 
						|
        ) VALUES (
 | 
						|
          1019, 
 | 
						|
          t.Telefonszam, 
 | 
						|
          'T', 
 | 
						|
          null,
 | 
						|
          t.FelhasznaloId,
 | 
						|
          @intezmenyID, 
 | 
						|
          @tanevID, 
 | 
						|
          NULL, 
 | 
						|
          @userId
 | 
						|
        ); 
 | 
						|
      
 | 
						|
      
 | 
						|
      DECLARE @szerepkorId int;
 | 
						|
      
 | 
						|
      SELECT @szerepkorId = ID 
 | 
						|
      FROM T_SZEREPKOR_OSSZES 
 | 
						|
      WHERE C_SZEREPKORTIPUS = '1760' 
 | 
						|
        AND C_INTEZMENYID = @intezmenyID AND C_TANEVID = @tanevID
 | 
						|
        
 | 
						|
      INSERT INTO T_FELHASZNALO_SZEREPKOR (
 | 
						|
         C_FELHASZNALOID
 | 
						|
        ,C_SZEREPKORID
 | 
						|
      ) SELECT 
 | 
						|
         t.FelhasznaloId
 | 
						|
        ,@szerepkorId 
 | 
						|
      FROM @Tanarok t 
 | 
						|
      WHERE NOT EXISTS (SELECT 1 FROM T_FELHASZNALO_SZEREPKOR fsz WHERE fsz.C_FELHASZNALOID = FelhasznaloId AND fsz.C_SZEREPKORID = @szerepkorId)
 | 
						|
      
 | 
						|
      DECLARE @aktTanevId int
 | 
						|
             ,@kovetkezoTanevId int
 | 
						|
             ,@alkalmazottId int
 | 
						|
             ,@alkTanevId int
 | 
						|
     
 | 
						|
      DECLARE felhCur CURSOR FOR
 | 
						|
      SELECT felHasznaloId FROM @LinkTable
 | 
						|
      OPEN felhCur
 | 
						|
      FETCH NEXT FROM felhCur INTO @alkalmazottId
 | 
						|
      WHILE @@FETCH_STATUS=0
 | 
						|
      BEGIN
 | 
						|
        
 | 
						|
        SELECT @alkTanevId=C_TANEVID FROM T_FELHASZNALO WHERE ID = @alkalmazottId
 | 
						|
        SELECT @kovetkezoTanevId = ID FROM T_TANEV_OSSZES WHERE C_INTEZMENYID=@intezmenyId AND TOROLT='F' AND C_KOVETKEZO='T'
 | 
						|
 | 
						|
        IF @kovetkezoTanevId IS NOT NULL AND @alkTanevId<>@kovetkezoTanevId
 | 
						|
        BEGIN
 | 
						|
          EXEC sp_FollowUpAlkalmazott
 | 
						|
            @intezmenyId = @intezmenyID,
 | 
						|
            @aktTanevId = @alkTanevId,
 | 
						|
            @kovetkezoTanevId = @kovetkezoTanevId,
 | 
						|
            @alkalmazottId = @alkalmazottId
 | 
						|
 | 
						|
          EXEC sp_FollowUpAlkalmazottTovabbiMunkaugy @intezmenyId, @aktTanevId, @kovetkezoTanevId, @alkalmazottId 
 | 
						|
          EXEC sp_FollowUpAlkalmazottPEP @intezmenyId, @aktTanevId, @kovetkezoTanevId, @alkalmazottId 
 | 
						|
          EXEC sp_FollowUpAlkalmazottVegzettseg @intezmenyId, @aktTanevId, @kovetkezoTanevId, @alkalmazottId 
 | 
						|
        END
 | 
						|
        
 | 
						|
        FETCH NEXT FROM felhCur INTO @alkalmazottId
 | 
						|
      END
 | 
						|
    COMMIT TRANSACTION
 | 
						|
--    ROLLBACK TRANSACTION
 | 
						|
  END TRY      
 | 
						|
  BEGIN CATCH
 | 
						|
    IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0 
 | 
						|
      ROLLBACK TRANSACTION;
 | 
						|
    THROW 
 | 
						|
  END CATCH
 | 
						|
END
 |