kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_KIRImportTanulok.sql
2024-03-13 00:33:46 +01:00

532 lines
20 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS [dbo].[sp_KIRImportTanulok]
GO
CREATE PROCEDURE [dbo].[sp_KIRImportTanulok]
@TanulokXML as XML,
@intezmenyID int,
@tanevID int,
@userId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@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]', 'nvarchar(20)'),
VezetekNev = Tanulo.value('(ViseltNevVezetekNev)[1]', 'nvarchar(255)'),
UtoNev = Tanulo.value('(ViseltNevKeresztNev)[1]', 'nvarchar(255)'),
Elotag = Tanulo.value('(ViseltNevElotag)[1]', 'nvarchar(20)'),
NevSorrend = Tanulo.value('(ViseltNevNevSorrend)[1]', 'char(1)'),
SzuletesiNeveElotag = Tanulo.value('(SzuletesiNevElotag)[1]', 'nvarchar(20)'),
SzuletesiNeve = Tanulo.value('(SzuletesiNeve)[1]', 'nvarchar(64)'),
SzuletesiNevVezetekNev = Tanulo.value('(SzuletesiNevVezetekNev)[1]', 'nvarchar(255)'),
SzuletesiNevKeresztNev = Tanulo.value('(SzuletesiNevKeresztNev)[1]', 'nvarchar(255)'),
SzuletesiNevNevSorrend = Tanulo.value('(SzuletesiNevNevSorrend)[1]', 'char(1)'),
AnyjaNeveElotag = Tanulo.value('(AnyjaNeveElotag)[1]', 'nvarchar(20)'),
AnyjaNeve = Tanulo.value('(AnyjaNeve)[1]', 'nvarchar(64)'),
AnyjaNeveVezetekNev = Tanulo.value('(AnyjaNeveVezetekNev)[1]', 'nvarchar(255)'),
AnyjaNeveKeresztNev = Tanulo.value('(AnyjaNeveKeresztNev)[1]', 'nvarchar(255)'),
AnyjaNeveNevSorrend = Tanulo.value('(AnyjaNeveNevSorrend)[1]', 'char(1)'),
SzuletesiDatum = Tanulo.value('(SzuletesiDatum)[1]', 'datetime'),
SzuletesiHely = Tanulo.value('(SzuletesiHely)[1]', 'nvarchar(50)'),
SzuletesiOrszag = Tanulo.value('(SzuletesiOrszag)[1]', 'int'),
Allampolgarsag = Tanulo.value('(Allampolgarsag)[1]', 'int'),
Allampolgarsag2 = Tanulo.value('(Allampolgarsag2)[1][not(@xsi:nil = "true")]', 'int'),
Nem = Tanulo.value('(Nem)[1]', 'int'),
TAJSzam = Tanulo.value('(TAJSzam)[1]', 'nvarchar(9)'),
AllandoLakcimIranyitoSzam = Tanulo.value('(AllandoLakcimIranyitoSzam)[1]', 'nvarchar(20)'),
AllandoLakcimTelepules = Tanulo.value('(AllandoLakcimTelepules)[1]', 'nvarchar(50)'),
AllandoLakcimKozteruletNev = Tanulo.value('(AllandoLakcimKozteruletNev)[1]', 'nvarchar(40)'),
AllandoLakcimKozteruletJellegNev = Tanulo.value('(AllandoLakcimKozteruletJellegNev)[1]', 'nvarchar(50)'),
AllandoLakcimHazszam = Tanulo.value('(AllandoLakcimHazszam)[1]', 'nvarchar(30)'),
AllandoLakcimPontositas = Tanulo.value('(AllandoLakcimPontositas)[1]', 'nvarchar(40)'),
TartozkodasiCimTelepules = Tanulo.value('(TartozkodasiCimTelepules)[1]', 'nvarchar(50)'),
TartozkodasiCimKozteruletNev = Tanulo.value('(TartozkodasiCimKozteruletNev)[1]', 'nvarchar(40)'),
TartozkodasiCimKozteruletJellegNev = Tanulo.value('(TartozkodasiCimKozteruletJellegNev)[1]', 'nvarchar(50)'),
TartozkodasiCimHazszam = Tanulo.value('(TartozkodasiCimHazszam)[1]', 'nvarchar(30)'),
TartozkodasiCimIranyitoszam = Tanulo.value('(TartozkodasiCimIranyitoSzam)[1]', 'nvarchar(20)'),
TartozkodasiCimPontositas = Tanulo.value('(TartozkodasiCimPontositas)[1]', 'nvarchar(40)'),
TankotelezettsegVege = Tanulo.value('(TankotelezettsegVege)[1]', 'datetime'),
TankotelezettsegetTeljesito = Tanulo.value('(TankotelezettsegetTeljesito)[1]', 'char(1)'),
SajatosNevelesIgenyu = Tanulo.value('(SajatosNevelesIgenyu)[1]', 'char(1)'),
BeilleszkedesselKuzd = Tanulo.value('(BeilleszkedesselKuzd)[1]', 'char(1)'),
OMAzonosito = Tanulo.value('(OMAzonosito)[1]', 'nvarchar(20)'),
JogviszonyStatusza = Tanulo.value('(JogviszonyStatusza)[1]', 'char(1)'),
JogviszonyKezdete = Tanulo.value('(JogviszonyKezdete)[1]', 'datetime'),
JogviszonyVarBefejezese = Tanulo.value('(JogviszonyVarBefejezese)[1]', 'datetime'),
JogviszonyJellege = Tanulo.value('(JogviszonyJellege)[1]', 'nvarchar(2000)'),
Vendegtanulo = Tanulo.value('(Vendegtanulo)[1]', 'char(1)'),
Magantanulo = Tanulo.value('(Magantanulo)[1]', 'char(1)'),
Osztaly = Tanulo.value('(Osztaly)[1]', 'nvarchar(255)'),
KeresesiNev = Tanulo.value('(KeresesiNev)[1]', 'nvarchar(61)'),
NyomtatasiNev = Tanulo.value('(NyomtatasiNev)[1]', 'nvarchar(255)'),
Telefonszam = Tanulo.value('(Telefonszam)[1]', 'nvarchar(100)'),
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]', 'datetime'),
ErvenyesDiakigazolvanySzama = Tanulo.value('(ErvenyesDiakigazolvanySzama)[1]', 'nvarchar(255)'),
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.NevSorrend = fh.C_NEVSORREND AND t.VezetekNev = fh.C_VEZETEKNEV AND t.UtoNev = fh.C_UTONEV)
OR (t.VezetekNev = fh.C_UTONEV AND t.UtoNev = fh.C_VEZETEKNEV))
AND t.Elotag = fh.C_ELOTAG
AND ((t.AnyjaNeveNevSorrend = fh.C_ANYJANEVESORREND AND t.AnyjaNeveVezetekNev = fh.C_ANYJAVEZETEKNEVE AND t.AnyjaNeveKeresztNev = fh.C_ANYJAUTONEVE)
OR (t.AnyjaNeveVezetekNev = fh.C_ANYJAUTONEVE AND t.AnyjaNeveKeresztNev = fh.C_ANYJAVEZETEKNEVE))
AND t.AnyjaNeveElotag = fh.C_ANYJANEVEELOTAG
AND t.SzuletesiDatum = fh.C_SZULETESIDATUM AND t.SzuletesiHely = fh.C_SZULETESIHELY
AND ISNULL(t.OktatasiAzonosito,'') = ISNULL(fh.C_OKTATASIAZONOSITO,'')
AND EXISTS (SELECT 1 FROM T_TANULO_OSSZES tanulo WHERE tanulo.ID = fh.ID AND tanulo.C_ALTANEVID = fh.C_TANEVID AND tanulo.TOROLT = 'F') --ha letezik tanulokent akkor mindenkepp update, maskepp insert
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 = src.SzuletesiNeve,
trg.C_ANYJANEVE = src.AnyjaNeve,
trg.C_SZULETESIHELY = src.SzuletesiHely,
trg.C_TAJSZAM = src.TAJSzam,
trg.C_ALLAMPOLGARSAGA = src.Allampolgarsag,
trg.C_ALLAMPOLGARSAGA2 = src.Allampolgarsag2,
trg.C_KERESESINEV = src.KeresesiNev,
trg.C_SZULETESIORSZAG = src.SzuletesiOrszag,
trg.C_SZULETESINEVSORREND = src.SzuletesiNevNevSorrend,
trg.C_ANYJANEVESORREND = src.AnyjaNeveNevSorrend,
trg.C_ALAPERTELMEZETTLCID = 1038,
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.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,
trg.C_ANYJAUTONEVE = src.AnyjaNeveKeresztNev,
trg.C_ANYJAVEZETEKNEVE = src.AnyjaNeveVezetekNev,
trg.C_SZULETESIUTONEV = src.SzuletesiNevKeresztNev,
trg.C_SZULETESIVEZETEKNEV = src.SzuletesiNevVezetekNev,
trg.C_ANYJANEVEELOTAG = src.AnyjaNeveElotag,
trg.C_SZULETESINEVELOTAG = src.SzuletesiNeveElotag
WHEN NOT MATCHED THEN
INSERT (
C_NEME
,C_SZULETESIDATUM
,C_SZULETESINEV
,C_ANYJANEVE
,C_SZULETESIHELY
,C_TAJSZAM
,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_MEGJEGYZES
,C_ANYJAUTONEVE
,C_ANYJAVEZETEKNEVE
,C_SZULETESIUTONEV
,C_SZULETESIVEZETEKNEV
,C_ANYJANEVEELOTAG
,C_SZULETESINEVELOTAG
)
VALUES (
src.Nem
,src.SzuletesiDatum
,src.SzuletesiNeve
,src.AnyjaNeve
,src.SzuletesiHely
,src.TAJSzam
,src.Allampolgarsag
,src.Allampolgarsag2
,src.KeresesiNev
,src.SzuletesiOrszag
,src.SzuletesiNevNevSorrend
,src.AnyjaNeveNevSorrend
,1038
,src.NyomtatasiNev
,src.UtoNev
,src.VezetekNev
,src.Elotag
,src.NevSorrend
,src.JogviszonyKezdete
,src.OktatasiAzonosito
,src.OMAzonosito
,@intezmenyID
,@tanevID
,NULL
,@userId
,src.BelugyMiniszteriumSzemelyiadatEsLakcimNyilvantartasavalBeazonositott
,src.UtolsoSzemelyiadatEsLakcimNyilvantartasFrissitesIdopontja
,src.JogviszonyJellege
,src.AnyjaNeveKeresztNev
,src.AnyjaNeveVezetekNev
,src.SzuletesiNevKeresztNev
,src.SzuletesiNevVezetekNev
,src.AnyjaNeveElotag
,src.SzuletesiNeveElotag
)
OUTPUT INSERTED.ID, src.ID, $action
INTO @linkTable(insertedID, tempId, act);
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.TOROLT = 'F',
trg.SERIAL = trg.SERIAL + 1,
trg.LASTCHANGED = GETDATE(),
trg.MODIFIER = @userId,
trg.C_DIAKIGAZOLVANYSZAM = src.ErvenyesDiakigazolvanySzama
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_ALINTEZMENYID
,C_ALTANEVID
,MODIFIER
,CREATOR
,C_DIAKIGAZOLVANYSZAM
) VALUES (
src.insertedID
,src.TankotelezettsegVege
,src.TankotelezettsegetTeljesito
,src.SajatosNevelesIgenyu
,src.BeilleszkedesselKuzd
,src.JogviszonyVarBefejezese
,src.Vendegtanulo
,src.Magantanulo
,src.JogviszonyStatusza
,@tanevID
,@intezmenyID
,@tanevID
,NULL
,@userId
,src.ErvenyesDiakigazolvanySzama
);
-------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
) SELECT
t.Jelszo
,t.BejelentkezesiNev
,t.Salt
,fh.ID
,@intezmenyID
,@tanevID
,NULL
,@userId
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 <> ''
AND t.TartozkodasiCimTelepules IS NOT NULL AND t.TartozkodasiCimKozteruletNev IS NOT NULL AND t.TartozkodasiCimHazszam IS NOT NULL
) src ON src.TanuloID = trg.C_FELHASZNALOID AND trg.C_TANEVID = @tanevID AND src.isTanulo = 1 AND trg.C_CIMTIPUSA = 909
WHEN MATCHED THEN
UPDATE SET
trg.C_CIMTIPUSA = 909,
trg.C_ORSZAG = 765,
trg.C_IRANYITOSZAM = src.TartozkodasiCimIranyitoszam,
trg.C_VAROS = src.TartozkodasiCimTelepules,
trg.C_KOZTERULET = src.TartozkodasiCimKozteruletNev,
trg.C_KOZTERULETJELLEGENEV = src.TartozkodasiCimKozteruletJellegNev,
trg.C_HAZSZAM = src.TartozkodasiCimHazszam,
trg.C_EMELET = src.TartozkodasiCimPontositas,
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_KOZTERULETJELLEGENEV
,C_HAZSZAM
,C_EMELET
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
909
,765
,src.TartozkodasiCimIranyitoszam
,src.TartozkodasiCimTelepules
,src.TartozkodasiCimKozteruletNev
,src.TartozkodasiCimKozteruletJellegNev
,src.TartozkodasiCimHazszam
,src.TartozkodasiCimPontositas
,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
WHERE t.AllandoLakcimIranyitoSzam IS NOT NULL AND t.AllandoLakcimTelepules IS NOT NULL AND t.AllandoLakcimKozteruletNev IS NOT NULL AND t.AllandoLakcimHazszam IS NOT NULL
) 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_KOZTERULETJELLEGENEV = src.AllandoLakcimKozteruletJellegNev,
trg.C_HAZSZAM = src.AllandoLakcimHazszam,
trg.C_EMELET = src.AllandoLakcimPontositas,
trg.C_ALAPERTELMEZETT = 'T',
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_KOZTERULETJELLEGENEV
,C_HAZSZAM
,C_EMELET
,C_ALAPERTELMEZETT
,C_FELHASZNALOID
,C_INTEZMENYID
,C_TANEVID
,MODIFIER
,CREATOR
) VALUES (
907
,765
,src.AllandoLakcimIranyitoSzam
,src.AllandoLakcimTelepules
,src.AllandoLakcimKozteruletNev
,src.AllandoLakcimKozteruletJellegNev
,src.AllandoLakcimHazszam
,src.AllandoLakcimPontositas
,'T'
,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
GO