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

593 lines
25 KiB
Transact-SQL

-- =============================================
-- Description: <Tanulo KIFIR import>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[uspTanuloKifirImport]
GO
CREATE PROCEDURE [dbo].[uspTanuloKifirImport]
@pIntezmenyId INT
,@pTanevId INT
,@pUserId INT
,@pImportJson NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE
@tableNameList NVARCHAR(2000) = 'T_FELHASZNALO_OSSZES'
,@actualJson NVARCHAR(MAX) = ''
,@lastChangedDateTime DATETIME = GETDATE()
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
EXECUTE [dbo].[uspDynamicImportJsonSplit] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @pImportJson, @pIsTorles = 0, @pIsSubTable = 0, @pTableNameList = @tableNameList
--NOTE: Tanulo temp tábla incializálása
CREATE TABLE #TanuloTempTable (
ID INT
,C_ELOZOINTEZMENY NVARCHAR(255)
,C_ALLAMIGONDOZOTT CHAR(1)
,C_BEILLESZKEDESINEHEZSEG CHAR(1)
,C_BEJARO CHAR(1)
,C_EVISMETLO CHAR(1)
,C_JOGVISZONYATSZUNETELTETO CHAR(1)
,C_MAGANTANULO CHAR(1)
,C_POLGARISZERZODESES CHAR(1)
,C_SZAKMAIGYAKORLATON CHAR(1)
,C_SZOCIALISTAMOGATAS CHAR(1)
,C_TANDIJATFIZETO CHAR(1)
,C_TANKOTELEZETT CHAR(1)
,C_TANULOSZERZODESES CHAR(1)
,C_TERITESIDIJATFIZETO CHAR(1)
,C_TESTNEVELESTIPUSA INT
,C_VENDEG CHAR(1)
,C_BTMPROBLEMAS CHAR(1)
,C_DIAKSPORTKOROS CHAR(1)
,C_HALMOZOTTANFOGYATEKOS CHAR(1)
,C_HATRANYOSHELYZETU INT
,C_KOLLEGIUMIELLATASOS CHAR(1)
,C_SAJATOSNEVELESU CHAR(1)
,C_VESZELYEZTETETT CHAR(1)
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1)
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1)
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1)
,C_TANULASIPROBLEMAVALKUZD CHAR(1)
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1)
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1)
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1)
,C_MENEDEKJOGGALRENDELKEZO CHAR(1)
,C_EGYEBDONTO CHAR(1)
,C_MEGALLAPODASOS CHAR(1)
,C_OSZTV CHAR(1)
,C_SZETVAGAZAT CHAR(1)
,C_SZKTV CHAR(1)
,C_TECHNIKUSIEVFOLYAM CHAR(1)
,C_EGYUTTMUKODESES CHAR(1)
,C_ISKOLAIKERETEKKOZOTT CHAR(1)
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1)
,C_ISKIFIRIMPORTALT CHAR(1)
,C_FELVETELTANEVEID INT
,C_ALINTEZMENYID INT
,C_ALTANEVID INT
,TOROLT CHAR(1)
,SERIAL INT
,LASTCHANGED DATETIME
,CREATED DATETIME
,MODIFIER INT
,CREATOR INT
,ELOZOTANEVIREKORDID INT
,Operation INT
)
INSERT INTO
#TanuloTempTable
SELECT
Felhasznalo.ID
,TanuloJsonData.C_ELOZOINTEZMENY
,TanuloJsonData.C_ALLAMIGONDOZOTT
,TanuloJsonData.C_BEILLESZKEDESINEHEZSEG
,TanuloJsonData.C_BEJARO
,TanuloJsonData.C_EVISMETLO
,TanuloJsonData.C_JOGVISZONYATSZUNETELTETO
,TanuloJsonData.C_MAGANTANULO
,TanuloJsonData.C_POLGARISZERZODESES
,TanuloJsonData.C_SZAKMAIGYAKORLATON
,TanuloJsonData.C_SZOCIALISTAMOGATAS
,TanuloJsonData.C_TANDIJATFIZETO
,TanuloJsonData.C_TANKOTELEZETT
,TanuloJsonData.C_TANULOSZERZODESES
,TanuloJsonData.C_TERITESIDIJATFIZETO
,TanuloJsonData.C_TESTNEVELESTIPUSA
,TanuloJsonData.C_VENDEG
,TanuloJsonData.C_BTMPROBLEMAS
,TanuloJsonData.C_DIAKSPORTKOROS
,TanuloJsonData.C_HALMOZOTTANFOGYATEKOS
,TanuloJsonData.C_HATRANYOSHELYZETU
,TanuloJsonData.C_KOLLEGIUMIELLATASOS
,TanuloJsonData.C_SAJATOSNEVELESU
,TanuloJsonData.C_VESZELYEZTETETT
,TanuloJsonData.C_BEILLESZKEDESIPROBLEMAVALKUZ
,TanuloJsonData.C_MAGATARTASIPROBLEMAVALKUZD
,TanuloJsonData.C_TANULASIPROBLEMADISZGRAFIA
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZD
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZK
,TanuloJsonData.C_TANULASIPROBLEMAVALKUZDDISZL
,TanuloJsonData.C_KOZEPFOKUOKTATASBATIZENHATOD
,TanuloJsonData.C_MENEDEKJOGGALRENDELKEZO
,TanuloJsonData.C_EGYEBDONTO
,TanuloJsonData.C_MEGALLAPODASOS
,TanuloJsonData.C_OSZTV
,TanuloJsonData.C_SZETVAGAZAT
,TanuloJsonData.C_SZKTV
,TanuloJsonData.C_TECHNIKUSIEVFOLYAM
,TanuloJsonData.C_EGYUTTMUKODESES
,TanuloJsonData.C_ISKOLAIKERETEKKOZOTT
,TanuloJsonData.C_ISSZAKMAIGYAKORLATHIANY
,TanuloJsonData.C_ISKIFIRIMPORTALT
,TanuloJsonData.C_FELVETELTANEVEID
,TanuloJsonData.C_ALINTEZMENYID
,TanuloJsonData.C_ALTANEVID
,TanuloJsonData.TOROLT
,TanuloJsonData.SERIAL
,TanuloJsonData.LASTCHANGED
,TanuloJsonData.CREATED
,TanuloJsonData.MODIFIER
,TanuloJsonData.CREATOR
,TanuloJsonData.ELOZOTANEVIREKORDID
,TanuloJsonData.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_TANULO_OSSZES')
WITH (
ID INT '$.ID'
,C_ELOZOINTEZMENY NVARCHAR(255) '$.C_ELOZOINTEZMENY'
,C_ALLAMIGONDOZOTT CHAR(1) '$.C_ALLAMIGONDOZOTT'
,C_BEILLESZKEDESINEHEZSEG CHAR(1) '$.C_BEILLESZKEDESINEHEZSEG'
,C_BEJARO CHAR(1) '$.C_BEJARO'
,C_EVISMETLO CHAR(1) '$.C_EVISMETLO'
,C_JOGVISZONYATSZUNETELTETO CHAR(1) '$.C_JOGVISZONYATSZUNETELTETO'
,C_MAGANTANULO CHAR(1) '$.C_MAGANTANULO'
,C_POLGARISZERZODESES CHAR(1) '$.C_POLGARISZERZODESES'
,C_SZAKMAIGYAKORLATON CHAR(1) '$.C_SZAKMAIGYAKORLATON'
,C_SZOCIALISTAMOGATAS CHAR(1) '$.C_SZOCIALISTAMOGATAS'
,C_TANDIJATFIZETO CHAR(1) '$.C_TANDIJATFIZETO'
,C_TANKOTELEZETT CHAR(1) '$.C_TANKOTELEZETT'
,C_TANULOSZERZODESES CHAR(1) '$.C_TANULOSZERZODESES'
,C_TERITESIDIJATFIZETO CHAR(1) '$.C_TERITESIDIJATFIZETO'
,C_TESTNEVELESTIPUSA INT '$.C_TESTNEVELESTIPUSA'
,C_VENDEG CHAR(1) '$.C_VENDEG'
,C_BTMPROBLEMAS CHAR(1) '$.C_BTMPROBLEMAS'
,C_DIAKSPORTKOROS CHAR(1) '$.C_DIAKSPORTKOROS'
,C_HALMOZOTTANFOGYATEKOS CHAR(1) '$.C_HALMOZOTTANFOGYATEKOS'
,C_HATRANYOSHELYZETU INT '$.C_HATRANYOSHELYZETU'
,C_KOLLEGIUMIELLATASOS CHAR(1) '$.C_KOLLEGIUMIELLATASOS'
,C_SAJATOSNEVELESU CHAR(1) '$.C_SAJATOSNEVELESU'
,C_VESZELYEZTETETT CHAR(1) '$.C_VESZELYEZTETETT'
,C_BEILLESZKEDESIPROBLEMAVALKUZ CHAR(1) '$.C_BEILLESZKEDESIPROBLEMAVALKUZ'
,C_MAGATARTASIPROBLEMAVALKUZD CHAR(1) '$.C_MAGATARTASIPROBLEMAVALKUZD'
,C_TANULASIPROBLEMADISZGRAFIA CHAR(1) '$.C_TANULASIPROBLEMADISZGRAFIA'
,C_TANULASIPROBLEMAVALKUZD CHAR(1) '$.C_TANULASIPROBLEMAVALKUZD'
,C_TANULASIPROBLEMAVALKUZDDISZK CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZK'
,C_TANULASIPROBLEMAVALKUZDDISZL CHAR(1) '$.C_TANULASIPROBLEMAVALKUZDDISZL'
,C_KOZEPFOKUOKTATASBATIZENHATOD CHAR(1) '$.C_KOZEPFOKUOKTATASBATIZENHATOD'
,C_MENEDEKJOGGALRENDELKEZO CHAR(1) '$.C_MENEDEKJOGGALRENDELKEZO'
,C_EGYEBDONTO CHAR(1) '$.C_EGYEBDONTO'
,C_MEGALLAPODASOS CHAR(1) '$.C_MEGALLAPODASOS'
,C_OSZTV CHAR(1) '$.C_OSZTV'
,C_SZETVAGAZAT CHAR(1) '$.C_SZETVAGAZAT'
,C_SZKTV CHAR(1) '$.C_SZKTV'
,C_TECHNIKUSIEVFOLYAM CHAR(1) '$.C_TECHNIKUSIEVFOLYAM'
,C_EGYUTTMUKODESES CHAR(1) '$.C_EGYUTTMUKODESES'
,C_ISKOLAIKERETEKKOZOTT CHAR(1) '$.C_ISKOLAIKERETEKKOZOTT'
,C_ISSZAKMAIGYAKORLATHIANY CHAR(1) '$.C_ISSZAKMAIGYAKORLATHIANY'
,C_ISKIFIRIMPORTALT CHAR(1) '$.C_ISKIFIRIMPORTALT'
,C_FELVETELTANEVEID INT '$.C_FELVETELTANEVEID'
,C_ALINTEZMENYID INT '$.C_INTEZMENYID'
,C_ALTANEVID INT '$.C_TANEVID'
,TOROLT CHAR(1) '$.TOROLT'
,SERIAL INT '$.SERIAL'
,LASTCHANGED DATETIME '$.LASTCHANGED'
,CREATED DATETIME '$.CREATED'
,MODIFIER INT '$.MODIFIER'
,CREATOR INT '$.CREATOR'
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
,Operation INT '$.Operation'
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
,Keresztnev NVARCHAR(255) '$.Keresztnev'
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
) TanuloJsonData
LEFT JOIN
T_FELHASZNALO_OSSZES Felhasznalo ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.Vezeteknev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.Keresztnev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(TanuloJsonData.SzuletesiHely)
AND Felhasznalo.C_SZULETESIDATUM = TanuloJsonData.SzuletesiIdo
AND Felhasznalo.C_OKTATASIAZONOSITO = TanuloJsonData.OktatasiAzonosito
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
--NOTE: Cim temp tábla incializálása
CREATE TABLE #CimTempTable (
ID INT
,C_CIMTIPUSA INT
,C_IRANYITOSZAM NVARCHAR(20)
,C_VAROS NVARCHAR(50)
,C_KOZTERULET NVARCHAR(40)
,C_KOZTERULETJELLEGENEV NVARCHAR(100)
,C_HAZSZAM NVARCHAR(30)
,C_ORSZAG INT
,C_ALAPERTELMEZETT CHAR(1)
,C_EMELET NVARCHAR(40)
,C_AJTO NVARCHAR(30)
,C_FELHASZNALOID INT
,C_INTEZMENYID INT
,C_TANEVID INT
,TOROLT CHAR(1)
,SERIAL INT
,LASTCHANGED DATETIME
,CREATED DATETIME
,MODIFIER INT
,CREATOR INT
,ELOZOTANEVIREKORDID INT
,Operation INT
)
INSERT INTO
#CimTempTable
SELECT
CimJsonData.ID
,CimJsonData.C_CIMTIPUSA
,CimJsonData.C_IRANYITOSZAM
,CimJsonData.C_VAROS
,CimJsonData.C_KOZTERULET
,CimJsonData.C_KOZTERULETJELLEGENEV
,CimJsonData.C_HAZSZAM
,CimJsonData.C_ORSZAG
,CimJsonData.C_ALAPERTELMEZETT
,CimJsonData.C_EMELET
,CimJsonData.C_AJTO
,Felhasznalo.ID
,CimJsonData.C_INTEZMENYID
,CimJsonData.C_TANEVID
,CimJsonData.TOROLT
,CimJsonData.SERIAL
,CimJsonData.LASTCHANGED
,CimJsonData.CREATED
,CimJsonData.MODIFIER
,CimJsonData.CREATOR
,CimJsonData.ELOZOTANEVIREKORDID
,CimJsonData.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_CIM_OSSZES')
WITH (
ID INT '$.ID'
,C_CIMTIPUSA INT '$.C_CIMTIPUSA'
,C_IRANYITOSZAM NVARCHAR(20) '$.C_IRANYITOSZAM'
,C_VAROS NVARCHAR(50) '$.C_VAROS'
,C_KOZTERULET NVARCHAR(40) '$.C_KOZTERULET'
,C_KOZTERULETJELLEGENEV NVARCHAR(100) '$.C_KOZTERULETJELLEGENEV'
,C_HAZSZAM NVARCHAR(30) '$.C_HAZSZAM'
,C_ORSZAG INT '$.C_ORSZAG'
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
,C_EMELET NVARCHAR(40) '$.C_EMELET'
,C_AJTO NVARCHAR(30) '$.C_AJTO'
,C_INTEZMENYID INT '$.C_INTEZMENYID'
,C_TANEVID INT '$.C_TANEVID'
,TOROLT CHAR(1) '$.TOROLT'
,SERIAL INT '$.SERIAL'
,LASTCHANGED DATETIME '$.LASTCHANGED'
,CREATED DATETIME '$.CREATED'
,MODIFIER INT '$.MODIFIER'
,CREATOR INT '$.CREATOR'
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
,Operation INT '$.Operation'
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
,Keresztnev NVARCHAR(255) '$.Keresztnev'
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
) CimJsonData
LEFT JOIN
T_FELHASZNALO_OSSZES Felhasznalo ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.Vezeteknev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.Keresztnev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(CimJsonData.SzuletesiHely)
AND Felhasznalo.C_SZULETESIDATUM = CimJsonData.SzuletesiIdo
AND Felhasznalo.C_OKTATASIAZONOSITO = CimJsonData.OktatasiAzonosito
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
--NOTE: Email temp tábla incializálása
CREATE TABLE #EmailTempTable (
ID INT
,C_EMAILTIPUSA INT
,C_EMAILCIM NVARCHAR(200)
,C_ALAPERTELMEZETT CHAR(1)
,C_ISPUBLIC CHAR(1)
,C_FELHASZNALOID INT
,C_ISHIBASANMEGADVA char(1)
,C_INTEZMENYID INT
,C_TANEVID INT
,TOROLT CHAR(1)
,SERIAL INT
,LASTCHANGED DATETIME
,CREATED DATETIME
,MODIFIER INT
,CREATOR INT
,ELOZOTANEVIREKORDID INT
,Operation INT
)
INSERT INTO
#EmailTempTable
SELECT
EmailJsonData.ID
,EmailJsonData.C_EMAILTIPUSA
,EmailJsonData.C_EMAILCIM
,EmailJsonData.C_ALAPERTELMEZETT
,EmailJsonData.C_ISPUBLIC
,Felhasznalo.ID
,EmailJsonData.C_ISHIBASANMEGADVA
,EmailJsonData.C_INTEZMENYID
,EmailJsonData.C_TANEVID
,EmailJsonData.TOROLT
,EmailJsonData.SERIAL
,EmailJsonData.LASTCHANGED
,EmailJsonData.CREATED
,EmailJsonData.MODIFIER
,EmailJsonData.CREATOR
,EmailJsonData.ELOZOTANEVIREKORDID
,EmailJsonData.Operation
FROM OPENJSON(@pImportJson, N'lax $.ImportJson.T_EMAIL_OSSZES')
WITH (
ID INT '$.ID'
,C_EMAILTIPUSA INT '$.C_EMAILTIPUSA'
,C_EMAILCIM NVARCHAR(200) '$.C_EMAILCIM'
,C_ALAPERTELMEZETT CHAR(1) '$.C_ALAPERTELMEZETT'
,C_ISPUBLIC CHAR(1) '$.C_ISPUBLIC'
,C_ISHIBASANMEGADVA CHAR(1) '$.C_ISHIBASANMEGADVA'
,C_INTEZMENYID INT '$.C_INTEZMENYID'
,C_TANEVID INT '$.C_TANEVID'
,TOROLT CHAR(1) '$.TOROLT'
,SERIAL INT '$.SERIAL'
,LASTCHANGED DATETIME '$.LASTCHANGED'
,CREATED DATETIME '$.CREATED'
,MODIFIER INT '$.MODIFIER'
,CREATOR INT '$.CREATOR'
,ELOZOTANEVIREKORDID INT '$.ELOZOTANEVIREKORDID'
,Operation INT '$.Operation'
,Vezeteknev NVARCHAR(255) '$.Vezeteknev'
,Keresztnev NVARCHAR(255) '$.Keresztnev'
,SzuletesiHely NVARCHAR(50) '$.SzuletesiHely'
,SzuletesiIdo DATETIME '$.SzuletesiIdo'
,OktatasiAzonosito NVARCHAR(20) '$.OktatasiAzonosito'
) EmailJsonData
LEFT JOIN
T_FELHASZNALO_OSSZES Felhasznalo ON
--NOTE: A leküldött adat már teljesen jól formázott, de a db-ben lehetnek rossz adatok. Az összehasonlításhoz ezt csináljuk:
-- Kisbetűsítjük -> Lecseréljük a NO BREAK SPACE-eket, SPACE-ekre -> Lecseréljük az összes többszörös szóközt egyre -> Trimmelünk
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_VEZETEKNEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.Vezeteknev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_UTONEV),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.Keresztnev)
AND REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(LOWER(Felhasznalo.C_SZULETESIHELY),CHAR(160),CHAR(32)),CHAR(9),CHAR(32)),CHAR(32),'(¤¤)'),'¤)(¤',''),'(¤¤)',CHAR(32)) = LOWER(EmailJsonData.SzuletesiHely)
AND Felhasznalo.C_SZULETESIDATUM = EmailJsonData.SzuletesiIdo
AND Felhasznalo.C_OKTATASIAZONOSITO = EmailJsonData.OktatasiAzonosito
AND Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
--NOTE: Ha van bejövő cím állandó lakcím típusú a json-ben, akkor az ehhez a címhez tartozó felhasználó összes címének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
UPDATE
Cim
SET
Cim.C_ALAPERTELMEZETT = 'F'
,Cim.SERIAL = Cim.SERIAL + 1
,Cim.LASTCHANGED = @lastChangedDateTime
,Cim.MODIFIER = @pUserId
FROM
T_FELHASZNALO_OSSZES Felhasznalo
INNER JOIN
#CimTempTable ON
#CimTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
AND #CimTempTable.C_TANEVID = Felhasznalo.C_TANEVID
AND #CimTempTable.TOROLT = 'F'
AND #CimTempTable.C_FELHASZNALOID = Felhasznalo.ID
INNER JOIN
T_CIM_OSSZES Cim ON
Cim.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
AND Cim.C_TANEVID = Felhasznalo.C_TANEVID
AND Cim.TOROLT = 'F'
AND Cim.C_FELHASZNALOID = Felhasznalo.ID
AND Cim.C_ALAPERTELMEZETT = 'T'
WHERE
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
--NOTE: Ha van bejövő email a json-ben, akkor az ehhez a email-hez tartozó felhasználó összes email-jének C_ALAPERTELMEZETT mezőjét false-ra állítjuk és a bejövő lesz a egyedül true!
UPDATE
Email
SET
Email.C_ALAPERTELMEZETT = 'F'
,Email.SERIAL = Email.SERIAL + 1
,Email.LASTCHANGED = @lastChangedDateTime
,Email.MODIFIER = @pUserId
FROM
T_FELHASZNALO_OSSZES Felhasznalo
INNER JOIN
#EmailTempTable ON
#EmailTempTable.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
AND #EmailTempTable.C_TANEVID = Felhasznalo.C_TANEVID
AND #EmailTempTable.TOROLT = 'F'
AND #EmailTempTable.C_FELHASZNALOID = Felhasznalo.ID
INNER JOIN
T_EMAIL_OSSZES Email ON
Email.C_INTEZMENYID = Felhasznalo.C_INTEZMENYID
AND Email.C_TANEVID = Felhasznalo.C_TANEVID
AND Email.TOROLT = 'F'
AND Email.C_FELHASZNALOID = Felhasznalo.ID
AND Email.C_ALAPERTELMEZETT = 'T'
WHERE
Felhasznalo.C_INTEZMENYID = @pIntezmenyId
AND Felhasznalo.C_TANEVID = @pTanevId
AND Felhasznalo.TOROLT = 'F'
--Tanulók beszúrása
SET @actualJson = ' { "ImportJson":{ "T_TANULO_OSSZES":' + (
SELECT
Tanulo.ID
,Tanulo.C_ELOZOINTEZMENY
,Tanulo.C_ALLAMIGONDOZOTT
,Tanulo.C_BEILLESZKEDESINEHEZSEG
,Tanulo.C_BEJARO
,Tanulo.C_EVISMETLO
,Tanulo.C_JOGVISZONYATSZUNETELTETO
,Tanulo.C_MAGANTANULO
,Tanulo.C_POLGARISZERZODESES
,Tanulo.C_SZAKMAIGYAKORLATON
,Tanulo.C_SZOCIALISTAMOGATAS
,Tanulo.C_TANDIJATFIZETO
,Tanulo.C_TANKOTELEZETT
,Tanulo.C_TANULOSZERZODESES
,Tanulo.C_TERITESIDIJATFIZETO
,Tanulo.C_TESTNEVELESTIPUSA
,Tanulo.C_VENDEG
,Tanulo.C_BTMPROBLEMAS
,Tanulo.C_DIAKSPORTKOROS
,Tanulo.C_HALMOZOTTANFOGYATEKOS
,Tanulo.C_HATRANYOSHELYZETU
,Tanulo.C_KOLLEGIUMIELLATASOS
,Tanulo.C_SAJATOSNEVELESU
,Tanulo.C_VESZELYEZTETETT
,Tanulo.C_BEILLESZKEDESIPROBLEMAVALKUZ
,Tanulo.C_MAGATARTASIPROBLEMAVALKUZD
,Tanulo.C_TANULASIPROBLEMADISZGRAFIA
,Tanulo.C_TANULASIPROBLEMAVALKUZD
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZK
,Tanulo.C_TANULASIPROBLEMAVALKUZDDISZL
,Tanulo.C_KOZEPFOKUOKTATASBATIZENHATOD
,Tanulo.C_MENEDEKJOGGALRENDELKEZO
,Tanulo.C_EGYEBDONTO
,Tanulo.C_MEGALLAPODASOS
,Tanulo.C_OSZTV
,Tanulo.C_SZETVAGAZAT
,Tanulo.C_SZKTV
,Tanulo.C_TECHNIKUSIEVFOLYAM
,Tanulo.C_EGYUTTMUKODESES
,Tanulo.C_ISKOLAIKERETEKKOZOTT
,Tanulo.C_ISSZAKMAIGYAKORLATHIANY
,Tanulo.C_ISKIFIRIMPORTALT
,Tanulo.C_FELVETELTANEVEID
,Tanulo.C_ALINTEZMENYID
,Tanulo.C_ALTANEVID
,Tanulo.TOROLT
,Tanulo.SERIAL
,Tanulo.LASTCHANGED
,Tanulo.CREATED
,Tanulo.MODIFIER
,Tanulo.CREATOR
,Tanulo.ELOZOTANEVIREKORDID
,Tanulo.Operation
FROM
#TanuloTempTable AS Tanulo
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 1
DROP TABLE IF EXISTS #TanuloTempTable
--Címek beszúrása
SET @actualJson = ' { "ImportJson":{ "T_CIM_OSSZES":' + (
SELECT
Cim.ID
,Cim.C_CIMTIPUSA
,Cim.C_IRANYITOSZAM
,Cim.C_VAROS
,Cim.C_KOZTERULET
,Cim.C_KOZTERULETJELLEGENEV
,Cim.C_HAZSZAM
,Cim.C_ORSZAG
,Cim.C_ALAPERTELMEZETT
,Cim.C_EMELET
,Cim.C_AJTO
,Cim.C_FELHASZNALOID
,Cim.C_INTEZMENYID
,Cim.C_TANEVID
,Cim.TOROLT
,Cim.SERIAL
,Cim.LASTCHANGED
,Cim.CREATED
,Cim.MODIFIER
,Cim.CREATOR
,Cim.ELOZOTANEVIREKORDID
,Cim.Operation
FROM
#CimTempTable AS Cim
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
DROP TABLE IF EXISTS #CimTempTable
--Emailek beszúrása
SET @actualJson = ' { "ImportJson":{ "T_EMAIL_OSSZES":' + (
SELECT
Email.ID
,Email.C_EMAILTIPUSA
,Email.C_EMAILCIM
,Email.C_ALAPERTELMEZETT
,Email.C_ISPUBLIC
,Email.C_FELHASZNALOID
,Email.C_ISHIBASANMEGADVA
,Email.C_INTEZMENYID
,Email.C_TANEVID
,Email.TOROLT
,Email.SERIAL
,Email.LASTCHANGED
,Email.CREATED
,Email.MODIFIER
,Email.CREATOR
,Email.ELOZOTANEVIREKORDID
,Email.Operation
FROM
#EmailTempTable AS Email
FOR JSON PATH,INCLUDE_NULL_VALUES
)
SET @actualJson = @actualJson + ' } }'
--NOTE: A törlés azért false, mert a tanuló importálásoknál soha nem törlünk!
EXECUTE [dbo].[uspDynamicImport] @pIntezmenyId = @pIntezmenyId, @pTanevId = @pTanevId, @pUserId = @pUserId, @pImportJson = @actualJson, @pIsTorles = 0, @pIsSubTable = 0
DROP TABLE IF EXISTS #EmailTempTable
END
GO