DROP PROCEDURE IF EXISTS [dbo].[sp_KIRImportTanarok] GO CREATE PROCEDURE [dbo].[sp_KIRImportTanarok] @TanarokXML xml ,@FeladatellatasiHelyId int ,@intezmenyID int ,@tanevID int ,@userId int AS BEGIN SET NOCOUNT ON; SET XACT_ABORT ON; -- XML paraméter értelmezése DECLARE @Tanarok TABLE ( Id int ,OktatasiAzonosito nvarchar(20) ,VezetekNev nvarchar(255) ,UtoNev nvarchar(255) ,Elotag nvarchar(20) ,NevSorrend char(1) ,AnyjaNeveElotag nvarchar(20) ,AnyjaNeve nvarchar(64) ,AnyjaNeveVezetekNev nvarchar(255) ,AnyjaNeveKeresztNev nvarchar(255) ,AnyjaNeveNevSorrend char(1) ,SzuletesiDatum datetime ,SzuletesiHely nvarchar(50) ,SzuletesiOrszag int ,SzuletesiNeveElotag nvarchar(20) ,SzuletesiNeve nvarchar(64) ,SzuletesiNeveVezetekNev nvarchar(255) ,SzuletesiNeveKeresztNev nvarchar(255) ,SzuletesiNeveNevSorrend char(1) ,Allampolgarsag int ,Allampolgarsag2 int ,Nem int ,EmailCim nvarchar(200) ,Telefonszam nvarchar(100) ,AllandoLakcimIranyitoSzam nvarchar(20) ,AllandoLakcimTelepules nvarchar(50) ,AllandoLakcimKozteruletNev nvarchar(40) ,AllandoLakcimKozteruletJellegNev nvarchar(50) ,AllandoLakcimHazszam nvarchar(30) ,AllandoLakcimPontositas nvarchar(40) ,TartozkodasiCimTelepules nvarchar(50) ,TartozkodasiCimKozteruletNev nvarchar(40) ,TartozkodasiCimKozteruletJellegNev nvarchar(50) ,TartozkodasiCimHazszam nvarchar(30) ,TartozkodasiCimIranyitoszam nvarchar(20) ,TartozkodasiCimPontositas nvarchar(40) ,KeresesiNev nvarchar(61) ,NyomtatasiNev nvarchar(255) ,OMAzonosito nvarchar(20) ,Foallas char(1) ,KotelezoOraszam numeric(10,2) ,FoglalkoztatasTipus int ,MunkakorTipusa int ,MunkaviszonyTipusa int ,JogviszonyKezdete datetime ,JogviszonyBefejezese 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 ,VezetekNev ,UtoNev ,Elotag ,NevSorrend ,AnyjaNeveElotag ,AnyjaNeve ,AnyjaNeveVezetekNev ,AnyjaNeveKeresztNev ,AnyjaNeveNevSorrend ,SzuletesiDatum ,SzuletesiHely ,SzuletesiOrszag ,SzuletesiNeveElotag ,SzuletesiNeve ,SzuletesiNeveVezetekNev ,SzuletesiNeveKeresztNev ,SzuletesiNeveNevSorrend ,Allampolgarsag ,Allampolgarsag2 ,Nem ,EmailCim ,Telefonszam ,AllandoLakcimIranyitoSzam ,AllandoLakcimTelepules ,AllandoLakcimKozteruletNev ,AllandoLakcimKozteruletJellegNev ,AllandoLakcimHazszam ,AllandoLakcimPontositas ,TartozkodasiCimTelepules ,TartozkodasiCimKozteruletNev ,TartozkodasiCimKozteruletJellegNev ,TartozkodasiCimHazszam ,TartozkodasiCimIranyitoszam ,TartozkodasiCimPontositas ,KeresesiNev ,NyomtatasiNev ,OMAzonosito ,Foallas ,KotelezoOraszam ,FoglalkoztatasTipus ,MunkakorTipusa ,MunkaviszonyTipusa ,JogviszonyKezdete ,JogviszonyBefejezese ,isUjTanar ,BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott ,UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja ) SELECT Id = Tanar.value('(ID)[1]', 'int'), OktatasiAzonosito = Tanar.value('(OktatasiAzonosito)[1]', 'nvarchar(20)'), VezetekNev = Tanar.value('(ViseltNevVezetekNev)[1]', 'nvarchar(255)'), UtoNev = Tanar.value('(ViseltNevKeresztNev)[1]', 'nvarchar(255)'), Elotag = Tanar.value('(ViseltNevElotag)[1]', 'nvarchar(20)'), NevSorrend = Tanar.value('(ViseltNevNevSorrend)[1]', 'char(1)'), AnyjaNeveElotag = Tanar.value('(AnyjaNeveElotag)[1]', 'nvarchar(20)'), AnyjaNeve = Tanar.value('(AnyjaNeve)[1]', 'nvarchar(64)'), AnyjaNeveVezetekNev = Tanar.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(255)'), AnyjaNeveKeresztNev = Tanar.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(255)'), AnyjaNeveNevSorrend = Tanar.value('(AnyjaNeveNevSorrend)[1]', 'char(1)'), SzuletesiDatum = Tanar.value('(SzuletesiDatum)[1]', 'datetime'), SzuletesiHely = Tanar.value('(SzuletesiHely)[1]', 'nvarchar(50)'), SzuletesiOrszag = Tanar.value('(SzuletesiOrszag)[1]', 'int'), SzuletesiNeveElotag = Tanar.value('(SzuletesiNevElotag)[1]', 'nvarchar(20)'), SzuletesiNeve = Tanar.value('(SzuletesiNeve)[1]', 'nvarchar(64)'), SzuletesiNeveVezetekNev = Tanar.value('(SzuletesiNevVezetekNev)[1]', 'nvarchar(255)'), SzuletesiNeveKeresztNev = Tanar.value('(SzuletesiNevKeresztNev)[1]', 'nvarchar(255)'), SzuletesiNeveNevSorrend = Tanar.value('(SzuletesiNevNevSorrend)[1]', 'char(1)'), 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(200)'), Telefonszam = Tanar.value('(Telefonszam)[1]', 'nvarchar(100)'), AllandoLakcimIranyitoSzam = Tanar.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(20)'), AllandoLakcimTelepules = Tanar.value('(AllandoLakcimTelepules)[1]', 'nvarchar(50)'), AllandoLakcimKozteruletNev = Tanar.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(40)'), AllandoLakcimKozteruletJellegNev = Tanar.value('(AllandoLakcimKozteruletJellegNev)[1]', 'nvarchar(50)'), AllandoLakcimHazszam = Tanar.value('(AllandoLakcimHazszam)[1]', 'nvarchar(30)'), AllandoLakcimPontositas = Tanar.value('(AllandoLakcimPontositas)[1]', 'nvarchar(40)'), TartozkodasiCimTelepules = Tanar.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(50)'), TartozkodasiCimKozteruletNev = Tanar.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(40)'), TartozkodasiCimKozteruletJellegNev = Tanar.value('(TartozkodasiCimKozteruletJellegNev)[1]', 'nvarchar(50)'), TartozkodasiCimHazszam = Tanar.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(30)'), TartozkodasiCimIranyitoszam = Tanar.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'), TartozkodasiCimPontositas = Tanar.value('(TartozkodasiCimPontositas)[1]', 'nvarchar(40)'), KeresesiNev = Tanar.value('(KeresesiNev)[1]', 'nvarchar(61)'), NyomtatasiNev = Tanar.value('(NyomtatasiNev)[1]', 'nvarchar(255)'), OMAzonosito = Tanar.value('(OMAzonosito)[1]', 'nvarchar(20)'), Foallas = Tanar.value('(Foallas)[1]', 'char(1)'), KotelezoOraszam = Tanar.value('(KotelezoOraszam)[1]', 'numeric(10,2)'), FoglalkoztatasTipus = Tanar.value('number((FoglalkoztatasTipus)[1])', 'int'), MunkakorTipusa = Tanar.value('(MunkakorTipusa)[1]', 'int'), MunkaviszonyTipusa = Tanar.value('(MunkaviszonyTipusa)[1]', 'int'), JogviszonyKezdete = Tanar.value('(JogviszonyKezdete)[1]', 'datetime'), JogviszonyBefejezese = Tanar.value('(JogviszonyBefejezese)[1]', 'datetime'), 1 AS isUjTanar, BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott = Tanar.value('(BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott)[1]', 'char(1)'), UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja = Tanar.value('(UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja)[1]', 'datetime') FROM @TanarokXML.nodes('/KIRTanarok/ImportaltTanarok/Tanar') as Tanarok(Tanar) DECLARE @LinkTable TABLE ( felHasznaloId int ,OktatasiAzonosito nvarchar(20) ,NevSorrend char(1) ,SzuletesiNeveElotag nvarchar(255) ,SzuletesiNeveVezetekNev nvarchar(255) ,SzuletesiNeveKeresztNev nvarchar(255) ,AnyjaNeveNevSorrend char(1) ,AnyjaNeveElotag nvarchar(255) ,AnyjaNeveVezetekNev nvarchar(255) ,AnyjaNeveKeresztNev nvarchar(255) ,SzuletesiDatum datetime ,SzuletesiHely nvarchar(50) ,action nvarchar(20)) BEGIN TRY BEGIN TRANSACTION MERGE T_FELHASZNALO_OSSZES fh USING ( SELECT * FROM @Tanarok ) t ON ((ISNULL(t.NevSorrend,'') = ISNULL(fh.C_NEVSORREND,'') AND ISNULL(t.VezetekNev,'') = ISNULL(fh.C_VEZETEKNEV,'') AND ISNULL(t.UtoNev,'') = ISNULL(fh.C_UTONEV,'')) OR (ISNULL(t.VezetekNev,'') = ISNULL(fh.C_UTONEV,'') AND ISNULL(t.UtoNev,'') = ISNULL(fh.C_VEZETEKNEV,''))) AND ISNULL(t.Elotag,'') = ISNULL(fh.C_ELOTAG,'') AND ((ISNULL(t.AnyjaNeveNevSorrend,'') = ISNULL(fh.C_ANYJANEVESORREND,'') AND ISNULL(t.AnyjaNeveVezetekNev,'') = ISNULL(fh.C_ANYJAVEZETEKNEVE,'') AND ISNULL(t.AnyjaNeveKeresztNev,'') = ISNULL(fh.C_ANYJAUTONEVE,'')) OR (ISNULL(t.AnyjaNeveVezetekNev,'') = ISNULL(fh.C_ANYJAUTONEVE,'') AND ISNULL(t.AnyjaNeveKeresztNev,'') = ISNULL(fh.C_ANYJAVEZETEKNEVE,''))) AND ISNULL(t.AnyjaNeveElotag,'') = ISNULL(fh.C_ANYJANEVEELOTAG,'') AND t.SzuletesiDatum = fh.C_SZULETESIDATUM AND t.SzuletesiHely = fh.C_SZULETESIHELY AND ISNULL(t.OktatasiAzonosito,'') = ISNULL(fh.C_OKTATASIAZONOSITO,'') AND fh.C_INTEZMENYID = @intezmenyid AND fh.C_TANEVID = @tanevID AND fh.TOROLT = 'F' AND EXISTS (SELECT 1 FROM T_ALKALMAZOTT_OSSZES a WHERE a.ID = fh.ID AND a.C_ALTANEVID = fh.C_TANEVID AND a.TOROLT = 'F') --ha letezik alkalmazottkent akkor mindenkepp update, maskepp insert WHEN MATCHED THEN UPDATE SET fh.C_NEME = t.Nem, fh.C_SZULETESIDATUM = t.SzuletesiDatum, fh.C_SZULETESINEV = t.SzuletesiNeve, fh.C_ANYJANEVE = t.AnyjaNeve, 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_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_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, fh.C_ANYJAUTONEVE = t.AnyjaNeveKeresztNev, fh.C_ANYJAVEZETEKNEVE = t.AnyjaNeveVezetekNev, fh.C_SZULETESIUTONEV = t.SzuletesiNeveKeresztNev, fh.C_SZULETESIVEZETEKNEV = t.SzuletesiNeveVezetekNev, fh.C_ANYJANEVEELOTAG = t.AnyjaNeveElotag, fh.C_SZULETESINEVELOTAG = t.SzuletesiNeveElotag 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_NYOMTATASINEV], [C_UTONEV], [C_VEZETEKNEV], [C_ELOTAG], [C_NEVSORREND], [C_NYILVANTARTASKEZDETE], [C_OKTATASIAZONOSITO], [C_OMKOD], [C_INTEZMENYID], [C_TANEVID], [MODIFIER], [CREATOR], [C_BELUGYALTALAZONOSITOTT], [C_UTOLSOADATFRISSITESIDOPONTJA], [C_ANYJAUTONEVE], [C_ANYJAVEZETEKNEVE], [C_SZULETESIUTONEV], [C_SZULETESIVEZETEKNEV], [C_ANYJANEVEELOTAG], [C_SZULETESINEVELOTAG] ) VALUES ( t.Nem, t.SzuletesiDatum, t.SzuletesiNeve, t.AnyjaNeve, t.SzuletesiHely, t.Allampolgarsag, t.Allampolgarsag2, t.KeresesiNev, t.SzuletesiOrszag, t.SzuletesiNeveNevSorrend, t.AnyjaNeveNevSorrend, 1038, t.NyomtatasiNev, t.UtoNev, t.VezetekNev, t.Elotag, t.NevSorrend, GETDATE(), t.OktatasiAzonosito, t.OMAzonosito, @intezmenyID, @tanevID, NULL, @userId, t.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott, t.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja, t.AnyjaNeveKeresztNev, t.AnyjaNeveVezetekNev, t.SzuletesiNeveKeresztNev, t.SzuletesiNeveVezetekNev, t.AnyjaNeveElotag, t.SzuletesiNeveElotag ) OUTPUT INSERTED.ID ,t.OktatasiAzonosito ,t.NevSorrend ,t.SzuletesiNeveElotag ,t.SzuletesiNeveVezetekNev ,t.SzuletesiNeveKeresztNev ,t.AnyjaNeveNevSorrend ,t.AnyjaNeveElotag ,t.AnyjaNeveVezetekNev ,t.AnyjaNeveKeresztNev ,t.SzuletesiDatum ,t.SzuletesiHely ,$action INTO @LinkTable(felHasznaloId ,OktatasiAzonosito ,NevSorrend ,SzuletesiNeveElotag ,SzuletesiNeveVezetekNev ,SzuletesiNeveKeresztNev ,AnyjaNeveNevSorrend ,AnyjaNeveElotag ,AnyjaNeveVezetekNev ,AnyjaNeveKeresztNev ,SzuletesiDatum ,SzuletesiHely ,action); UPDATE t SET t.FelhasznaloId = x.felhasznaloId ,t.isUjTanar = 0 FROM @Tanarok t INNER JOIN @LinkTable x ON ((ISNULL(t.NevSorrend,'') = ISNULL(x.NevSorrend,'') AND ISNULL(t.SzuletesiNeveVezetekNev,'') = ISNULL(x.SzuletesiNeveVezetekNev,'') AND ISNULL(t.SzuletesiNeveKeresztNev,'') = ISNULL(x.SzuletesiNeveKeresztNev,'')) OR (ISNULL(t.SzuletesiNeveVezetekNev,'') = ISNULL(x.SzuletesiNeveKeresztNev,'') AND ISNULL(t.SzuletesiNeveKeresztNev,'') = ISNULL(x.SzuletesiNeveVezetekNev,''))) AND ISNULL(t.SzuletesiNeveElotag,'') = ISNULL(x.SzuletesiNeveElotag,'') AND ((ISNULL(t.AnyjaNeveNevSorrend,'') = ISNULL(x.AnyjaNeveNevSorrend,'') AND ISNULL(t.AnyjaNeveVezetekNev,'') = ISNULL(x.AnyjaNeveVezetekNev,'') AND ISNULL(t.AnyjaNeveKeresztNev,'') = ISNULL(x.AnyjaNeveKeresztNev,'')) OR (ISNULL(t.AnyjaNeveVezetekNev,'') = ISNULL(x.AnyjaNeveKeresztNev,'') AND ISNULL(t.AnyjaNeveKeresztNev,'') = ISNULL(x.AnyjaNeveVezetekNev,''))) AND ISNULL(t.AnyjaNeveElotag,'') = ISNULL(x.AnyjaNeveElotag,'') AND t.SzuletesiDatum = x.SzuletesiDatum AND t.SzuletesiHely = x.SzuletesiHely AND ISNULL(t.OktatasiAzonosito,'') = ISNULL(x.OktatasiAzonosito,'') 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 AND a.TOROLT = 'F' 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 AND m.TOROLT = 'F' WHEN MATCHED THEN UPDATE SET m.C_ALKALMAZASKEZDETE = t.JogviszonyKezdete, m.C_ALKALMAZASMEGSZUNESE = t.JogviszonyBefejezese, 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_ALKALMAZASMEGSZUNESE, C_KOTELEZOORASZAM, C_FOGLALKOZTATASTIPUS, C_MUNKAKORTIPUSA, C_MUNKAVISZONYTIPUSA, C_ALKALMAZOTTID, C_FELADATELLATASIHELYID, C_INTEZMENYID, C_TANEVID, MODIFIER, CREATOR ) VALUES ( t.JogviszonyKezdete, t.JogviszonyBefejezese, t.KotelezoOraszam, t.FoglalkoztatasTipus, t.MunkakorTipusa, t.MunkaviszonyTipusa, t.FelhasznaloId, @FeladatellatasiHelyId, @intezmenyID, @tanevID, NULL, @userId ); MERGE T_CIM_OSSZES c USING ( SELECT * FROM @Tanarok WHERE TartozkodasiCimIranyitoszam IS NOT NULL AND TartozkodasiCimIranyitoszam <> '' AND TartozkodasiCimTelepules IS NOT NULL AND TartozkodasiCimKozteruletNev IS NOT NULL AND TartozkodasiCimHazszam IS NOT NULL ) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 909 AND c.TOROLT = 'F' WHEN MATCHED THEN UPDATE SET c.[C_CIMTIPUSA] = 909, c.[C_ORSZAG] = 765, c.[C_IRANYITOSZAM] = t.TartozkodasiCimIranyitoszam, c.[C_VAROS] = t.TartozkodasiCimTelepules, c.[C_KOZTERULET] = t.TartozkodasiCimKozteruletNev, c.[C_KOZTERULETJELLEGENEV] = t.TartozkodasiCimKozteruletJellegNev, c.[C_HAZSZAM] = t.TartozkodasiCimHazszam, c.[C_EMELET] = t.TartozkodasiCimPontositas, 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_KOZTERULETJELLEGENEV], [C_HAZSZAM], [C_EMELET], [C_FELHASZNALOID], [C_INTEZMENYID], [C_TANEVID], [MODIFIER], [CREATOR] ) VALUES ( 909, 765, t.TartozkodasiCimIranyitoszam, t.TartozkodasiCimTelepules, t.TartozkodasiCimKozteruletNev, t.TartozkodasiCimKozteruletJellegNev, t.TartozkodasiCimHazszam, t.TartozkodasiCimPontositas, t.FelhasznaloId, @intezmenyID, @tanevID, NULL, @userId ); MERGE T_CIM_OSSZES c USING ( SELECT * FROM @Tanarok WHERE AllandoLakcimIranyitoSzam IS NOT NULL AND AllandoLakcimTelepules IS NOT NULL AND AllandoLakcimKozteruletNev IS NOT NULL AND AllandoLakcimHazszam IS NOT NULL ) t ON c.C_FELHASZNALOID = t.FelhasznaloId AND c.C_INTEZMENYID = @intezmenyid AND c.C_TANEVID = @tanevID AND c.C_CIMTIPUSA = 907 AND c.TOROLT = 'F' 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_KOZTERULETJELLEGENEV] = t.AllandoLakcimKozteruletJellegNev, c.[C_HAZSZAM] = t.AllandoLakcimHazszam, c.[C_EMELET] = t.AllandoLakcimPontositas, 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_KOZTERULETJELLEGENEV], [C_HAZSZAM], [C_EMELET], [C_FELHASZNALOID], [C_INTEZMENYID], [C_TANEVID], [MODIFIER], [CREATOR] ) VALUES ( 907, 765, t.AllandoLakcimIranyitoSzam, t.AllandoLakcimTelepules, t.AllandoLakcimKozteruletNev, t.AllandoLakcimKozteruletJellegNev, t.AllandoLakcimHazszam, t.AllandoLakcimPontositas, t.FelhasznaloId, @intezmenyID, @tanevID, NULL, @userId ); INSERT INTO T_EMAIL_OSSZES( [C_EMAILTIPUSA], [C_EMAILCIM], [C_ALAPERTELMEZETT], [C_GONDVISELOID], [C_FELHASZNALOID], [C_INTEZMENYID], [C_TANEVID], [MODIFIER], [CREATOR] ) SELECT 1025, t.EmailCim, ISNULL(LetezoEmail.KellAlap, 'T'), null, t.FelhasznaloId, @intezmenyID, @tanevID, NULL, @userId FROM @Tanarok t OUTER APPLY (SELECT TOP (1) 'F' AS KellAlap FROM T_EMAIL_OSSZES email WHERE t.FelhasznaloId = email.C_FELHASZNALOID AND email.TOROLT = 'F' AND email.C_ALAPERTELMEZETT = 'T') AS LetezoEmail WHERE EmailCim IS NOT NULL AND NOT EXISTS (SELECT * FROM T_EMAIL_OSSZES e WHERE e.C_FELHASZNALOID = t.FelhasznaloId AND e.C_INTEZMENYID = @intezmenyid AND e.C_TANEVID = @tanevID AND e.TOROLT = 'F' AND e.C_EMAILCIM = t.EmailCim) 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 AND tf.TOROLT = 'F' 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 ,@alkOktatasiAzonosito nvarchar(20) ,@alkNevSorrend char(1) ,@alkSzuletesiNeveElotag nvarchar(255) ,@alkSzuletesiNeveVezetekNev nvarchar(255) ,@alkSzuletesiNeveKeresztNev nvarchar(255) ,@alkAnyjaNeveNevSorrend char(1) ,@alkAnyjaNeveElotag nvarchar(255) ,@alkAnyjaNeveVezetekNev nvarchar(255) ,@alkAnyjaNeveKeresztNev nvarchar(255) ,@alkSzuletesiDatum datetime ,@alkSzuletesiHely nvarchar(50) 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 ,@alkOktatasiAzonosito = C_OKTATASIAZONOSITO ,@alkNevSorrend = C_SZULETESINEVSORREND ,@alkSzuletesiNeveElotag = C_SZULETESINEVELOTAG ,@alkSzuletesiNeveVezetekNev = C_SZULETESIVEZETEKNEV ,@alkSzuletesiNeveKeresztNev = C_SZULETESIUTONEV ,@alkAnyjaNeveNevSorrend = C_ANYJANEVESORREND ,@alkAnyjaNeveElotag = C_ANYJANEVEELOTAG ,@alkAnyjaNeveVezetekNev = C_ANYJAVEZETEKNEVE ,@alkAnyjaNeveKeresztNev = C_ANYJAUTONEVE ,@alkSzuletesiDatum = C_SZULETESIDATUM ,@alkSzuletesiHely = C_SZULETESIHELY 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 AND NOT EXISTS(SELECT 1 FROM T_FELHASZNALO_OSSZES WHERE @alkTanevId=C_TANEVID AND @alkOktatasiAzonosito = C_OKTATASIAZONOSITO AND ((@alkNevSorrend = C_SZULETESINEVSORREND AND @alkSzuletesiNeveVezetekNev = C_VEZETEKNEV AND @alkSzuletesiNeveKeresztNev = C_UTONEV) OR (@alkSzuletesiNeveVezetekNev = C_UTONEV AND @alkSzuletesiNeveKeresztNev = C_VEZETEKNEV)) AND @alkSzuletesiNeveElotag = C_ELOTAG AND ((@alkAnyjaNeveNevSorrend = C_ANYJANEVESORREND AND @alkAnyjaNeveVezetekNev = C_ANYJAVEZETEKNEVE AND @alkAnyjaNeveKeresztNev = C_ANYJAUTONEVE) OR (@alkAnyjaNeveVezetekNev = C_ANYJAUTONEVE AND @alkAnyjaNeveKeresztNev = C_ANYJAVEZETEKNEVE)) AND @alkAnyjaNeveElotag = C_ANYJANEVEELOTAG AND @alkSzuletesiDatum = C_SZULETESIDATUM AND @alkSzuletesiHely = C_SZULETESIHELY AND TOROLT = 'F' AND C_TANEVID = @kovetkezoTanevId) BEGIN EXEC uspFollowUpAlkalmazott @intezmenyId = @intezmenyID, @aktTanevId = @alkTanevId, @kovetkezoTanevId = @kovetkezoTanevId, @alkalmazottId = @alkalmazottId DECLARE tovabbiMunkaugyCur CURSOR FOR SELECT ID FROM T_TOVABBIMUNKAUGYIADATOK_OSSZES tma WHERE tma.C_ALKALMAZOTTID = @alkalmazottId AND tma.TOROLT='F' DECLARE pepCur CURSOR FOR SELECT ID FROM T_PEDAGOGUSELETPALYAMODELL_OSSZES pep WHERE pep.C_TANARID = @alkalmazottId AND pep.TOROLT='F' DECLARE @tovabbiMunkaugyiAdatId int ,@pepId int OPEN tovabbiMunkaugyCur FETCH NEXT FROM tovabbiMunkaugyCur INTO @tovabbiMunkaugyiAdatId WHILE @@FETCH_STATUS = 0 BEGIN EXEC uspFollowUpAlkalmazottTovabbiMunkaugy @intezmenyId, @aktTanevId, @kovetkezoTanevId, @tovabbiMunkaugyiAdatId FETCH NEXT FROM tovabbiMunkaugyCur INTO @tovabbiMunkaugyiAdatId END CLOSE tovabbiMunkaugyCur DEALLOCATE tovabbiMunkaugyCur OPEN pepCur FETCH NEXT FROM pepCur INTO @pepId WHILE @@FETCH_STATUS = 0 BEGIN EXEC uspFollowUpAlkalmazottPEP @intezmenyId, @aktTanevId, @kovetkezoTanevId, @pepId FETCH NEXT FROM pepCur INTO @pepId END CLOSE pepCur DEALLOCATE pepCur END FETCH NEXT FROM felhCur INTO @alkalmazottId END COMMIT TRANSACTION END TRY BEGIN CATCH IF @@TRANCOUNT > 0 AND XACT_STATE() <> 0 ROLLBACK TRANSACTION; THROW END CATCH END GO