This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,558 @@
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

View file

@ -0,0 +1,490 @@
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