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

706 lines
26 KiB
Transact-SQL

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