532 lines
20 KiB
Transact-SQL
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
|